summaryrefslogtreecommitdiff
path: root/src/plugins/mcusupport/mcusupportplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/mcusupport/mcusupportplugin.cpp')
-rw-r--r--src/plugins/mcusupport/mcusupportplugin.cpp33
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