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
|