forked from qt-creator/qt-creator
WebAssembly: Use the most recent settings access pattern
Includes delaying construction until its first actual use. Change-Id: Ide0f7a12250c2597f45993d6ef0fb604c974a763 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -39,7 +39,6 @@ public:
|
|||||||
WebAssemblyQtVersionFactory qtVersionFactory;
|
WebAssemblyQtVersionFactory qtVersionFactory;
|
||||||
EmrunRunConfigurationFactory emrunRunConfigurationFactory;
|
EmrunRunConfigurationFactory emrunRunConfigurationFactory;
|
||||||
EmrunRunWorkerFactory emrunRunWorkerFactory;
|
EmrunRunWorkerFactory emrunRunWorkerFactory;
|
||||||
WebAssemblySettings settings;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static WebAssemblyPluginPrivate *dd = nullptr;
|
static WebAssemblyPluginPrivate *dd = nullptr;
|
||||||
|
@@ -10,6 +10,7 @@
|
|||||||
#include "webassemblytr.h"
|
#include "webassemblytr.h"
|
||||||
|
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
|
#include <coreplugin/dialogs/ioptionspage.h>
|
||||||
|
|
||||||
#include <utils/aspects.h>
|
#include <utils/aspects.h>
|
||||||
#include <utils/environment.h>
|
#include <utils/environment.h>
|
||||||
@@ -24,13 +25,11 @@
|
|||||||
|
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
|
|
||||||
namespace WebAssembly {
|
namespace WebAssembly::Internal {
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
static WebAssemblySettings *theSettings = nullptr;
|
WebAssemblySettings &settings()
|
||||||
|
|
||||||
WebAssemblySettings *WebAssemblySettings::instance()
|
|
||||||
{
|
{
|
||||||
|
static WebAssemblySettings theSettings;
|
||||||
return theSettings;
|
return theSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,15 +51,9 @@ static QString environmentDisplay(const FilePath &sdkRoot)
|
|||||||
|
|
||||||
WebAssemblySettings::WebAssemblySettings()
|
WebAssemblySettings::WebAssemblySettings()
|
||||||
{
|
{
|
||||||
theSettings = this;
|
|
||||||
|
|
||||||
setSettingsGroup("WebAssembly");
|
setSettingsGroup("WebAssembly");
|
||||||
|
setAutoApply(false);
|
||||||
|
|
||||||
setId(Id(Constants::SETTINGS_ID));
|
|
||||||
setDisplayName(Tr::tr("WebAssembly"));
|
|
||||||
setCategory(ProjectExplorer::Constants::DEVICE_SETTINGS_CATEGORY);
|
|
||||||
|
|
||||||
registerAspect(&emSdk);
|
|
||||||
emSdk.setSettingsKey("EmSdk");
|
emSdk.setSettingsKey("EmSdk");
|
||||||
emSdk.setExpectedKind(Utils::PathChooser::ExistingDirectory);
|
emSdk.setExpectedKind(Utils::PathChooser::ExistingDirectory);
|
||||||
emSdk.setDefaultValue(FileUtils::homePath());
|
emSdk.setDefaultValue(FileUtils::homePath());
|
||||||
@@ -164,5 +157,20 @@ void WebAssemblySettings::updateStatus()
|
|||||||
m_qtVersionDisplay->setVisible(WebAssemblyQtVersion::isUnsupportedQtVersionInstalled());
|
m_qtVersionDisplay->setVisible(WebAssemblyQtVersion::isUnsupportedQtVersionInstalled());
|
||||||
}
|
}
|
||||||
|
|
||||||
} // Internal
|
// WebAssemblySettingsPage
|
||||||
} // WebAssembly
|
|
||||||
|
class WebAssemblySettingsPage final : public Core::IOptionsPage
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
WebAssemblySettingsPage()
|
||||||
|
{
|
||||||
|
setId(Id(Constants::SETTINGS_ID));
|
||||||
|
setDisplayName(Tr::tr("WebAssembly"));
|
||||||
|
setCategory(ProjectExplorer::Constants::DEVICE_SETTINGS_CATEGORY);
|
||||||
|
setSettingsProvider([] { return &settings(); });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const WebAssemblySettingsPage settingsPage;
|
||||||
|
|
||||||
|
} // WebAssembly::Internal
|
||||||
|
@@ -3,23 +3,22 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <coreplugin/dialogs/ioptionspage.h>
|
#include <utils/aspects.h>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QTextBrowser;
|
class QTextBrowser;
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
namespace WebAssembly {
|
namespace Utils { class InfoLabel; }
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
class WebAssemblySettings final : public Core::PagedSettings
|
namespace WebAssembly::Internal {
|
||||||
|
|
||||||
|
class WebAssemblySettings final : public Utils::AspectContainer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
WebAssemblySettings();
|
WebAssemblySettings();
|
||||||
|
|
||||||
static WebAssemblySettings *instance();
|
Utils::FilePathAspect emSdk{this};
|
||||||
|
|
||||||
Utils::FilePathAspect emSdk;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QWidget *m_emSdkEnvGroupBox = nullptr;
|
QWidget *m_emSdkEnvGroupBox = nullptr;
|
||||||
@@ -30,5 +29,6 @@ private:
|
|||||||
void updateStatus();
|
void updateStatus();
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
WebAssemblySettings &settings();
|
||||||
} // namespace WebAssmbly
|
|
||||||
|
} // WebAssmbly::Internal
|
||||||
|
@@ -51,7 +51,7 @@ static void addRegisteredMinGWToEnvironment(Environment &env)
|
|||||||
|
|
||||||
void WebAssemblyToolChain::addToEnvironment(Environment &env) const
|
void WebAssemblyToolChain::addToEnvironment(Environment &env) const
|
||||||
{
|
{
|
||||||
const FilePath emSdk = WebAssemblySettings::instance()->emSdk();
|
const FilePath emSdk = settings().emSdk();
|
||||||
WebAssemblyEmSdk::addToEnvironment(emSdk, env);
|
WebAssemblyEmSdk::addToEnvironment(emSdk, env);
|
||||||
if (env.osType() == OsTypeWindows)
|
if (env.osType() == OsTypeWindows)
|
||||||
addRegisteredMinGWToEnvironment(env);
|
addRegisteredMinGWToEnvironment(env);
|
||||||
@@ -95,7 +95,7 @@ const QVersionNumber &WebAssemblyToolChain::minimumSupportedEmSdkVersion()
|
|||||||
|
|
||||||
static Toolchains doAutoDetect(const ToolchainDetector &detector)
|
static Toolchains doAutoDetect(const ToolchainDetector &detector)
|
||||||
{
|
{
|
||||||
const FilePath sdk = WebAssemblySettings::instance()->emSdk();
|
const FilePath sdk = settings().emSdk();
|
||||||
if (!WebAssemblyEmSdk::isValid(sdk))
|
if (!WebAssemblyEmSdk::isValid(sdk))
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user