ProjectExplorer: Add a BuildConfig::createConfigWidget() implementation

Mimicking the other aspect-unsing setups. It is currently re-implemented
in all derived classes, i.e. unused.

Change-Id: Ia1c16318347baa13a869d3eb03717a0f5ff0d8f8
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-04-26 12:16:08 +02:00
parent 089734a6c8
commit 0a8546ab13
3 changed files with 29 additions and 4 deletions

View File

@@ -28,6 +28,7 @@
#include "buildenvironmentwidget.h"
#include "buildinfo.h"
#include "buildsteplist.h"
#include "namedwidget.h"
#include "kit.h"
#include "kitinformation.h"
#include "kitmanager.h"
@@ -47,6 +48,7 @@
#include <utils/mimetypes/mimedatabase.h>
#include <QDebug>
#include <QFormLayout>
static const char BUILD_STEP_LIST_COUNT[] = "ProjectExplorer.BuildConfiguration.BuildStepListCount";
static const char BUILD_STEP_LIST_PREFIX[] = "ProjectExplorer.BuildConfiguration.BuildStepList.";
@@ -103,6 +105,23 @@ void BuildConfiguration::setBuildDirectory(const Utils::FileName &dir)
emitBuildDirectoryChanged();
}
NamedWidget *BuildConfiguration::createConfigWidget()
{
auto widget = new NamedWidget;
widget->setDisplayName(m_configWidgetDisplayName);
auto formLayout = new QFormLayout(widget);
formLayout->setMargin(0);
formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
for (ProjectConfigurationAspect *aspect : aspects()) {
if (aspect->isVisible())
aspect->addToConfigurationLayout(formLayout);
}
return widget;
}
void BuildConfiguration::initialize(const BuildInfo &info)
{
setDisplayName(info.displayName);
@@ -194,6 +213,11 @@ void BuildConfiguration::emitBuildDirectoryChanged()
}
}
void BuildConfiguration::setConfigWidgetDisplayName(const QString &display)
{
m_configWidgetDisplayName = display;
}
Target *BuildConfiguration::target() const
{
return static_cast<Target *>(parent());

View File

@@ -55,7 +55,7 @@ public:
Utils::FileName rawBuildDirectory() const;
void setBuildDirectory(const Utils::FileName &dir);
virtual NamedWidget *createConfigWidget() = 0;
virtual NamedWidget *createConfigWidget();
virtual QList<NamedWidget *> createSubConfigWidgets();
// Maybe the BuildConfiguration is not the best place for the environment
@@ -99,6 +99,8 @@ public:
static void prependCompilerPathToEnvironment(Kit *k, Utils::Environment &env);
void updateCacheAndEmitEnvironmentChanged();
void setConfigWidgetDisplayName(const QString &display);
signals:
void environmentChanged();
void buildDirectoryChanged();
@@ -117,6 +119,7 @@ private:
Utils::FileName m_buildDirectory;
Utils::FileName m_lastEmmitedBuildDirectory;
mutable Utils::Environment m_cachedEnvironment;
QString m_configWidgetDisplayName;
};
class PROJECTEXPLORER_EXPORT BuildConfigurationFactory : public QObject

View File

@@ -39,13 +39,11 @@ public:
explicit NamedWidget(QWidget *parent = nullptr);
QString displayName() const;
void setDisplayName(const QString &displayName);
signals:
void displayNameChanged(const QString &);
protected:
void setDisplayName(const QString &displayName);
private:
QString m_displayName;
};