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:
Christian Kandeler
2020-01-21 15:31:08 +01:00
parent 55a10b0e7a
commit 33e86cdbaa
8 changed files with 93 additions and 130 deletions

View File

@@ -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).
*/

View File

@@ -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

View File

@@ -32,6 +32,7 @@ namespace ProjectExplorer {
class PROJECTEXPLORER_EXPORT BuildPropertiesSettings
{
public:
QString buildDirectoryTemplate;
TriState separateDebugInfo;
TriState qmlDebugging;
TriState qtQuickCompiler;

View File

@@ -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;

View File

@@ -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()

View File

@@ -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

View File

@@ -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()
{

View File

@@ -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>