forked from qt-creator/qt-creator
Plugins: A bit more Keys and Store
Change-Id: Iee55eeaa881dd9f2047fdbe95ad8d827f4ba34e0 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
@@ -1433,7 +1433,7 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
|
||||
setInitializer([this, target](const BuildInfo &info) {
|
||||
const Kit *k = target->kit();
|
||||
const QtSupport::QtVersion *qt = QtSupport::QtKitAspect::qtVersion(k);
|
||||
const QVariantMap extraInfoMap = info.extraInfo.value<QVariantMap>();
|
||||
const Store extraInfoMap = info.extraInfo.value<Store>();
|
||||
const QString buildType = extraInfoMap.contains(CMAKE_BUILD_TYPE)
|
||||
? extraInfoMap.value(CMAKE_BUILD_TYPE).toString()
|
||||
: info.typeName;
|
||||
@@ -1939,7 +1939,7 @@ BuildInfo CMakeBuildConfigurationFactory::createBuildInfo(BuildType buildType)
|
||||
info.typeName = "Debug";
|
||||
info.displayName = ::ProjectExplorer::Tr::tr("Debug");
|
||||
info.buildType = BuildConfiguration::Debug;
|
||||
QVariantMap extraInfo;
|
||||
Store extraInfo;
|
||||
// enable QML debugging by default
|
||||
extraInfo.insert(Constants::QML_DEBUG_SETTING, TriState::Enabled.toVariant());
|
||||
info.extraInfo = extraInfo;
|
||||
@@ -1964,7 +1964,7 @@ BuildInfo CMakeBuildConfigurationFactory::createBuildInfo(BuildType buildType)
|
||||
info.typeName = "Profile";
|
||||
info.displayName = Tr::tr("Profile");
|
||||
info.buildType = BuildConfiguration::Profile;
|
||||
QVariantMap extraInfo;
|
||||
Store extraInfo;
|
||||
// override CMake build type, which defaults to info.typeName
|
||||
extraInfo.insert(CMAKE_BUILD_TYPE, "RelWithDebInfo");
|
||||
// enable QML debugging by default
|
||||
@@ -2234,32 +2234,29 @@ ConfigureEnvironmentAspect::ConfigureEnvironmentAspect(AspectContainer *containe
|
||||
void ConfigureEnvironmentAspect::fromMap(const Store &map)
|
||||
{
|
||||
// Match the key values from Qt Creator 9.0.0/1 to the ones from EnvironmentAspect
|
||||
const bool cleanSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY))
|
||||
.toBool();
|
||||
const bool cleanSystemEnvironment = map.value(CLEAR_SYSTEM_ENVIRONMENT_KEY).toBool();
|
||||
const QStringList userEnvironmentChanges
|
||||
= map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList();
|
||||
= map.value(USER_ENVIRONMENT_CHANGES_KEY).toStringList();
|
||||
|
||||
const int baseEnvironmentIndex
|
||||
= map.value(QLatin1String(BASE_ENVIRONMENT_KEY), baseEnvironmentBase()).toInt();
|
||||
const int baseEnvironmentIndex = map.value(BASE_ENVIRONMENT_KEY, baseEnvironmentBase()).toInt();
|
||||
|
||||
QVariantMap tmpMap;
|
||||
tmpMap.insert(QLatin1String(BASE_KEY), cleanSystemEnvironment ? 0 : baseEnvironmentIndex);
|
||||
tmpMap.insert(QLatin1String(CHANGES_KEY), userEnvironmentChanges);
|
||||
Store tmpMap;
|
||||
tmpMap.insert(BASE_KEY, cleanSystemEnvironment ? 0 : baseEnvironmentIndex);
|
||||
tmpMap.insert(CHANGES_KEY, userEnvironmentChanges);
|
||||
|
||||
ProjectExplorer::EnvironmentAspect::fromMap(tmpMap);
|
||||
}
|
||||
|
||||
void ConfigureEnvironmentAspect::toMap(Store &map) const
|
||||
{
|
||||
QVariantMap tmpMap;
|
||||
Store tmpMap;
|
||||
ProjectExplorer::EnvironmentAspect::toMap(tmpMap);
|
||||
|
||||
const int baseKey = tmpMap.value(BASE_KEY).toInt();
|
||||
|
||||
map.insert(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), baseKey == 0);
|
||||
map.insert(QLatin1String(BASE_ENVIRONMENT_KEY), baseKey);
|
||||
map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY),
|
||||
tmpMap.value(CHANGES_KEY).toStringList());
|
||||
map.insert(CLEAR_SYSTEM_ENVIRONMENT_KEY, baseKey == 0);
|
||||
map.insert(BASE_ENVIRONMENT_KEY, baseKey);
|
||||
map.insert(USER_ENVIRONMENT_CHANGES_KEY, tmpMap.value(CHANGES_KEY).toStringList());
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
@@ -277,23 +277,22 @@ void CMakeBuildStep::toMap(Utils::Store &map) const
|
||||
{
|
||||
CMakeAbstractProcessStep::toMap(map);
|
||||
map.insert(BUILD_TARGETS_KEY, m_buildTargets);
|
||||
map.insert(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), m_clearSystemEnvironment);
|
||||
map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), EnvironmentItem::toStringList(m_userEnvironmentChanges));
|
||||
map.insert(QLatin1String(BUILD_PRESET_KEY), m_buildPreset);
|
||||
map.insert(CLEAR_SYSTEM_ENVIRONMENT_KEY, m_clearSystemEnvironment);
|
||||
map.insert(USER_ENVIRONMENT_CHANGES_KEY, EnvironmentItem::toStringList(m_userEnvironmentChanges));
|
||||
map.insert(BUILD_PRESET_KEY, m_buildPreset);
|
||||
}
|
||||
|
||||
void CMakeBuildStep::fromMap(const Utils::Store &map)
|
||||
{
|
||||
setBuildTargets(map.value(BUILD_TARGETS_KEY).toStringList());
|
||||
|
||||
m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY))
|
||||
.toBool();
|
||||
m_clearSystemEnvironment = map.value(CLEAR_SYSTEM_ENVIRONMENT_KEY).toBool();
|
||||
m_userEnvironmentChanges = EnvironmentItem::fromStringList(
|
||||
map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
|
||||
map.value(USER_ENVIRONMENT_CHANGES_KEY).toStringList());
|
||||
|
||||
updateAndEmitEnvironmentChanged();
|
||||
|
||||
m_buildPreset = map.value(QLatin1String(BUILD_PRESET_KEY)).toString();
|
||||
m_buildPreset = map.value(BUILD_PRESET_KEY).toString();
|
||||
|
||||
BuildStep::fromMap(map);
|
||||
}
|
||||
|
||||
@@ -409,14 +409,14 @@ CMakeToolItemConfigWidget::CMakeToolItemConfigWidget(CMakeToolItemModel *model)
|
||||
m_binaryChooser = new PathChooser(this);
|
||||
m_binaryChooser->setExpectedKind(PathChooser::ExistingCommand);
|
||||
m_binaryChooser->setMinimumWidth(400);
|
||||
m_binaryChooser->setHistoryCompleter(QLatin1String("Cmake.Command.History"));
|
||||
m_binaryChooser->setHistoryCompleter("Cmake.Command.History");
|
||||
m_binaryChooser->setCommandVersionArguments({"--version"});
|
||||
m_binaryChooser->setAllowPathFromDevice(true);
|
||||
|
||||
m_qchFileChooser = new PathChooser(this);
|
||||
m_qchFileChooser->setExpectedKind(PathChooser::File);
|
||||
m_qchFileChooser->setMinimumWidth(400);
|
||||
m_qchFileChooser->setHistoryCompleter(QLatin1String("Cmake.qchFile.History"));
|
||||
m_qchFileChooser->setHistoryCompleter("Cmake.qchFile.History");
|
||||
m_qchFileChooser->setPromptDialogFilter("*.qch");
|
||||
m_qchFileChooser->setPromptDialogTitle(Tr::tr("CMake .qch File"));
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ CMakeTool::CMakeTool(Detection d, const Id &id)
|
||||
QTC_ASSERT(m_id.isValid(), m_id = Id::fromString(QUuid::createUuid().toString()));
|
||||
}
|
||||
|
||||
CMakeTool::CMakeTool(const QVariantMap &map, bool fromSdk) :
|
||||
CMakeTool::CMakeTool(const Store &map, bool fromSdk) :
|
||||
CMakeTool(fromSdk ? CMakeTool::AutoDetection : CMakeTool::ManualDetection,
|
||||
Id::fromSetting(map.value(CMAKE_INFORMATION_ID)))
|
||||
{
|
||||
@@ -175,9 +175,9 @@ void CMakeTool::runCMake(Process &cmake, const QStringList &args, int timeoutS)
|
||||
cmake.runBlocking();
|
||||
}
|
||||
|
||||
QVariantMap CMakeTool::toMap() const
|
||||
Store CMakeTool::toMap() const
|
||||
{
|
||||
QVariantMap data;
|
||||
Store data;
|
||||
data.insert(CMAKE_INFORMATION_DISPLAYNAME, m_displayName);
|
||||
data.insert(CMAKE_INFORMATION_ID, m_id.toSetting());
|
||||
data.insert(CMAKE_INFORMATION_COMMAND, m_executable.toString());
|
||||
|
||||
@@ -52,7 +52,7 @@ public:
|
||||
using PathMapper = std::function<Utils::FilePath (const Utils::FilePath &)>;
|
||||
|
||||
explicit CMakeTool(Detection d, const Utils::Id &id);
|
||||
explicit CMakeTool(const QVariantMap &map, bool fromSdk);
|
||||
explicit CMakeTool(const Utils::Store &map, bool fromSdk);
|
||||
~CMakeTool();
|
||||
|
||||
static Utils::Id createId();
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
CMakeToolSettingsUpgraderV0() : VersionUpgrader(0, "4.6") { }
|
||||
|
||||
// NOOP
|
||||
QVariantMap upgrade(const QVariantMap &data) final { return data; }
|
||||
Store upgrade(const Store &data) final { return data; }
|
||||
};
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
@@ -170,8 +170,8 @@ void CMakeToolSettingsAccessor::saveCMakeTools(const QList<CMakeTool *> &cmakeTo
|
||||
const Id &defaultId,
|
||||
QWidget *parent)
|
||||
{
|
||||
QVariantMap data;
|
||||
data.insert(QLatin1String(CMAKE_TOOL_DEFAULT_KEY), defaultId.toSetting());
|
||||
Store data;
|
||||
data.insert(CMAKE_TOOL_DEFAULT_KEY, defaultId.toSetting());
|
||||
|
||||
int count = 0;
|
||||
const bool autoRun = settings().autorunCMake();
|
||||
@@ -183,30 +183,30 @@ void CMakeToolSettingsAccessor::saveCMakeTools(const QList<CMakeTool *> &cmakeTo
|
||||
item->setAutorun(autoRun);
|
||||
|
||||
if (fi.needsDevice() || fi.isExecutableFile()) { // be graceful for device related stuff
|
||||
QVariantMap tmp = item->toMap();
|
||||
Store tmp = item->toMap();
|
||||
if (tmp.isEmpty())
|
||||
continue;
|
||||
data.insert(QString::fromLatin1(CMAKE_TOOL_DATA_KEY) + QString::number(count), tmp);
|
||||
data.insert(CMAKE_TOOL_DATA_KEY + Key::number(count), QVariant::fromValue(tmp));
|
||||
++count;
|
||||
}
|
||||
}
|
||||
data.insert(QLatin1String(CMAKE_TOOL_COUNT_KEY), count);
|
||||
data.insert(CMAKE_TOOL_COUNT_KEY, count);
|
||||
|
||||
saveSettings(data, parent);
|
||||
}
|
||||
|
||||
CMakeToolSettingsAccessor::CMakeTools
|
||||
CMakeToolSettingsAccessor::cmakeTools(const QVariantMap &data, bool fromSdk) const
|
||||
CMakeToolSettingsAccessor::cmakeTools(const Store &data, bool fromSdk) const
|
||||
{
|
||||
CMakeTools result;
|
||||
|
||||
int count = data.value(QLatin1String(CMAKE_TOOL_COUNT_KEY), 0).toInt();
|
||||
int count = data.value(CMAKE_TOOL_COUNT_KEY, 0).toInt();
|
||||
for (int i = 0; i < count; ++i) {
|
||||
const QString key = QString::fromLatin1(CMAKE_TOOL_DATA_KEY) + QString::number(i);
|
||||
const Key key = CMAKE_TOOL_DATA_KEY + Key::number(i);
|
||||
if (!data.contains(key))
|
||||
continue;
|
||||
|
||||
const QVariantMap dbMap = data.value(key).toMap();
|
||||
const Store dbMap = data.value(key).value<Store>();
|
||||
auto item = std::make_unique<CMakeTool>(dbMap, fromSdk);
|
||||
const FilePath cmakeExecutable = item->cmakeExecutable();
|
||||
if (item->isAutoDetected() && !cmakeExecutable.needsDevice() && !cmakeExecutable.isExecutableFile()) {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <utils/id.h>
|
||||
#include <utils/settingsaccessor.h>
|
||||
#include <utils/store.h>
|
||||
|
||||
namespace CMakeProjectManager {
|
||||
|
||||
@@ -29,7 +30,7 @@ public:
|
||||
QWidget *parent);
|
||||
|
||||
private:
|
||||
CMakeTools cmakeTools(const QVariantMap &data, bool fromSdk) const;
|
||||
CMakeTools cmakeTools(const Utils::Store &data, bool fromSdk) const;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
Reference in New Issue
Block a user