[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdepim/kresources/opengroupware
From:       Till Adam <adam () kde ! org>
Date:       2004-11-01 0:32:54
Message-ID: 20041101003254.9518416C63 () office ! kde ! org
[Download RAW message or body]

CVS commit by tilladam: 

Remove incidences deleted from the server.


  M +21 -0     kcal_resourceopengroupware.cpp   1.20
  M +1 -0      kcal_resourceopengroupware.h   1.9


--- kdepim/kresources/opengroupware/kcal_resourceopengroupware.cpp  #1.19:1.20
@@ -221,4 +221,5 @@ void OpenGroupware::slotListJobResult( K
   } else {
     QDomDocument doc = mListEventsJob->response();
+    QStringList currentlyOnServer;
 
     //kdDebug(7000) << " Doc: " << doc.toString() << endl;
@@ -241,4 +242,6 @@ void OpenGroupware::slotListJobResult( K
       const QString &location = url.path();
       const QString &newFingerprint = e.text();
+
+      currentlyOnServer << location;
       /* if not locally present, download */
       const QString &localId = idMapper().localId( location );
@@ -272,4 +275,6 @@ void OpenGroupware::slotListJobResult( K
       }
     }
+    /* Delete incidences no longer present on the server */
+    deleteIncidencesGoneFromServer( currentlyOnServer );
   }
   mListEventsJob = 0;
@@ -278,4 +283,20 @@ void OpenGroupware::slotListJobResult( K
 }
 
+void OpenGroupware::deleteIncidencesGoneFromServer( const QStringList &serverlist )
+{
+  QMap<QString, QString> remoteIds( idMapper().remoteIdMap() );
+  QStringList::ConstIterator it = serverlist.begin();
+  while ( it != serverlist.end() ) {
+    remoteIds.remove( (*it) );
+    ++it;
+  }
+  disableChangeNotification();
+  QMap<QString, QString>::ConstIterator it2;
+  for (it2 = remoteIds.begin(); it2 != remoteIds.end(); ++it2) {
+    Incidence *i = mCalendar.incidence( remoteIds[ it2.key() ] );
+    if ( i ) mCalendar.deleteIncidence( i );
+  }
+  enableChangeNotification();
+}
 
 void OpenGroupware::downloadNextIncidence()

--- kdepim/kresources/opengroupware/kcal_resourceopengroupware.h  #1.8:1.9
@@ -80,4 +80,5 @@ class OpenGroupware : public ResourceCac
 
     void listIncidences();
+    void deleteIncidencesGoneFromServer( const QStringList &serverlist );
 
   protected slots:


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic