summaryrefslogtreecommitdiff
authorwaspe <waspe>2003-11-04 16:59:55 (UTC)
committer waspe <waspe>2003-11-04 16:59:55 (UTC)
commit5865ec3970cead5b2cf3dd255a55cf2e1869e330 (patch) (side-by-side diff)
tree657cab0ca04a93565ee16e79f0aedda63d1923d0
parentda5c9b06fe0081050ab8165cf3d189dbc8117bf6 (diff)
downloadopie-5865ec3970cead5b2cf3dd255a55cf2e1869e330.zip
opie-5865ec3970cead5b2cf3dd255a55cf2e1869e330.tar.gz
opie-5865ec3970cead5b2cf3dd255a55cf2e1869e330.tar.bz2
resloved merge conflict
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/datebookdb.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/library/datebookdb.cpp b/library/datebookdb.cpp
index 000ff71..188d8e1 100644
--- a/library/datebookdb.cpp
+++ b/library/datebookdb.cpp
@@ -72,53 +72,56 @@ bool nextOccurance(const Event &e, const QDate &from, QDateTime &next)
int firstOfWeek = 0;
int weekOfMonth;
if (e.repeatPattern().hasEndDate && e.repeatPattern().endDate() < from)
return FALSE;
if (e.start() >= from) {
next = e.start();
return TRUE;
}
switch ( e.repeatPattern().type ) {
case Event::Weekly:
/* weekly is just daily by 7 */
/* first convert the repeatPattern.Days() mask to the next
day of week valid after from */
dayOfWeek = from.dayOfWeek();
dayOfWeek--; /* we want 0-6, doco for above specs 1-7 */
/* this is done in case freq > 1 and from in week not
for this round */
// firstOfWeek = 0; this is already done at decl.
while(!((1 << firstOfWeek) & e.repeatPattern().days))
- firstOfWeek++;
+ firstOfWeek++;
+
+
/* there is at least one 'day', or there would be no event */
while(!((1 << (dayOfWeek % 7)) & e.repeatPattern().days))
- dayOfWeek++;
+ dayOfWeek++;
+
dayOfWeek = dayOfWeek % 7; /* the actual day of week */
dayOfWeek -= e.start().date().dayOfWeek() -1;
firstOfWeek = firstOfWeek % 7; /* the actual first of week */
firstOfWeek -= e.start().date().dayOfWeek() -1;
// dayOfWeek may be negitive now
// day of week is number of days to add to start day
freq *= 7;
// FALL-THROUGH !!!!!
case Event::Daily:
// the add is for the possible fall through from weekly */
if(e.start().date().addDays(dayOfWeek) > from) {
/* first week exception */
next = QDateTime(e.start().date().addDays(dayOfWeek),
e.start().time());
if ((next.date() > e.repeatPattern().endDate())
&& e.repeatPattern().hasEndDate)
return FALSE;
return TRUE;
}
/* if from is middle of a non-week */
@@ -870,48 +873,55 @@ void DateBookDB::loadFile( const QString &strFile )
break;
}
case FNote:
e.setNotes( value );
break;
case FCreated:
rp.createTime = value.toInt();
break;
case FAction:
currentAction = value.toInt();
break;
case FActionKey:
journalKey = value.toInt();
break;
case FJournalOrigHadRepeat:
origHadRepeat = value.toInt();
break;
default:
qDebug( "huh??? missing enum? -- attr.: %s", attr );
break;
}
#endif
}
// "post processing" (dates, times, alarm, recurrence)
+
+ // other half of 1169 fixlet without getting into regression
+ // if rp.days == 0 and rp.type == Event::Weekly
+ if ( rp.type == Event::Weekly && rp.days == 0 )
+ rp.days = Event::day( e.start().date().dayOfWeek() );
+
+
// start date/time
e.setRepeat( rp.type != Event::NoRepeat, rp );
if ( alarmTime != -1 )
e.setAlarm( TRUE, alarmTime, alarmSound );
// now do our action based on the current action...
switch ( currentAction ) {
case ACTION_ADD:
addJFEvent( e );
break;
case ACTION_REMOVE:
removeJFEvent( e );
break;
case ACTION_REPLACE:
// be a little bit careful,
// in case of a messed up journal...
if ( journalKey > -1 && origHadRepeat > -1 ) {
// get the original from proper list...
if ( origHadRepeat )
removeJFEvent( *(repeatEvents.at(journalKey)) );
else
removeJFEvent( *(eventList.at(journalKey)) );
addJFEvent( e );