author | hakan <hakan> | 2002-03-29 16:32:49 (UTC) |
---|---|---|
committer | hakan <hakan> | 2002-03-29 16:32:49 (UTC) |
commit | d31e0363e905aae78034626896b0d6620ffbc8fc (patch) (side-by-side diff) | |
tree | e6a98e06b0a76008c1ca8b12a095ce2ab2cabd34 /library/datebookdb.cpp | |
parent | 6e194663130b9548c4a31afd2798d9ca1dd30be5 (diff) | |
download | opie-d31e0363e905aae78034626896b0d6620ffbc8fc.zip opie-d31e0363e905aae78034626896b0d6620ffbc8fc.tar.gz opie-d31e0363e905aae78034626896b0d6620ffbc8fc.tar.bz2 |
Added getEvent(uid) and a fix reassigning uids to events whos uids have been cleared
-rw-r--r-- | library/datebookdb.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/library/datebookdb.cpp b/library/datebookdb.cpp index bf7fd94..da5a797 100644 --- a/library/datebookdb.cpp +++ b/library/datebookdb.cpp @@ -460,8 +460,11 @@ QValueList<EffectiveEvent> DateBookDB::getEffectiveEvents( const QDate &from, QDateTime dtTmp, dtEnd; for (it = eventList.begin(); it != eventList.end(); ++it ) { + if (!(*it).isValidUid()) + (*it).assignUid(); // FIXME: Hack to restore cleared uids + dtTmp = (*it).start(TRUE); dtEnd = (*it).end(TRUE); if ( dtTmp.date() >= from && dtTmp.date() <= to ) { @@ -502,8 +505,10 @@ QValueList<EffectiveEvent> DateBookDB::getEffectiveEvents( const QDate &from, } // check for repeating events... QDateTime repeat; for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) { + if (!(*it).isValidUid()) + (*it).assignUid(); // FIXME: Hack to restore cleared uids /* create a false end date, to short circuit on hard MonthlyDay recurences */ Event dummy_event = *it; @@ -581,8 +586,21 @@ QValueList<EffectiveEvent> DateBookDB::getEffectiveEvents( const QDateTime &dt) } 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... @@ -614,12 +632,14 @@ void DateBookDB::editEvent( const Event &old, Event &editedEv ) } else oldIndex = eventList.findIndex( old ); saveJournalEntry( editedEv, ACTION_REPLACE, oldIndex, oldHadRepeat ); + // Delete old event if ( old.hasAlarm() ) delEventAlarm( old ); if ( oldHadRepeat ) { - if ( oldHadRepeat && editedEv.hasRepeat() ) { + 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 ); @@ -629,14 +649,17 @@ void DateBookDB::editEvent( const Event &old, Event &editedEv ) QValueList<Event>::Iterator it = eventList.find( old ); if ( it != eventList.end() ) eventList.remove( it ); } + + // Add new event if ( editedEv.hasAlarm() ) addEventAlarm( editedEv ); if ( editedEv.hasRepeat() ) repeatEvents.append( editedEv ); else eventList.append( editedEv ); + d->clean = false; } void DateBookDB::removeEvent( const Event &ev ) |