summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp76
-rw-r--r--korganizer/calendarview.h5
-rw-r--r--korganizer/koprefs.cpp27
-rw-r--r--korganizer/koprefs.h1
-rw-r--r--korganizer/mainwindow.cpp3
-rw-r--r--libkcal/calendar.h2
-rw-r--r--libkcal/calendarlocal.cpp14
-rw-r--r--libkcal/calendarlocal.h2
8 files changed, 87 insertions, 43 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index cfc6b10..9160e1d 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -847,43 +847,69 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b
847 return 0; 847 return 0;
848} 848}
849Event* CalendarView::getLastSyncEvent() 849Event* CalendarView::getLastSyncEvent()
850{ 850{
851 Event* lse; 851 Event* lse;
852 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); 852 //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() );
853 lse = mCalendar->event( "last-syncEvent-device-"+mCurrentSyncDevice ); 853 lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice );
854 if (!lse) { 854 if (!lse) {
855 lse = new Event(); 855 lse = new Event();
856 lse->setUid( "last-syncEvent-device-"+mCurrentSyncDevice ); 856 lse->setUid( "last-syncEvent-"+mCurrentSyncDevice );
857 lse->setSummary(mCurrentSyncDevice + i18n(" - sync event")); 857 QString sum = "";
858 if ( KOPrefs::instance()->mExternSyncProfiles.contains( mCurrentSyncDevice ) )
859 sum = "E: ";
860 lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event"));
858 lse->setDtStart( mLastCalendarSync ); 861 lse->setDtStart( mLastCalendarSync );
859 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 862 lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
860 lse->setCategories( i18n("SyncEvent") ); 863 lse->setCategories( i18n("SyncEvent") );
861 lse->setReadOnly( true ); 864 lse->setReadOnly( true );
862 mCalendar->addEvent( lse ); 865 mCalendar->addEvent( lse );
863 } 866 }
864 867
865 return lse; 868 return lse;
866 869
867} 870}
868void CalendarView::checkSharpEvent( Event* lastSync, Incidence* toDelete ) 871void CalendarView::setupExternSyncProfiles()
869{ 872{
870 if ( ! lastSync ) 873 Event* lse;
871 return; 874 mExternLastSyncEvent.clear();
872 if ( toDelete->zaurusId() < 0 ) 875 int i;
876 for ( i = 0; i < KOPrefs::instance()->mExternSyncProfiles.count(); ++i ) {
877 lse = mCalendar->event( "last-syncEvent-"+ KOPrefs::instance()->mExternSyncProfiles[i] );
878 if ( lse )
879 mExternLastSyncEvent.append( lse );
880 else
881 qDebug("Last Sync event not found for %s ", KOPrefs::instance()->mExternSyncProfiles[i].latin1());
882 }
883
884}
885// we check, if the to delete event has a id for a profile
886// if yes, we set this id in the profile to delete
887void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete )
888{
889 if ( ! lastSync.count() == 0 )
873 return; 890 return;
874 if ( toDelete->type() == "Journal" ) 891 if ( toDelete->type() == "Journal" )
875 return; 892 return;
876 QString des = lastSync->description(); 893
877 QString pref = "e"; 894 Event* eve = lastSync.first();
878 if ( toDelete->type() == "Todo" ) 895
879 pref = "t"; 896 while ( eve ) {
880 des += pref+ QString::number ( toDelete->zaurusId() ) + ","; 897 int id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name
881 lastSync->setReadOnly( false ); 898 if ( id >= 0 ) {
882 lastSync->setDescription( des ); 899 QString des = eve->description();
883 lastSync->setReadOnly( true ); 900 QString pref = "e";
901 if ( toDelete->type() == "Todo" )
902 pref = "t";
903 des += pref+ QString::number ( id ) + ",";
904 eve->setReadOnly( false );
905 eve->setDescription( des );
906 eve->setReadOnly( true );
907 }
908 eve = lastSync.next();
909 }
884 910
885} 911}
886bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode ) 912bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode )
887{ 913{
888 bool syncOK = true; 914 bool syncOK = true;
889 int addedEvent = 0; 915 int addedEvent = 0;
@@ -896,27 +922,27 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
896 Event* eventR; 922 Event* eventR;
897 QString uid; 923 QString uid;
898 int take; 924 int take;
899 Event* eventL; 925 Event* eventL;
900 Event* eventRSync; 926 Event* eventRSync;
901 Event* eventLSync; 927 Event* eventLSync;
902 Event* eventRSyncSharp = remote->event( "last-syncEvent-device-Sharp-DTM"); 928 QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents();
903 Event* eventLSyncSharp = local->event( "last-syncEvent-device-Sharp-DTM"); 929 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents();
904 bool fullDateRange = false; 930 bool fullDateRange = false;
905 mLastCalendarSync = QDateTime::currentDateTime(); 931 mLastCalendarSync = QDateTime::currentDateTime();
906 QDateTime modifiedCalendar = mLastCalendarSync;; 932 QDateTime modifiedCalendar = mLastCalendarSync;;
907 eventR = remote->event("last-syncEvent-device-"+mCurrentSyncName ); 933 eventR = remote->event("last-syncEvent-"+mCurrentSyncName );
908 if ( eventR ) { 934 if ( eventR ) {
909 eventRSync = (Event*) eventR->clone(); 935 eventRSync = (Event*) eventR->clone();
910 remote->deleteEvent(eventR ); 936 remote->deleteEvent(eventR );
911 937
912 } else { 938 } else {
913 fullDateRange = true; 939 fullDateRange = true;
914 eventRSync = new Event(); 940 eventRSync = new Event();
915 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event")); 941 eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event"));
916 eventRSync->setUid("last-syncEvent-device-"+mCurrentSyncName ); 942 eventRSync->setUid("last-syncEvent-"+mCurrentSyncName );
917 eventRSync->setDtStart( mLastCalendarSync ); 943 eventRSync->setDtStart( mLastCalendarSync );
918 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); 944 eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
919 eventRSync->setCategories( i18n("SyncEvent") ); 945 eventRSync->setCategories( i18n("SyncEvent") );
920 } 946 }
921 eventLSync = getLastSyncEvent(); 947 eventLSync = getLastSyncEvent();
922 if ( eventLSync->dtStart() == mLastCalendarSync ) 948 if ( eventLSync->dtStart() == mLastCalendarSync )
@@ -962,13 +988,13 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
962 return false; 988 return false;
963 if ( incCounter % modulo == 0 ) 989 if ( incCounter % modulo == 0 )
964 bar.setProgress( incCounter ); 990 bar.setProgress( incCounter );
965 ++incCounter; 991 ++incCounter;
966 uid = inR->uid(); 992 uid = inR->uid();
967 bool skipIncidence = false; 993 bool skipIncidence = false;
968 if ( uid.left(21) == QString("last-syncEvent-device") ) 994 if ( uid.left(15) == QString("last-syncEvent-") )
969 skipIncidence = true; 995 skipIncidence = true;
970 996
971 qApp->processEvents(); 997 qApp->processEvents();
972 if ( !skipIncidence ) { 998 if ( !skipIncidence ) {
973 inL = local->incidence( uid ); 999 inL = local->incidence( uid );
974 if ( inL ) { // maybe conflict - same uid in both calendars 1000 if ( inL ) { // maybe conflict - same uid in both calendars
@@ -1012,13 +1038,13 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
1012 } else { 1038 } else {
1013 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { 1039 if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) {
1014 inR->setLastModified( modifiedCalendar ); 1040 inR->setLastModified( modifiedCalendar );
1015 local->addIncidence( inR->clone() ); 1041 local->addIncidence( inR->clone() );
1016 ++addedEvent; 1042 ++addedEvent;
1017 } else { 1043 } else {
1018 checkSharpEvent(eventRSyncSharp, inR); 1044 checkExternSyncEvent(eventRSyncSharp, inR);
1019 remote->deleteIncidence( inR ); 1045 remote->deleteIncidence( inR );
1020 ++deletedEventR; 1046 ++deletedEventR;
1021 } 1047 }
1022 } 1048 }
1023 } 1049 }
1024 } 1050 }
@@ -1039,13 +1065,13 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
1039 return false; 1065 return false;
1040 if ( incCounter % modulo == 0 ) 1066 if ( incCounter % modulo == 0 )
1041 bar.setProgress( incCounter ); 1067 bar.setProgress( incCounter );
1042 ++incCounter; 1068 ++incCounter;
1043 uid = inL->uid(); 1069 uid = inL->uid();
1044 bool skipIncidence = false; 1070 bool skipIncidence = false;
1045 if ( uid.left(21) == QString("last-syncEvent-device") ) 1071 if ( uid.left(15) == QString("last-syncEvent-") )
1046 skipIncidence = true; 1072 skipIncidence = true;
1047 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" ) 1073 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" )
1048 skipIncidence = true; 1074 skipIncidence = true;
1049 if ( !skipIncidence ) { 1075 if ( !skipIncidence ) {
1050 inR = remote->incidence( uid ); 1076 inR = remote->incidence( uid );
1051 if ( ! inR ) { 1077 if ( ! inR ) {
@@ -1060,13 +1086,13 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
1060 inL->setLastModified( modifiedCalendar ); 1086 inL->setLastModified( modifiedCalendar );
1061 remote->addIncidence( inL->clone() ); 1087 remote->addIncidence( inL->clone() );
1062 } 1088 }
1063 } 1089 }
1064 } else { 1090 } else {
1065 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { 1091 if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) {
1066 checkSharpEvent(eventLSyncSharp, inL); 1092 checkExternSyncEvent(eventLSyncSharp, inL);
1067 local->deleteIncidence( inL ); 1093 local->deleteIncidence( inL );
1068 ++deletedEventL; 1094 ++deletedEventL;
1069 } else { 1095 } else {
1070 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { 1096 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) {
1071 ++addedEventR; 1097 ++addedEventR;
1072 inL->setLastModified( modifiedCalendar ); 1098 inL->setLastModified( modifiedCalendar );
@@ -1339,13 +1365,13 @@ bool CalendarView::importQtopia( const QString &categories,
1339void CalendarView::setSyncEventsReadOnly() 1365void CalendarView::setSyncEventsReadOnly()
1340{ 1366{
1341 Event * ev; 1367 Event * ev;
1342 QPtrList<Event> eL = mCalendar->rawEvents(); 1368 QPtrList<Event> eL = mCalendar->rawEvents();
1343 ev = eL.first(); 1369 ev = eL.first();
1344 while ( ev ) { 1370 while ( ev ) {
1345 if ( ev->uid().left(21) == QString("last-syncEvent-device") ) 1371 if ( ev->uid().left(15) == QString("last-syncEvent-") )
1346 ev->setReadOnly( true ); 1372 ev->setReadOnly( true );
1347 ev = eL.next(); 1373 ev = eL.next();
1348 } 1374 }
1349} 1375}
1350bool CalendarView::openCalendar(QString filename, bool merge) 1376bool CalendarView::openCalendar(QString filename, bool merge)
1351{ 1377{
@@ -1803,13 +1829,13 @@ void CalendarView::changeTodoDisplay(Todo *which, int action)
1803{ 1829{
1804 changeIncidenceDisplay((Incidence *)which, action); 1830 changeIncidenceDisplay((Incidence *)which, action);
1805} 1831}
1806void CalendarView::checkZaurusId( int id, bool todo ) 1832void CalendarView::checkZaurusId( int id, bool todo )
1807{ 1833{
1808 if ( id >= 0 ) { 1834 if ( id >= 0 ) {
1809 Incidence* lse = mCalendar->event( "last-syncEvent-device-Sharp-DTM"); 1835 Incidence* lse = mCalendar->event( "last-syncEvent-Sharp-DTM");
1810 if ( lse ) { 1836 if ( lse ) {
1811 QString des = lse->description(); 1837 QString des = lse->description();
1812 QString pref = "e"; 1838 QString pref = "e";
1813 if ( todo ) 1839 if ( todo )
1814 pref = "t"; 1840 pref = "t";
1815 des += pref+ QString::number ( id ) + ","; 1841 des += pref+ QString::number ( id ) + ",";
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index 8aa5e1c..557554f 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -110,12 +110,13 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
110 KDateNavigator *dateNavigatorWidget(); 110 KDateNavigator *dateNavigatorWidget();
111 111
112 void addView(KOrg::BaseView *); 112 void addView(KOrg::BaseView *);
113 void showView(KOrg::BaseView *); 113 void showView(KOrg::BaseView *);
114 KOEventViewerDialog* getEventViewerDialog(); 114 KOEventViewerDialog* getEventViewerDialog();
115 Incidence *currentSelection(); 115 Incidence *currentSelection();
116 void setupExternSyncProfiles();
116 117
117 signals: 118 signals:
118 /** This todo has been modified */ 119 /** This todo has been modified */
119 void todoModified(Todo *, int); 120 void todoModified(Todo *, int);
120 121
121 /** when change is made to options dialog, the topwidget will catch this 122 /** when change is made to options dialog, the topwidget will catch this
@@ -478,13 +479,13 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
478 QTimer* mRecheckAlarmTimer; 479 QTimer* mRecheckAlarmTimer;
479 void computeAlarm( QString ); 480 void computeAlarm( QString );
480 void startAlarm( QString, QString ); 481 void startAlarm( QString, QString );
481 void setSyncEventsReadOnly(); 482 void setSyncEventsReadOnly();
482 483
483 QDateTime loadedFileVersion; 484 QDateTime loadedFileVersion;
484 void checkSharpEvent( Event* lastSync, Incidence* toDelete ); 485 void checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete );
485 void checkZaurusId( int id, bool todo = false ); 486 void checkZaurusId( int id, bool todo = false );
486 int mGlobalSyncMode; 487 int mGlobalSyncMode;
487 QString mCurrentSyncDevice; 488 QString mCurrentSyncDevice;
488 QString mCurrentSyncName; 489 QString mCurrentSyncName;
489 KOBeamPrefs* beamDialog; 490 KOBeamPrefs* beamDialog;
490 void init(); 491 void init();
@@ -531,13 +532,13 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
531 bool mModified; // flag indicating if calendar is modified 532 bool mModified; // flag indicating if calendar is modified
532 bool mReadOnly; // flag indicating if calendar is read-only 533 bool mReadOnly; // flag indicating if calendar is read-only
533 QDate mSaveSingleDate; 534 QDate mSaveSingleDate;
534 535
535 Incidence *mSelectedIncidence; 536 Incidence *mSelectedIncidence;
536 Incidence *mMoveIncidence; 537 Incidence *mMoveIncidence;
537 538 QPtrList<Event> mExternLastSyncEvent;
538 KOTodoView *mTodoList; 539 KOTodoView *mTodoList;
539 KOEventEditor * mEventEditor; 540 KOEventEditor * mEventEditor;
540 KOTodoEditor * mTodoEditor; 541 KOTodoEditor * mTodoEditor;
541 KOEventViewerDialog * mEventViewerDialog; 542 KOEventViewerDialog * mEventViewerDialog;
542 void keyPressEvent ( QKeyEvent *e) ; 543 void keyPressEvent ( QKeyEvent *e) ;
543 //QMap<Incidence*,KOIncidenceEditor*> mDialogList; 544 //QMap<Incidence*,KOIncidenceEditor*> mDialogList;
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index 3ba5ab2..f3231ff 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -174,37 +174,38 @@ KOPrefs::KOPrefs() :
174 addItemFont("DateNavigator Font",&mDateNavigatorFont); 174 addItemFont("DateNavigator Font",&mDateNavigatorFont);
175 addItemFont("EditBox Font",&mEditBoxFont); 175 addItemFont("EditBox Font",&mEditBoxFont);
176 addItemFont("JournalView Font",&mJornalViewFont); 176 addItemFont("JournalView Font",&mJornalViewFont);
177 addItemFont("WhatsNextView Font",&mWhatsNextFont); 177 addItemFont("WhatsNextView Font",&mWhatsNextFont);
178 addItemFont("EventView Font",&mEventViewFont); 178 addItemFont("EventView Font",&mEventViewFont);
179 179
180 KPrefs::setCurrentGroup("SyncProfiles"); 180// KPrefs::setCurrentGroup("SyncProfiles");
181 addItemString("LocalMachineName",&mLocalMachineName, "undefined"); 181// addItemString("LocalMachineName",&mLocalMachineName, "undefined");
182 addItemStringList("SyncProfileNames",&mSyncProfileNames); 182// addItemStringList("SyncProfileNames",&mSyncProfileNames);
183// addItemStringList("ExternSyncProfiles",&mExternSyncProfileNames);
183 184
184 KPrefs::setCurrentGroup("RemoteSyncing"); 185 KPrefs::setCurrentGroup("RemoteSyncing");
185 addItemBool("UsePasswd",&mUsePassWd,false); 186// addItemBool("UsePasswd",&mUsePassWd,false);
186 addItemBool("WriteBackFile",&mWriteBackFile,true); 187// addItemBool("WriteBackFile",&mWriteBackFile,true);
187 addItemBool("WriteBackExistingOnly",&mWriteBackExistingOnly,false); 188// addItemBool("WriteBackExistingOnly",&mWriteBackExistingOnly,false);
188 addItemBool("AskForPreferences",&mAskForPreferences,true); 189// addItemBool("AskForPreferences",&mAskForPreferences,true);
189 addItemBool("ShowSyncSummary",&mShowSyncSummary,true); 190// addItemBool("ShowSyncSummary",&mShowSyncSummary,true);
190 addItemBool("ShowSyncEvents",&mShowSyncEvents,false); 191 addItemBool("ShowSyncEvents",&mShowSyncEvents,false);
191 addItemInt("LastSyncTime",&mLastSyncTime,0); 192 addItemInt("LastSyncTime",&mLastSyncTime,0);
192 addItemInt("SyncAlgoPrefs",&mSyncAlgoPrefs,3); 193 addItemInt("SyncAlgoPrefs",&mSyncAlgoPrefs,3);
193 addItemInt("RingSyncAlgoPrefs",&mRingSyncAlgoPrefs,3); 194 addItemInt("RingSyncAlgoPrefs",&mRingSyncAlgoPrefs,3);
194 195
195#ifdef _WIN32_ 196#ifdef _WIN32_
196 QString hdp= locateLocal("data","korganizer")+"\\\\"; 197 QString hdp= locateLocal("data","korganizer")+"\\\\";
197#else 198#else
198 QString hdp= locateLocal("data","korganizer")+"/"; 199 QString hdp= locateLocal("data","korganizer")+"/";
199#endif 200#endif
200 addItemString("RemoteIP",&mRemoteIP, "192.168.0.65"); 201// addItemString("RemoteIP",&mRemoteIP, "192.168.0.65");
201 addItemString("RemoteUser",&mRemoteUser, "zaurus"); 202// addItemString("RemoteUser",&mRemoteUser, "zaurus");
202 addItemString("RemotePassWd",&mRemotePassWd, ""); 203// addItemString("RemotePassWd",&mRemotePassWd, "");
203 addItemString("RemoteFile", &mRemoteFile, hdp+"mycalendar.ics"); 204// addItemString("RemoteFile", &mRemoteFile, hdp+"mycalendar.ics");
204 addItemString("LocalTempFile",&mLocalTempFile, "/tmp/tempsyncfile.ics" ); 205// addItemString("LocalTempFile",&mLocalTempFile, "/tmp/tempsyncfile.ics" );
205 206
206 207
207 KPrefs::setCurrentGroup("LoadSaveFileNames"); 208 KPrefs::setCurrentGroup("LoadSaveFileNames");
208 209
209 addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" ); 210 addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" );
210 addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" ); 211 addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" );
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index fe044e6..424fa98 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -212,12 +212,13 @@ class KOPrefs : public KPimPrefs
212 QString mLocalTempFile; 212 QString mLocalTempFile;
213 213
214 int mLastSyncTime; 214 int mLastSyncTime;
215 int mSyncAlgoPrefs; 215 int mSyncAlgoPrefs;
216 int mRingSyncAlgoPrefs; 216 int mRingSyncAlgoPrefs;
217 QStringList mSyncProfileNames; 217 QStringList mSyncProfileNames;
218 QStringList mExternSyncProfiles;
218 QString mLocalMachineName; 219 QString mLocalMachineName;
219 void setCategoryColor(QString cat,const QColor & color); 220 void setCategoryColor(QString cat,const QColor & color);
220 QColor *categoryColor(QString cat); 221 QColor *categoryColor(QString cat);
221 222
222 QString mArchiveFile; 223 QString mArchiveFile;
223 QString mHtmlExportFile; 224 QString mHtmlExportFile;
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 44b1264..6020a46 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -833,27 +833,30 @@ void MainWindow::fillSyncMenu()
833 temp->setName( prof[1] ); 833 temp->setName( prof[1] );
834 temp->writeConfig(&config); 834 temp->writeConfig(&config);
835 temp->setName( prof[2] ); 835 temp->setName( prof[2] );
836 temp->writeConfig(&config); 836 temp->writeConfig(&config);
837 config.setGroup("General"); 837 config.setGroup("General");
838 config.writeEntry("SyncProfileNames",prof); 838 config.writeEntry("SyncProfileNames",prof);
839 config.writeEntry("ExternSyncProfiles","Sharp_DTM");
839 config.sync(); 840 config.sync();
840 delete temp; 841 delete temp;
841 } 842 }
843 KOPrefs::instance()->mExternSyncProfiles = config.readListEntry("ExternSyncProfiles");
842 KOPrefs::instance()->mSyncProfileNames = prof; 844 KOPrefs::instance()->mSyncProfileNames = prof;
843 int i; 845 int i;
844 for ( i = 0; i < prof.count(); ++i ) { 846 for ( i = 0; i < prof.count(); ++i ) {
845 847
846 syncMenu->insertItem( prof[i], 1000+i ); 848 syncMenu->insertItem( prof[i], 1000+i );
847 if ( i == 2 ) 849 if ( i == 2 )
848 syncMenu->insertSeparator(); 850 syncMenu->insertSeparator();
849 } 851 }
850 QDir app_dir; 852 QDir app_dir;
851 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) { 853 if ( !app_dir.exists(QDir::homeDirPath()+"/Applications/dtm" ) ) {
852 syncMenu->setItemEnabled( false , 1000 ); 854 syncMenu->setItemEnabled( false , 1000 );
853 } 855 }
856 mView->setupExternSyncProfiles();
854} 857}
855 858
856int MainWindow::ringSync() 859int MainWindow::ringSync()
857{ 860{
858 int syncedProfiles = 0; 861 int syncedProfiles = 0;
859 int i; 862 int i;
diff --git a/libkcal/calendar.h b/libkcal/calendar.h
index 7d23619..df5bbcf 100644
--- a/libkcal/calendar.h
+++ b/libkcal/calendar.h
@@ -72,13 +72,13 @@ public:
72 virtual void close() = 0; 72 virtual void close() = 0;
73 73
74 /** 74 /**
75 Sync changes in memory to persistant storage. 75 Sync changes in memory to persistant storage.
76 */ 76 */
77 virtual void save() = 0; 77 virtual void save() = 0;
78 78 virtual QPtrList<Event> getExternLastSyncEvents() = 0;
79 virtual bool isSaving() { return false; } 79 virtual bool isSaving() { return false; }
80 80
81 /** 81 /**
82 Return the owner of the calendar's full name. 82 Return the owner of the calendar's full name.
83 */ 83 */
84 const QString &getOwner() const; 84 const QString &getOwner() const;
diff --git a/libkcal/calendarlocal.cpp b/libkcal/calendarlocal.cpp
index 3c572f0..09ce9f0 100644
--- a/libkcal/calendarlocal.cpp
+++ b/libkcal/calendarlocal.cpp
@@ -219,12 +219,25 @@ Todo *CalendarLocal::todo( int id )
219 if ( todo->zaurusId() == id ) return todo; 219 if ( todo->zaurusId() == id ) return todo;
220 } 220 }
221 221
222 return 0; 222 return 0;
223} 223}
224 224
225QPtrList<Event> CalendarLocal::getExternLastSyncEvents()
226{
227 QPtrList<Event> el;
228 Event *todo;
229 for ( todo = mEventList.first(); todo; todo = mEventList.next() ) {
230 if ( todo->uid().left( 15 ) == QString("last-syncEvent-") )
231 if ( todo->summary().left(3) == "E: " )
232 el.append( todo );
233 }
234
235 return el;
236
237}
225Event *CalendarLocal::event( int id ) 238Event *CalendarLocal::event( int id )
226{ 239{
227 Event *todo; 240 Event *todo;
228 for ( todo = mEventList.first(); todo; todo = mEventList.next() ) { 241 for ( todo = mEventList.first(); todo; todo = mEventList.next() ) {
229 if ( todo->zaurusId() == id ) return todo; 242 if ( todo->zaurusId() == id ) return todo;
230 } 243 }
@@ -317,13 +330,12 @@ QString CalendarLocal:: getAlarmNotification()
317 ret += "cal_alarm"+ mNextSummary.left( 25 ); 330 ret += "cal_alarm"+ mNextSummary.left( 25 );
318 if ( mNextSummary.length() > 25 ) 331 if ( mNextSummary.length() > 25 )
319 ret += "\n" + mNextSummary.mid(25, 25 ); 332 ret += "\n" + mNextSummary.mid(25, 25 );
320 ret+= "\n"+mNextAlarmEventDateTimeString; 333 ret+= "\n"+mNextAlarmEventDateTimeString;
321 return ret; 334 return ret;
322} 335}
323
324void CalendarLocal::registerAlarm() 336void CalendarLocal::registerAlarm()
325{ 337{
326 mLastAlarmNotificationString = getAlarmNotification(); 338 mLastAlarmNotificationString = getAlarmNotification();
327 // qDebug("++ register Alarm %s %s",mNextAlarmDateTime.toString().latin1(), mLastAlarmNotificationString.latin1() ); 339 // qDebug("++ register Alarm %s %s",mNextAlarmDateTime.toString().latin1(), mLastAlarmNotificationString.latin1() );
328 emit addAlarm ( mNextAlarmDateTime, mLastAlarmNotificationString ); 340 emit addAlarm ( mNextAlarmDateTime, mLastAlarmNotificationString );
329// #ifndef DESKTOP_VERSION 341// #ifndef DESKTOP_VERSION
diff --git a/libkcal/calendarlocal.h b/libkcal/calendarlocal.h
index a2e50e3..3257198 100644
--- a/libkcal/calendarlocal.h
+++ b/libkcal/calendarlocal.h
@@ -82,13 +82,13 @@ class CalendarLocal : public Calendar
82 */ 82 */
83 Event *event( const QString &uid ); 83 Event *event( const QString &uid );
84 /** 84 /**
85 Return unfiltered list of all events in calendar. 85 Return unfiltered list of all events in calendar.
86 */ 86 */
87 QPtrList<Event> rawEvents(); 87 QPtrList<Event> rawEvents();
88 88 QPtrList<Event> getExternLastSyncEvents();
89 /** 89 /**
90 Add a todo to the todolist. 90 Add a todo to the todolist.
91 */ 91 */
92 bool addTodo( Todo *todo ); 92 bool addTodo( Todo *todo );
93 bool addTodoNoDup( Todo *todo ); 93 bool addTodoNoDup( Todo *todo );
94 /** 94 /**