-rw-r--r-- | korganizer/calendarview.cpp | 43 | ||||
-rw-r--r-- | korganizer/calendarview.h | 2 |
2 files changed, 18 insertions, 27 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 9160e1d..cbe2a10 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp @@ -908,8 +908,14 @@ void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* t eve = lastSync.next(); } } +void CalendarView::checkExternalId( Incidence * inc ) +{ + QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ; + checkExternSyncEvent( lastSync, inc ); + +} bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode ) { bool syncOK = true; int addedEvent = 0; @@ -1025,9 +1031,9 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int QString des = eventLSync->description(); QString pref = "e"; if ( inR->type() == "Todo" ) pref = "t"; - if ( des.find(pref+QString::number( inR->zaurusId() ) +"," ) >= 0 && mode != 5) { // delete it + if ( des.find(pref+QString::number( inR->getID(mCurrentSyncDevice) ) +"," ) >= 0 && mode != 5) { // delete it inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); //remote->deleteIncidence( inR ); ++deletedEventR; } else { @@ -1075,14 +1081,14 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int if ( !skipIncidence ) { inR = remote->incidence( uid ); if ( ! inR ) { if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { - if ( inL->zaurusId() >= 0 && mode != 4 ) { + if ( inL->getID(mCurrentSyncDevice) >= 0 && mode != 4 ) { local->deleteIncidence( inL ); ++deletedEventL; } else { if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { - inL->setZaurusId( -1 ); + inL->setID(mCurrentSyncDevice, -1 ); ++addedEventR; inL->setLastModified( modifiedCalendar ); remote->addIncidence( inL->clone() ); } @@ -1199,9 +1205,9 @@ void CalendarView::syncSharp() while ( inc ) { if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) { loc = mCalendar->incidence(inc->uid() ); if ( loc ) { - loc->setZaurusId( inc->zaurusId() ); + loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) ); loc->setZaurusUid( inc->zaurusUid() ); } } inc = iL.next(); @@ -1828,24 +1834,9 @@ void CalendarView::eventDeleted() void CalendarView::changeTodoDisplay(Todo *which, int action) { changeIncidenceDisplay((Incidence *)which, action); } -void CalendarView::checkZaurusId( int id, bool todo ) -{ - if ( id >= 0 ) { - Incidence* lse = mCalendar->event( "last-syncEvent-Sharp-DTM"); - if ( lse ) { - QString des = lse->description(); - QString pref = "e"; - if ( todo ) - pref = "t"; - des += pref+ QString::number ( id ) + ","; - lse->setReadOnly( false ); - lse->setDescription( des ); - lse->setReadOnly( true ); - } - } -} + void CalendarView::changeIncidenceDisplay(Incidence *which, int action) { updateUnmanagedViews(); //qDebug(" CalendarView::changeIncidenceDisplay++++++++++++++++++++++++++ %d %d ",which, action ); @@ -2575,9 +2566,9 @@ void CalendarView::deleteTodo(Todo *todo) if (!todo->relations().isEmpty()) { KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."), i18n("Delete To-Do")); } else { - checkZaurusId( todo->zaurusId(), true ); + checkExternalId( todo ); calendar()->deleteTodo(todo); changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); updateView(); } @@ -2587,9 +2578,9 @@ void CalendarView::deleteTodo(Todo *todo) if (!todo->relations().isEmpty()) { KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."), i18n("Delete To-Do")); } else { - checkZaurusId( todo->zaurusId(), true ); + checkExternalId( todo ); mCalendar->deleteTodo(todo); changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); updateView(); } @@ -2649,9 +2640,9 @@ void CalendarView::deleteEvent(Event *anEvent) //qDebug("KMessageBox::No "); if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) schedule(Scheduler::Cancel,anEvent); - checkZaurusId( anEvent->zaurusId()); + checkExternalId( anEvent); mCalendar->deleteEvent(anEvent); changeEventDisplay(anEvent,KOGlobals::EVENTDELETED); break; @@ -2683,17 +2674,17 @@ void CalendarView::deleteEvent(Event *anEvent) i18n("KO/Pi Confirmation"),i18n("Delete"))) { case KMessageBox::Continue: // OK if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) schedule(Scheduler::Cancel,anEvent); - checkZaurusId( anEvent->zaurusId()); + checkExternalId( anEvent); mCalendar->deleteEvent(anEvent); changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); break; } // switch } else { if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) schedule(Scheduler::Cancel,anEvent); - checkZaurusId( anEvent->zaurusId()); + checkExternalId( anEvent); mCalendar->deleteEvent(anEvent); changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); } } // if-else @@ -3445,9 +3436,9 @@ bool CalendarView::removeCompletedSubTodos( Todo* t ) deleteTodo = false; } if ( deleteTodo ) { if ( t->isCompleted() ) { - checkZaurusId( t->zaurusId(), true ); + checkExternalId( t ); mCalendar->deleteTodo( t ); changeTodoDisplay( t,KOGlobals::EVENTDELETED ); } else diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h index 557554f..f7a1213 100644 --- a/korganizer/calendarview.h +++ b/korganizer/calendarview.h @@ -482,9 +482,9 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser void setSyncEventsReadOnly(); QDateTime loadedFileVersion; void checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ); - void checkZaurusId( int id, bool todo = false ); + void checkExternalId( Incidence * inc ); int mGlobalSyncMode; QString mCurrentSyncDevice; QString mCurrentSyncName; KOBeamPrefs* beamDialog; |