This commit is contained in:
parent
f4fe90ab7d
commit
646db8e2c1
@ -1,133 +0,0 @@
|
||||
diff -urNB kdepim-runtime-15.08.1/resources/imap/autotests/dummyresourcestate.cpp b/resources/imap/autotests/dummyresourcestate.cpp
|
||||
--- kdepim-runtime-15.08.1/resources/imap/autotests/dummyresourcestate.cpp 2015-09-02 13:41:03.000000000 +0200
|
||||
+++ b/resources/imap/autotests/dummyresourcestate.cpp 2015-09-15 21:53:04.173988388 +0200
|
||||
@@ -27,7 +27,8 @@
|
||||
|
||||
DummyResourceState::DummyResourceState()
|
||||
: m_automaticExpunge(true), m_subscriptionEnabled(true),
|
||||
- m_disconnectedMode(true), m_intervalCheckTime(-1)
|
||||
+ m_disconnectedMode(true), m_intervalCheckTime(-1),
|
||||
+ m_mergeMode(Akonadi::ItemSync::RIDMerge)
|
||||
{
|
||||
qRegisterMetaType<QList<qint64> >();
|
||||
qRegisterMetaType<QVector<qint64> >();
|
||||
@@ -428,6 +429,11 @@
|
||||
return 10;
|
||||
}
|
||||
|
||||
+void DummyResourceState::setItemMergingMode(Akonadi::ItemSync::MergeMode mergeMode)
|
||||
+{
|
||||
+ m_mergeMode = mergeMode;
|
||||
+}
|
||||
+
|
||||
MessageHelper::Ptr DummyResourceState::messageHelper() const
|
||||
{
|
||||
return MessageHelper::Ptr(new MessageHelper());
|
||||
diff -urNB kdepim-runtime-15.08.1/resources/imap/autotests/dummyresourcestate.h b/resources/imap/autotests/dummyresourcestate.h
|
||||
--- kdepim-runtime-15.08.1/resources/imap/autotests/dummyresourcestate.h 2015-09-02 13:41:03.000000000 +0200
|
||||
+++ b/resources/imap/autotests/dummyresourcestate.h 2015-09-15 21:53:04.173988388 +0200
|
||||
@@ -143,6 +143,7 @@
|
||||
virtual void showInformationDialog(const QString &message, const QString &title, const QString &dontShowAgainName);
|
||||
|
||||
virtual int batchSize() const;
|
||||
+ virtual void setItemMergingMode(Akonadi::ItemSync::MergeMode mergeMode);
|
||||
|
||||
virtual MessageHelper::Ptr messageHelper() const;
|
||||
|
||||
@@ -163,6 +164,8 @@
|
||||
int m_intervalCheckTime;
|
||||
QChar m_separator;
|
||||
|
||||
+ Akonadi::ItemSync::MergeMode m_mergeMode;
|
||||
+
|
||||
Akonadi::Collection m_collection;
|
||||
Akonadi::Item::List m_items;
|
||||
|
||||
diff -urNB kdepim-runtime-15.08.1/resources/imap/resourcestate.cpp b/resources/imap/resourcestate.cpp
|
||||
--- kdepim-runtime-15.08.1/resources/imap/resourcestate.cpp 2015-09-02 13:41:03.000000000 +0200
|
||||
+++ b/resources/imap/resourcestate.cpp 2015-09-15 22:01:43.978412302 +0200
|
||||
@@ -362,3 +362,9 @@
|
||||
{
|
||||
m_resource->relationsRetrieved(relations);
|
||||
}
|
||||
+
|
||||
+void ResourceState::setItemMergingMode(Akonadi::ItemSync::MergeMode mode)
|
||||
+{
|
||||
+ m_resource->setItemMergingMode(mode);
|
||||
+}
|
||||
+
|
||||
diff -urNB kdepim-runtime-15.08.1/resources/imap/resourcestate.h b/resources/imap/resourcestate.h
|
||||
--- kdepim-runtime-15.08.1/resources/imap/resourcestate.h 2015-09-02 13:41:03.000000000 +0200
|
||||
+++ b/resources/imap/resourcestate.h 2015-09-15 21:53:04.175988397 +0200
|
||||
@@ -153,6 +153,8 @@
|
||||
|
||||
MessageHelper::Ptr messageHelper() const Q_DECL_OVERRIDE;
|
||||
|
||||
+ void setItemMergingMode(Akonadi::ItemSync::MergeMode mergeMode);
|
||||
+
|
||||
private:
|
||||
ImapResourceBase *m_resource;
|
||||
const TaskArguments m_arguments;
|
||||
diff -urNB kdepim-runtime-15.08.1/resources/imap/resourcestateinterface.h b/resources/imap/resourcestateinterface.h
|
||||
--- kdepim-runtime-15.08.1/resources/imap/resourcestateinterface.h 2015-09-02 13:41:03.000000000 +0200
|
||||
+++ b/resources/imap/resourcestateinterface.h 2015-09-15 21:53:04.175988397 +0200
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
#include <Collection>
|
||||
#include <Item>
|
||||
+#include <ItemSync>
|
||||
|
||||
#include <kimap/listjob.h>
|
||||
|
||||
@@ -125,6 +126,8 @@
|
||||
|
||||
virtual Akonadi::Relation::List addedRelations() const = 0;
|
||||
virtual Akonadi::Relation::List removedRelations() const = 0;
|
||||
+
|
||||
+ virtual void setItemMergingMode(Akonadi::ItemSync::MergeMode mergeMode) = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
diff -urNB kdepim-runtime-15.08.1/resources/imap/resourcetask.cpp b/resources/imap/resourcetask.cpp
|
||||
--- kdepim-runtime-15.08.1/resources/imap/resourcetask.cpp 2015-09-02 13:41:03.000000000 +0200
|
||||
+++ b/resources/imap/resourcetask.cpp 2015-09-15 22:02:14.109552807 +0200
|
||||
@@ -591,3 +591,8 @@
|
||||
}
|
||||
return KIMAP::Acl::None;
|
||||
}
|
||||
+
|
||||
+void ResourceTask::setItemMergingMode(Akonadi::ItemSync::MergeMode mode)
|
||||
+{
|
||||
+ m_resource->setItemMergingMode(mode);
|
||||
+}
|
||||
diff -urNB kdepim-runtime-15.08.1/resources/imap/resourcetask.h b/resources/imap/resourcetask.h
|
||||
--- kdepim-runtime-15.08.1/resources/imap/resourcetask.h 2015-09-02 13:41:03.000000000 +0200
|
||||
+++ b/resources/imap/resourcetask.h 2015-09-15 21:53:04.177988407 +0200
|
||||
@@ -140,6 +140,7 @@
|
||||
virtual bool serverSupportsCondstore() const;
|
||||
|
||||
int batchSize() const;
|
||||
+ void setItemMergingMode(Akonadi::ItemSync::MergeMode mode);
|
||||
|
||||
ResourceStateInterface::Ptr resourceState();
|
||||
|
||||
diff -urNB kdepim-runtime-15.08.1/resources/imap/retrieveitemstask.cpp b/resources/imap/retrieveitemstask.cpp
|
||||
--- kdepim-runtime-15.08.1/resources/imap/retrieveitemstask.cpp 2015-09-02 13:41:03.000000000 +0200
|
||||
+++ b/resources/imap/retrieveitemstask.cpp 2015-09-15 21:53:04.177988407 +0200
|
||||
@@ -89,6 +89,16 @@
|
||||
m_session = session;
|
||||
|
||||
const Akonadi::Collection col = collection();
|
||||
+ // Only with emails we can be sure that RID is persistent and thus we can use
|
||||
+ // it for merging. For other potential content types (like Kolab events etc.)
|
||||
+ // use GID instead.
|
||||
+ QStringList cts = col.contentMimeTypes();
|
||||
+ cts.removeOne(Akonadi::Collection::mimeType());
|
||||
+ cts.removeOne(KMime::Message::mimeType());
|
||||
+ if (!cts.isEmpty()) {
|
||||
+ setItemMergingMode(Akonadi::ItemSync::GIDMerge);
|
||||
+ }
|
||||
+
|
||||
if (m_fetchMissingBodies && col.cachePolicy()
|
||||
.localParts().contains(QLatin1String(Akonadi::MessagePart::Body))) { //disconnected mode, make sure we really have the body cached
|
||||
|
Loading…
x
Reference in New Issue
Block a user