f266fbe420
* Fix mails not being removed from list when deleted (kde#380182) OBS-URL: https://build.opensuse.org/package/show/KDE:Applications/akonadi-server?expand=0&rev=111
69 lines
2.9 KiB
Diff
69 lines
2.9 KiB
Diff
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
|
|
|