-rw-r--r-- | library/datebookdb.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/library/datebookdb.cpp b/library/datebookdb.cpp index a26fe8f..0fedfa8 100644 --- a/library/datebookdb.cpp +++ b/library/datebookdb.cpp @@ -796,97 +796,102 @@ void DateBookDB::loadFile( const QString &strFile ) #if 1 if ( !find ) { // custom field e.setCustomField(attr, value); continue; } switch( *find ) { case FDescription: e.setDescription( value ); break; case FLocation: e.setLocation( value ); break; case FCategories: e.setCategories( Qtopia::Record::idsFromString( value ) ); break; case FUid: e.setUid( value.toInt() ); break; case FType: if ( value == "AllDay" ) e.setType( Event::AllDay ); else e.setType( Event::Normal ); break; case FAlarm: alarmTime = value.toInt(); break; case FSound: alarmSound = value == "loud" ? Event::Loud : Event::Silent; break; // recurrence stuff case FRType: if ( value == "Daily" ) rp.type = Event::Daily; else if ( value == "Weekly" ) rp.type = Event::Weekly; else if ( value == "MonthlyDay" ) rp.type = Event::MonthlyDay; else if ( value == "MonthlyDate" ) rp.type = Event::MonthlyDate; else if ( value == "Yearly" ) rp.type = Event::Yearly; else rp.type = Event::NoRepeat; break; case FRWeekdays: - rp.days = value.toInt(); + // QtopiaDesktop 1.6 sometimes creates 'rweekdays="0"' + // when it goes mad. This causes datebook to crash.. (se) + if ( value.toInt() != 0 ) + rp.days = value.toInt(); + else + rp.days = 1; break; case FRPosition: rp.position = value.toInt(); break; case FRFreq: rp.frequency = value.toInt(); break; case FRHasEndDate: rp.hasEndDate = value.toInt(); break; case FREndDate: { rp.endDateUTC = (time_t) value.toLong(); break; } case FRStart: { e.setStart( (time_t) value.toLong() ); break; } case FREnd: { e.setEnd( (time_t) value.toLong() ); 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) // start date/time e.setRepeat( rp.type != Event::NoRepeat, rp ); if ( alarmTime != -1 ) |