aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/coreplugin/iwizardfactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/coreplugin/iwizardfactory.cpp')
-rw-r--r--src/plugins/coreplugin/iwizardfactory.cpp11
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)