summaryrefslogtreecommitdiffabout
path: root/korganizer/calendarview.cpp
authorzautrix <zautrix>2004-08-02 00:09:04 (UTC)
committer zautrix <zautrix>2004-08-02 00:09:04 (UTC)
commit3ebd85e83e6f9d4ac59ce1828548f7236e2b1af0 (patch) (side-by-side diff)
treefdff56329649c084b6f5af8d8e96c0157686575e /korganizer/calendarview.cpp
parent3b4aa1cd78395c0f94b99decd901842944765746 (diff)
downloadkdepimpi-3ebd85e83e6f9d4ac59ce1828548f7236e2b1af0.zip
kdepimpi-3ebd85e83e6f9d4ac59ce1828548f7236e2b1af0.tar.gz
kdepimpi-3ebd85e83e6f9d4ac59ce1828548f7236e2b1af0.tar.bz2
More sync hacking
Diffstat (limited to 'korganizer/calendarview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp76
1 files changed, 51 insertions, 25 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index cfc6b10..9160e1d 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -850,11 +850,14 @@ Event* CalendarView::getLastSyncEvent()
{
Event* lse;
//qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() );
- lse = mCalendar->event( "last-syncEvent-device-"+mCurrentSyncDevice );
+ lse = mCalendar->event( "last-syncEvent-"+mCurrentSyncDevice );
if (!lse) {
lse = new Event();
- lse->setUid( "last-syncEvent-device-"+mCurrentSyncDevice );
- lse->setSummary(mCurrentSyncDevice + i18n(" - sync event"));
+ lse->setUid( "last-syncEvent-"+mCurrentSyncDevice );
+ QString sum = "";
+ if ( KOPrefs::instance()->mExternSyncProfiles.contains( mCurrentSyncDevice ) )
+ sum = "E: ";
+ lse->setSummary(sum+mCurrentSyncDevice + i18n(" - sync event"));
lse->setDtStart( mLastCalendarSync );
lse->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
lse->setCategories( i18n("SyncEvent") );
@@ -865,22 +868,45 @@ Event* CalendarView::getLastSyncEvent()
return lse;
}
-void CalendarView::checkSharpEvent( Event* lastSync, Incidence* toDelete )
+void CalendarView::setupExternSyncProfiles()
{
- if ( ! lastSync )
- return;
- if ( toDelete->zaurusId() < 0 )
+ Event* lse;
+ mExternLastSyncEvent.clear();
+ int i;
+ for ( i = 0; i < KOPrefs::instance()->mExternSyncProfiles.count(); ++i ) {
+ lse = mCalendar->event( "last-syncEvent-"+ KOPrefs::instance()->mExternSyncProfiles[i] );
+ if ( lse )
+ mExternLastSyncEvent.append( lse );
+ else
+ qDebug("Last Sync event not found for %s ", KOPrefs::instance()->mExternSyncProfiles[i].latin1());
+ }
+
+}
+// we check, if the to delete event has a id for a profile
+// if yes, we set this id in the profile to delete
+void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete )
+{
+ if ( ! lastSync.count() == 0 )
return;
if ( toDelete->type() == "Journal" )
return;
- QString des = lastSync->description();
- QString pref = "e";
- if ( toDelete->type() == "Todo" )
- pref = "t";
- des += pref+ QString::number ( toDelete->zaurusId() ) + ",";
- lastSync->setReadOnly( false );
- lastSync->setDescription( des );
- lastSync->setReadOnly( true );
+
+ Event* eve = lastSync.first();
+
+ while ( eve ) {
+ int id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name
+ if ( id >= 0 ) {
+ QString des = eve->description();
+ QString pref = "e";
+ if ( toDelete->type() == "Todo" )
+ pref = "t";
+ des += pref+ QString::number ( id ) + ",";
+ eve->setReadOnly( false );
+ eve->setDescription( des );
+ eve->setReadOnly( true );
+ }
+ eve = lastSync.next();
+ }
}
bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode )
@@ -899,12 +925,12 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
Event* eventL;
Event* eventRSync;
Event* eventLSync;
- Event* eventRSyncSharp = remote->event( "last-syncEvent-device-Sharp-DTM");
- Event* eventLSyncSharp = local->event( "last-syncEvent-device-Sharp-DTM");
+ QPtrList<Event> eventRSyncSharp = remote->getExternLastSyncEvents();
+ QPtrList<Event> eventLSyncSharp = local->getExternLastSyncEvents();
bool fullDateRange = false;
mLastCalendarSync = QDateTime::currentDateTime();
QDateTime modifiedCalendar = mLastCalendarSync;;
- eventR = remote->event("last-syncEvent-device-"+mCurrentSyncName );
+ eventR = remote->event("last-syncEvent-"+mCurrentSyncName );
if ( eventR ) {
eventRSync = (Event*) eventR->clone();
remote->deleteEvent(eventR );
@@ -913,7 +939,7 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
fullDateRange = true;
eventRSync = new Event();
eventRSync->setSummary(mCurrentSyncName + i18n(" - sync event"));
- eventRSync->setUid("last-syncEvent-device-"+mCurrentSyncName );
+ eventRSync->setUid("last-syncEvent-"+mCurrentSyncName );
eventRSync->setDtStart( mLastCalendarSync );
eventRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) );
eventRSync->setCategories( i18n("SyncEvent") );
@@ -965,7 +991,7 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
++incCounter;
uid = inR->uid();
bool skipIncidence = false;
- if ( uid.left(21) == QString("last-syncEvent-device") )
+ if ( uid.left(15) == QString("last-syncEvent-") )
skipIncidence = true;
qApp->processEvents();
@@ -1015,7 +1041,7 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
local->addIncidence( inR->clone() );
++addedEvent;
} else {
- checkSharpEvent(eventRSyncSharp, inR);
+ checkExternSyncEvent(eventRSyncSharp, inR);
remote->deleteIncidence( inR );
++deletedEventR;
}
@@ -1042,7 +1068,7 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
++incCounter;
uid = inL->uid();
bool skipIncidence = false;
- if ( uid.left(21) == QString("last-syncEvent-device") )
+ if ( uid.left(15) == QString("last-syncEvent-") )
skipIncidence = true;
if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL && inL->type() == "Journal" )
skipIncidence = true;
@@ -1063,7 +1089,7 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
}
} else {
if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) {
- checkSharpEvent(eventLSyncSharp, inL);
+ checkExternSyncEvent(eventLSyncSharp, inL);
local->deleteIncidence( inL );
++deletedEventL;
} else {
@@ -1342,7 +1368,7 @@ void CalendarView::setSyncEventsReadOnly()
QPtrList<Event> eL = mCalendar->rawEvents();
ev = eL.first();
while ( ev ) {
- if ( ev->uid().left(21) == QString("last-syncEvent-device") )
+ if ( ev->uid().left(15) == QString("last-syncEvent-") )
ev->setReadOnly( true );
ev = eL.next();
}
@@ -1806,7 +1832,7 @@ void CalendarView::changeTodoDisplay(Todo *which, int action)
void CalendarView::checkZaurusId( int id, bool todo )
{
if ( id >= 0 ) {
- Incidence* lse = mCalendar->event( "last-syncEvent-device-Sharp-DTM");
+ Incidence* lse = mCalendar->event( "last-syncEvent-Sharp-DTM");
if ( lse ) {
QString des = lse->description();
QString pref = "e";