From 6e6587c5287d0ac6edc2ca5c8577542517aff907 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 23 Aug 2023 10:43:59 +0200 Subject: [PATCH] ProjectExplorer: allow adding expanding project settings widgets Change-Id: I27dee2a8d1b14d1dcc535669e3dc9c5369ec2c81 Reviewed-by: Christian Kandeler --- src/plugins/projectexplorer/panelswidget.cpp | 7 ++++--- src/plugins/projectexplorer/panelswidget.h | 2 +- src/plugins/projectexplorer/projectsettingswidget.cpp | 10 ++++++++++ src/plugins/projectexplorer/projectsettingswidget.h | 4 ++++ 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/plugins/projectexplorer/panelswidget.cpp b/src/plugins/projectexplorer/panelswidget.cpp index e327f05b542..e83eb9045c8 100644 --- a/src/plugins/projectexplorer/panelswidget.cpp +++ b/src/plugins/projectexplorer/panelswidget.cpp @@ -32,7 +32,7 @@ const int BELOW_CONTENTS_MARGIN = 16; // PanelsWidget /// -PanelsWidget::PanelsWidget(QWidget *parent) : QWidget(parent) +PanelsWidget::PanelsWidget(QWidget *parent, bool addStretch) : QWidget(parent) { m_root = new QWidget(nullptr); m_root->setFocusPolicy(Qt::NoFocus); @@ -53,7 +53,8 @@ PanelsWidget::PanelsWidget(QWidget *parent) : QWidget(parent) m_layout->setSpacing(0); topLayout->addLayout(m_layout); - topLayout->addStretch(100); + if (addStretch) + topLayout->addStretch(1); auto layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); @@ -72,7 +73,7 @@ PanelsWidget::PanelsWidget(const QString &displayName, QWidget *widget) } PanelsWidget::PanelsWidget(const QString &displayName, ProjectSettingsWidget *widget) - : PanelsWidget(nullptr) + : PanelsWidget(nullptr, !widget->expanding()) { addPropertiesPanel(displayName); addGlobalSettingsProperties(widget); diff --git a/src/plugins/projectexplorer/panelswidget.h b/src/plugins/projectexplorer/panelswidget.h index e5e117bab6b..3d5603d5400 100644 --- a/src/plugins/projectexplorer/panelswidget.h +++ b/src/plugins/projectexplorer/panelswidget.h @@ -19,7 +19,7 @@ class PROJECTEXPLORER_EXPORT PanelsWidget : public QWidget Q_OBJECT public: - explicit PanelsWidget(QWidget *parent = nullptr); + explicit PanelsWidget(QWidget *parent = nullptr, bool addStretch = true); PanelsWidget(const QString &displayName, QWidget *widget); PanelsWidget(const QString &displayName, ProjectSettingsWidget *widget); ~PanelsWidget() override; diff --git a/src/plugins/projectexplorer/projectsettingswidget.cpp b/src/plugins/projectexplorer/projectsettingswidget.cpp index ab8d4270b28..43912b4968c 100644 --- a/src/plugins/projectexplorer/projectsettingswidget.cpp +++ b/src/plugins/projectexplorer/projectsettingswidget.cpp @@ -65,4 +65,14 @@ void ProjectSettingsWidget::setGlobalSettingsId(Utils::Id globalId) m_globalSettingsId = globalId; } +bool ProjectSettingsWidget::expanding() const +{ + return m_expanding; +} + +void ProjectSettingsWidget::setExpanding(bool expanding) +{ + m_expanding = expanding; +} + } // ProjectExplorer diff --git a/src/plugins/projectexplorer/projectsettingswidget.h b/src/plugins/projectexplorer/projectsettingswidget.h index 3971acb0a88..a8d564eb291 100644 --- a/src/plugins/projectexplorer/projectsettingswidget.h +++ b/src/plugins/projectexplorer/projectsettingswidget.h @@ -27,6 +27,9 @@ public: bool isUseGlobalSettingsLabelVisible() const; Utils::Id globalSettingsId() const; + bool expanding() const; + void setExpanding(bool expanding); + protected: void setUseGlobalSettingsCheckBoxVisible(bool visible); void setUseGlobalSettingsLabelVisible(bool visible); @@ -41,6 +44,7 @@ private: bool m_useGlobalSettingsCheckBoxEnabled = true; bool m_useGlobalSettingsCheckBoxVisibleVisible = true; bool m_useGlobalSettingsLabelVisibleVisible = true; + bool m_expanding = false; Utils::Id m_globalSettingsId; };