forked from qt-creator/qt-creator
ProjectExplorer: Aspectify Default Build Properties page
Change-Id: I3341ced5597f5b891b66da77e074fdf3217327ea Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -12,8 +12,7 @@ add_qtc_plugin(ProjectExplorer
|
|||||||
appoutputpane.cpp appoutputpane.h
|
appoutputpane.cpp appoutputpane.h
|
||||||
baseprojectwizarddialog.cpp baseprojectwizarddialog.h
|
baseprojectwizarddialog.cpp baseprojectwizarddialog.h
|
||||||
buildaspects.cpp buildaspects.h
|
buildaspects.cpp buildaspects.h
|
||||||
buildpropertiessettings.h
|
buildpropertiessettings.cpp buildpropertiessettings.h
|
||||||
buildpropertiessettingspage.cpp buildpropertiessettingspage.h
|
|
||||||
buildconfiguration.cpp buildconfiguration.h
|
buildconfiguration.cpp buildconfiguration.h
|
||||||
buildinfo.cpp buildinfo.h
|
buildinfo.cpp buildinfo.h
|
||||||
buildmanager.cpp buildmanager.h
|
buildmanager.cpp buildmanager.h
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ SeparateDebugInfoAspect::SeparateDebugInfoAspect()
|
|||||||
{
|
{
|
||||||
setDisplayName(tr("Separate debug info:"));
|
setDisplayName(tr("Separate debug info:"));
|
||||||
setSettingsKey("SeparateDebugInfo");
|
setSettingsKey("SeparateDebugInfo");
|
||||||
setValue(ProjectExplorerPlugin::buildPropertiesSettings().separateDebugInfo);
|
setValue(ProjectExplorerPlugin::buildPropertiesSettings().separateDebugInfo.value());
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace ProjectExplorer
|
} // namespace ProjectExplorer
|
||||||
|
|||||||
128
src/plugins/projectexplorer/buildpropertiessettings.cpp
Normal file
128
src/plugins/projectexplorer/buildpropertiessettings.cpp
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2021 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of Qt Creator.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
|
** General Public License version 3 as published by the Free Software
|
||||||
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||||
|
** included in the packaging of this file. Please review the following
|
||||||
|
** information to ensure the GNU General Public License requirements will
|
||||||
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include "buildpropertiessettings.h"
|
||||||
|
|
||||||
|
#include "projectexplorerconstants.h"
|
||||||
|
|
||||||
|
#include <utils/layoutbuilder.h>
|
||||||
|
|
||||||
|
using namespace Utils;
|
||||||
|
|
||||||
|
namespace ProjectExplorer {
|
||||||
|
|
||||||
|
// Default directory:
|
||||||
|
const char DEFAULT_BUILD_DIRECTORY_TEMPLATE[]
|
||||||
|
= "../%{JS: Util.asciify(\"build-%{Project:Name}-%{Kit:FileSystemName}-%{BuildConfig:Name}\")}";
|
||||||
|
|
||||||
|
BuildPropertiesSettings::BuildTriStateAspect::BuildTriStateAspect()
|
||||||
|
: TriStateAspect{
|
||||||
|
BuildPropertiesSettings::tr("Enable"),
|
||||||
|
BuildPropertiesSettings::tr("Disable"),
|
||||||
|
BuildPropertiesSettings::tr("Use Project Default")}
|
||||||
|
{}
|
||||||
|
|
||||||
|
BuildPropertiesSettings::BuildPropertiesSettings()
|
||||||
|
{
|
||||||
|
setAutoApply(false);
|
||||||
|
|
||||||
|
registerAspect(&buildDirectoryTemplate);
|
||||||
|
buildDirectoryTemplate.setDisplayStyle(StringAspect::LineEditDisplay);
|
||||||
|
buildDirectoryTemplate.setSettingsKey("Directories/BuildDirectory.TemplateV2");
|
||||||
|
buildDirectoryTemplate.setDefaultValue(DEFAULT_BUILD_DIRECTORY_TEMPLATE);
|
||||||
|
buildDirectoryTemplate.setLabelText(tr("Default build directory:"));
|
||||||
|
buildDirectoryTemplate.setUseGlobalMacroExpander();
|
||||||
|
buildDirectoryTemplate.setUseResetButton();
|
||||||
|
|
||||||
|
registerAspect(&buildDirectoryTemplateOld); // TODO: Remove in ~4.16
|
||||||
|
buildDirectoryTemplateOld.setSettingsKey("Directories/BuildDirectory.Template");
|
||||||
|
buildDirectoryTemplateOld.setDefaultValue(DEFAULT_BUILD_DIRECTORY_TEMPLATE);
|
||||||
|
|
||||||
|
registerAspect(&separateDebugInfo);
|
||||||
|
separateDebugInfo.setSettingsKey("ProjectExplorer/Settings/SeparateDebugInfo");
|
||||||
|
separateDebugInfo.setLabelText(tr("Separate debug info:"));
|
||||||
|
|
||||||
|
registerAspect(&qmlDebugging);
|
||||||
|
qmlDebugging.setSettingsKey("ProjectExplorer/Settings/QmlDebugging");
|
||||||
|
qmlDebugging.setLabelText(tr("QML debugging:"));
|
||||||
|
|
||||||
|
registerAspect(&qtQuickCompiler);
|
||||||
|
qtQuickCompiler.setSettingsKey("ProjectExplorer/Settings/QtQuickCompiler");
|
||||||
|
qtQuickCompiler.setLabelText(tr("Use Qt Quick Compiler:"));
|
||||||
|
|
||||||
|
QObject::connect(&showQtSettings, &BoolAspect::valueChanged,
|
||||||
|
&qmlDebugging, &BaseAspect::setVisible);
|
||||||
|
QObject::connect(&showQtSettings, &BoolAspect::valueChanged,
|
||||||
|
&qtQuickCompiler, &BaseAspect::setVisible);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuildPropertiesSettings::readSettings(QSettings *s)
|
||||||
|
{
|
||||||
|
AspectContainer::readSettings(s);
|
||||||
|
|
||||||
|
// TODO: Remove in ~4.16
|
||||||
|
QString v = buildDirectoryTemplate.value();
|
||||||
|
if (v.isEmpty())
|
||||||
|
v = buildDirectoryTemplateOld.value();
|
||||||
|
if (v.isEmpty())
|
||||||
|
v = DEFAULT_BUILD_DIRECTORY_TEMPLATE;
|
||||||
|
v.replace("%{CurrentProject:Name}", "%{Project:Name}");
|
||||||
|
v.replace("%{CurrentKit:FileSystemName}", "%{Kit:FileSystemName}");
|
||||||
|
v.replace("%{CurrentBuild:Name}", "%{BuildConfig:Name}");
|
||||||
|
buildDirectoryTemplate.setValue(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString BuildPropertiesSettings::defaultBuildDirectoryTemplate()
|
||||||
|
{
|
||||||
|
return QString(DEFAULT_BUILD_DIRECTORY_TEMPLATE);
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace Internal {
|
||||||
|
|
||||||
|
BuildPropertiesSettingsPage::BuildPropertiesSettingsPage(BuildPropertiesSettings *settings)
|
||||||
|
{
|
||||||
|
setId("AB.ProjectExplorer.BuildPropertiesSettingsPage");
|
||||||
|
setDisplayName(BuildPropertiesSettings::tr("Default Build Properties"));
|
||||||
|
setCategory(ProjectExplorer::Constants::BUILD_AND_RUN_SETTINGS_CATEGORY);
|
||||||
|
setSettings(settings);
|
||||||
|
|
||||||
|
setLayouter([settings](QWidget *widget) {
|
||||||
|
BuildPropertiesSettings &s = *settings;
|
||||||
|
using namespace Layouting;
|
||||||
|
|
||||||
|
Column {
|
||||||
|
Form {
|
||||||
|
s.buildDirectoryTemplate,
|
||||||
|
s.separateDebugInfo,
|
||||||
|
s.qmlDebugging,
|
||||||
|
s.qtQuickCompiler
|
||||||
|
},
|
||||||
|
Stretch()
|
||||||
|
}.attachTo(widget);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
} // Internal
|
||||||
|
} // ProjectExplorer
|
||||||
@@ -27,19 +27,44 @@
|
|||||||
|
|
||||||
#include "projectexplorer_export.h"
|
#include "projectexplorer_export.h"
|
||||||
|
|
||||||
|
#include <coreplugin/dialogs/ioptionspage.h>
|
||||||
|
|
||||||
#include <utils/aspects.h>
|
#include <utils/aspects.h>
|
||||||
|
|
||||||
namespace ProjectExplorer {
|
namespace ProjectExplorer {
|
||||||
|
|
||||||
class PROJECTEXPLORER_EXPORT BuildPropertiesSettings
|
class PROJECTEXPLORER_EXPORT BuildPropertiesSettings : public Utils::AspectContainer
|
||||||
{
|
{
|
||||||
|
Q_DECLARE_TR_FUNCTIONS(ProjectExplorer::Internal::BuildPropertiesSettings)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QString buildDirectoryTemplate;
|
BuildPropertiesSettings();
|
||||||
QString buildDirectoryTemplateOld; // TODO: Remove in ~4.16
|
|
||||||
Utils::TriState separateDebugInfo;
|
class BuildTriStateAspect : public Utils::TriStateAspect
|
||||||
Utils::TriState qmlDebugging;
|
{
|
||||||
Utils::TriState qtQuickCompiler;
|
public:
|
||||||
bool showQtSettings = false;
|
BuildTriStateAspect();
|
||||||
|
};
|
||||||
|
|
||||||
|
Utils::StringAspect buildDirectoryTemplate;
|
||||||
|
Utils::StringAspect buildDirectoryTemplateOld; // TODO: Remove in ~4.16
|
||||||
|
BuildTriStateAspect separateDebugInfo;
|
||||||
|
BuildTriStateAspect qmlDebugging;
|
||||||
|
BuildTriStateAspect qtQuickCompiler;
|
||||||
|
Utils::BoolAspect showQtSettings;
|
||||||
|
|
||||||
|
void readSettings(QSettings *settings);
|
||||||
|
|
||||||
|
QString defaultBuildDirectoryTemplate();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
namespace Internal {
|
||||||
|
|
||||||
|
class BuildPropertiesSettingsPage final : public Core::IOptionsPage
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit BuildPropertiesSettingsPage(BuildPropertiesSettings *settings);
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace Internal
|
||||||
} // namespace ProjectExplorer
|
} // namespace ProjectExplorer
|
||||||
|
|||||||
@@ -1,118 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2019 The Qt Company Ltd.
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator.
|
|
||||||
**
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
||||||
** information use the contact form at https://www.qt.io/contact-us.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3 as published by the Free Software
|
|
||||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
||||||
** included in the packaging of this file. Please review the following
|
|
||||||
** information to ensure the GNU General Public License requirements will
|
|
||||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "buildpropertiessettingspage.h"
|
|
||||||
|
|
||||||
#include "buildpropertiessettings.h"
|
|
||||||
#include "projectexplorer.h"
|
|
||||||
|
|
||||||
#include <utils/variablechooser.h>
|
|
||||||
|
|
||||||
#include <QComboBox>
|
|
||||||
#include <QFormLayout>
|
|
||||||
#include <QHBoxLayout>
|
|
||||||
#include <QLineEdit>
|
|
||||||
#include <QPushButton>
|
|
||||||
|
|
||||||
using namespace Utils;
|
|
||||||
|
|
||||||
namespace ProjectExplorer {
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
class BuildPropertiesSettingsWidget final : public Core::IOptionsPageWidget
|
|
||||||
{
|
|
||||||
Q_DECLARE_TR_FUNCTIONS(ProjectExplorer::Internal::BuildPropertiesSettingsPage)
|
|
||||||
|
|
||||||
public:
|
|
||||||
BuildPropertiesSettingsWidget()
|
|
||||||
{
|
|
||||||
const BuildPropertiesSettings &settings = ProjectExplorerPlugin::buildPropertiesSettings();
|
|
||||||
for (QComboBox * const comboBox : {&m_separateDebugInfoComboBox, &m_qmlDebuggingComboBox,
|
|
||||||
&m_qtQuickCompilerComboBox}) {
|
|
||||||
comboBox->addItem(tr("Enable"), TriState::Enabled.toVariant());
|
|
||||||
comboBox->addItem(tr("Disable"),TriState::Disabled.toVariant());
|
|
||||||
comboBox->addItem(tr("Use Project Default"), TriState::Default.toVariant());
|
|
||||||
}
|
|
||||||
m_separateDebugInfoComboBox.setCurrentIndex(m_separateDebugInfoComboBox
|
|
||||||
.findData(settings.separateDebugInfo.toVariant()));
|
|
||||||
m_qmlDebuggingComboBox.setCurrentIndex(m_qmlDebuggingComboBox
|
|
||||||
.findData(settings.qmlDebugging.toVariant()));
|
|
||||||
m_qtQuickCompilerComboBox.setCurrentIndex(m_qtQuickCompilerComboBox
|
|
||||||
.findData(settings.qtQuickCompiler.toVariant()));
|
|
||||||
const auto layout = new QFormLayout(this);
|
|
||||||
const auto buildDirLayout = new QHBoxLayout;
|
|
||||||
const auto resetButton = new QPushButton(tr("Reset"));
|
|
||||||
connect(resetButton, &QPushButton::clicked, this, [this] {
|
|
||||||
m_buildDirTemplateLineEdit.setText(
|
|
||||||
ProjectExplorerPlugin::defaultBuildDirectoryTemplate());
|
|
||||||
});
|
|
||||||
connect(&m_buildDirTemplateLineEdit, &QLineEdit::textChanged,
|
|
||||||
this, [this, resetButton] {
|
|
||||||
resetButton->setEnabled(m_buildDirTemplateLineEdit.text()
|
|
||||||
!= ProjectExplorerPlugin::defaultBuildDirectoryTemplate());
|
|
||||||
});
|
|
||||||
const auto chooser = new VariableChooser(this);
|
|
||||||
chooser->addSupportedWidget(&m_buildDirTemplateLineEdit);
|
|
||||||
m_buildDirTemplateLineEdit.setText(settings.buildDirectoryTemplate);
|
|
||||||
buildDirLayout->addWidget(&m_buildDirTemplateLineEdit);
|
|
||||||
buildDirLayout->addWidget(resetButton);
|
|
||||||
layout->addRow(tr("Default build directory:"), buildDirLayout);
|
|
||||||
layout->addRow(tr("Separate debug info:"), &m_separateDebugInfoComboBox);
|
|
||||||
if (settings.showQtSettings) {
|
|
||||||
layout->addRow(tr("QML debugging:"), &m_qmlDebuggingComboBox);
|
|
||||||
layout->addRow(tr("Use Qt Quick Compiler:"), &m_qtQuickCompilerComboBox);
|
|
||||||
} else {
|
|
||||||
m_qmlDebuggingComboBox.hide();
|
|
||||||
m_qtQuickCompilerComboBox.hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void apply() final
|
|
||||||
{
|
|
||||||
BuildPropertiesSettings s = ProjectExplorerPlugin::buildPropertiesSettings();
|
|
||||||
s.buildDirectoryTemplate = m_buildDirTemplateLineEdit.text();
|
|
||||||
s.separateDebugInfo = TriState::fromVariant(m_separateDebugInfoComboBox.currentData());
|
|
||||||
s.qmlDebugging = TriState::fromVariant(m_qmlDebuggingComboBox.currentData());
|
|
||||||
s.qtQuickCompiler = TriState::fromVariant(m_qtQuickCompilerComboBox.currentData());
|
|
||||||
ProjectExplorerPlugin::setBuildPropertiesSettings(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
QLineEdit m_buildDirTemplateLineEdit;
|
|
||||||
QComboBox m_separateDebugInfoComboBox;
|
|
||||||
QComboBox m_qmlDebuggingComboBox;
|
|
||||||
QComboBox m_qtQuickCompilerComboBox;
|
|
||||||
};
|
|
||||||
|
|
||||||
BuildPropertiesSettingsPage::BuildPropertiesSettingsPage()
|
|
||||||
{
|
|
||||||
setId("AB.ProjectExplorer.BuildPropertiesSettingsPage");
|
|
||||||
setDisplayName(BuildPropertiesSettingsWidget::tr("Default Build Properties"));
|
|
||||||
setCategory(Constants::BUILD_AND_RUN_SETTINGS_CATEGORY);
|
|
||||||
setWidgetCreator([] { return new BuildPropertiesSettingsWidget; });
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
} // namespace ProjectExplorer
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2019 The Qt Company Ltd.
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator.
|
|
||||||
**
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
||||||
** information use the contact form at https://www.qt.io/contact-us.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3 as published by the Free Software
|
|
||||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
||||||
** included in the packaging of this file. Please review the following
|
|
||||||
** information to ensure the GNU General Public License requirements will
|
|
||||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <coreplugin/dialogs/ioptionspage.h>
|
|
||||||
|
|
||||||
namespace ProjectExplorer {
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
class BuildPropertiesSettingsPage final : public Core::IOptionsPage
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BuildPropertiesSettingsPage();
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
} // namespace ProjectExplorer
|
|
||||||
@@ -27,7 +27,6 @@
|
|||||||
|
|
||||||
#include "appoutputpane.h"
|
#include "appoutputpane.h"
|
||||||
#include "buildpropertiessettings.h"
|
#include "buildpropertiessettings.h"
|
||||||
#include "buildpropertiessettingspage.h"
|
|
||||||
#include "buildsteplist.h"
|
#include "buildsteplist.h"
|
||||||
#include "buildsystem.h"
|
#include "buildsystem.h"
|
||||||
#include "compileoutputwindow.h"
|
#include "compileoutputwindow.h"
|
||||||
@@ -256,10 +255,6 @@ const char RUNMENUCONTEXTMENU[] = "Project.RunMenu";
|
|||||||
const char FOLDER_OPEN_LOCATIONS_CONTEXT_MENU[] = "Project.F.OpenLocation.CtxMenu";
|
const char FOLDER_OPEN_LOCATIONS_CONTEXT_MENU[] = "Project.F.OpenLocation.CtxMenu";
|
||||||
const char PROJECT_OPEN_LOCATIONS_CONTEXT_MENU[] = "Project.P.OpenLocation.CtxMenu";
|
const char PROJECT_OPEN_LOCATIONS_CONTEXT_MENU[] = "Project.P.OpenLocation.CtxMenu";
|
||||||
|
|
||||||
// Default directories:
|
|
||||||
const char DEFAULT_BUILD_DIRECTORY_TEMPLATE[] = "../%{JS: Util.asciify(\"build-%{Project:Name}-%{Kit:FileSystemName}-%{BuildConfig:Name}\")}";
|
|
||||||
const char DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY_OLD[] = "Directories/BuildDirectory.Template"; // TODO: Remove in ~4.16
|
|
||||||
const char DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY[] = "Directories/BuildDirectory.TemplateV2";
|
|
||||||
|
|
||||||
const char RECENTPROJECTS_FILE_NAMES_KEY[] = "ProjectExplorer/RecentProjects/FileNames";
|
const char RECENTPROJECTS_FILE_NAMES_KEY[] = "ProjectExplorer/RecentProjects/FileNames";
|
||||||
const char RECENTPROJECTS_DISPLAY_NAMES_KEY[] = "ProjectExplorer/RecentProjects/DisplayNames";
|
const char RECENTPROJECTS_DISPLAY_NAMES_KEY[] = "ProjectExplorer/RecentProjects/DisplayNames";
|
||||||
@@ -284,10 +279,6 @@ const char ABORT_BUILD_ALL_ON_ERROR_SETTINGS_KEY[]
|
|||||||
= "ProjectExplorer/Settings/AbortBuildAllOnError";
|
= "ProjectExplorer/Settings/AbortBuildAllOnError";
|
||||||
const char LOW_BUILD_PRIORITY_SETTINGS_KEY[] = "ProjectExplorer/Settings/LowBuildPriority";
|
const char LOW_BUILD_PRIORITY_SETTINGS_KEY[] = "ProjectExplorer/Settings/LowBuildPriority";
|
||||||
|
|
||||||
const char SEPARATE_DEBUG_INFO_SETTINGS_KEY[] = "ProjectExplorer/Settings/SeparateDebugInfo";
|
|
||||||
const char QML_DEBUGGING_SETTINGS_KEY[] = "ProjectExplorer/Settings/QmlDebugging";
|
|
||||||
const char QT_QUICK_COMPILER_SETTINGS_KEY[] = "ProjectExplorer/Settings/QtQuickCompiler";
|
|
||||||
|
|
||||||
const char CUSTOM_PARSER_COUNT_KEY[] = "ProjectExplorer/Settings/CustomParserCount";
|
const char CUSTOM_PARSER_COUNT_KEY[] = "ProjectExplorer/Settings/CustomParserCount";
|
||||||
const char CUSTOM_PARSER_PREFIX_KEY[] = "ProjectExplorer/Settings/CustomParser";
|
const char CUSTOM_PARSER_PREFIX_KEY[] = "ProjectExplorer/Settings/CustomParser";
|
||||||
|
|
||||||
@@ -642,7 +633,7 @@ public:
|
|||||||
|
|
||||||
// Settings pages
|
// Settings pages
|
||||||
ProjectExplorerSettingsPage m_projectExplorerSettingsPage;
|
ProjectExplorerSettingsPage m_projectExplorerSettingsPage;
|
||||||
BuildPropertiesSettingsPage m_buildPropertiesSettingsPage;
|
BuildPropertiesSettingsPage m_buildPropertiesSettingsPage{&m_buildPropertiesSettings};
|
||||||
AppOutputSettingsPage m_appOutputSettingsPage;
|
AppOutputSettingsPage m_appOutputSettingsPage;
|
||||||
CompileOutputSettingsPage m_compileOutputSettingsPage;
|
CompileOutputSettingsPage m_compileOutputSettingsPage;
|
||||||
DeviceSettingsPage m_deviceSettingsPage;
|
DeviceSettingsPage m_deviceSettingsPage;
|
||||||
@@ -1583,33 +1574,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
|
|||||||
= s->value(Constants::LOW_BUILD_PRIORITY_SETTINGS_KEY, defaultSettings.lowBuildPriority)
|
= s->value(Constants::LOW_BUILD_PRIORITY_SETTINGS_KEY, defaultSettings.lowBuildPriority)
|
||||||
.toBool();
|
.toBool();
|
||||||
|
|
||||||
dd->m_buildPropertiesSettings.buildDirectoryTemplateOld
|
dd->m_buildPropertiesSettings.readSettings(s);
|
||||||
= s->value(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY_OLD).toString();
|
|
||||||
dd->m_buildPropertiesSettings.buildDirectoryTemplate
|
|
||||||
= s->value(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY).toString();
|
|
||||||
if (dd->m_buildPropertiesSettings.buildDirectoryTemplate.isEmpty()) {
|
|
||||||
dd->m_buildPropertiesSettings.buildDirectoryTemplate
|
|
||||||
= dd->m_buildPropertiesSettings.buildDirectoryTemplateOld;
|
|
||||||
}
|
|
||||||
if (dd->m_buildPropertiesSettings.buildDirectoryTemplate.isEmpty())
|
|
||||||
dd->m_buildPropertiesSettings.buildDirectoryTemplate = Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE;
|
|
||||||
// TODO: Remove in ~4.16
|
|
||||||
dd->m_buildPropertiesSettings.buildDirectoryTemplate.replace("%{CurrentProject:Name}",
|
|
||||||
"%{Project:Name}");
|
|
||||||
dd->m_buildPropertiesSettings.buildDirectoryTemplate.replace("%{CurrentKit:FileSystemName}",
|
|
||||||
"%{Kit:FileSystemName}");
|
|
||||||
dd->m_buildPropertiesSettings.buildDirectoryTemplate.replace("%{CurrentBuild:Name}",
|
|
||||||
"%{BuildConfig:Name}");
|
|
||||||
|
|
||||||
const auto loadTriStateValue = [&s](const QString &key) {
|
|
||||||
return TriState::fromVariant(s->value(key, TriState::Default.toVariant()));
|
|
||||||
};
|
|
||||||
dd->m_buildPropertiesSettings.separateDebugInfo
|
|
||||||
= loadTriStateValue(Constants::SEPARATE_DEBUG_INFO_SETTINGS_KEY);
|
|
||||||
dd->m_buildPropertiesSettings.qmlDebugging
|
|
||||||
= loadTriStateValue(Constants::QML_DEBUGGING_SETTINGS_KEY);
|
|
||||||
dd->m_buildPropertiesSettings.qtQuickCompiler
|
|
||||||
= loadTriStateValue(Constants::QT_QUICK_COMPILER_SETTINGS_KEY);
|
|
||||||
|
|
||||||
const int customParserCount = s->value(Constants::CUSTOM_PARSER_COUNT_KEY).toInt();
|
const int customParserCount = s->value(Constants::CUSTOM_PARSER_COUNT_KEY).toInt();
|
||||||
for (int i = 0; i < customParserCount; ++i) {
|
for (int i = 0; i < customParserCount; ++i) {
|
||||||
@@ -2249,27 +2214,7 @@ void ProjectExplorerPluginPrivate::savePersistentSettings()
|
|||||||
int(dd->m_projectExplorerSettings.stopBeforeBuild),
|
int(dd->m_projectExplorerSettings.stopBeforeBuild),
|
||||||
int(defaultSettings.stopBeforeBuild));
|
int(defaultSettings.stopBeforeBuild));
|
||||||
|
|
||||||
// Store this in the Core directory scope for backward compatibility!
|
dd->m_buildPropertiesSettings.writeSettings(s);
|
||||||
if (dd->m_buildPropertiesSettings.buildDirectoryTemplate
|
|
||||||
== Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE) {
|
|
||||||
s->remove(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY_OLD);
|
|
||||||
s->remove(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY);
|
|
||||||
} else {
|
|
||||||
s->setValue(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY_OLD,
|
|
||||||
dd->m_buildPropertiesSettings.buildDirectoryTemplateOld);
|
|
||||||
s->setValue(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY,
|
|
||||||
dd->m_buildPropertiesSettings.buildDirectoryTemplate);
|
|
||||||
}
|
|
||||||
|
|
||||||
s->setValueWithDefault(Constants::SEPARATE_DEBUG_INFO_SETTINGS_KEY,
|
|
||||||
dd->m_buildPropertiesSettings.separateDebugInfo.toVariant(),
|
|
||||||
TriState::Default.toVariant());
|
|
||||||
s->setValueWithDefault(Constants::QML_DEBUGGING_SETTINGS_KEY,
|
|
||||||
dd->m_buildPropertiesSettings.qmlDebugging.toVariant(),
|
|
||||||
TriState::Default.toVariant());
|
|
||||||
s->setValueWithDefault(Constants::QT_QUICK_COMPILER_SETTINGS_KEY,
|
|
||||||
dd->m_buildPropertiesSettings.qtQuickCompiler.toVariant(),
|
|
||||||
TriState::Default.toVariant());
|
|
||||||
|
|
||||||
s->setValueWithDefault(Constants::CUSTOM_PARSER_COUNT_KEY, int(dd->m_customParsers.count()), 0);
|
s->setValueWithDefault(Constants::CUSTOM_PARSER_COUNT_KEY, int(dd->m_customParsers.count()), 0);
|
||||||
for (int i = 0; i < dd->m_customParsers.count(); ++i) {
|
for (int i = 0; i < dd->m_customParsers.count(); ++i) {
|
||||||
@@ -3965,19 +3910,14 @@ const AppOutputSettings &ProjectExplorerPlugin::appOutputSettings()
|
|||||||
return dd->m_outputPane.settings();
|
return dd->m_outputPane.settings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProjectExplorerPlugin::setBuildPropertiesSettings(const BuildPropertiesSettings &settings)
|
BuildPropertiesSettings &ProjectExplorerPlugin::buildPropertiesSettings()
|
||||||
{
|
|
||||||
dd->m_buildPropertiesSettings = settings;
|
|
||||||
}
|
|
||||||
|
|
||||||
const BuildPropertiesSettings &ProjectExplorerPlugin::buildPropertiesSettings()
|
|
||||||
{
|
{
|
||||||
return dd->m_buildPropertiesSettings;
|
return dd->m_buildPropertiesSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProjectExplorerPlugin::showQtSettings()
|
void ProjectExplorerPlugin::showQtSettings()
|
||||||
{
|
{
|
||||||
dd->m_buildPropertiesSettings.showQtSettings = true;
|
dd->m_buildPropertiesSettings.showQtSettings.setValue(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProjectExplorerPlugin::setCustomParsers(const QList<CustomParserSettings> &settings)
|
void ProjectExplorerPlugin::setCustomParsers(const QList<CustomParserSettings> &settings)
|
||||||
@@ -4050,12 +3990,12 @@ void ProjectExplorerPlugin::openOpenProjectDialog()
|
|||||||
*/
|
*/
|
||||||
QString ProjectExplorerPlugin::buildDirectoryTemplate()
|
QString ProjectExplorerPlugin::buildDirectoryTemplate()
|
||||||
{
|
{
|
||||||
return dd->m_buildPropertiesSettings.buildDirectoryTemplate;
|
return dd->m_buildPropertiesSettings.buildDirectoryTemplate.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ProjectExplorerPlugin::defaultBuildDirectoryTemplate()
|
QString ProjectExplorerPlugin::defaultBuildDirectoryTemplate()
|
||||||
{
|
{
|
||||||
return QString(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE);
|
return dd->m_buildPropertiesSettings.defaultBuildDirectoryTemplate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProjectExplorerPlugin::updateActions()
|
void ProjectExplorerPlugin::updateActions()
|
||||||
|
|||||||
@@ -137,8 +137,7 @@ public:
|
|||||||
static void setAppOutputSettings(const Internal::AppOutputSettings &settings);
|
static void setAppOutputSettings(const Internal::AppOutputSettings &settings);
|
||||||
static const Internal::AppOutputSettings &appOutputSettings();
|
static const Internal::AppOutputSettings &appOutputSettings();
|
||||||
|
|
||||||
static void setBuildPropertiesSettings(const BuildPropertiesSettings &settings);
|
static BuildPropertiesSettings &buildPropertiesSettings();
|
||||||
static const BuildPropertiesSettings &buildPropertiesSettings();
|
|
||||||
static void showQtSettings();
|
static void showQtSettings();
|
||||||
|
|
||||||
static void setCustomParsers(const QList<CustomParserSettings> &settings);
|
static void setCustomParsers(const QList<CustomParserSettings> &settings);
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ HEADERS += projectexplorer.h \
|
|||||||
buildaspects.h \
|
buildaspects.h \
|
||||||
buildinfo.h \
|
buildinfo.h \
|
||||||
buildpropertiessettings.h \
|
buildpropertiessettings.h \
|
||||||
buildpropertiessettingspage.h \
|
|
||||||
buildsystem.h \
|
buildsystem.h \
|
||||||
buildtargettype.h \
|
buildtargettype.h \
|
||||||
clangparser.h \
|
clangparser.h \
|
||||||
@@ -173,7 +172,7 @@ SOURCES += projectexplorer.cpp \
|
|||||||
addrunconfigdialog.cpp \
|
addrunconfigdialog.cpp \
|
||||||
buildaspects.cpp \
|
buildaspects.cpp \
|
||||||
buildinfo.cpp \
|
buildinfo.cpp \
|
||||||
buildpropertiessettingspage.cpp \
|
buildpropertiessettings.cpp \
|
||||||
buildsystem.cpp \
|
buildsystem.cpp \
|
||||||
clangparser.cpp \
|
clangparser.cpp \
|
||||||
customparserssettingspage.cpp \
|
customparserssettingspage.cpp \
|
||||||
|
|||||||
@@ -33,8 +33,7 @@ Project {
|
|||||||
"buildinfo.cpp", "buildinfo.h",
|
"buildinfo.cpp", "buildinfo.h",
|
||||||
"buildmanager.cpp", "buildmanager.h",
|
"buildmanager.cpp", "buildmanager.h",
|
||||||
"buildprogress.cpp", "buildprogress.h",
|
"buildprogress.cpp", "buildprogress.h",
|
||||||
"buildpropertiessettings.h",
|
"buildpropertiessettings.cpp", "buildpropertiessettings.h",
|
||||||
"buildpropertiessettingspage.cpp", "buildpropertiessettingspage.h",
|
|
||||||
"buildsettingspropertiespage.cpp", "buildsettingspropertiespage.h",
|
"buildsettingspropertiespage.cpp", "buildsettingspropertiespage.h",
|
||||||
"buildstep.cpp", "buildstep.h",
|
"buildstep.cpp", "buildstep.h",
|
||||||
"buildsteplist.cpp", "buildsteplist.h",
|
"buildsteplist.cpp", "buildsteplist.h",
|
||||||
|
|||||||
@@ -89,9 +89,9 @@ public:
|
|||||||
QmakeExtraBuildInfo::QmakeExtraBuildInfo()
|
QmakeExtraBuildInfo::QmakeExtraBuildInfo()
|
||||||
{
|
{
|
||||||
const BuildPropertiesSettings &settings = ProjectExplorerPlugin::buildPropertiesSettings();
|
const BuildPropertiesSettings &settings = ProjectExplorerPlugin::buildPropertiesSettings();
|
||||||
config.separateDebugInfo = settings.separateDebugInfo;
|
config.separateDebugInfo = settings.separateDebugInfo.value();
|
||||||
config.linkQmlDebuggingQQ2 = settings.qmlDebugging;
|
config.linkQmlDebuggingQQ2 = settings.qmlDebugging.value();
|
||||||
config.useQtQuickCompiler = settings.qtQuickCompiler;
|
config.useQtQuickCompiler = settings.qtQuickCompiler.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
@@ -725,7 +725,7 @@ static BuildInfo createBuildInfo(const Kit *k, const FilePath &projectPath,
|
|||||||
info.displayName = BuildConfiguration::tr("Release");
|
info.displayName = BuildConfiguration::tr("Release");
|
||||||
//: Non-ASCII characters in directory suffix may cause build issues.
|
//: Non-ASCII characters in directory suffix may cause build issues.
|
||||||
suffix = QmakeBuildConfiguration::tr("Release", "Shadow build directory suffix");
|
suffix = QmakeBuildConfiguration::tr("Release", "Shadow build directory suffix");
|
||||||
if (settings.qtQuickCompiler == TriState::Default) {
|
if (settings.qtQuickCompiler.value() == TriState::Default) {
|
||||||
if (version && version->isQtQuickCompilerSupported())
|
if (version && version->isQtQuickCompilerSupported())
|
||||||
extraInfo.config.useQtQuickCompiler = TriState::Enabled;
|
extraInfo.config.useQtQuickCompiler = TriState::Enabled;
|
||||||
}
|
}
|
||||||
@@ -740,15 +740,15 @@ static BuildInfo createBuildInfo(const Kit *k, const FilePath &projectPath,
|
|||||||
info.displayName = BuildConfiguration::tr("Profile");
|
info.displayName = BuildConfiguration::tr("Profile");
|
||||||
//: Non-ASCII characters in directory suffix may cause build issues.
|
//: Non-ASCII characters in directory suffix may cause build issues.
|
||||||
suffix = QmakeBuildConfiguration::tr("Profile", "Shadow build directory suffix");
|
suffix = QmakeBuildConfiguration::tr("Profile", "Shadow build directory suffix");
|
||||||
if (settings.separateDebugInfo == TriState::Default)
|
if (settings.separateDebugInfo.value() == TriState::Default)
|
||||||
extraInfo.config.separateDebugInfo = TriState::Enabled;
|
extraInfo.config.separateDebugInfo = TriState::Enabled;
|
||||||
|
|
||||||
if (settings.qtQuickCompiler == TriState::Default) {
|
if (settings.qtQuickCompiler.value() == TriState::Default) {
|
||||||
if (version && version->isQtQuickCompilerSupported())
|
if (version && version->isQtQuickCompilerSupported())
|
||||||
extraInfo.config.useQtQuickCompiler = TriState::Enabled;
|
extraInfo.config.useQtQuickCompiler = TriState::Enabled;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (settings.qmlDebugging == TriState::Default) {
|
if (settings.qmlDebugging.value() == TriState::Default) {
|
||||||
if (version && version->isQmlDebuggingSupported())
|
if (version && version->isQmlDebuggingSupported())
|
||||||
extraInfo.config.linkQmlDebuggingQQ2 = TriState::Enabled;
|
extraInfo.config.linkQmlDebuggingQQ2 = TriState::Enabled;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ QmlDebuggingAspect::QmlDebuggingAspect()
|
|||||||
{
|
{
|
||||||
setSettingsKey("EnableQmlDebugging");
|
setSettingsKey("EnableQmlDebugging");
|
||||||
setDisplayName(tr("QML debugging and profiling:"));
|
setDisplayName(tr("QML debugging and profiling:"));
|
||||||
setValue(ProjectExplorerPlugin::buildPropertiesSettings().qmlDebugging);
|
setValue(ProjectExplorerPlugin::buildPropertiesSettings().qmlDebugging.value());
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmlDebuggingAspect::addToLayout(LayoutBuilder &builder)
|
void QmlDebuggingAspect::addToLayout(LayoutBuilder &builder)
|
||||||
@@ -79,7 +79,7 @@ QtQuickCompilerAspect::QtQuickCompilerAspect()
|
|||||||
{
|
{
|
||||||
setSettingsKey("QtQuickCompiler");
|
setSettingsKey("QtQuickCompiler");
|
||||||
setDisplayName(tr("Qt Quick Compiler:"));
|
setDisplayName(tr("Qt Quick Compiler:"));
|
||||||
setValue(ProjectExplorerPlugin::buildPropertiesSettings().qtQuickCompiler);
|
setValue(ProjectExplorerPlugin::buildPropertiesSettings().qtQuickCompiler.value());
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtQuickCompilerAspect::addToLayout(LayoutBuilder &builder)
|
void QtQuickCompilerAspect::addToLayout(LayoutBuilder &builder)
|
||||||
|
|||||||
Reference in New Issue
Block a user