summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/kernel/qguiapplication.cpp8
-rw-r--r--src/gui/kernel/qguiapplication_p.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index a16685e7fa..ee32924f11 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -90,6 +90,8 @@ QPointF QGuiApplicationPrivate::lastCursorPosition(0.0, 0.0);
QPlatformIntegration *QGuiApplicationPrivate::platform_integration = 0;
+QList<QObject *> QGuiApplicationPrivate::generic_plugin_list;
+
bool QGuiApplicationPrivate::app_do_modal = false;
QPalette *QGuiApplicationPrivate::app_pal = 0; // default application palette
@@ -294,6 +296,8 @@ static void init_plugins(const QList<QByteArray> &pluginList)
plugin = QGenericPluginFactory::create(QLatin1String(pluginSpec.mid(0, colonPos)),
QLatin1String(pluginSpec.mid(colonPos+1)));
qDebug() << " created" << plugin;
+ if (plugin)
+ QGuiApplicationPrivate::generic_plugin_list.append(plugin);
}
}
@@ -424,6 +428,10 @@ QGuiApplicationPrivate::~QGuiApplicationPrivate()
is_app_closing = true;
is_app_running = false;
+ for (int i = 0; i < generic_plugin_list.count(); ++i)
+ delete generic_plugin_list.at(i);
+ generic_plugin_list.clear();
+
QFont::cleanup();
#ifndef QT_NO_CURSOR
diff --git a/src/gui/kernel/qguiapplication_p.h b/src/gui/kernel/qguiapplication_p.h
index 20489afe10..bd42fa1904 100644
--- a/src/gui/kernel/qguiapplication_p.h
+++ b/src/gui/kernel/qguiapplication_p.h
@@ -175,6 +175,7 @@ public:
static bool quitOnLastWindowClosed;
+ static QList<QObject *> generic_plugin_list;
private:
void init();