diff --git a/src/app/main.cpp b/src/app/main.cpp index afc08fc4569acd2469d26b9cccc3ac0365f9f917..a453325a55f937af86b19abeccfc7dd22f5d81c1 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -317,11 +317,12 @@ int main(int argc, char **argv) } QObject::connect(&app, SIGNAL(fileOpenRequest(QString)), coreplugin->plugin(), SLOT(fileOpenRequest(QString))); + // shutdown plugin manager on the exit + QObject::connect(&app, SIGNAL(aboutToQuit()), &pluginManager, SLOT(shutdown())); + // Do this after the event loop has started QTimer::singleShot(100, &pluginManager, SLOT(startTests())); - int ret = app.exec(); - pluginManager.shutdown(); - return ret; + return app.exec(); } diff --git a/src/libs/extensionsystem/pluginmanager.cpp b/src/libs/extensionsystem/pluginmanager.cpp index 37dd4daeb9aab4dfc967d2731794543478c3fdae..82f75f3dee0ec86b58b18331a400a2f9e5bef7eb 100644 --- a/src/libs/extensionsystem/pluginmanager.cpp +++ b/src/libs/extensionsystem/pluginmanager.cpp @@ -262,7 +262,6 @@ void PluginManager::shutdown() d->shutdown(); } - /*! \fn QStringList PluginManager::pluginPaths() const The list of paths were the plugin manager searches for plugins. diff --git a/src/libs/extensionsystem/pluginmanager.h b/src/libs/extensionsystem/pluginmanager.h index d371dfe30c98fbf4d590407515c4dff6f62aa45e..480f40b4727ca08098242edb7732245e1699dc44 100644 --- a/src/libs/extensionsystem/pluginmanager.h +++ b/src/libs/extensionsystem/pluginmanager.h @@ -93,7 +93,6 @@ public: // Plugin operations QList<PluginSpec *> loadQueue(); void loadPlugins(); - void shutdown(); QStringList pluginPaths() const; void setPluginPaths(const QStringList &paths); QList<PluginSpec *> plugins() const; @@ -130,6 +129,7 @@ signals: public slots: void remoteArguments(const QString &serializedArguments); + void shutdown(); private slots: void startTests();