-rw-r--r-- | kde2file/caldump/main.cpp | 38 | ||||
-rw-r--r-- | korganizer/calendarview.cpp | 29 | ||||
-rw-r--r-- | korganizer/calendarview.h | 1 | ||||
-rw-r--r-- | libkcal/calendar.cpp | 8 | ||||
-rw-r--r-- | libkcal/calendar.h | 2 |
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 @@ -56,4 +56,5 @@ #include <qfile.h> #include <qdir.h> +#include <qapplication.h> #include <stdlib.h> @@ -153,5 +154,5 @@ int main( int argc, char *argv[] ) } else { - qDebug("*************************load"); + qDebug("************load"); localCalendar = new CalendarLocal(); localCalendar->setTimeZoneId( calendarResource->timeZoneId()); @@ -162,15 +163,16 @@ int main( int argc, char *argv[] ) int add = 0; if ( storage->load() ) { - qDebug("*************************loaded!"); + qDebug("***********loaded!"); KCal::Incidence::List newInc = localCalendar->rawIncidences(); Incidence::List::ConstIterator it; for( it = newInc.begin(); it != newInc.end(); ++it ) { - if ( (*it)->pilotId() > 0 ) { //changed - Incidence* cl = (*it)->clone(); - Incidence *incOld = calendarResource->incidence( cl->uid() ); + if ( (*it)->pilotId() > 1 ) { //changed + qDebug("*********pilot id %d %s ",(*it)->pilotId() ,(*it)->summary().latin1()); + Incidence *incOld = calendarResource->incidence( (*it)->uid() ); ResourceCalendar * res = 0; if ( incOld ) res = calendarResource->resource( incOld ); if ( res ) { + Incidence* cl = (*it)->clone(); cl->setPilotId( incOld->pilotId() ); ++num; @@ -181,5 +183,5 @@ int main( int argc, char *argv[] ) else if ( incOld->type() == "Event" ) calendarResource->deleteEvent( (Event *) incOld ); - + qDebug("*********change incidence %s ",cl->summary().latin1()); if ( cl->type() == "Journal" ) calendarResource->addJournal( (Journal *) cl, res ); @@ -190,21 +192,17 @@ int main( int argc, char *argv[] ) } else { - if ( incOld ) { - qDebug("ERROR: no resource found for old incidence "); - if ( incOld->type() == "Journal" ) - calendarResource->deleteJournal( (Journal *) incOld ); - else if ( incOld->type() == "Todo" ) - calendarResource->deleteTodo( (Todo *) incOld ); - else if ( incOld->type() == "Event" ) - calendarResource->deleteEvent( (Event *) incOld ); - - } + Incidence* cl = (*it)->clone(); + qDebug("*********add incidence %s ",cl->summary().latin1()); + calendarResource->addIncidence( cl ); + ++add; + } + } else { // maybe added + Incidence *incOld = calendarResource->incidence( (*it)->uid() ); + if ( !incOld ) { //added + Incidence* cl = (*it)->clone(); + qDebug("*********add incidence %s ",cl->summary().latin1()); calendarResource->addIncidence( cl ); ++add; } - } else { // added - Incidence* cl = (*it)->clone(); - calendarResource->addIncidence( cl ); - ++add; } } diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index f727cd4..ff1db2c 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp @@ -758,5 +758,5 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b } else { if ( localMod == remoteMod ) - if ( local->revision() == remote->revision() ) + // if ( local->revision() == remote->revision() ) return 0; @@ -933,9 +933,6 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int bool fullDateRange = false; local->resetTempSyncStat(); -#ifdef DESKTOP_VERSION - //Needed for KDE - OL sync - local->resetPilotStat(); - remote->resetPilotStat(); -#endif + if ( mSyncKDE ) + remote->resetPilotStat(1); mLastCalendarSync = QDateTime::currentDateTime(); QDateTime modifiedCalendar = mLastCalendarSync;; @@ -970,5 +967,5 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int } } - if ( fullDateRange ) + if ( fullDateRange && !mSyncKDE ) mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); else @@ -1032,7 +1029,6 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int inR->setIDStr( idS ); remote->addIncidence( inR ); -#ifdef DESKTOP_VERSION - inR->setPilotId( 1 ); -#endif + if ( mSyncKDE ) + inR->setPilotId( 2 ); ++changedRemote; } else { @@ -1040,6 +1036,9 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int inR->setRevision( maxrev ); idS = inL->IDStr(); + int pid = inL->pilotId(); local->deleteIncidence( inL ); inL = inR->clone(); + if ( mSyncKDE ) + inL->setPilotId( pid ); inL->setIDStr( idS ); if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { @@ -1182,6 +1181,8 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int eventLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); eventLSync->setReadOnly( true ); - if ( mGlobalSyncMode == SYNC_MODE_NORMAL) + if ( mGlobalSyncMode == SYNC_MODE_NORMAL && !mSyncKDE) // kde is abnormal... remote->addEvent( eventRSync ); + else + delete eventRSync; QString mes; 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 ); @@ -3735,4 +3736,9 @@ bool CalendarView::sync(KSyncManager* manager, QString filename, int mode) { // mSyncManager = manager; + mSyncKDE = false; + if ( filename == QDir::homeDirPath ()+"/.kdecalendardump.ics" ) { + qDebug("SyncKDE request detected!"); + mSyncKDE = true; + } mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); mCurrentSyncName = mSyncManager->getCurrentSyncName(); @@ -3741,4 +3747,5 @@ bool CalendarView::sync(KSyncManager* manager, QString filename, int mode) bool CalendarView::syncExternal(KSyncManager* manager, QString resource) { + mSyncKDE = false; //mSyncManager = manager; mCurrentSyncDevice = mSyncManager->getCurrentSyncDevice(); diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h index 9f56cc8..1cd896d 100644 --- a/korganizer/calendarview.h +++ b/korganizer/calendarview.h @@ -488,4 +488,5 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser private: + bool mSyncKDE; KSyncManager* mSyncManager; AlarmDialog * mAlarmDialog; diff --git a/libkcal/calendar.cpp b/libkcal/calendar.cpp index eeb5f48..52daaaa 100644 --- a/libkcal/calendar.cpp +++ b/libkcal/calendar.cpp @@ -250,5 +250,5 @@ QPtrList<Incidence> Calendar::incidences() } -void Calendar::resetPilotStat() +void Calendar::resetPilotStat(int id ) { QPtrList<Incidence> incidences; @@ -257,11 +257,11 @@ void Calendar::resetPilotStat() QPtrList<Event> e = rawEvents(); - for( i = e.first(); i; i = e.next() ) i->setPilotId( 0 ); + for( i = e.first(); i; i = e.next() ) i->setPilotId( id ); QPtrList<Todo> t = rawTodos(); - for( i = t.first(); i; i = t.next() ) i->setPilotId( 0 ); + for( i = t.first(); i; i = t.next() ) i->setPilotId( id ); QPtrList<Journal> j = journals(); - for( i = j.first(); i; i = j.next() ) i->setPilotId( 0 ); + for( i = j.first(); i; i = j.next() ) i->setPilotId( id ); } void Calendar::resetTempSyncStat() diff --git a/libkcal/calendar.h b/libkcal/calendar.h index d5294eb..b801186 100644 --- a/libkcal/calendar.h +++ b/libkcal/calendar.h @@ -68,5 +68,5 @@ public: void deleteIncidence(Incidence *in); void resetTempSyncStat(); - void resetPilotStat(); + void resetPilotStat(int id); /** Clears out the current calendar, freeing all used memory etc. |