summaryrefslogtreecommitdiff
path: root/library
Side-by-side diff
Diffstat (limited to 'library') (more/less context) (ignore whitespace changes)
-rw-r--r--library/datebookdb.cpp14
-rw-r--r--library/datebookdb.h1
2 files changed, 0 insertions, 15 deletions
diff --git a/library/datebookdb.cpp b/library/datebookdb.cpp
index da5a797..2ac9a0c 100644
--- a/library/datebookdb.cpp
+++ b/library/datebookdb.cpp
@@ -542,110 +542,96 @@ QValueList<EffectiveEvent> DateBookDB::getEffectiveEvents( const QDate &from,
QDate sub_it = QMAX( repeat.date(), from );
QDate startDate = repeat.date();
QDate endDate = startDate.addDays( duration );
while ( sub_it <= endDate && sub_it <= to ) {
EffectiveEvent tmpEffEv = effEv;
Event tmpEv = *it;
tmpEffEv.setEvent( tmpEv );
if ( sub_it != startDate )
tmpEffEv.setStart( QTime(0,0,0) );
if ( sub_it != endDate )
tmpEffEv.setEnd( QTime(23,59,59) );
tmpEffEv.setDate( sub_it );
tmpEffEv.setEffectiveDates( startDate, endDate );
tmpList.append( tmpEffEv );
sub_it = sub_it.addDays( 1 );
}
itDate = endDate;
} else {
Event tmpEv = *it;
effEv.setEvent( tmpEv );
tmpList.append( effEv );
itDate = repeat.date().addDays( 1 );
}
}
}
qHeapSort( tmpList );
return tmpList;
}
QValueList<EffectiveEvent> DateBookDB::getEffectiveEvents( const QDateTime &dt)
{
QValueList<EffectiveEvent> day = getEffectiveEvents(dt.date(), dt.date());
QValueListConstIterator<EffectiveEvent> it;
QValueList<EffectiveEvent> tmpList;
QDateTime dtTmp;
for (it = day.begin(); it != day.end(); ++it ) {
dtTmp = QDateTime( (*it).date(), (*it).start() );
// at the moment we don't have second granularity, be nice about that..
if ( QABS(dt.secsTo(dtTmp)) < 60 )
tmpList.append( *it );
}
return tmpList;
}
-Event DateBookDB::getEvent( int uid ) {
- QValueList<Event>::ConstIterator it;
-
- for (it = eventList.begin(); it != eventList.end(); it++) {
- if ((*it).uid() == uid) return *it;
- }
- for (it = repeatEvents.begin(); it != repeatEvents.end(); it++) {
- if ((*it).uid() == uid) return *it;
- }
-
- qDebug("Event not found: uid=%d\n", uid);
-}
-
-
void DateBookDB::addEvent( const Event &ev, bool doalarm )
{
// write to the journal...
saveJournalEntry( ev, ACTION_ADD, -1, false );
addJFEvent( ev, doalarm );
d->clean = false;
}
void DateBookDB::addJFEvent( const Event &ev, bool doalarm )
{
if ( doalarm && ev.hasAlarm() )
addEventAlarm( ev );
if ( ev.hasRepeat() )
repeatEvents.append( ev );
else
eventList.append( ev );
}
void DateBookDB::editEvent( const Event &old, Event &editedEv )
{
int oldIndex=0;
bool oldHadRepeat = old.hasRepeat();
Event orig;
// write to the journal...
if ( oldHadRepeat ) {
if ( origRepeat( old, orig ) ) // should work always...
oldIndex = repeatEvents.findIndex( orig );
} else
oldIndex = eventList.findIndex( old );
saveJournalEntry( editedEv, ACTION_REPLACE, oldIndex, oldHadRepeat );
// Delete old event
if ( old.hasAlarm() )
delEventAlarm( old );
if ( oldHadRepeat ) {
if ( editedEv.hasRepeat() ) { // This mean that origRepeat was run above and
// orig is initialized
// assumption, when someone edits a repeating event, they
// want to change them all, maybe not perfect, but it works
// for the moment...
repeatEvents.remove( orig );
} else
removeRepeat( old );
} else {
QValueList<Event>::Iterator it = eventList.find( old );
if ( it != eventList.end() )
eventList.remove( it );
diff --git a/library/datebookdb.h b/library/datebookdb.h
index e4c251c..0add028 100644
--- a/library/datebookdb.h
+++ b/library/datebookdb.h
@@ -1,88 +1,87 @@
/**********************************************************************
** 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 );
- Event getEvent( int uid );
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;
int recordIdMax; // ADDITION
};
/* helper functions, also useful to other apps. */
bool nextOccurance( const Event &e, const QDate &from, QDateTime &next);
#endif