All pastes #2013066 Raw Edit

Someone

public text v1 · immutable
#2013066 ·published 2010-12-07 18:26 UTC
rendered paste body
Index: moveitemtask.cpp
===================================================================
--- moveitemtask.cpp	(revision 1203470)
+++ moveitemtask.cpp	(working copy)
@@ -244,6 +244,31 @@
   i.setRemoteId( QString::number( m_newUid ) );
 
   changeCommitted( i );
+
+  Akonadi::Collection c = targetCollection();
+
+  // Get the current uid next value and store it
+  UidNextAttribute *uidAttr = 0;
+  int oldNextUid = 0;
+  if ( c.hasAttribute( "uidnext" ) ) {
+    uidAttr = static_cast<UidNextAttribute*>( c.attribute( "uidnext" ) );
+    oldNextUid = uidAttr->uidNext();
+  }
+
+  // If the uid we just got back is the expected next one of the box
+  // then update the property to the probable next uid to keep the cache in sync.
+  // If not something happened in our back, so we don't update and a refetch will
+  // happen at some point.
+  if ( m_newUid == oldNextUid ) {
+    if ( uidAttr == 0 ) {
+      uidAttr = new UidNextAttribute( m_newUid + 1 );
+      c.addAttribute( uidAttr );
+    } else {
+      uidAttr->setUidNext( m_newUid + 1 );
+    }
+
+    applyCollectionChanges( c );
+  }
 }
 
 #include "moveitemtask.moc"