+++ /dev/null
-From b3c8ad1ad48d65ea77724f94073909dc8ab97596 Mon Sep 17 00:00:00 2001
-From: David Edmundson <david@davidedmundson.co.uk>
-Date: Sat, 6 Feb 2016 18:02:53 +0000
-Subject: [PATCH] Fix crash in activities context menu
-
-Currently we call deleteLater() from inside ::run which is running in a
-different thread than the receiving object.
-(QThread objects live in the thread that created them, not in the thread
-they create)
-
-This patch causes deleteLater to be run in the right thread.
-
-QCoreApplication::postEvent is thread safe but it needs to be in the
-right thread to work out the correct event loop level for deferred
-delete events.
-
-BUG: 351485
-REVIEW: 126955
----
- src/workspace/fileitemplugin/FileItemLinkingPlugin.cpp | 2 +-
- .../fileitemplugin/FileItemLinkingPluginActionLoader.cpp | 9 +++++++--
- src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.h | 4 ++--
- 3 files changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/src/workspace/fileitemplugin/FileItemLinkingPlugin.cpp b/src/workspace/fileitemplugin/FileItemLinkingPlugin.cpp
-index a887132..f3f6dde 100644
---- a/src/workspace/fileitemplugin/FileItemLinkingPlugin.cpp
-+++ b/src/workspace/fileitemplugin/FileItemLinkingPlugin.cpp
-@@ -124,7 +124,7 @@ void FileItemLinkingPlugin::Private::loadAllActions()
- setActions({ action });
-
- } else if (!loaded) {
-- auto loader = new FileItemLinkingPluginActionLoader(items);
-+ auto loader = FileItemLinkingPluginActionLoader::create(items);
-
- static FileItemLinkingPluginActionStaticInit init;
-
-diff --git a/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp b/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp
-index 3343eb4..b35713d 100644
---- a/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp
-+++ b/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp
-@@ -40,6 +40,13 @@
-
- #include "common/dbus/common.h"
-
-+FileItemLinkingPluginActionLoader* FileItemLinkingPluginActionLoader::create(const KFileItemListProperties &items)
-+{
-+ auto l = new FileItemLinkingPluginActionLoader(items);
-+ connect(l, &QThread::finished, l, &QObject::deleteLater);
-+ return l;
-+}
-+
- FileItemLinkingPluginActionLoader::FileItemLinkingPluginActionLoader(
- const KFileItemListProperties &items)
- : items(items)
-@@ -150,8 +157,6 @@ void FileItemLinkingPluginActionLoader::run()
- }
-
- emit result(actions);
--
-- deleteLater();
- }
-
- Action
-diff --git a/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.h b/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.h
-index 50dccc5..5264a45 100644
---- a/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.h
-+++ b/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.h
-@@ -33,8 +33,7 @@ class FileItemLinkingPluginActionLoader: public QThread {
- Q_OBJECT
-
- public:
-- FileItemLinkingPluginActionLoader(const KFileItemListProperties &items);
--
-+ static FileItemLinkingPluginActionLoader* create(const KFileItemListProperties &items);
- void run() Q_DECL_OVERRIDE;
-
- Action createAction(const QString &activity, bool link,
-@@ -46,6 +45,7 @@ Q_SIGNALS:
- void result(const ActionList &actions);
-
- private:
-+ FileItemLinkingPluginActionLoader(const KFileItemListProperties &items);
- KFileItemListProperties items;
- KActivities::Consumer activities;
- };
---
-2.4.10
-