diff options
Diffstat (limited to 'src/plugins/coreplugin/iwizardfactory.cpp')
-rw-r--r-- | src/plugins/coreplugin/iwizardfactory.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/plugins/coreplugin/iwizardfactory.cpp b/src/plugins/coreplugin/iwizardfactory.cpp index 09e551b2157..dc7a6da3e57 100644 --- a/src/plugins/coreplugin/iwizardfactory.cpp +++ b/src/plugins/coreplugin/iwizardfactory.cpp @@ -127,6 +127,7 @@ QAction *s_inspectWizardAction = nullptr; bool s_areFactoriesLoaded = false; bool s_isWizardRunning = false; QWidget *s_currentWizard = nullptr; +static QSet<Id> s_plugins; // NewItemDialog reopening data: class NewItemDialogData @@ -385,8 +386,7 @@ void IWizardFactory::destroyFeatureProvider() void IWizardFactory::clearWizardFactories() { - if (!s_areFactoriesLoaded) - return; + s_plugins.clear(); for (IWizardFactory *factory : std::as_const(s_allFactories)) ActionManager::unregisterAction(factory->m_action, actionId(factory)); @@ -399,16 +399,15 @@ void IWizardFactory::clearWizardFactories() QSet<Id> IWizardFactory::pluginFeatures() { - static QSet<Id> plugins; - if (plugins.isEmpty()) { + if (s_plugins.isEmpty()) { // Implicitly create a feature for each plugin loaded: const QVector<ExtensionSystem::PluginSpec *> pluginVector = ExtensionSystem::PluginManager::plugins(); for (const ExtensionSystem::PluginSpec *s : pluginVector) { if (s->state() == ExtensionSystem::PluginSpec::Running) - plugins.insert(Id::fromString(s->name())); + s_plugins.insert(Id::fromString(s->name())); } } - return plugins; + return s_plugins; } QSet<Id> IWizardFactory::availableFeatures(Id platformId) |