summaryrefslogtreecommitdiff
path: root/library/datebookdb.cpp
Unidiff
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
@@ -798,97 +798,97 @@ void DateBookDB::loadFile( const QString &strFile )
798 // custom field 798 // custom field
799 e.setCustomField(attr, value); 799 e.setCustomField(attr, value);
800 continue; 800 continue;
801 } 801 }
802 802
803 switch( *find ) { 803 switch( *find ) {
804 case FDescription: 804 case FDescription:
805 e.setDescription( value ); 805 e.setDescription( value );
806 break; 806 break;
807 case FLocation: 807 case FLocation:
808 e.setLocation( value ); 808 e.setLocation( value );
809 break; 809 break;
810 case FCategories: 810 case FCategories:
811 e.setCategories( Qtopia::Record::idsFromString( value ) ); 811 e.setCategories( Qtopia::Record::idsFromString( value ) );
812 break; 812 break;
813 case FUid: 813 case FUid:
814 e.setUid( value.toInt() ); 814 e.setUid( value.toInt() );
815 break; 815 break;
816 case FType: 816 case FType:
817 if ( value == "AllDay" ) 817 if ( value == "AllDay" )
818 e.setType( Event::AllDay ); 818 e.setType( Event::AllDay );
819 else 819 else
820 e.setType( Event::Normal ); 820 e.setType( Event::Normal );
821 break; 821 break;
822 case FAlarm: 822 case FAlarm:
823 alarmTime = value.toInt(); 823 alarmTime = value.toInt();
824 break; 824 break;
825 case FSound: 825 case FSound:
826 alarmSound = value == "loud" ? Event::Loud : Event::Silent; 826 alarmSound = value == "loud" ? Event::Loud : Event::Silent;
827 break; 827 break;
828 // recurrence stuff 828 // recurrence stuff
829 case FRType: 829 case FRType:
830 if ( value == "Daily" ) 830 if ( value == "Daily" )
831 rp.type = Event::Daily; 831 rp.type = Event::Daily;
832 else if ( value == "Weekly" ) 832 else if ( value == "Weekly" )
833 rp.type = Event::Weekly; 833 rp.type = Event::Weekly;
834 else if ( value == "MonthlyDay" ) 834 else if ( value == "MonthlyDay" )
835 rp.type = Event::MonthlyDay; 835 rp.type = Event::MonthlyDay;
836 else if ( value == "MonthlyDate" ) 836 else if ( value == "MonthlyDate" )
837 rp.type = Event::MonthlyDate; 837 rp.type = Event::MonthlyDate;
838 else if ( value == "Yearly" ) 838 else if ( value == "Yearly" )
839 rp.type = Event::Yearly; 839 rp.type = Event::Yearly;
840 else 840 else
841 rp.type = Event::NoRepeat; 841 rp.type = Event::NoRepeat;
842 break; 842 break;
843 case FRWeekdays: 843 case FRWeekdays:
844 // QtopiaDesktop 1.6 sometimes creates 'rweekdays="0"' 844 // QtopiaDesktop 1.6 sometimes creates 'rweekdays="0"'
845 // when it goes mad. This causes datebook to crash.. (se) 845 // when it goes mad. This causes datebook to crash.. (se)
846 if ( value.toInt() != 0 ) 846 if ( value.toInt() != 0 )
847 rp.days = value.toInt(); 847 rp.days = value.toInt();
848 else 848 else
849 rp.days = 1; 849 rp.days = 1;
850 break; 850 break;
851 case FRPosition: 851 case FRPosition:
852 rp.position = value.toInt(); 852 rp.position = value.toInt();
853 break; 853 break;
854 case FRFreq: 854 case FRFreq:
855 rp.frequency = value.toInt(); 855 rp.frequency = value.toInt();
856 break; 856 break;
857 case FRHasEndDate: 857 case FRHasEndDate:
858 rp.hasEndDate = value.toInt(); 858 rp.hasEndDate = value.toInt();
859 break; 859 break;
860 case FREndDate: { 860 case FREndDate: {
861 rp.endDateUTC = (time_t) value.toLong(); 861 rp.endDateUTC = (time_t) value.toLong();
862 break; 862 break;
863 } 863 }
864 case FRStart: { 864 case FRStart: {
865 e.setStart( (time_t) value.toLong() ); 865 e.setStart( (time_t) value.toLong() );
866 break; 866 break;
867 } 867 }
868 case FREnd: { 868 case FREnd: {
869 e.setEnd( (time_t) value.toLong() ); 869 e.setEnd( (time_t) value.toLong() );
870 break; 870 break;
871 } 871 }
872 case FNote: 872 case FNote:
873 e.setNotes( value ); 873 e.setNotes( value );
874 break; 874 break;
875 case FCreated: 875 case FCreated:
876 rp.createTime = value.toInt(); 876 rp.createTime = value.toInt();
877 break; 877 break;
878 case FAction: 878 case FAction:
879 currentAction = value.toInt(); 879 currentAction = value.toInt();
880 break; 880 break;
881 case FActionKey: 881 case FActionKey:
882 journalKey = value.toInt(); 882 journalKey = value.toInt();
883 break; 883 break;
884 case FJournalOrigHadRepeat: 884 case FJournalOrigHadRepeat:
885 origHadRepeat = value.toInt(); 885 origHadRepeat = value.toInt();
886 break; 886 break;
887 default: 887 default:
888 qDebug( "huh??? missing enum? -- attr.: %s", attr ); 888 qDebug( "huh??? missing enum? -- attr.: %s", attr );
889 break; 889 break;
890 } 890 }
891#endif 891#endif
892 } 892 }
893 // "post processing" (dates, times, alarm, recurrence) 893 // "post processing" (dates, times, alarm, recurrence)
894 // start date/time 894 // start date/time
@@ -995,97 +995,97 @@ bool DateBookDB::save()
995 QFile::remove( strFileNew ); 995 QFile::remove( strFileNew );
996 return false; 996 return false;
997 } 997 }
998 } 998 }
999 buf = "</events>\n</DATEBOOK>\n"; 999 buf = "</events>\n</DATEBOOK>\n";
1000 str = buf.utf8(); 1000 str = buf.utf8();
1001 total_written = f.writeBlock( str.data(), str.length() ); 1001 total_written = f.writeBlock( str.data(), str.length() );
1002 if ( total_written != int(str.length()) ) { 1002 if ( total_written != int(str.length()) ) {
1003 f.close(); 1003 f.close();
1004 QFile::remove( strFileNew ); 1004 QFile::remove( strFileNew );
1005 return false; 1005 return false;
1006 } 1006 }
1007 f.close(); 1007 f.close();
1008 1008
1009 // now rename... I like to use the systemcall 1009 // now rename... I like to use the systemcall
1010 if ( ::rename( strFileNew, dateBookFilename() ) < 0 ) { 1010 if ( ::rename( strFileNew, dateBookFilename() ) < 0 ) {
1011 qWarning( "problem renaming file %s to %s errno %d", 1011 qWarning( "problem renaming file %s to %s errno %d",
1012 strFileNew.latin1(), dateBookFilename().latin1(), errno ); 1012 strFileNew.latin1(), dateBookFilename().latin1(), errno );
1013 // remove the file, otherwise it will just stick around... 1013 // remove the file, otherwise it will just stick around...
1014 QFile::remove( strFileNew ); 1014 QFile::remove( strFileNew );
1015 } 1015 }
1016 1016
1017 // may as well remove the journal file... 1017 // may as well remove the journal file...
1018 QFile::remove( dateBookJournalFile() ); 1018 QFile::remove( dateBookJournalFile() );
1019 d->clean = true; 1019 d->clean = true;
1020 return true; 1020 return true;
1021} 1021}
1022 1022
1023void DateBookDB::reload() 1023void DateBookDB::reload()
1024{ 1024{
1025 QValueList<Event>::Iterator it = eventList.begin(); 1025 QValueList<Event>::Iterator it = eventList.begin();
1026 for ( ; it != eventList.end(); ++it ) { 1026 for ( ; it != eventList.end(); ++it ) {
1027 if ( (*it).hasAlarm() ) 1027 if ( (*it).hasAlarm() )
1028 delEventAlarm( *it ); 1028 delEventAlarm( *it );
1029 if ( (*it).hasRepeat() ) 1029 if ( (*it).hasRepeat() )
1030 removeRepeat( *it ); 1030 removeRepeat( *it );
1031 } 1031 }
1032 eventList.clear(); 1032 eventList.clear();
1033 repeatEvents.clear(); // should be a NOP 1033 repeatEvents.clear(); // should be a NOP
1034 init(); 1034 init();
1035} 1035}
1036 1036
1037bool DateBookDB::removeRepeat( const Event &ev ) 1037bool DateBookDB::removeRepeat( const Event &ev )
1038{ 1038{
1039 time_t removeMe = ev.repeatPattern().createTime; 1039 time_t removeMe = ev.repeatPattern().createTime;
1040 QValueListIterator<Event> it; 1040 QValueListIterator<Event> it;
1041 for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) { 1041 for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) {
1042 if ( removeMe == (*it).repeatPattern().createTime ) { 1042 if ( removeMe == (*it).repeatPattern().createTime ) {
1043 repeatEvents.remove( *it ); 1043 (void)repeatEvents.remove( it );
1044 // best break, or we are going into undefined territory! 1044 // best break, or we are going into undefined territory!
1045 return TRUE; 1045 return TRUE;
1046 } 1046 }
1047 } 1047 }
1048 return FALSE; 1048 return FALSE;
1049} 1049}
1050 1050
1051bool DateBookDB::origRepeat( const Event &ev, Event &orig ) const 1051bool DateBookDB::origRepeat( const Event &ev, Event &orig ) const
1052{ 1052{
1053 time_t removeMe = ev.repeatPattern().createTime; 1053 time_t removeMe = ev.repeatPattern().createTime;
1054 QValueListConstIterator<Event> it; 1054 QValueListConstIterator<Event> it;
1055 for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) { 1055 for ( it = repeatEvents.begin(); it != repeatEvents.end(); ++it ) {
1056 if ( removeMe == (*it).repeatPattern().createTime ) { 1056 if ( removeMe == (*it).repeatPattern().createTime ) {
1057 orig = (*it); 1057 orig = (*it);
1058 return TRUE; 1058 return TRUE;
1059 } 1059 }
1060 } 1060 }
1061 return FALSE; 1061 return FALSE;
1062} 1062}
1063 1063
1064void DateBookDB::saveJournalEntry( const Event &ev, journal_action action ) 1064void DateBookDB::saveJournalEntry( const Event &ev, journal_action action )
1065{ 1065{
1066 saveJournalEntry( ev, action, -1, false ); 1066 saveJournalEntry( ev, action, -1, false );
1067} 1067}
1068 1068
1069bool DateBookDB::saveJournalEntry( const Event &evOld, journal_action action, 1069bool DateBookDB::saveJournalEntry( const Event &evOld, journal_action action,
1070 int key, bool origHadRepeat ) 1070 int key, bool origHadRepeat )
1071{ 1071{
1072 bool status = false; 1072 bool status = false;
1073 Event ev = evOld; 1073 Event ev = evOld;
1074 // write our log based on the action 1074 // write our log based on the action
1075 QFile f( dateBookJournalFile() ); 1075 QFile f( dateBookJournalFile() );
1076 if ( !f.open( IO_WriteOnly|IO_Append ) ) 1076 if ( !f.open( IO_WriteOnly|IO_Append ) )
1077 return false; 1077 return false;
1078 QString buf = "<event"; 1078 QString buf = "<event";
1079 ev.save( buf ); 1079 ev.save( buf );
1080 buf += " action="; 1080 buf += " action=";
1081 buf += "\"" + QString::number(action) + "\""; 1081 buf += "\"" + QString::number(action) + "\"";
1082 buf += " actionkey=\"" + QString::number(key) + "\""; 1082 buf += " actionkey=\"" + QString::number(key) + "\"";
1083 buf += " actionorig=\"" + QString::number(origHadRepeat) +"\""; 1083 buf += " actionorig=\"" + QString::number(origHadRepeat) +"\"";
1084 buf += " />\n"; 1084 buf += " />\n";
1085 QString str = buf.utf8(); 1085 QString str = buf.utf8();
1086 status = ( f.writeBlock( str.data(), str.length() ) == int(str.length()) ); 1086 status = ( f.writeBlock( str.data(), str.length() ) == int(str.length()) );
1087 f.close(); 1087 f.close();
1088 return status; 1088 return status;
1089} 1089}
1090 1090
1091QValueList<Event> DateBookDB::getRawRepeats() const 1091QValueList<Event> DateBookDB::getRawRepeats() const