summaryrefslogtreecommitdiffabout
path: root/korganizer
Side-by-side diff
Diffstat (limited to 'korganizer') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/calendarview.cpp39
-rw-r--r--korganizer/koprefs.h1
-rw-r--r--korganizer/mainwindow.cpp6
3 files changed, 40 insertions, 6 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index db07713..cfd9290 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -730,17 +730,19 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b
bool remCh, locCh;
remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) );
+ if ( remCh )
+ qDebug("loc %s rem %s", local->getCsum(mCurrentSyncDevice).latin1(), remote->getCsum(mCurrentSyncDevice).latin1() );
locCh = ( local->lastModified() > mLastCalendarSync );
//qDebug("locCh %d remCh %d locuid %d remuid %d", locCh, remCh,local->zaurusUid(), remote->zaurusUid() );
if ( !remCh && ! locCh ) {
- //qDebug("both not changed ");
+ qDebug("both not changed ");
lastSync = local->lastModified().addDays(1);
} else {
if ( locCh ) {
- //qDebug("loc changed %d %d", local->zaurusStat(), local->revision() );
+ qDebug("loc changed %d", local->revision() );
lastSync = local->lastModified().addDays( -1 );
if ( !remCh )
remote->setLastModified( lastSync.addDays( -1 ) );
} else {
- //qDebug(" not loc changed ");
+ qDebug(" not loc changed ");
lastSync = local->lastModified().addDays( 1 );
if ( remCh )
@@ -785,4 +787,6 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b
int result;
bool localIsNew;
+ qDebug("mLastCalendarSync %s lastsync %s --- local %s remote %s ",mLastCalendarSync.toString().latin1() ,lastSync.toString().latin1() , local->lastModified().toString().latin1() , remote->lastModified().toString().latin1() );
+
if ( full && mode < SYNC_PREF_NEWEST )
mode = SYNC_PREF_ASK;
@@ -816,5 +820,5 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b
return 2;
//qDebug("lsy %s --- lo %s --- re %s ", lastSync.toString().latin1(), local->lastModified().toString().latin1(), remote->lastModified().toString().latin1() );
- localIsNew = local->lastModified() > remote->lastModified();
+ localIsNew = local->lastModified() >= remote->lastModified();
if ( localIsNew )
getEventViewerDialog()->setColorMode( 1 );
@@ -943,4 +947,5 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
mLastCalendarSync = QDateTime::currentDateTime();
QDateTime modifiedCalendar = mLastCalendarSync;;
+ eventLSync = getLastSyncEvent();
eventR = remote->event("last-syncEvent-"+mCurrentSyncName );
if ( eventR ) {
@@ -949,4 +954,7 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
} else {
+ if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
+ eventRSync = (Event*)eventLSync->clone();
+ } else {
fullDateRange = true;
eventRSync = new Event();
@@ -957,5 +965,5 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
eventRSync->setCategories( i18n("SyncEvent") );
}
- eventLSync = getLastSyncEvent();
+ }
if ( eventLSync->dtStart() == mLastCalendarSync )
fullDateRange = true;
@@ -1117,5 +1125,24 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
inL = el.next();
}
-
+ if ( KOPrefs::instance()->mWriteBackInFuture ) {
+ er = remote->rawIncidences();
+ inR = er.first();
+ QDateTime dt;
+ QDateTime cur = QDateTime::currentDateTime();
+ QDateTime end = cur.addSecs( KOPrefs::instance()->mWriteBackInFuture * 3600 *24 *7 );
+ while ( inR ) {
+ if ( inR->type() == "Todo" ) {
+ Todo * t = (Todo*)inR;
+ if ( t->hasDueDate() )
+ dt = t->dtDue();
+ else
+ dt = cur.addSecs( 62 );
+ }
+ else dt = inR->dtStart();
+ if ( dt < cur || dt > end )
+ remote->deleteIncidence( inR );
+ inR = er.next();
+ }
+ }
bar.hide();
mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 );
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 446fe2e..a9ac52f 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -200,4 +200,5 @@ class KOPrefs : public KPimPrefs
bool mUsePassWd;
bool mWriteBackFile;
+ int mWriteBackInFuture;
bool mAskForPreferences;
bool mShowSyncSummary;
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index d8aa43a..aa30b52 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -915,4 +915,7 @@ int MainWindow::ringSync()
KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
+ KOPrefs::instance()->mWriteBackInFuture = 0;
+ if ( temp->getWriteBackFuture() )
+ KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
KOPrefs::instance()->mShowSyncSummary = false;
mView->setSyncDevice(syncProfileNames[i] );
@@ -1018,4 +1021,7 @@ void MainWindow::slotSyncMenu( int action )
KOPrefs::instance()->mWriteBackFile = temp->getWriteBackFile();
KOPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting();
+ KOPrefs::instance()->mWriteBackInFuture = 0;
+ if ( temp->getWriteBackFuture() )
+ KOPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( );
KOPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync();
if ( action == 1000 ) {