summaryrefslogtreecommitdiff
path: root/extra/kdebase-workspace/kdebug-324574.patch
blob: 053eef57e2895a3ce5b5f06849f067d7b13f954a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
From: Weng Xuetian <wengxt@gmail.com>
Date: Mon, 09 Sep 2013 15:43:06 +0000
Subject: Delay KDE class initialization to main loop
X-Git-Url: http://quickgit.kde.org/?p=kde-workspace.git&a=commitdiff&h=2e5a2450762f8dedf9ffd77028ed06b3a39a807d
---
Delay KDE class initialization to main loop

Gui platform plugin is loaded during QApplication construction, but it
relies on some KApplication/QApplication data to work correctly.

This patch delays the initialization to main loop, to ensure
KApplication/QApplication is already constructed.

BUG: 324574
FIXED-IN: 4.11.2
REVIEW: 112602
---


--- a/qguiplatformplugin_kde/qguiplatformplugin_kde.cpp
+++ b/qguiplatformplugin_kde/qguiplatformplugin_kde.cpp
@@ -28,6 +28,7 @@
 #include <KDE/KFileDialog>
 #include <KDE/KColorDialog>
 #include <QtCore/QHash>
+#include <QtCore/QTimer>
 #include <QtGui/QFileDialog>
 #include <QtGui/QColorDialog>
 #include <QtGui/QApplication>
@@ -153,9 +154,7 @@
 public:
     KQGuiPlatformPlugin()
     {
-        connect(KIconLoader::global(), SIGNAL(iconLoaderSettingsChanged()), this, SLOT(updateToolbarIcons()));
-        connect(KGlobalSettings::self(), SIGNAL(toolbarAppearanceChanged(int)), this, SLOT(updateToolbarStyle()));
-        connect(KGlobalSettings::self(), SIGNAL(kdisplayStyleChanged()), this, SLOT(updateWidgetStyle()));
+        QMetaObject::invokeMethod(this, "init", Qt::QueuedConnection);
     }
 
     virtual QStringList keys() const { return QStringList() << QLatin1String("kde"); }
@@ -340,6 +339,13 @@
     }
 
 private slots:
+    void init()
+    {
+        connect(KIconLoader::global(), SIGNAL(iconLoaderSettingsChanged()), this, SLOT(updateToolbarIcons()));
+        connect(KGlobalSettings::self(), SIGNAL(toolbarAppearanceChanged(int)), this, SLOT(updateToolbarStyle()));
+        connect(KGlobalSettings::self(), SIGNAL(kdisplayStyleChanged()), this, SLOT(updateWidgetStyle()));
+    }
+
     void updateToolbarStyle()
     {
         //from gtksymbol.cpp