Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > aa5ad5419b903aa37bd409a59346c3bd > files > 4

kdepim4-runtime-4.4.3-3mdv2010.1.src.rpm

Index: kdepim/runtime/resources/contacts/contactsresource.cpp
===================================================================
--- kdepim/runtime/resources/contacts/contactsresource.cpp	(révision 1127305)
+++ kdepim/runtime/resources/contacts/contactsresource.cpp	(révision 1127306)
@@ -414,13 +414,37 @@
   }
 
   if ( !removeDirectory( directoryForCollection( collection ) ) ) {
-    cancelTask( i18n("Unable to delete folder '%1'.", collection.name() ) );
+    cancelTask( i18n( "Unable to delete folder '%1'.", collection.name() ) );
     return;
   }
 
   changeProcessed();
 }
 
+void ContactsResource::itemMoved( const Akonadi::Item &item, const Akonadi::Collection &collectionSource,
+                                  const Akonadi::Collection &collectionDestination )
+{
+  const QString sourceFileName = directoryForCollection( collectionSource ) + QDir::separator() + item.remoteId();
+  const QString targetFileName = directoryForCollection( collectionDestination ) + QDir::separator() + item.remoteId();
+
+  if ( QFile::rename( sourceFileName, targetFileName ) )
+    changeProcessed();
+  else
+    cancelTask( i18n( "Unable to move file '%1' to '%2', '%2' already exists.", sourceFileName, targetFileName ) );
+}
+
+void ContactsResource::collectionMoved( const Akonadi::Collection &collection, const Akonadi::Collection &collectionSource,
+                                        const Akonadi::Collection &collectionDestination )
+{
+  const QString sourceDirectoryName = directoryForCollection( collectionSource ) + QDir::separator() + collection.remoteId();
+  const QString targetDirectoryName = directoryForCollection( collectionDestination ) + QDir::separator() + collection.remoteId();
+
+  if ( QFile::rename( sourceDirectoryName, targetDirectoryName ) )
+    changeProcessed();
+  else
+    cancelTask( i18n( "Unable to move directory '%1' to '%2', '%2' already exists.", sourceDirectoryName, targetDirectoryName ) );
+}
+
 QString ContactsResource::baseDirectoryPath() const
 {
   return Settings::self()->path();
Index: kdepim/runtime/resources/contacts/contactsresource.h
===================================================================
--- kdepim/runtime/resources/contacts/contactsresource.h	(révision 1127305)
+++ kdepim/runtime/resources/contacts/contactsresource.h	(révision 1127306)
@@ -29,7 +29,7 @@
 
 class QDir;
 
-class ContactsResource : public Akonadi::ResourceBase, public Akonadi::AgentBase::Observer
+class ContactsResource : public Akonadi::ResourceBase, public Akonadi::AgentBase::ObserverV2
 {
   Q_OBJECT
 
@@ -55,6 +55,11 @@
     virtual void collectionChanged( const Akonadi::Collection &collection );
     virtual void collectionRemoved( const Akonadi::Collection &collection );
 
+    virtual void itemMoved( const Akonadi::Item &item, const Akonadi::Collection &collectionSource,
+                            const Akonadi::Collection &collectionDestination );
+    virtual void collectionMoved( const Akonadi::Collection &collection, const Akonadi::Collection &collectionSource,
+                                  const Akonadi::Collection &collectionDestination );
+
   private:
     Akonadi::Collection::List createCollectionsForDirectory( const QDir &parentDirectory,
                                                              const Akonadi::Collection &parentCollection ) const;