summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-10-17 18:08:43 (UTC)
committer zautrix <zautrix>2004-10-17 18:08:43 (UTC)
commit6f6d1d58938539215bb4fcb5b97cf9fb089a11ef (patch) (unidiff)
tree9937fe24c3fa3f29421b39a58b393e893a11636a
parentd92f58ffa1937af8a4240b9d235da15f5f352769 (diff)
downloadkdepimpi-6f6d1d58938539215bb4fcb5b97cf9fb089a11ef.zip
kdepimpi-6f6d1d58938539215bb4fcb5b97cf9fb089a11ef.tar.gz
kdepimpi-6f6d1d58938539215bb4fcb5b97cf9fb089a11ef.tar.bz2
more KDE sync fixes
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kde2file/caldump/main.cpp38
-rw-r--r--korganizer/calendarview.cpp29
-rw-r--r--korganizer/calendarview.h1
-rw-r--r--libkcal/calendar.cpp8
-rw-r--r--libkcal/calendar.h2
5 files changed, 42 insertions, 36 deletions
diff --git a/kde2file/caldump/main.cpp b/kde2file/caldump/main.cpp
index 755e792..be1735b 100644
--- a/kde2file/caldump/main.cpp
+++ b/kde2file/caldump/main.cpp
@@ -55,6 +55,7 @@
55#include <qdatetime.h> 55#include <qdatetime.h>
56#include <qfile.h> 56#include <qfile.h>
57#include <qdir.h> 57#include <qdir.h>
58#include <qapplication.h>
58 59
59#include <stdlib.h> 60#include <stdlib.h>
60#include <iostream> 61#include <iostream>
@@ -152,7 +153,7 @@ int main( int argc, char *argv[] )
152 qDebug("%d calendar entries dumped to file %s", num, fileName.latin1()); 153 qDebug("%d calendar entries dumped to file %s", num, fileName.latin1());
153 154
154 } else { 155 } else {
155 qDebug("*************************load"); 156 qDebug("************load");
156 localCalendar = new CalendarLocal(); 157 localCalendar = new CalendarLocal();
157 localCalendar->setTimeZoneId( calendarResource->timeZoneId()); 158 localCalendar->setTimeZoneId( calendarResource->timeZoneId());
158 FileStorage* storage = new FileStorage( localCalendar ); 159 FileStorage* storage = new FileStorage( localCalendar );
@@ -161,17 +162,18 @@ int main( int argc, char *argv[] )
161 int del = 0; 162 int del = 0;
162 int add = 0; 163 int add = 0;
163 if ( storage->load() ) { 164 if ( storage->load() ) {
164 qDebug("*************************loaded!"); 165 qDebug("***********loaded!");
165 KCal::Incidence::List newInc = localCalendar->rawIncidences(); 166 KCal::Incidence::List newInc = localCalendar->rawIncidences();
166 Incidence::List::ConstIterator it; 167 Incidence::List::ConstIterator it;
167 for( it = newInc.begin(); it != newInc.end(); ++it ) { 168 for( it = newInc.begin(); it != newInc.end(); ++it ) {
168 if ( (*it)->pilotId() > 0 ) { //changed 169 if ( (*it)->pilotId() > 1 ) { //changed
169 Incidence* cl = (*it)->clone(); 170 qDebug("*********pilot id %d %s ",(*it)->pilotId() ,(*it)->summary().latin1());
170 Incidence *incOld = calendarResource->incidence( cl->uid() ); 171 Incidence *incOld = calendarResource->incidence( (*it)->uid() );
171 ResourceCalendar * res = 0; 172 ResourceCalendar * res = 0;
172 if ( incOld ) 173 if ( incOld )
173 res = calendarResource->resource( incOld ); 174 res = calendarResource->resource( incOld );
174 if ( res ) { 175 if ( res ) {
176 Incidence* cl = (*it)->clone();
175 cl->setPilotId( incOld->pilotId() ); 177 cl->setPilotId( incOld->pilotId() );
176 ++num; 178 ++num;
177 if ( incOld->type() == "Journal" ) 179 if ( incOld->type() == "Journal" )
@@ -180,7 +182,7 @@ int main( int argc, char *argv[] )
180 calendarResource->deleteTodo( (Todo *) incOld ); 182 calendarResource->deleteTodo( (Todo *) incOld );
181 else if ( incOld->type() == "Event" ) 183 else if ( incOld->type() == "Event" )
182 calendarResource->deleteEvent( (Event *) incOld ); 184 calendarResource->deleteEvent( (Event *) incOld );
183 185 qDebug("*********change incidence %s ",cl->summary().latin1());
184 if ( cl->type() == "Journal" ) 186 if ( cl->type() == "Journal" )
185 calendarResource->addJournal( (Journal *) cl, res ); 187 calendarResource->addJournal( (Journal *) cl, res );
186 else if ( cl->type() == "Todo" ) 188 else if ( cl->type() == "Todo" )
@@ -189,23 +191,19 @@ int main( int argc, char *argv[] )
189 calendarResource->addEvent( (Event *) cl, res ); 191 calendarResource->addEvent( (Event *) cl, res );
190 192
191 } else { 193 } else {
192 if ( incOld ) { 194 Incidence* cl = (*it)->clone();
193 qDebug("ERROR: no resource found for old incidence "); 195 qDebug("*********add incidence %s ",cl->summary().latin1());
194 if ( incOld->type() == "Journal" ) 196 calendarResource->addIncidence( cl );
195 calendarResource->deleteJournal( (Journal *) incOld ); 197 ++add;
196 else if ( incOld->type() == "Todo" ) 198 }
197 calendarResource->deleteTodo( (Todo *) incOld ); 199 } else { // maybe added
198 else if ( incOld->type() == "Event" ) 200 Incidence *incOld = calendarResource->incidence( (*it)->uid() );
199 calendarResource->deleteEvent( (Event *) incOld ); 201 if ( !incOld ) { //added
200 202 Incidence* cl = (*it)->clone();
201 } 203 qDebug("*********add incidence %s ",cl->summary().latin1());
202 calendarResource->addIncidence( cl ); 204 calendarResource->addIncidence( cl );
203 ++add; 205 ++add;
204 } 206 }
205 } else { // added
206 Incidence* cl = (*it)->clone();
207 calendarResource->addIncidence( cl );
208 ++add;
209 } 207 }
210 } 208 }
211 KCal::Incidence::List allInc = calendarResource->rawIncidences(); 209 KCal::Incidence::List allInc = calendarResource->rawIncidences();
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index f727cd4..ff1db2c 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -757,7 +757,7 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b
757 mode = SYNC_PREF_ASK; 757 mode = SYNC_PREF_ASK;
758 } else { 758 } else {
759 if ( localMod == remoteMod ) 759 if ( localMod == remoteMod )
760 if ( local->revision() == remote->revision() ) 760 // if ( local->revision() == remote->revision() )
761 return 0; 761 return 0;
762 762
763 } 763 }
@@ -932,11 +932,8 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
932 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents(); 932 QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents();
933 bool fullDateRange = false; 933 bool fullDateRange = false;
934 local->resetTempSyncStat(); 934 local->resetTempSyncStat();
935#ifdef DESKTOP_VERSION 935 if ( mSyncKDE )
936 //Needed for KDE - OL sync 936 remote->resetPilotStat(1);
937 local->resetPilotStat();
938 remote->resetPilotStat();
939#endif
940 mLastCalendarSync = QDateTime::currentDateTime(); 937 mLastCalendarSync = QDateTime::currentDateTime();
941 QDateTime modifiedCalendar = mLastCalendarSync;; 938 QDateTime modifiedCalendar = mLastCalendarSync;;
942 eventLSync = getLastSyncEvent(); 939 eventLSync = getLastSyncEvent();
@@ -969,7 +966,7 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
969 fullDateRange = true; 966 fullDateRange = true;
970 } 967 }
971 } 968 }
972 if ( fullDateRange ) 969 if ( fullDateRange && !mSyncKDE )
973 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); 970 mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365);
974 else 971 else
975 mLastCalendarSync = eventLSync->dtStart(); 972 mLastCalendarSync = eventLSync->dtStart();
@@ -1031,16 +1028,18 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
1031 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL ) 1028 if ( mGlobalSyncMode != SYNC_MODE_EXTERNAL )
1032 inR->setIDStr( idS ); 1029 inR->setIDStr( idS );
1033 remote->addIncidence( inR ); 1030 remote->addIncidence( inR );
1034#ifdef DESKTOP_VERSION 1031 if ( mSyncKDE )
1035 inR->setPilotId( 1 ); 1032 inR->setPilotId( 2 );
1036#endif
1037 ++changedRemote; 1033 ++changedRemote;
1038 } else { 1034 } else {
1039 if ( inR->revision() < maxrev ) 1035 if ( inR->revision() < maxrev )
1040 inR->setRevision( maxrev ); 1036 inR->setRevision( maxrev );
1041 idS = inL->IDStr(); 1037 idS = inL->IDStr();
1038 int pid = inL->pilotId();
1042 local->deleteIncidence( inL ); 1039 local->deleteIncidence( inL );
1043 inL = inR->clone(); 1040 inL = inR->clone();
1041 if ( mSyncKDE )
1042 inL->setPilotId( pid );
1044 inL->setIDStr( idS ); 1043 inL->setIDStr( idS );
1045 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1044 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1046 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); 1045 inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) );
@@ -1181,8 +1180,10 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
1181 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; 1180 eventRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ;
1182 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); 1181 eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName );
1183 eventLSync->setReadOnly( true ); 1182 eventLSync->setReadOnly( true );
1184 if ( mGlobalSyncMode == SYNC_MODE_NORMAL) 1183 if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncKDE) // kde is abnormal...
1185 remote->addEvent( eventRSync ); 1184 remote->addEvent( eventRSync );
1185 else
1186 delete eventRSync;
1186 QString mes; 1187 QString mes;
1187 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR ); 1188 mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n"),addedEvent, addedEventR, changedLocal, changedRemote, deletedEventL, deletedEventR );
1188 QString delmess; 1189 QString delmess;
@@ -3734,12 +3735,18 @@ void CalendarView::keyPressEvent ( QKeyEvent *e)
3734bool CalendarView::sync(KSyncManager* manager, QString filename, int mode) 3735bool CalendarView::sync(KSyncManager* manager, QString filename, int mode)
3735{ 3736{
3736 // mSyncManager = manager; 3737 // mSyncManager = manager;
3738 mSyncKDE = false;
3739 if ( filename == QDir::homeDirPath ()+"/.kdecalendardump.ics" ) {
3740 qDebug("SyncKDE request detected!");
3741 mSyncKDE = true;
3742 }
3737 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); 3743 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice();
3738 mCurrentSyncName = mSyncManager->getCurrentSyncName(); 3744 mCurrentSyncName = mSyncManager->getCurrentSyncName();
3739 return syncCalendar( filename, mode ); 3745 return syncCalendar( filename, mode );
3740} 3746}
3741bool CalendarView::syncExternal(KSyncManager* manager, QString resource) 3747bool CalendarView::syncExternal(KSyncManager* manager, QString resource)
3742{ 3748{
3749 mSyncKDE = false;
3743 //mSyncManager = manager; 3750 //mSyncManager = manager;
3744 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); 3751 mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice();
3745 mCurrentSyncName = mSyncManager->getCurrentSyncName(); 3752 mCurrentSyncName = mSyncManager->getCurrentSyncName();
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index 9f56cc8..1cd896d 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -487,6 +487,7 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
487 Todo *selectedTodo(); 487 Todo *selectedTodo();
488 488
489 private: 489 private:
490 bool mSyncKDE;
490 KSyncManager* mSyncManager; 491 KSyncManager* mSyncManager;
491 AlarmDialog * mAlarmDialog; 492 AlarmDialog * mAlarmDialog;
492 QString mAlarmNotification; 493 QString mAlarmNotification;
diff --git a/libkcal/calendar.cpp b/libkcal/calendar.cpp
index eeb5f48..52daaaa 100644
--- a/libkcal/calendar.cpp
+++ b/libkcal/calendar.cpp
@@ -249,20 +249,20 @@ QPtrList<Incidence> Calendar::incidences()
249 return incidences; 249 return incidences;
250} 250}
251 251
252void Calendar::resetPilotStat() 252void Calendar::resetPilotStat(int id )
253{ 253{
254 QPtrList<Incidence> incidences; 254 QPtrList<Incidence> incidences;
255 255
256 Incidence *i; 256 Incidence *i;
257 257
258 QPtrList<Event> e = rawEvents(); 258 QPtrList<Event> e = rawEvents();
259 for( i = e.first(); i; i = e.next() ) i->setPilotId( 0 ); 259 for( i = e.first(); i; i = e.next() ) i->setPilotId( id );
260 260
261 QPtrList<Todo> t = rawTodos(); 261 QPtrList<Todo> t = rawTodos();
262 for( i = t.first(); i; i = t.next() ) i->setPilotId( 0 ); 262 for( i = t.first(); i; i = t.next() ) i->setPilotId( id );
263 263
264 QPtrList<Journal> j = journals(); 264 QPtrList<Journal> j = journals();
265 for( i = j.first(); i; i = j.next() ) i->setPilotId( 0 ); 265 for( i = j.first(); i; i = j.next() ) i->setPilotId( id );
266} 266}
267void Calendar::resetTempSyncStat() 267void Calendar::resetTempSyncStat()
268{ 268{
diff --git a/libkcal/calendar.h b/libkcal/calendar.h
index d5294eb..b801186 100644
--- a/libkcal/calendar.h
+++ b/libkcal/calendar.h
@@ -67,7 +67,7 @@ public:
67 virtual ~Calendar(); 67 virtual ~Calendar();
68 void deleteIncidence(Incidence *in); 68 void deleteIncidence(Incidence *in);
69 void resetTempSyncStat(); 69 void resetTempSyncStat();
70 void resetPilotStat(); 70 void resetPilotStat(int id);
71 /** 71 /**
72 Clears out the current calendar, freeing all used memory etc. 72 Clears out the current calendar, freeing all used memory etc.
73 */ 73 */