forked from qt-creator/qt-creator
ProjectExplorer: Use function object for special build config init
Change-Id: I5da0f28ee1a64f8d9a3145f059019be702bee463 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -84,6 +84,8 @@ public:
|
||||
QString m_configWidgetDisplayName;
|
||||
bool m_configWidgetHasFrame = false;
|
||||
|
||||
std::function<void()> m_initializer;
|
||||
|
||||
// FIXME: Remove.
|
||||
BuildConfiguration::BuildType m_initialBuildType = BuildConfiguration::Unknown;
|
||||
Utils::FilePath m_initialBuildDirectory;
|
||||
@@ -181,6 +183,28 @@ void BuildConfiguration::addConfigWidgets(const std::function<void(NamedWidget *
|
||||
adder(subConfigWidget);
|
||||
}
|
||||
|
||||
void BuildConfiguration::doInitialize(const BuildInfo &info)
|
||||
{
|
||||
setDisplayName(info.displayName);
|
||||
setDefaultDisplayName(info.displayName);
|
||||
setBuildDirectory(info.buildDirectory);
|
||||
|
||||
d->m_initialBuildType = info.buildType;
|
||||
d->m_initialDisplayName = info.displayName;
|
||||
d->m_initialBuildDirectory = info.buildDirectory;
|
||||
d->m_extraInfo = info.extraInfo;
|
||||
|
||||
acquaintAspects();
|
||||
|
||||
if (d->m_initializer)
|
||||
d->m_initializer();
|
||||
}
|
||||
|
||||
void BuildConfiguration::setInitializer(const std::function<void ()> &initializer)
|
||||
{
|
||||
d->m_initializer = initializer;
|
||||
}
|
||||
|
||||
NamedWidget *BuildConfiguration::createConfigWidget()
|
||||
{
|
||||
NamedWidget *named = new NamedWidget(d->m_configWidgetDisplayName);
|
||||
@@ -405,7 +429,7 @@ bool BuildConfiguration::regenerateBuildFiles(Node *node)
|
||||
|
||||
void BuildConfiguration::restrictNextBuild(const RunConfiguration *rc)
|
||||
{
|
||||
Q_UNUSED(rc);
|
||||
Q_UNUSED(rc)
|
||||
}
|
||||
|
||||
BuildConfiguration::BuildType BuildConfiguration::buildType() const
|
||||
@@ -568,21 +592,10 @@ BuildConfiguration *BuildConfigurationFactory::create(Target *parent, const Buil
|
||||
if (!canHandle(parent))
|
||||
return nullptr;
|
||||
QTC_ASSERT(m_creator, return nullptr);
|
||||
|
||||
BuildConfiguration *bc = m_creator(parent);
|
||||
if (!bc)
|
||||
return nullptr;
|
||||
|
||||
bc->setDisplayName(info.displayName);
|
||||
bc->setDefaultDisplayName(info.displayName);
|
||||
bc->setBuildDirectory(info.buildDirectory);
|
||||
|
||||
bc->d->m_initialBuildType = info.buildType;
|
||||
bc->d->m_initialDisplayName = info.displayName;
|
||||
bc->d->m_initialBuildDirectory = info.buildDirectory;
|
||||
bc->d->m_extraInfo = info.extraInfo;
|
||||
|
||||
bc->acquaintAspects();
|
||||
bc->initialize();
|
||||
if (bc)
|
||||
bc->doInitialize(info);
|
||||
|
||||
return bc;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user