aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlessandro Portale <alessandro.portale@qt.io>2020-03-04 17:48:27 +0100
committerAlessandro Portale <alessandro.portale@qt.io>2020-05-06 06:43:24 +0000
commit02efd431998f399017075cc283db27409835337e (patch)
tree0c3d72f3741763809e8ffba9b6dc800150a01188
parentb3f3deccb0e4541a4c6d047e67738a6a44ec302d (diff)
McuSupport: If kits are missing, provide an InfoBar that opens settings
When installing Qt for MCUs via the SDK installer, the user (in many cases first-time evaluator) has to create the kits for Qt for MCUs. For those who see Qt Creator for the first time, it is difficult to find out where to search for the UI that generates those kits. Let's help the user with an InfoBar entry that in case of ... * McuSupport plugin being enabled (by SDK installer) * Settings key [McuSupport]/Package_QtForMCUsSdk set (by SDK installer) * Absence of valid Qt for MCUs Kits ... helps to directly open the right page and tab of the Options dialog. Task-number: QTCREATORBUG-23943 Change-Id: I7d4834633b1b94ef663d62cd395ee071bd123f1f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r--src/plugins/mcusupport/mcusupportplugin.cpp26
-rw-r--r--src/plugins/mcusupport/mcusupportplugin.h1
2 files changed, 27 insertions, 0 deletions
diff --git a/src/plugins/mcusupport/mcusupportplugin.cpp b/src/plugins/mcusupport/mcusupportplugin.cpp
index 0be99d8c05..07f54e061a 100644
--- a/src/plugins/mcusupport/mcusupportplugin.cpp
+++ b/src/plugins/mcusupport/mcusupportplugin.cpp
@@ -33,11 +33,15 @@
#include <coreplugin/coreconstants.h>
#include <coreplugin/icontext.h>
#include <coreplugin/icore.h>
+#include <coreplugin/infobar.h>
#include <projectexplorer/devicesupport/devicemanager.h>
#include <projectexplorer/jsonwizard/jsonwizardfactory.h>
#include <projectexplorer/kitmanager.h>
+#include <QTimer>
+
+using namespace Core;
using namespace ProjectExplorer;
namespace McuSupport {
@@ -90,7 +94,29 @@ void McuSupportPlugin::extensionsInitialized()
connect(KitManager::instance(), &KitManager::kitsLoaded, [](){
McuSupportOptions::removeOutdatedKits();
+ McuSupportPlugin::askUserAboutMcuSupportKitsSetup();
+ });
+}
+
+void McuSupportPlugin::askUserAboutMcuSupportKitsSetup()
+{
+ const char setupMcuSupportKits[] = "SetupMcuSupportKits";
+
+ if (!ICore::infoBar()->canInfoBeAdded(setupMcuSupportKits)
+ || McuSupportOptions::qulDirFromSettings().isEmpty()
+ || !McuSupportOptions::existingKits(nullptr).isEmpty())
+ return;
+
+ InfoBarEntry info(
+ setupMcuSupportKits,
+ tr("Create Kits for Qt for MCUs? "
+ "To do it later, select Options > Devices > MCU."),
+ InfoBarEntry::GlobalSuppression::Enabled);
+ info.setCustomButtonInfo(tr("Create Kits for Qt for MCUs"), [setupMcuSupportKits] {
+ ICore::infoBar()->removeInfo(setupMcuSupportKits);
+ QTimer::singleShot(0, []() { ICore::showOptionsDialog(Constants::SETTINGS_ID); });
});
+ ICore::infoBar()->addInfo(info);
}
} // namespace Internal
diff --git a/src/plugins/mcusupport/mcusupportplugin.h b/src/plugins/mcusupport/mcusupportplugin.h
index 9a5def94fb..2f7c24e605 100644
--- a/src/plugins/mcusupport/mcusupportplugin.h
+++ b/src/plugins/mcusupport/mcusupportplugin.h
@@ -43,6 +43,7 @@ public:
bool initialize(const QStringList &arguments, QString *errorString) override;
void extensionsInitialized() override;
+ static void askUserAboutMcuSupportKitsSetup();
};
} // namespace Internal