diff --git a/src/plugins/webassembly/webassemblydevice.cpp b/src/plugins/webassembly/webassemblydevice.cpp index e2e308ac86a..37b042124b0 100644 --- a/src/plugins/webassembly/webassemblydevice.cpp +++ b/src/plugins/webassembly/webassemblydevice.cpp @@ -1,13 +1,27 @@ // Copyright (C) 2019 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 -#include "webassemblyconstants.h" #include "webassemblydevice.h" + +#include "webassemblyconstants.h" +#include "webassemblyqtversion.h" +#include "webassemblytoolchain.h" #include "webassemblytr.h" +#include +#include +#include + #include #include +#include +#include +#include + +#include + +using namespace Core; using namespace ProjectExplorer; using namespace Utils; @@ -30,11 +44,31 @@ public: } }; -IDevicePtr createWebAssemblyDevice() +static IDevicePtr createWebAssemblyDevice() { return IDevicePtr(new WebAssemblyDevice); } +static void askUserAboutEmSdkSetup() +{ + const char setupWebAssemblyEmSdk[] = "SetupWebAssemblyEmSdk"; + + if (!ICore::infoBar()->canInfoBeAdded(setupWebAssemblyEmSdk) + || !WebAssemblyQtVersion::isQtVersionInstalled() + || WebAssemblyToolChain::areToolChainsRegistered()) + return; + + InfoBarEntry info(setupWebAssemblyEmSdk, + Tr::tr("Setup Emscripten SDK for WebAssembly? " + "To do it later, select Edit > Preferences > Devices > WebAssembly."), + InfoBarEntry::GlobalSuppression::Enabled); + info.addCustomButton(Tr::tr("Setup Emscripten SDK"), [setupWebAssemblyEmSdk] { + ICore::infoBar()->removeInfo(setupWebAssemblyEmSdk); + QTimer::singleShot(0, []() { ICore::showOptionsDialog(Constants::SETTINGS_ID); }); + }); + ICore::infoBar()->addInfo(info); +} + class WebAssemblyDeviceFactory final : public IDeviceFactory { public: @@ -52,6 +86,11 @@ public: void setupWebAssemblyDevice() { static WebAssemblyDeviceFactory theWebAssemblyDeviceFactory; + + QObject::connect(KitManager::instance(), &KitManager::kitsLoaded, [] { + DeviceManager::instance()->addDevice(createWebAssemblyDevice()); + askUserAboutEmSdkSetup(); + }); } } // WebAssembly::Internal diff --git a/src/plugins/webassembly/webassemblydevice.h b/src/plugins/webassembly/webassemblydevice.h index 805f622b917..01d1293b566 100644 --- a/src/plugins/webassembly/webassemblydevice.h +++ b/src/plugins/webassembly/webassemblydevice.h @@ -3,12 +3,8 @@ #pragma once -#include - namespace WebAssembly::Internal { -ProjectExplorer::IDevicePtr createWebAssemblyDevice(); - void setupWebAssemblyDevice(); } // WebAssembly::Interenal diff --git a/src/plugins/webassembly/webassemblyplugin.cpp b/src/plugins/webassembly/webassemblyplugin.cpp index ffa159694d0..3cabaf6ea92 100644 --- a/src/plugins/webassembly/webassemblyplugin.cpp +++ b/src/plugins/webassembly/webassemblyplugin.cpp @@ -6,52 +6,18 @@ #ifdef WITH_TESTS #include "webassembly_test.h" #endif // WITH_TESTS -#include "webassemblyconstants.h" #include "webassemblydevice.h" #include "webassemblyqtversion.h" #include "webassemblyrunconfiguration.h" #include "webassemblytoolchain.h" -#include "webassemblytr.h" - -#include -#include -#include #include -#include -#include - -#include - -#include - -using namespace Core; using namespace ProjectExplorer; using namespace Utils; namespace WebAssembly::Internal { -static void askUserAboutEmSdkSetup() -{ - const char setupWebAssemblyEmSdk[] = "SetupWebAssemblyEmSdk"; - - if (!ICore::infoBar()->canInfoBeAdded(setupWebAssemblyEmSdk) - || !WebAssemblyQtVersion::isQtVersionInstalled() - || WebAssemblyToolChain::areToolChainsRegistered()) - return; - - InfoBarEntry info(setupWebAssemblyEmSdk, - Tr::tr("Setup Emscripten SDK for WebAssembly? " - "To do it later, select Edit > Preferences > Devices > WebAssembly."), - InfoBarEntry::GlobalSuppression::Enabled); - info.addCustomButton(Tr::tr("Setup Emscripten SDK"), [setupWebAssemblyEmSdk] { - ICore::infoBar()->removeInfo(setupWebAssemblyEmSdk); - QTimer::singleShot(0, []() { ICore::showOptionsDialog(Constants::SETTINGS_ID); }); - }); - ICore::infoBar()->addInfo(info); -} - class WebAssemblyPlugin final : public ExtensionSystem::IPlugin { Q_OBJECT @@ -69,13 +35,6 @@ public: addTest(); #endif // WITH_TESTS } - void extensionsInitialized() final - { - connect(KitManager::instance(), &KitManager::kitsLoaded, this, [] { - DeviceManager::instance()->addDevice(createWebAssemblyDevice()); - askUserAboutEmSdkSetup(); - }); - } }; } // WebAssembly::Internal