diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp index e3a2939935a..b3fb9fac959 100644 --- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp @@ -6,6 +6,7 @@ #include "buildconfiguration.h" #include "buildinfo.h" #include "buildmanager.h" +#include "panelswidget.h" #include "project.h" #include "projectconfigurationmodel.h" #include "projectexplorertr.h" @@ -355,7 +356,9 @@ void BuildSettingsWidget::deleteConfiguration(BuildConfiguration *deleteConfigur QWidget *createBuildSettingsWidget(Target *target) { - return new BuildSettingsWidget(target); + auto panel = new PanelsWidget(true); + panel->addWidget(new BuildSettingsWidget(target)); + return panel; } } // ProjectExplorer::Internal diff --git a/src/plugins/projectexplorer/panelswidget.cpp b/src/plugins/projectexplorer/panelswidget.cpp index 8d34b58bb0a..e0d522b3452 100644 --- a/src/plugins/projectexplorer/panelswidget.cpp +++ b/src/plugins/projectexplorer/panelswidget.cpp @@ -56,19 +56,6 @@ PanelsWidget::PanelsWidget(bool addStretch) //layout->addWidget(new FindToolBarPlaceHolder(this)); } -PanelsWidget::PanelsWidget(QWidget *widget, bool addStretch) - : PanelsWidget(addStretch) -{ - addWidget(widget); -} - -PanelsWidget::PanelsWidget(ProjectSettingsWidget *widget) - : PanelsWidget(!widget->expanding()) -{ - addGlobalSettingsProperties(widget); - addWidget(widget); -} - PanelsWidget::~PanelsWidget() = default; void PanelsWidget::addWidget(QWidget *widget) diff --git a/src/plugins/projectexplorer/panelswidget.h b/src/plugins/projectexplorer/panelswidget.h index d40a4b6c788..562a517304f 100644 --- a/src/plugins/projectexplorer/panelswidget.h +++ b/src/plugins/projectexplorer/panelswidget.h @@ -14,18 +14,15 @@ namespace ProjectExplorer::Internal { class PanelsWidget final : public QWidget { public: - PanelsWidget(QWidget *widget, bool addStretch = true); - PanelsWidget(ProjectSettingsWidget *widget); + explicit PanelsWidget(bool addStretch); ~PanelsWidget() final; static int constexpr PanelVMargin = 14; -private: - explicit PanelsWidget(bool addStretch); - void addGlobalSettingsProperties(ProjectSettingsWidget *widget); void addWidget(QWidget *widget); +private: QVBoxLayout *m_layout; QWidget *m_root; }; diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index 2a348ffa53c..c60f192126e 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -330,7 +330,7 @@ private: const QPointer m_project; bool m_rebuildScheduled = false; - mutable QPointer m_targetSetupPage; + mutable QPointer m_targetSetupPage; QObject m_guard; }; @@ -515,8 +515,11 @@ ProjectPanels MiscSettingsPanelItem::panelWidgets() const { if (!m_widget) { ProjectSettingsWidget *inner = m_factory->createWidget(m_project); - m_widget = new PanelsWidget(inner); - m_widget->setFocusProxy(inner); + auto panel = new PanelsWidget(true); + panel->addGlobalSettingsProperties(inner); + panel->addWidget(inner); + panel->setFocusProxy(inner); + m_widget = panel; } ProjectPanel panel; panel.displayName = m_factory->displayName(); @@ -885,9 +888,9 @@ public: ProjectPanels panelWidgets() const final { if (!m_buildSettingsWidget) - m_buildSettingsWidget = new PanelsWidget(createBuildSettingsWidget(target())); + m_buildSettingsWidget = createBuildSettingsWidget(target()); if (!m_runSettingsWidget) - m_runSettingsWidget = new PanelsWidget(createRunSettingsWidget(target())); + m_runSettingsWidget = createRunSettingsWidget(target()); return { ProjectPanel(Tr::tr("Build Settings"), m_buildSettingsWidget), @@ -1097,8 +1100,10 @@ ProjectPanels TargetGroupItem::panelWidgets() const { if (!m_targetSetupPage) { auto inner = new TargetSetupPageWrapper(m_project); - m_targetSetupPage = new PanelsWidget(inner, false); - m_targetSetupPage->setFocusProxy(inner); + auto panel = new PanelsWidget(false); + panel->addWidget(inner); + panel->setFocusProxy(inner); + m_targetSetupPage = panel; } ProjectPanel panel; diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp index 19b3e9c379a..26ad808b320 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -7,6 +7,7 @@ #include "buildmanager.h" #include "buildstepspage.h" #include "deployconfiguration.h" +#include "panelswidget.h" #include "project.h" #include "projectconfigurationmodel.h" #include "projectexplorerconstants.h" @@ -790,7 +791,9 @@ void RunSettingsWidget::updateEnabledState() QWidget *createRunSettingsWidget(Target *target) { - return new RunSettingsWidget(target); + auto panel = new PanelsWidget(true); + panel->addWidget(new RunSettingsWidget(target)); + return panel; } } // ProjectExplorer::Internal