Fixed searchclients to handle new Google URLs correctly; added GUI
[movie-schedule] / src / utils / calendar.cpp
1 // Copyright 2010 Jochen Becher
2 //
3 // This file is part of MovieSchedule.
4 //
5 // MovieSchedule is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // MovieSchedule is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with MovieSchedule.  If not, see <http://www.gnu.org/licenses/>.
17
18 #include "calendar.h"
19
20 #ifdef MAEMO_SDK
21 #include <CCalendar.h>
22 #include <CMulticalendar.h>
23 #include <CEvent.h>
24 #include <CalendarErrors.h>
25
26 Calendar::Calendar(QObject *parent)
27         : QObject(parent),
28         _multi_calendar(0)
29 {
30     _multi_calendar = CMulticalendar::MCInstance();
31 }
32
33 Calendar::~Calendar()
34 {
35     delete _multi_calendar;
36 }
37
38 bool Calendar::AddEvent(const QString &event_name, const QDateTime &start_time,
39                         const QDateTime &end_time, const QString &location, const QString &description)
40 {
41     int error_code = 0;
42
43     CCalendar *calendar = _multi_calendar->getDefaultCalendar();
44     if (calendar == 0) {
45         return false;
46     }
47     CEvent *event = new CEvent(event_name.toStdString(), description.toStdString(),
48                                location.toStdString(), start_time.toTime_t(), end_time.toTime_t());
49     event->setAlarmBefore(3600);
50     if (!calendar->addEvent(event, error_code)) {
51         return false;
52     }
53     delete event;
54     if (error_code != CALENDAR_ENTRY_DUPLICATED && error_code != CALENDAR_OPERATION_SUCCESSFUL) {
55         return false;
56     }
57     return true;
58 }
59 #endif