File pass-source-collection-to-move-mails.diff of Package akonadi-server

From 2dc7fbf569ba3f7eeef98fb818d7af0820caf7a3 Mon Sep 17 00:00:00 2001
From: Martin Koller <kollix@aon.at>
Date: Sat, 6 May 2017 11:30:06 +0200
Subject: Explicitely pass source collection to ensure moving mails work

... since the passed item.parentCollection() is already the target
collection

Differential Revision: https://phabricator.kde.org/D5711

(cherry picked from commit 33d86e165c5fe150583f9ac3ab58626ffcfe4f97)
---
 src/core/models/entitytreemodel_p.cpp | 9 +++++----
 src/core/models/entitytreemodel_p.h   | 2 +-
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/core/models/entitytreemodel_p.cpp b/src/core/models/entitytreemodel_p.cpp
index 7c75746..79f0c04 100644
--- a/src/core/models/entitytreemodel_p.cpp
+++ b/src/core/models/entitytreemodel_p.cpp
@@ -1104,7 +1104,7 @@ void EntityTreeModelPrivate::monitoredItemAdded(const Akonadi::Item &item, const
     q->endInsertRows();
 }
 
-void EntityTreeModelPrivate::monitoredItemRemoved(const Akonadi::Item &item)
+void EntityTreeModelPrivate::monitoredItemRemoved(const Akonadi::Item &item, const Akonadi::Collection &parentCollection)
 {
     Q_Q(EntityTreeModel);
 
@@ -1112,7 +1112,8 @@ void EntityTreeModelPrivate::monitoredItemRemoved(const Akonadi::Item &item)
         return;
     }
 
-    if ((m_itemPopulation == EntityTreeModel::LazyPopulation) && !m_populatedCols.contains(item.parentCollection().id())) {
+    if ((m_itemPopulation == EntityTreeModel::LazyPopulation) &&
+        !m_populatedCols.contains(parentCollection.isValid() ? parentCollection.id() : item.parentCollection().id())) {
         return;
     }
 
@@ -1197,10 +1198,10 @@ void EntityTreeModelPrivate::monitoredItemMoved(const Akonadi::Item &item,
         monitoredItemAdded(item, destCollection);
         return;
     } else if (isHidden(destCollection)) {
-        monitoredItemRemoved(item);
+        monitoredItemRemoved(item, sourceCollection);
         return;
     } else {
-        monitoredItemRemoved(item);
+        monitoredItemRemoved(item, sourceCollection);
         monitoredItemAdded(item, destCollection);
         return;
     }
diff --git a/src/core/models/entitytreemodel_p.h b/src/core/models/entitytreemodel_p.h
index 9c5e5ac..1d90abb 100644
--- a/src/core/models/entitytreemodel_p.h
+++ b/src/core/models/entitytreemodel_p.h
@@ -93,7 +93,7 @@ public:
                                   const Akonadi::Collection &destCollection);
 
     void monitoredItemAdded(const Akonadi::Item &item, const Akonadi::Collection &collection);
-    void monitoredItemRemoved(const Akonadi::Item &item);
+    void monitoredItemRemoved(const Akonadi::Item &item, const Akonadi::Collection &collection = Akonadi::Collection());
     void monitoredItemChanged(const Akonadi::Item &item, const QSet<QByteArray> &);
     void monitoredItemMoved(const Akonadi::Item &item, const Akonadi::Collection &, const Akonadi::Collection &);
 
-- 
cgit v0.11.2

openSUSE Build Service is sponsored by