ProjectExplorer: Add a setting for low build priority

Default is false.

Task-number: QTCREATORBUG-23048
Change-Id: I0f0cc787229456aad2ddf47e4ef37bad58af2038
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Orgad Shaneh
2019-10-07 14:29:03 +03:00
committed by Orgad Shaneh
parent 2a8a39f12b
commit 92c067ba36
9 changed files with 29 additions and 6 deletions

View File

@@ -87,7 +87,7 @@ CMakeBuildStep::CMakeBuildStep(BuildStepList *bsl) :
if (m_buildTarget.isEmpty())
setBuildTarget(defaultBuildTarget());
setLowPriority();
setLowPriorityIfConfigured();
connect(target(), &Target::kitChanged, this, &CMakeBuildStep::cmakeCommandChanged);
connect(project(), &Project::parsingFinished,

View File

@@ -30,6 +30,8 @@
#include "ioutputparser.h"
#include "processparameters.h"
#include "project.h"
#include "projectexplorer.h"
#include "projectexplorersettings.h"
#include "target.h"
#include "task.h"
@@ -249,8 +251,9 @@ void AbstractProcessStep::doRun()
processStarted();
}
void AbstractProcessStep::setLowPriority()
void AbstractProcessStep::setLowPriorityIfConfigured()
{
if (ProjectExplorerPlugin::projectExplorerSettings().lowBuildPriority)
d->m_lowPriority = true;
}

View File

@@ -57,7 +57,7 @@ protected:
~AbstractProcessStep() override;
bool init() override;
void doRun() override;
void setLowPriority();
void setLowPriorityIfConfigured();
virtual void finish(bool success);
virtual void processStarted();

View File

@@ -65,7 +65,7 @@ MakeStep::MakeStep(BuildStepList *parent, Core::Id id)
m_userJobCount(defaultJobCount())
{
setDefaultDisplayName(defaultDisplayName());
setLowPriority();
setLowPriorityIfConfigured();
}
void MakeStep::setBuildTarget(const QString &buildTarget)

View File

@@ -256,6 +256,7 @@ const char CLOSE_FILES_WITH_PROJECT_SETTINGS_KEY[]
const char CLEAR_ISSUES_ON_REBUILD_SETTINGS_KEY[] = "ProjectExplorer/Settings/ClearIssuesOnRebuild";
const char ABORT_BUILD_ALL_ON_ERROR_SETTINGS_KEY[]
= "ProjectExplorer/Settings/AbortBuildAllOnError";
const char LOW_BUILD_PRIORITY_SETTINGS_KEY[] = "ProjectExplorer/Settings/LowBuildPriority";
} // namespace Constants
@@ -1395,6 +1396,8 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
= s->value(Constants::CLEAR_ISSUES_ON_REBUILD_SETTINGS_KEY, true).toBool();
dd->m_projectExplorerSettings.abortBuildAllOnError
= 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
= s->value(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY).toString();
if (dd->m_projectExplorerSettings.buildDirectoryTemplate.isEmpty())
@@ -2002,6 +2005,8 @@ void ProjectExplorerPluginPrivate::savePersistentSettings()
dd->m_projectExplorerSettings.clearIssuesOnRebuild);
s->setValue(Constants::ABORT_BUILD_ALL_ON_ERROR_SETTINGS_KEY,
dd->m_projectExplorerSettings.abortBuildAllOnError);
s->setValue(Constants::LOW_BUILD_PRIORITY_SETTINGS_KEY,
dd->m_projectExplorerSettings.lowBuildPriority);
s->setValue(QLatin1String("ProjectExplorer/Settings/AutomaticallyCreateRunConfigurations"),
dd->m_projectExplorerSettings.automaticallyCreateRunConfigurations);
s->setValue(QLatin1String("ProjectExplorer/Settings/EnvironmentId"), dd->m_projectExplorerSettings.environmentId.toByteArray());

View File

@@ -52,6 +52,7 @@ public:
bool closeSourceFilesWithProject = true;
bool clearIssuesOnRebuild = true;
bool abortBuildAllOnError = true;
bool lowBuildPriority = false;
StopBeforeBuild stopBeforeBuild = StopBeforeBuild::StopNone;
TerminalMode terminalMode = TerminalMode::Smart;
QString buildDirectoryTemplate;
@@ -78,6 +79,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;
}

View File

@@ -109,6 +109,7 @@ ProjectExplorerSettings ProjectExplorerSettingsWidget::settings() const
m_settings.closeSourceFilesWithProject = m_ui.closeSourceFilesCheckBox->isChecked();
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;
}
@@ -128,6 +129,7 @@ void ProjectExplorerSettingsWidget::setSettings(const ProjectExplorerSettings &
m_ui.closeSourceFilesCheckBox->setChecked(m_settings.closeSourceFilesWithProject);
m_ui.clearIssuesCheckBox->setChecked(m_settings.clearIssuesOnRebuild);
m_ui.abortBuildAllOnErrorCheckBox->setChecked(m_settings.abortBuildAllOnError);
m_ui.lowBuildPriorityCheckBox->setChecked(m_settings.lowBuildPriority);
setBuildDirectoryTemplate(pes.buildDirectoryTemplate);
}

View File

@@ -148,6 +148,16 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="lowBuildPriorityCheckBox">
<property name="toolTip">
<string>Enable this if your system becomes unresponsive while building.</string>
</property>
<property name="text">
<string>Start build processes with low priority</string>
</property>
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
@@ -310,6 +320,7 @@
<zorder>addLibraryPathsToRunEnvCheckBox</zorder>
<zorder>clearIssuesCheckBox</zorder>
<zorder>abortBuildAllOnErrorCheckBox</zorder>
<zorder>lowBuildPriorityCheckBox</zorder>
</widget>
</item>
<item>

View File

@@ -76,7 +76,7 @@ QMakeStep::QMakeStep(BuildStepList *bsl) : AbstractProcessStep(bsl, Constants::Q
{
//: QMakeStep default display name
setDefaultDisplayName(tr("qmake"));
setLowPriority();
setLowPriorityIfConfigured();
}
QmakeBuildConfiguration *QMakeStep::qmakeBuildConfiguration() const