forked from qt-creator/qt-creator
Consolidate some run configuration widget boilerplate
This removes the outermost layer of widget-vbox and moves some common code into a helper function. The pattern repeats (with variations) a few more times, that's left for later patches. Change-Id: I8c98229cf41d03d5330c896ec9fa0965bfc65602 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
@@ -35,7 +35,6 @@
|
||||
#include <projectexplorer/runconfigurationaspects.h>
|
||||
#include <projectexplorer/target.h>
|
||||
|
||||
#include <utils/detailswidget.h>
|
||||
#include <utils/fancylineedit.h>
|
||||
#include <utils/hostosinfo.h>
|
||||
#include <utils/qtcassert.h>
|
||||
@@ -164,7 +163,7 @@ void CMakeRunConfiguration::updateEnabledState()
|
||||
|
||||
QWidget *CMakeRunConfiguration::createConfigurationWidget()
|
||||
{
|
||||
return new CMakeRunConfigurationWidget(this);
|
||||
return wrapWidget(new CMakeRunConfigurationWidget(this));
|
||||
}
|
||||
|
||||
QString CMakeRunConfiguration::disabledReason() const
|
||||
@@ -190,10 +189,9 @@ static void updateExecutable(CMakeRunConfiguration *rc, Utils::FancyLineEdit *fl
|
||||
}
|
||||
|
||||
// Configuration widget
|
||||
CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration *cmakeRunConfiguration, QWidget *parent)
|
||||
: QWidget(parent)
|
||||
CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration *cmakeRunConfiguration)
|
||||
{
|
||||
auto fl = new QFormLayout();
|
||||
auto fl = new QFormLayout(this);
|
||||
fl->setMargin(0);
|
||||
fl->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
|
||||
|
||||
@@ -210,17 +208,6 @@ CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration *
|
||||
cmakeRunConfiguration->extraAspect<ArgumentsAspect>()->addToMainConfigurationWidget(this, fl);
|
||||
cmakeRunConfiguration->extraAspect<WorkingDirectoryAspect>()->addToMainConfigurationWidget(this, fl);
|
||||
cmakeRunConfiguration->extraAspect<TerminalAspect>()->addToMainConfigurationWidget(this, fl);
|
||||
|
||||
auto detailsContainer = new Utils::DetailsWidget(this);
|
||||
detailsContainer->setState(Utils::DetailsWidget::NoSummary);
|
||||
|
||||
auto detailsWidget = new QWidget(detailsContainer);
|
||||
detailsContainer->setWidget(detailsWidget);
|
||||
detailsWidget->setLayout(fl);
|
||||
|
||||
auto vbx = new QVBoxLayout(this);
|
||||
vbx->setMargin(0);
|
||||
vbx->addWidget(detailsContainer);
|
||||
}
|
||||
|
||||
// Factory
|
||||
|
@@ -71,7 +71,7 @@ class CMakeRunConfigurationWidget : public QWidget
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit CMakeRunConfigurationWidget(CMakeRunConfiguration *cmakeRunConfiguration, QWidget *parent = 0);
|
||||
explicit CMakeRunConfigurationWidget(CMakeRunConfiguration *cmakeRunConfiguration);
|
||||
};
|
||||
|
||||
class CMakeRunConfigurationFactory : public ProjectExplorer::RunConfigurationFactory
|
||||
|
@@ -38,6 +38,7 @@
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/checkablemessagebox.h>
|
||||
#include <utils/detailswidget.h>
|
||||
#include <utils/outputformatter.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/utilsicons.h>
|
||||
@@ -298,6 +299,14 @@ BuildConfiguration *RunConfiguration::activeBuildConfiguration() const
|
||||
return target()->activeBuildConfiguration();
|
||||
}
|
||||
|
||||
QWidget *RunConfiguration::wrapWidget(QWidget *inner) const
|
||||
{
|
||||
auto detailsWidget = new Utils::DetailsWidget;
|
||||
detailsWidget->setState(DetailsWidget::NoSummary);
|
||||
detailsWidget->setWidget(inner);
|
||||
return detailsWidget;
|
||||
}
|
||||
|
||||
Target *RunConfiguration::target() const
|
||||
{
|
||||
return static_cast<Target *>(parent());
|
||||
|
@@ -269,6 +269,7 @@ protected:
|
||||
|
||||
/// convenience function to get current build configuration.
|
||||
BuildConfiguration *activeBuildConfiguration() const;
|
||||
QWidget *wrapWidget(QWidget *inner) const;
|
||||
|
||||
virtual void updateEnabledState();
|
||||
virtual void doAdditionalSetup(const RunConfigurationCreationInfo &) {}
|
||||
|
@@ -44,7 +44,6 @@
|
||||
#include <qtsupport/qtsupportconstants.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/detailswidget.h>
|
||||
#include <utils/hostosinfo.h>
|
||||
#include <utils/pathchooser.h>
|
||||
#include <utils/persistentsettings.h>
|
||||
@@ -89,16 +88,7 @@ QbsRunConfigurationWidget::QbsRunConfigurationWidget(QbsRunConfiguration *rc)
|
||||
{
|
||||
m_runConfiguration = rc;
|
||||
|
||||
auto mainLayout = new QVBoxLayout(this);
|
||||
mainLayout->setMargin(0);
|
||||
|
||||
auto detailsContainer = new Utils::DetailsWidget(this);
|
||||
detailsContainer->setState(Utils::DetailsWidget::NoSummary);
|
||||
|
||||
mainLayout->addWidget(detailsContainer);
|
||||
auto detailsWidget = new QWidget(detailsContainer);
|
||||
detailsContainer->setWidget(detailsWidget);
|
||||
auto toplayout = new QFormLayout(detailsWidget);
|
||||
auto toplayout = new QFormLayout(this);
|
||||
toplayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
|
||||
toplayout->setMargin(0);
|
||||
|
||||
@@ -230,7 +220,7 @@ void QbsRunConfiguration::doAdditionalSetup(const RunConfigurationCreationInfo &
|
||||
|
||||
QWidget *QbsRunConfiguration::createConfigurationWidget()
|
||||
{
|
||||
return new QbsRunConfigurationWidget(this);
|
||||
return wrapWidget(new QbsRunConfigurationWidget(this));
|
||||
}
|
||||
|
||||
Runnable QbsRunConfiguration::runnable() const
|
||||
|
@@ -38,7 +38,6 @@
|
||||
#include <qtsupport/qtoutputformatter.h>
|
||||
#include <qtsupport/qtsupportconstants.h>
|
||||
|
||||
#include <utils/detailswidget.h>
|
||||
#include <utils/fileutils.h>
|
||||
#include <utils/hostosinfo.h>
|
||||
#include <utils/pathchooser.h>
|
||||
@@ -115,15 +114,7 @@ void DesktopQmakeRunConfiguration::updateTargetInformation()
|
||||
DesktopQmakeRunConfigurationWidget::DesktopQmakeRunConfigurationWidget(DesktopQmakeRunConfiguration *qmakeRunConfiguration)
|
||||
: m_qmakeRunConfiguration(qmakeRunConfiguration)
|
||||
{
|
||||
auto vboxTopLayout = new QVBoxLayout(this);
|
||||
vboxTopLayout->setMargin(0);
|
||||
|
||||
auto detailsContainer = new DetailsWidget(this);
|
||||
detailsContainer->setState(DetailsWidget::NoSummary);
|
||||
vboxTopLayout->addWidget(detailsContainer);
|
||||
auto detailsWidget = new QWidget(detailsContainer);
|
||||
detailsContainer->setWidget(detailsWidget);
|
||||
auto toplayout = new QFormLayout(detailsWidget);
|
||||
auto toplayout = new QFormLayout(this);
|
||||
toplayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
|
||||
toplayout->setMargin(0);
|
||||
|
||||
@@ -207,7 +198,7 @@ void DesktopQmakeRunConfigurationWidget::effectiveTargetInformationChanged()
|
||||
|
||||
QWidget *DesktopQmakeRunConfiguration::createConfigurationWidget()
|
||||
{
|
||||
return new DesktopQmakeRunConfigurationWidget(this);
|
||||
return wrapWidget(new DesktopQmakeRunConfigurationWidget(this));
|
||||
}
|
||||
|
||||
Runnable DesktopQmakeRunConfiguration::runnable() const
|
||||
|
Reference in New Issue
Block a user