forked from qt-creator/qt-creator
ProjectExplorer: Introduce base class for enabled/disabled project configuration
... and use this as a base for all RunConfigurations. Clean out code in the individual run configurations dealing with their enabled/disabled state. Change-Id: Icc2ea136b056f7aea7ce96480b4402459d7ac0ce Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -44,11 +44,11 @@
|
||||
#include <utils/detailswidget.h>
|
||||
#include <utils/stringutils.h>
|
||||
#include <utils/persistentsettings.h>
|
||||
#include <utils/utilsicons.h>
|
||||
#include <qtsupport/qtoutputformatter.h>
|
||||
#include <qtsupport/qtsupportconstants.h>
|
||||
#include <qtsupport/qtkitinformation.h>
|
||||
#include <utils/hostosinfo.h>
|
||||
#include <utils/utilsicons.h>
|
||||
|
||||
#include "api/runenvironment.h"
|
||||
|
||||
@@ -140,34 +140,15 @@ QbsRunConfiguration::QbsRunConfiguration(Target *parent, QbsRunConfiguration *so
|
||||
ctor();
|
||||
}
|
||||
|
||||
bool QbsRunConfiguration::isEnabled() const
|
||||
{
|
||||
QbsProject *project = static_cast<QbsProject *>(target()->project());
|
||||
return !project->isParsing() && project->hasParseResult();
|
||||
}
|
||||
|
||||
QString QbsRunConfiguration::disabledReason() const
|
||||
{
|
||||
QbsProject *project = static_cast<QbsProject *>(target()->project());
|
||||
if (project->isParsing())
|
||||
return tr("The .qbs files are currently being parsed.");
|
||||
|
||||
if (!project->hasParseResult())
|
||||
return tr("Parsing of .qbs files has failed.");
|
||||
return QString();
|
||||
}
|
||||
|
||||
void QbsRunConfiguration::ctor()
|
||||
{
|
||||
setDefaultDisplayName(defaultDisplayName());
|
||||
|
||||
QbsProject *project = static_cast<QbsProject *>(target()->project());
|
||||
connect(project, &Project::parsingStarted, this, &RunConfiguration::enabledChanged);
|
||||
connect(project, &Project::parsingFinished, this, [this](bool success) {
|
||||
auto terminalAspect = extraAspect<TerminalAspect>();
|
||||
if (success && !terminalAspect->isUserSet())
|
||||
terminalAspect->setUseTerminal(isConsoleApplication());
|
||||
emit enabledChanged();
|
||||
});
|
||||
connect(BuildManager::instance(), &BuildManager::buildStateChanged, this,
|
||||
[this, project](Project *p) {
|
||||
|
||||
@@ -64,8 +64,6 @@ class QbsRunConfiguration : public ProjectExplorer::RunConfiguration
|
||||
public:
|
||||
QbsRunConfiguration(ProjectExplorer::Target *parent, Core::Id id);
|
||||
|
||||
bool isEnabled() const override;
|
||||
QString disabledReason() const override;
|
||||
QWidget *createConfigurationWidget() override;
|
||||
|
||||
ProjectExplorer::Runnable runnable() const override;
|
||||
|
||||
Reference in New Issue
Block a user