summaryrefslogtreecommitdiff
path: root/library/datebookdb.cpp
Side-by-side diff
Diffstat (limited to 'library/datebookdb.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/datebookdb.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/library/datebookdb.cpp b/library/datebookdb.cpp
index 2f33255..000ff71 100644
--- a/library/datebookdb.cpp
+++ b/library/datebookdb.cpp
@@ -782,129 +782,129 @@ void DateBookDB::loadFile( const QString &strFile )
if ( i == j ) {
// leave out empty attributes
i = j + 1;
continue;
}
QString value = haveUtf ? QString::fromUtf8( dt+i, j-i )
: QString::fromLatin1( dt+i, j-i );
if ( haveAmp )
value = Qtopia::plainString( value );
i = j + 1;
//qDebug("attr='%s' value='%s'", attr.data(), value.latin1() );
int * find = dict[ attr ];
#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:
// QtopiaDesktop 1.6 sometimes creates 'rweekdays="0"'
// when it goes mad. This causes datebook to crash.. (se)
- if ( value.toInt() != 0 )
+ 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 )
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...
@@ -979,129 +979,129 @@ bool DateBookDB::save()
str = buf.utf8();
total_written = f.writeBlock( str.data(), str.length() );
if ( total_written != int(str.length()) ) {
f.close();
QFile::remove( strFileNew );
return false;
}
}
for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) {
buf = "<event";
(*it).save( buf );
buf += " />\n";
str = buf.utf8();
total_written = f.writeBlock( str.data(), str.length() );
if ( total_written != int(str.length()) ) {
f.close();
QFile::remove( strFileNew );
return false;
}
}
buf = "</events>\n</DATEBOOK>\n";
str = buf.utf8();
total_written = f.writeBlock( str.data(), str.length() );
if ( total_written != int(str.length()) ) {
f.close();
QFile::remove( strFileNew );
return false;
}
f.close();
// now rename... I like to use the systemcall
if ( ::rename( strFileNew, dateBookFilename() ) < 0 ) {
qWarning( "problem renaming file %s to %s errno %d",
strFileNew.latin1(), dateBookFilename().latin1(), errno );
// remove the file, otherwise it will just stick around...
QFile::remove( strFileNew );
}
// may as well remove the journal file...
QFile::remove( dateBookJournalFile() );
d->clean = true;
return true;
}
void DateBookDB::reload()
{
QValueList<Event>::Iterator it = eventList.begin();
for ( ; it != eventList.end(); ++it ) {
if ( (*it).hasAlarm() )
delEventAlarm( *it );
if ( (*it).hasRepeat() )
removeRepeat( *it );
}
eventList.clear();
repeatEvents.clear(); // should be a NOP
init();
}
bool DateBookDB::removeRepeat( const Event &ev )
{
time_t removeMe = ev.repeatPattern().createTime;
QValueListIterator<Event> it;
for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) {
if ( removeMe == (*it).repeatPattern().createTime ) {
- repeatEvents.remove( *it );
+ (void)repeatEvents.remove( it );
// best break, or we are going into undefined territory!
return TRUE;
}
}
return FALSE;
}
bool DateBookDB::origRepeat( const Event &ev, Event &orig ) const
{
time_t removeMe = ev.repeatPattern().createTime;
QValueListConstIterator<Event> it;
for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) {
if ( removeMe == (*it).repeatPattern().createTime ) {
orig = (*it);
return TRUE;
}
}
return FALSE;
}
void DateBookDB::saveJournalEntry( const Event &ev, journal_action action )
{
saveJournalEntry( ev, action, -1, false );
}
bool DateBookDB::saveJournalEntry( const Event &evOld, journal_action action,
int key, bool origHadRepeat )
{
bool status = false;
Event ev = evOld;
// write our log based on the action
QFile f( dateBookJournalFile() );
if ( !f.open( IO_WriteOnly|IO_Append ) )
return false;
QString buf = "<event";
ev.save( buf );
buf += " action=";
buf += "\"" + QString::number(action) + "\"";
buf += " actionkey=\"" + QString::number(key) + "\"";
buf += " actionorig=\"" + QString::number(origHadRepeat) +"\"";
buf += " />\n";
QString str = buf.utf8();
status = ( f.writeBlock( str.data(), str.length() ) == int(str.length()) );
f.close();
return status;
}
QValueList<Event> DateBookDB::getRawRepeats() const
{
return repeatEvents;
}
QValueList<Event> DateBookDB::getNonRepeatingEvents( const QDate &from,
const QDate &to ) const
{
QValueListConstIterator<Event> it;
QDateTime dtTmp, dtEnd;
QValueList<Event> tmpList;
for (it = eventList.begin(); it != eventList.end(); ++it ) {
dtTmp = (*it).start(TRUE);
dtEnd = (*it).end(TRUE);
if ( dtTmp.date() >= from && dtTmp.date() <= to ) {
Event e = *it;