Branch 'kolab/integration/4.13.0' - akonadi/actionstatemanager.cpp akonadi/calendar akonadi/standardactionmanager.cpp akonadi/standardactionmanager.h

Christian Mollekopf mollekopf at kolabsys.com
Tue Aug 12 12:39:16 CEST 2014


 akonadi/actionstatemanager.cpp                     |    2 ++
 akonadi/calendar/standardcalendaractionmanager.cpp |    8 ++++++++
 akonadi/standardactionmanager.cpp                  |   15 ++++++++++++++-
 akonadi/standardactionmanager.h                    |    2 ++
 4 files changed, 26 insertions(+), 1 deletion(-)

New commits:
commit dda34f75b477ffe8f8fed3b2557594f5714ffa23
Author: Christian Mollekopf <chrigi_1 at fastmail.fm>
Date:   Tue Aug 12 12:38:00 2014 +0200

    New standard action to synchronize the collection tree.

diff --git a/akonadi/actionstatemanager.cpp b/akonadi/actionstatemanager.cpp
index ee12115..3b3813c 100644
--- a/akonadi/actionstatemanager.cpp
+++ b/akonadi/actionstatemanager.cpp
@@ -273,6 +273,7 @@ void ActionStateManager::updateState(const Collection::List &collections, const
     enableAction(StandardActionManager::DeleteResources, canDeleteResources);
     enableAction(StandardActionManager::ResourceProperties, canConfigureResource);
     enableAction(StandardActionManager::SynchronizeResources, canSynchronizeResources);
+    enableAction(StandardActionManager::SynchronizeCollectionTree, canSynchronizeResources);
 
     if (collectionsAreInTrash) {
         updateAlternatingAction(StandardActionManager::MoveToTrashRestoreCollectionAlternative);
@@ -343,6 +344,7 @@ void ActionStateManager::updateState(const Collection::List &collections, const
     updatePluralLabel(StandardActionManager::SynchronizeCollectionsRecursive, collectionCount);
     updatePluralLabel(StandardActionManager::DeleteResources, resourceCollectionCount);
     updatePluralLabel(StandardActionManager::SynchronizeResources, resourceCollectionCount);
+    updatePluralLabel(StandardActionManager::SynchronizeCollectionTree, resourceCollectionCount);
 
 }
 
diff --git a/akonadi/calendar/standardcalendaractionmanager.cpp b/akonadi/calendar/standardcalendaractionmanager.cpp
index 5f1884e..f616599 100644
--- a/akonadi/calendar/standardcalendaractionmanager.cpp
+++ b/akonadi/calendar/standardcalendaractionmanager.cpp
@@ -240,6 +240,13 @@ public:
                 StandardActionManager::Paste, StandardActionManager::ErrorMessageTitle,
                 i18n("Paste failed"));
             break;
+        case Akonadi::StandardActionManager::SynchronizeCollectionTree:
+            mGenericManager->setActionText(Akonadi::StandardActionManager::SynchronizeCollectionTree,
+                                           ki18n("Update Available Calendars"));
+            mGenericManager->action(Akonadi::StandardActionManager::SynchronizeCollectionTree)->setWhatsThis(
+                i18n("Updates the tree of available calendars."));
+
+            break;
         default:
             break;
         }
@@ -283,6 +290,7 @@ public:
         updateGenericAction(StandardActionManager::MoveToTrashRestoreItem);
         updateGenericAction(StandardActionManager::MoveToTrashRestoreItemAlternative);
         updateGenericAction(StandardActionManager::SynchronizeFavoriteCollections);
+        updateGenericAction(StandardActionManager::SynchronizeCollectionTree);
 
     }
 
diff --git a/akonadi/standardactionmanager.cpp b/akonadi/standardactionmanager.cpp
index ebaa306..9cc7f16 100644
--- a/akonadi/standardactionmanager.cpp
+++ b/akonadi/standardactionmanager.cpp
@@ -122,7 +122,8 @@ static const struct {
     { 0, I18N_NOOP("&Restore Collection From Trash"), I18N_NOOP("Restore Collection From Trash"), "view-refresh", 0, 0, ActionAlternative },
     { "akonadi_item_trash_restore", I18N_NOOP("&Restore Item From Trash"), I18N_NOOP("Restore Item From Trash"), "user-trash", 0, SLOT(slotTrashRestoreItem()), ActionWithAlternative },
     { 0, I18N_NOOP("&Restore Item From Trash"), I18N_NOOP("Restore Item From Trash"), "view-refresh", 0, 0, ActionAlternative },
-    { "akonadi_collection_sync_favorite_folders", I18N_NOOP("&Synchronize Favorite Folders"), I18N_NOOP("Synchronize Favorite Folders"), "view-refresh", Qt::CTRL + Qt::SHIFT + Qt::Key_L , SLOT(slotSynchronizeFavoriteCollections()), NormalAction }
+    { "akonadi_collection_sync_favorite_folders", I18N_NOOP("&Synchronize Favorite Folders"), I18N_NOOP("Synchronize Favorite Folders"), "view-refresh", Qt::CTRL + Qt::SHIFT + Qt::Key_L , SLOT(slotSynchronizeFavoriteCollections()), NormalAction },
+    { "akonadi_resource_synchronize_collectiontree", I18N_NOOP("Synchronize Folder Tree"), I18N_NOOP("Synchronize"), "view-refresh", 0, SLOT(slotSynchronizeCollectionTree()), NormalAction }
 
 };
 static const int numStandardActionData = sizeof standardActionData / sizeof * standardActionData;
@@ -1185,6 +1186,18 @@ public:
         }
     }
 
+    void slotSynchronizeCollectionTree()
+    {
+        const AgentInstance::List instances = selectedAgentInstances();
+        if (instances.isEmpty()) {
+            return;
+        }
+
+        foreach (AgentInstance instance, instances) {    //krazy:exclude=foreach
+            instance.synchronizeCollectionTree();
+        }
+    }
+
     void slotResourceProperties()
     {
         AgentInstance instance = selectedAgentInstance();
diff --git a/akonadi/standardactionmanager.h b/akonadi/standardactionmanager.h
index 5e1dada..c13f898 100644
--- a/akonadi/standardactionmanager.h
+++ b/akonadi/standardactionmanager.h
@@ -168,6 +168,7 @@ public:
         MoveToTrashRestoreItem,                  ///< Move Item to Trash or Restore it from Trash, needs EntityDeletedAttribute @since 4.8
         MoveToTrashRestoreItemAlternative,       ///< Helper type for MoveToTrashRestoreItem, do not create directly. Use this to override texts of the restore action. @since 4.8
         SynchronizeFavoriteCollections,          ///< Synchronize favorite collections @since 4.8
+        SynchronizeCollectionTree,               ///< Synchronize collection tree @since 4.15
         LastType                                 ///< Marks last action
     };
 
@@ -407,6 +408,7 @@ private:
     Q_PRIVATE_SLOT( d, void slotDeleteResource() )
     Q_PRIVATE_SLOT( d, void slotResourceProperties() )
     Q_PRIVATE_SLOT( d, void slotSynchronizeResource() )
+    Q_PRIVATE_SLOT( d, void slotSynchronizeCollectionTree() )
     Q_PRIVATE_SLOT( d, void slotToggleWorkOffline(bool) )
 
     Q_PRIVATE_SLOT( d, void collectionCreationResult(KJob*) )




More information about the commits mailing list