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

List:       kde-commits
Subject:    KDE/kdepim/akonadi/libakonadi
From:       Kevin Krammer <kevin.krammer () gmx ! at>
Date:       2008-02-09 16:42:08
Message-ID: 1202575328.456576.6988.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 772880 by krake:

Restore lookup by remoteId since this is needed for ItemSync use in ResourceBase


 M  +9 -5      itemsync.cpp  


--- trunk/KDE/kdepim/akonadi/libakonadi/itemsync.cpp #772879:772880
@@ -42,8 +42,8 @@
 
     Collection syncCollection;
 
-    // local: mapped id -> item
-    QHash<int, Akonadi::Item> localItems;
+    QHash<int, Akonadi::Item> localItemsById;
+    QHash<QString, Akonadi::Item> localItemsByRemoteId;
     QSet<Akonadi::Item> unprocessedLocalItems;
 
     // remote items
@@ -102,7 +102,8 @@
 
   const Item::List list = static_cast<ItemFetchJob*>( job )->items();
   foreach ( const Item item, list ) {
-    d->localItems.insert( item.reference().id(), item );
+    d->localItemsById.insert( item.reference().id(), item );
+    d->localItemsByRemoteId.insert( item.reference().remoteId(), item );
     d->unprocessedLocalItems.insert( item );
   }
 
@@ -114,7 +115,9 @@
     }
 #endif
 
-    const Item localItem = d->localItems.value( remoteItem.reference().id() );
+    Item localItem = d->localItemsById.value( remoteItem.reference().id() );
+    if ( !localItem.isValid() )
+      localItem = d->localItemsByRemoteId.value( remoteItem.reference().remoteId() );
     d->unprocessedLocalItems.remove( localItem );
     // missing locally
     if ( !localItem.isValid() ) {
@@ -185,7 +188,8 @@
     ItemDeleteJob *job = new ItemDeleteJob( item.reference(), this );
     connect( job, SIGNAL( result( KJob* ) ), SLOT( slotLocalChangeDone( KJob* ) ) );
   }
-  d->localItems.clear();
+  d->localItemsById.clear();
+  d->localItemsByRemoteId.clear();
 
   checkDone();
 }
[prev in list] [next in list] [prev in thread] [next in thread] 

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