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/runconfigurationaspects.h>
|
||||||
#include <projectexplorer/target.h>
|
#include <projectexplorer/target.h>
|
||||||
|
|
||||||
#include <utils/detailswidget.h>
|
|
||||||
#include <utils/fancylineedit.h>
|
#include <utils/fancylineedit.h>
|
||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
@@ -164,7 +163,7 @@ void CMakeRunConfiguration::updateEnabledState()
|
|||||||
|
|
||||||
QWidget *CMakeRunConfiguration::createConfigurationWidget()
|
QWidget *CMakeRunConfiguration::createConfigurationWidget()
|
||||||
{
|
{
|
||||||
return new CMakeRunConfigurationWidget(this);
|
return wrapWidget(new CMakeRunConfigurationWidget(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CMakeRunConfiguration::disabledReason() const
|
QString CMakeRunConfiguration::disabledReason() const
|
||||||
@@ -190,10 +189,9 @@ static void updateExecutable(CMakeRunConfiguration *rc, Utils::FancyLineEdit *fl
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Configuration widget
|
// Configuration widget
|
||||||
CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration *cmakeRunConfiguration, QWidget *parent)
|
CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration *cmakeRunConfiguration)
|
||||||
: QWidget(parent)
|
|
||||||
{
|
{
|
||||||
auto fl = new QFormLayout();
|
auto fl = new QFormLayout(this);
|
||||||
fl->setMargin(0);
|
fl->setMargin(0);
|
||||||
fl->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
|
fl->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
|
||||||
|
|
||||||
@@ -210,17 +208,6 @@ CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration *
|
|||||||
cmakeRunConfiguration->extraAspect<ArgumentsAspect>()->addToMainConfigurationWidget(this, fl);
|
cmakeRunConfiguration->extraAspect<ArgumentsAspect>()->addToMainConfigurationWidget(this, fl);
|
||||||
cmakeRunConfiguration->extraAspect<WorkingDirectoryAspect>()->addToMainConfigurationWidget(this, fl);
|
cmakeRunConfiguration->extraAspect<WorkingDirectoryAspect>()->addToMainConfigurationWidget(this, fl);
|
||||||
cmakeRunConfiguration->extraAspect<TerminalAspect>()->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
|
// Factory
|
||||||
|
@@ -71,7 +71,7 @@ class CMakeRunConfigurationWidget : public QWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit CMakeRunConfigurationWidget(CMakeRunConfiguration *cmakeRunConfiguration, QWidget *parent = 0);
|
explicit CMakeRunConfigurationWidget(CMakeRunConfiguration *cmakeRunConfiguration);
|
||||||
};
|
};
|
||||||
|
|
||||||
class CMakeRunConfigurationFactory : public ProjectExplorer::RunConfigurationFactory
|
class CMakeRunConfigurationFactory : public ProjectExplorer::RunConfigurationFactory
|
||||||
|
@@ -38,6 +38,7 @@
|
|||||||
|
|
||||||
#include <utils/algorithm.h>
|
#include <utils/algorithm.h>
|
||||||
#include <utils/checkablemessagebox.h>
|
#include <utils/checkablemessagebox.h>
|
||||||
|
#include <utils/detailswidget.h>
|
||||||
#include <utils/outputformatter.h>
|
#include <utils/outputformatter.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
#include <utils/utilsicons.h>
|
#include <utils/utilsicons.h>
|
||||||
@@ -298,6 +299,14 @@ BuildConfiguration *RunConfiguration::activeBuildConfiguration() const
|
|||||||
return target()->activeBuildConfiguration();
|
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
|
Target *RunConfiguration::target() const
|
||||||
{
|
{
|
||||||
return static_cast<Target *>(parent());
|
return static_cast<Target *>(parent());
|
||||||
|
@@ -269,6 +269,7 @@ protected:
|
|||||||
|
|
||||||
/// convenience function to get current build configuration.
|
/// convenience function to get current build configuration.
|
||||||
BuildConfiguration *activeBuildConfiguration() const;
|
BuildConfiguration *activeBuildConfiguration() const;
|
||||||
|
QWidget *wrapWidget(QWidget *inner) const;
|
||||||
|
|
||||||
virtual void updateEnabledState();
|
virtual void updateEnabledState();
|
||||||
virtual void doAdditionalSetup(const RunConfigurationCreationInfo &) {}
|
virtual void doAdditionalSetup(const RunConfigurationCreationInfo &) {}
|
||||||
|
@@ -44,7 +44,6 @@
|
|||||||
#include <qtsupport/qtsupportconstants.h>
|
#include <qtsupport/qtsupportconstants.h>
|
||||||
|
|
||||||
#include <utils/algorithm.h>
|
#include <utils/algorithm.h>
|
||||||
#include <utils/detailswidget.h>
|
|
||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
#include <utils/pathchooser.h>
|
#include <utils/pathchooser.h>
|
||||||
#include <utils/persistentsettings.h>
|
#include <utils/persistentsettings.h>
|
||||||
@@ -89,16 +88,7 @@ QbsRunConfigurationWidget::QbsRunConfigurationWidget(QbsRunConfiguration *rc)
|
|||||||
{
|
{
|
||||||
m_runConfiguration = rc;
|
m_runConfiguration = rc;
|
||||||
|
|
||||||
auto mainLayout = new QVBoxLayout(this);
|
auto toplayout = new QFormLayout(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);
|
|
||||||
toplayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
|
toplayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
|
||||||
toplayout->setMargin(0);
|
toplayout->setMargin(0);
|
||||||
|
|
||||||
@@ -230,7 +220,7 @@ void QbsRunConfiguration::doAdditionalSetup(const RunConfigurationCreationInfo &
|
|||||||
|
|
||||||
QWidget *QbsRunConfiguration::createConfigurationWidget()
|
QWidget *QbsRunConfiguration::createConfigurationWidget()
|
||||||
{
|
{
|
||||||
return new QbsRunConfigurationWidget(this);
|
return wrapWidget(new QbsRunConfigurationWidget(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
Runnable QbsRunConfiguration::runnable() const
|
Runnable QbsRunConfiguration::runnable() const
|
||||||
|
@@ -38,7 +38,6 @@
|
|||||||
#include <qtsupport/qtoutputformatter.h>
|
#include <qtsupport/qtoutputformatter.h>
|
||||||
#include <qtsupport/qtsupportconstants.h>
|
#include <qtsupport/qtsupportconstants.h>
|
||||||
|
|
||||||
#include <utils/detailswidget.h>
|
|
||||||
#include <utils/fileutils.h>
|
#include <utils/fileutils.h>
|
||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
#include <utils/pathchooser.h>
|
#include <utils/pathchooser.h>
|
||||||
@@ -115,15 +114,7 @@ void DesktopQmakeRunConfiguration::updateTargetInformation()
|
|||||||
DesktopQmakeRunConfigurationWidget::DesktopQmakeRunConfigurationWidget(DesktopQmakeRunConfiguration *qmakeRunConfiguration)
|
DesktopQmakeRunConfigurationWidget::DesktopQmakeRunConfigurationWidget(DesktopQmakeRunConfiguration *qmakeRunConfiguration)
|
||||||
: m_qmakeRunConfiguration(qmakeRunConfiguration)
|
: m_qmakeRunConfiguration(qmakeRunConfiguration)
|
||||||
{
|
{
|
||||||
auto vboxTopLayout = new QVBoxLayout(this);
|
auto toplayout = new QFormLayout(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);
|
|
||||||
toplayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
|
toplayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
|
||||||
toplayout->setMargin(0);
|
toplayout->setMargin(0);
|
||||||
|
|
||||||
@@ -207,7 +198,7 @@ void DesktopQmakeRunConfigurationWidget::effectiveTargetInformationChanged()
|
|||||||
|
|
||||||
QWidget *DesktopQmakeRunConfiguration::createConfigurationWidget()
|
QWidget *DesktopQmakeRunConfiguration::createConfigurationWidget()
|
||||||
{
|
{
|
||||||
return new DesktopQmakeRunConfigurationWidget(this);
|
return wrapWidget(new DesktopQmakeRunConfigurationWidget(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
Runnable DesktopQmakeRunConfiguration::runnable() const
|
Runnable DesktopQmakeRunConfiguration::runnable() const
|
||||||
|
Reference in New Issue
Block a user