/* * Copyright (C) 2010 Ixonos Plc. * * This file is part of fosdem-schedule. * * fosdem-schedule is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation, either version 2 of the License, or (at your option) * any later version. * * fosdem-schedule is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along with * fosdem-schedule. If not, see . */ #include "calendar.h" #include #include #include #include #include #include Calendar::Calendar(): m_pMultiCalendar(0), m_pCalendar(0) { m_pMultiCalendar = CMulticalendar::MCInstance(); if(m_pMultiCalendar != NULL) m_pCalendar = m_pMultiCalendar->getSynchronizedCalendar(); } Calendar::~Calendar() { delete m_pCalendar; delete m_pMultiCalendar; } int Calendar::addCalendarEvent(QString summary, QString description, QString location, uint dateStart, uint dateEnd, int eventId) { int errorCode = 0; if(m_pMultiCalendar == NULL) return 0; if(m_pCalendar == NULL) return 0; // create event CEvent event(summary.toStdString(), description.toStdString(), location.toStdString(), dateStart, dateEnd); // create alarm CAlarm alarm; alarm.setTrigger(dateStart - 15 * 60); alarm.setRepeat(1); alarm.setDuration(3); alarm.setAction(0); alarm.setAttach(QString::number(eventId).toLocal8Bit().data()); // add alarm to event event.setAlarm(&alarm); // register event into calendar m_pMultiCalendar->addEvent(&event,m_pCalendar->getCalendarId(),errorCode); return errorCode; } void Calendar::deleteCalendarEvent(uint dateStart, uint dateEnd, int eventId) { int errorCode = 0; vector< CComponent * > components; // get all events components = m_pMultiCalendar->getComponents(m_pCalendar->getCalendarId(), 1, dateStart, dateEnd, errorCode); for (vector::iterator it = components.begin();it!=components.end(); ++it) { // get alarm properties if( (*it)->getAlarmProperties() == true) { CAlarm * pAlarm = (*it)->getAlarm(); bool converted = false; int tempId = QVariant(pAlarm->getAttach().data()).toInt(&converted); // check event id if(converted == true) if(tempId == eventId) { //delete event m_pCalendar->deleteComponent((*it)->getId(),errorCode); break; } } } } bool Calendar::hasCalendarEvent(int eventId) { bool ret = false; int errorCode = 0; vector< CEvent * > events; // get all events events = m_pCalendar->getEvents(errorCode); if(events.size() > 0) { for (vector::iterator it = events.begin(); it!=events.end(); ++it) { // get alarm properties if( (*it)->getAlarmProperties() == true) { CAlarm * pAlarm = (*it)->getAlarm(); bool converted = false; int tempId = QVariant(pAlarm->getAttach().data()).toInt(&converted); // check event id if(converted == true) if(tempId == eventId) { ret = true; break; } } } } }