From c4204f6eaa5b035d1a6d7c7e764bc22bb574f18b Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Tue, 25 Oct 2022 11:36:19 +0200 Subject: [PATCH] Core: Silence wizard handling The way wizards get created has changed. Originally the factory had been able to return an empty list in case something was wrong. This list's items had been processed. Now it just returns a nullptr for each item as they get processed now one by one. This triggers soft asserts when e.g. having only a subset of plugins loaded like when running plugin unit tests. Amends 1cf6b031cfdf7344eb2ce6a403aa1029b7b8f75e. Change-Id: Ia91df462ea52efe301c2dca07bc69aeb2f569b78 Reviewed-by: Eike Ziller --- src/plugins/coreplugin/iwizardfactory.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/iwizardfactory.cpp b/src/plugins/coreplugin/iwizardfactory.cpp index 47db80bc7f8..8a98593f803 100644 --- a/src/plugins/coreplugin/iwizardfactory.cpp +++ b/src/plugins/coreplugin/iwizardfactory.cpp @@ -175,7 +175,9 @@ QList IWizardFactory::allWizardFactories() QHash sanityCheck; for (const FactoryCreator &fc : std::as_const(s_factoryCreators)) { IWizardFactory *newFactory = fc(); - QTC_ASSERT(newFactory, continue); + // skip factories referencing wizard page generators provided by plugins not loaded + if (!newFactory) + continue; IWizardFactory *existingFactory = sanityCheck.value(newFactory->id()); QTC_ASSERT(existingFactory != newFactory, continue);