diff options
Diffstat (limited to 'src/plugins/mcusupport/mcusupportplugin.cpp')
-rw-r--r-- | src/plugins/mcusupport/mcusupportplugin.cpp | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/plugins/mcusupport/mcusupportplugin.cpp b/src/plugins/mcusupport/mcusupportplugin.cpp index f762231851..6b4e851c47 100644 --- a/src/plugins/mcusupport/mcusupportplugin.cpp +++ b/src/plugins/mcusupport/mcusupportplugin.cpp @@ -135,6 +135,7 @@ void McuSupportPlugin::extensionsInitialized() McuKitManager::createAutomaticKits(dd->m_settingsHandler); McuKitManager::fixExistingKits(dd->m_settingsHandler); askUserAboutMcuSupportKitsSetup(); + askUserAboutRemovingUninstalledTargetsKits(); }); } @@ -188,4 +189,34 @@ void McuSupportPlugin::askUserAboutMcuSupportKitsUpgrade(const SettingsHandler:: ICore::infoBar()->addInfo(info); } -} // McuSupport::Internal +void McuSupportPlugin::askUserAboutRemovingUninstalledTargetsKits() +{ + const char removeUninstalledKits[] = "RemoveUninstalledKits"; + QList<Kit *> uninstalledTargetsKits; + + if (!ICore::infoBar()->canInfoBeAdded(removeUninstalledKits) + || (uninstalledTargetsKits = McuKitManager::findUninstalledTargetsKits()).isEmpty()) + return; + + Utils::InfoBarEntry + info(removeUninstalledKits, + Tr::tr("Detected %n uninstalled MCU target(s). Remove corresponding kits?", + nullptr, + uninstalledTargetsKits.size()), + Utils::InfoBarEntry::GlobalSuppression::Enabled); + + info.addCustomButton(Tr::tr("Keep"), [removeUninstalledKits] { + ICore::infoBar()->removeInfo(removeUninstalledKits); + }); + + info.addCustomButton(Tr::tr("Remove"), [removeUninstalledKits, uninstalledTargetsKits] { + ICore::infoBar()->removeInfo(removeUninstalledKits); + QTimer::singleShot(0, [uninstalledTargetsKits]() { + McuKitManager::removeUninstalledTargetsKits(uninstalledTargetsKits); + }); + }); + + ICore::infoBar()->addInfo(info); +} + +} // namespace McuSupport::Internal |