McuSupport: manage kits for different SDK versions side-by-side

Task-number: QTCREATORBUG-25044
Change-Id: I6fbadd1e4192e9958ec4bb1a5bbbfe82c168fc2d
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Christiaan Janssen
2021-03-10 16:38:45 +01:00
committed by christiaan.janssen
parent a202301918
commit 5dcf2ba0fa
5 changed files with 173 additions and 6 deletions

View File

@@ -122,5 +122,33 @@ void McuSupportPlugin::askUserAboutMcuSupportKitsSetup()
ICore::infoBar()->addInfo(info);
}
void McuSupportPlugin::askUserAboutMcuSupportKitsUpgrade()
{
const char upgradeMcuSupportKits[] = "UpgradeMcuSupportKits";
if (!ICore::infoBar()->canInfoBeAdded(upgradeMcuSupportKits))
return;
Utils::InfoBarEntry info(upgradeMcuSupportKits,
tr("New version of Qt for MCUs detected. Upgrade existing Kits?"),
Utils::InfoBarEntry::GlobalSuppression::Enabled);
static McuSupportOptions::UpgradeOption selectedOption;
const QStringList options = { tr("Create new kits"), tr("Replace existing kits") };
selectedOption = McuSupportOptions::UpgradeOption::Keep;
info.setComboInfo(options, [upgradeMcuSupportKits, options](const QString &selected) {
selectedOption = options.indexOf(selected) == 0 ?
McuSupportOptions::UpgradeOption::Keep :
McuSupportOptions::UpgradeOption::Replace;
});
info.setCustomButtonInfo(tr("Proceed"), [upgradeMcuSupportKits] {
ICore::infoBar()->removeInfo(upgradeMcuSupportKits);
QTimer::singleShot(0, []() { McuSupportOptions::upgradeKits(selectedOption); });
});
ICore::infoBar()->addInfo(info);
}
} // namespace Internal
} // namespace McuSupport