knotes

knotesalarm.cpp

00001 /*******************************************************************
00002  KNotes -- Notes for the KDE project
00003 
00004  Copyright (c) 2005, Michael Brade <brade@kde.org>
00005 
00006  This program is free software; you can redistribute it and/or
00007  modify it under the terms of the GNU General Public License
00008  as published by the Free Software Foundation; either version 2
00009  of the License, or (at your option) any later version.
00010 
00011  This program is distributed in the hope that it will be useful,
00012  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  GNU General Public License for more details.
00015 
00016  You should have received a copy of the GNU General Public License
00017  along with this program; if not, write to the Free Software
00018  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00019 
00020  In addition, as a special exception, the copyright holders give
00021  permission to link the code of this program with any edition of
00022  the Qt library by Trolltech AS, Norway (or with modified versions
00023  of Qt that use the same license as Qt), and distribute linked
00024  combinations including the two.  You must obey the GNU General
00025  Public License in all respects for all of the code used other than
00026  Qt.  If you modify this file, you may extend this exception to
00027  your version of the file, but you are not obligated to do so.  If
00028  you do not wish to do so, delete this exception statement from
00029  your version.
00030 *******************************************************************/
00031 
00032 #include <qstringlist.h>
00033 
00034 #include <kmessagebox.h>
00035 #include <klocale.h>
00036 
00037 #include <libkcal/calendarresources.h>
00038 
00039 #include "knotes/resourcemanager.h"
00040 
00041 #include "knotesalarm.h"
00042 #include "knotesglobalconfig.h"
00043 
00044 
00045 KNotesAlarm::KNotesAlarm( KNotesResourceManager *manager, QObject *parent, const char *name )
00046   : QObject( parent, name ),
00047     m_manager( manager )
00048 {
00049     // TODO: fix timezone stuff?
00050 
00051     connect( &m_checkTimer, SIGNAL(timeout()), SLOT(checkAlarms()) );
00052     m_checkTimer.start( 1000 * KNotesGlobalConfig::self()->checkInterval() );  // interval in seconds
00053 }
00054 
00055 void KNotesAlarm::checkAlarms()
00056 {
00057     QDateTime from = KNotesGlobalConfig::self()->alarmsLastChecked().addSecs( 1 );
00058     if ( !from.isValid() )
00059         from.setTime_t( 0 );
00060 
00061     KNotesGlobalConfig::self()->setAlarmsLastChecked( QDateTime::currentDateTime() );
00062     QValueList<KCal::Alarm *> alarms = m_manager->alarms( from, KNotesGlobalConfig::self()->alarmsLastChecked() );
00063 
00064     QStringList notes;
00065     QValueList<KCal::Alarm *>::ConstIterator it;
00066     for ( it = alarms.begin(); it != alarms.end(); ++it )
00067     {
00068         KCal::Incidence *incidence = (*it)->parent();
00069         notes += incidence->summary();
00070     }
00071 
00072     if ( !notes.isEmpty() )
00073         KMessageBox::informationList( 0, i18n("The following notes triggered alarms:"), notes, i18n("Alarm") );
00074 }
00075 
00076 
00077 #include "knotesalarm.moc"
KDE Home | KDE Accessibility Home | Description of Access Keys