-rw-r--r-- | library/datebookdb.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/library/datebookdb.h b/library/datebookdb.h new file mode 100644 index 0000000..aadb397 --- a/dev/null +++ b/library/datebookdb.h @@ -0,0 +1,85 @@ +/********************************************************************** +** Copyright (C) 2000 Trolltech AS. All rights reserved. +** +** This file is part of Qtopia Environment. +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See http://www.trolltech.com/gpl/ for GPL licensing information. +** +** Contact info@trolltech.com if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ + +#ifndef DATEBOOKDB_H +#define DATEBOOKDB_H + +#include <qdatetime.h> +#include <qfile.h> +#include <qvaluelist.h> +#include <qpe/event.h> + +// journal actions... +enum journal_action { ACTION_ADD, ACTION_REMOVE, ACTION_REPLACE }; + +class DateBookDBPrivate; +class DateBookDB +{ +public: + DateBookDB(); + ~DateBookDB(); + + // very depreciated now!!! + QValueList<Event> getEvents( const QDate &from, const QDate &to ); + QValueList<Event> getEvents( const QDateTime &start ); + + // USE THESE!!! + QValueList<EffectiveEvent> getEffectiveEvents( const QDate &from, + const QDate &to ); + QValueList<EffectiveEvent> getEffectiveEvents( const QDateTime &start ); + + QValueList<Event> getRawRepeats() const; + QValueList<Event> getNonRepeatingEvents( const QDate &from, + const QDate &to ) const; + + // Use these when dealing with adding removing events... + void addEvent( const Event &ev, bool doalarm=TRUE ); + void removeEvent( const Event &ev ); + void editEvent( const Event &old, Event &ev ); + // add/remove event without journaling ( these ended up in public by accident, never + // use them unless you know what you are doing...), + // please put them in private if we ever can change the class... + void addJFEvent( const Event &ev, bool doalarm=TRUE ); + void removeJFEvent( const Event &ev ); + + bool save(); + void reload(); +private: + //find the real repeat... + bool origRepeat( const Event &ev, Event &orig ) const; + bool removeRepeat( const Event &ev ); + void init(); + void loadFile( const QString &strFile ); + // depreciated... + void saveJournalEntry( const Event &ev, journal_action action ); + // new version, uncomment the "= -1" when we remove the above + // function.. + bool saveJournalEntry( const Event &ev, journal_action action, + int key/* = -1*/, bool origHadRepeat = false ); + + QValueList<Event> eventList; // non-repeating events... + QValueList<Event> repeatEvents; // the repeating events... + DateBookDBPrivate *d; + QFile journalFile; +}; + +/* helper functions, also useful to other apps. */ +bool nextOccurance( const Event &e, const QDate &from, QDateTime &next); +#endif |