forked from qt-creator/qt-creator
ProjectExplorer: Move "default build dir" setting to new options page
The new "default build properties" page is a better fit now. Change-Id: I2e8e3ed2a7881bb769b72de72a23df2c752a53b0 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
This commit is contained in:
@@ -58,7 +58,4 @@
|
||||
To use \c jom, select the \uicontrol {Use jom instead of nmake} check box.
|
||||
Deselect the check box if you experience build problems.
|
||||
|
||||
You can specify the default build directory in the
|
||||
\uicontrol {Default build directory} field using \QC variables (2).
|
||||
|
||||
*/
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
|
||||
To make in-source builds the default option for all projects, select
|
||||
\uicontrol Tools > \uicontrol Options > \uicontrol {Build & Run} >
|
||||
\uicontrol General, and enter a period (.) in the
|
||||
\uicontrol {Default Build Properties}, and enter a period (.) in the
|
||||
\uicontrol {Default build directory} field.
|
||||
|
||||
You can create separate versions of project files to keep platform-dependent
|
||||
|
||||
@@ -32,6 +32,7 @@ namespace ProjectExplorer {
|
||||
class PROJECTEXPLORER_EXPORT BuildPropertiesSettings
|
||||
{
|
||||
public:
|
||||
QString buildDirectoryTemplate;
|
||||
TriState separateDebugInfo;
|
||||
TriState qmlDebugging;
|
||||
TriState qtQuickCompiler;
|
||||
|
||||
@@ -28,8 +28,13 @@
|
||||
#include "buildpropertiessettings.h"
|
||||
#include "projectexplorer.h"
|
||||
|
||||
#include <QFormLayout>
|
||||
#include <coreplugin/variablechooser.h>
|
||||
|
||||
#include <QComboBox>
|
||||
#include <QFormLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QLineEdit>
|
||||
#include <QPushButton>
|
||||
|
||||
namespace ProjectExplorer {
|
||||
namespace Internal {
|
||||
@@ -55,6 +60,23 @@ public:
|
||||
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 Core::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);
|
||||
@@ -68,6 +90,7 @@ public:
|
||||
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());
|
||||
@@ -75,6 +98,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
QLineEdit m_buildDirTemplateLineEdit;
|
||||
QComboBox m_separateDebugInfoComboBox;
|
||||
QComboBox m_qmlDebuggingComboBox;
|
||||
QComboBox m_qtQuickCompilerComboBox;
|
||||
|
||||
@@ -1458,10 +1458,10 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
|
||||
= s->value(Constants::ABORT_BUILD_ALL_ON_ERROR_SETTINGS_KEY, true).toBool();
|
||||
dd->m_projectExplorerSettings.lowBuildPriority
|
||||
= s->value(Constants::LOW_BUILD_PRIORITY_SETTINGS_KEY, false).toBool();
|
||||
dd->m_projectExplorerSettings.buildDirectoryTemplate
|
||||
dd->m_buildPropertiesSettings.buildDirectoryTemplate
|
||||
= s->value(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY).toString();
|
||||
if (dd->m_projectExplorerSettings.buildDirectoryTemplate.isEmpty())
|
||||
dd->m_projectExplorerSettings.buildDirectoryTemplate = Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE;
|
||||
if (dd->m_buildPropertiesSettings.buildDirectoryTemplate.isEmpty())
|
||||
dd->m_buildPropertiesSettings.buildDirectoryTemplate = Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE;
|
||||
|
||||
const auto loadTriStateValue = [&s](const QString &key) {
|
||||
return TriState::fromVariant(s->value(key, TriState::Default.toVariant()));
|
||||
@@ -2074,7 +2074,8 @@ void ProjectExplorerPluginPrivate::savePersistentSettings()
|
||||
s->setValue(Constants::STOP_BEFORE_BUILD_SETTINGS_KEY, int(dd->m_projectExplorerSettings.stopBeforeBuild));
|
||||
|
||||
// Store this in the Core directory scope for backward compatibility!
|
||||
s->setValue(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY, dd->m_projectExplorerSettings.buildDirectoryTemplate);
|
||||
s->setValue(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY,
|
||||
dd->m_buildPropertiesSettings.buildDirectoryTemplate);
|
||||
|
||||
s->setValue(Constants::SEPARATE_DEBUG_INFO_SETTINGS_KEY,
|
||||
dd->m_buildPropertiesSettings.separateDebugInfo.toVariant());
|
||||
@@ -3852,7 +3853,7 @@ void ProjectExplorerPlugin::openOpenProjectDialog()
|
||||
*/
|
||||
QString ProjectExplorerPlugin::buildDirectoryTemplate()
|
||||
{
|
||||
return dd->m_projectExplorerSettings.buildDirectoryTemplate;
|
||||
return dd->m_buildPropertiesSettings.buildDirectoryTemplate;
|
||||
}
|
||||
|
||||
QString ProjectExplorerPlugin::defaultBuildDirectoryTemplate()
|
||||
|
||||
@@ -55,7 +55,6 @@ public:
|
||||
bool lowBuildPriority = false;
|
||||
StopBeforeBuild stopBeforeBuild = StopBeforeBuild::None;
|
||||
TerminalMode terminalMode = TerminalMode::Smart;
|
||||
QString buildDirectoryTemplate;
|
||||
|
||||
// Add a UUid which is used to identify the development environment.
|
||||
// This is used to warn the user when he is trying to open a .user file that was created
|
||||
@@ -79,8 +78,7 @@ inline bool operator==(const ProjectExplorerSettings &p1, const ProjectExplorerS
|
||||
&& p1.closeSourceFilesWithProject == p2.closeSourceFilesWithProject
|
||||
&& p1.clearIssuesOnRebuild == p2.clearIssuesOnRebuild
|
||||
&& p1.abortBuildAllOnError == p2.abortBuildAllOnError
|
||||
&& p1.lowBuildPriority == p2.lowBuildPriority
|
||||
&& p1.buildDirectoryTemplate == p2.buildDirectoryTemplate;
|
||||
&& p1.lowBuildPriority == p2.lowBuildPriority;
|
||||
}
|
||||
|
||||
class AppOutputSettings
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <coreplugin/documentmanager.h>
|
||||
#include <coreplugin/variablechooser.h>
|
||||
#include <utils/hostosinfo.h>
|
||||
|
||||
#include <QCoreApplication>
|
||||
@@ -59,12 +58,8 @@ public:
|
||||
|
||||
private:
|
||||
void slotDirectoryButtonGroupChanged();
|
||||
void resetBuildDirectoryTemplate();
|
||||
void updateBuildDirectoryResetButton();
|
||||
|
||||
void setJomVisible(bool);
|
||||
QString buildDirectoryTemplate() const;
|
||||
void setBuildDirectoryTemplate(const QString &bd);
|
||||
|
||||
Ui::ProjectExplorerSettingsPageUi m_ui;
|
||||
mutable ProjectExplorerSettings m_settings;
|
||||
@@ -93,13 +88,6 @@ ProjectExplorerSettingsWidget::ProjectExplorerSettingsWidget(QWidget *parent) :
|
||||
|
||||
connect(m_ui.directoryButtonGroup, QOverload<int>::of(&QButtonGroup::buttonClicked),
|
||||
this, &ProjectExplorerSettingsWidget::slotDirectoryButtonGroupChanged);
|
||||
connect(m_ui.buildDirectoryResetButton, &QAbstractButton::clicked,
|
||||
this, &ProjectExplorerSettingsWidget::resetBuildDirectoryTemplate);
|
||||
connect(m_ui.buildDirectoryEdit, &QLineEdit::textChanged,
|
||||
this, &ProjectExplorerSettingsWidget::updateBuildDirectoryResetButton);
|
||||
|
||||
auto chooser = new Core::VariableChooser(this);
|
||||
chooser->addSupportedWidget(m_ui.buildDirectoryEdit);
|
||||
}
|
||||
|
||||
void ProjectExplorerSettingsWidget::setJomVisible(bool v)
|
||||
@@ -125,7 +113,6 @@ ProjectExplorerSettings ProjectExplorerSettingsWidget::settings() const
|
||||
m_settings.clearIssuesOnRebuild = m_ui.clearIssuesCheckBox->isChecked();
|
||||
m_settings.abortBuildAllOnError = m_ui.abortBuildAllOnErrorCheckBox->isChecked();
|
||||
m_settings.lowBuildPriority = m_ui.lowBuildPriorityCheckBox->isChecked();
|
||||
m_settings.buildDirectoryTemplate = buildDirectoryTemplate();
|
||||
return m_settings;
|
||||
}
|
||||
|
||||
@@ -147,7 +134,6 @@ void ProjectExplorerSettingsWidget::setSettings(const ProjectExplorerSettings &
|
||||
m_ui.clearIssuesCheckBox->setChecked(m_settings.clearIssuesOnRebuild);
|
||||
m_ui.abortBuildAllOnErrorCheckBox->setChecked(m_settings.abortBuildAllOnError);
|
||||
m_ui.lowBuildPriorityCheckBox->setChecked(m_settings.lowBuildPriority);
|
||||
setBuildDirectoryTemplate(pes.buildDirectoryTemplate);
|
||||
}
|
||||
|
||||
QString ProjectExplorerSettingsWidget::projectsDirectory() const
|
||||
@@ -173,32 +159,12 @@ void ProjectExplorerSettingsWidget::setUseProjectsDirectory(bool b)
|
||||
}
|
||||
}
|
||||
|
||||
QString ProjectExplorerSettingsWidget::buildDirectoryTemplate() const
|
||||
{
|
||||
return m_ui.buildDirectoryEdit->text();
|
||||
}
|
||||
|
||||
void ProjectExplorerSettingsWidget::setBuildDirectoryTemplate(const QString &bd)
|
||||
{
|
||||
m_ui.buildDirectoryEdit->setText(bd);
|
||||
}
|
||||
|
||||
void ProjectExplorerSettingsWidget::slotDirectoryButtonGroupChanged()
|
||||
{
|
||||
bool enable = useProjectsDirectory();
|
||||
m_ui.projectsDirectoryPathChooser->setEnabled(enable);
|
||||
}
|
||||
|
||||
void ProjectExplorerSettingsWidget::resetBuildDirectoryTemplate()
|
||||
{
|
||||
setBuildDirectoryTemplate(ProjectExplorerPlugin::defaultBuildDirectoryTemplate());
|
||||
}
|
||||
|
||||
void ProjectExplorerSettingsWidget::updateBuildDirectoryResetButton()
|
||||
{
|
||||
m_ui.buildDirectoryResetButton->setEnabled(buildDirectoryTemplate() != ProjectExplorerPlugin::defaultBuildDirectoryTemplate());
|
||||
}
|
||||
|
||||
// ------------------ ProjectExplorerSettingsPage
|
||||
ProjectExplorerSettingsPage::ProjectExplorerSettingsPage()
|
||||
{
|
||||
|
||||
@@ -68,20 +68,6 @@
|
||||
<string>Build and Run</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="2" column="0">
|
||||
<widget class="QCheckBox" name="addLibraryPathsToRunEnvCheckBox">
|
||||
<property name="text">
|
||||
<string>Add linker library search paths to run environment</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QCheckBox" name="clearIssuesCheckBox">
|
||||
<property name="text">
|
||||
<string>Clear issues list on new build</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QCheckBox" name="abortBuildAllOnErrorCheckBox">
|
||||
<property name="text">
|
||||
@@ -122,6 +108,24 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QWidget" name="widget_1" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QCheckBox" name="lowBuildPriorityCheckBox">
|
||||
<property name="toolTip">
|
||||
@@ -139,6 +143,47 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QCheckBox" name="addLibraryPathsToRunEnvCheckBox">
|
||||
<property name="text">
|
||||
<string>Add linker library search paths to run environment</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="saveAllFilesCheckBox">
|
||||
<property name="text">
|
||||
<string>Save all files before build</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QCheckBox" name="automaticallyCreateRunConfiguration">
|
||||
<property name="toolTip">
|
||||
<string>Creates suitable run configurations automatically when setting up a new kit.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Create suitable run configurations automatically</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QCheckBox" name="promptToStopRunControlCheckBox">
|
||||
<property name="toolTip">
|
||||
<string>Asks before terminating the running application in response to clicking the stop button in Application Output.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Always ask before stopping applications</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QCheckBox" name="clearIssuesCheckBox">
|
||||
<property name="text">
|
||||
<string>Clear issues list on new build</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
@@ -240,75 +285,6 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="saveAllFilesCheckBox">
|
||||
<property name="text">
|
||||
<string>Save all files before build</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QCheckBox" name="automaticallyCreateRunConfiguration">
|
||||
<property name="toolTip">
|
||||
<string>Creates suitable run configurations automatically when setting up a new kit.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Create suitable run configurations automatically</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="topMargin">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="buildDirectoryLabel">
|
||||
<property name="text">
|
||||
<string>Default build directory:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="buildDirectoryEdit"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="buildDirectoryResetButton">
|
||||
<property name="text">
|
||||
<string>Reset</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QWidget" name="widget_1" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QCheckBox" name="promptToStopRunControlCheckBox">
|
||||
<property name="toolTip">
|
||||
<string>Asks before terminating the running application in response to clicking the stop button in Application Output.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Always ask before stopping applications</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
Reference in New Issue
Block a user