From dbfc2a3242f0b124faf105244095eb7812d43856 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Thu, 1 Jun 2023 17:19:33 +0200 Subject: [PATCH] Core: Use LayoutBuilder for FancyTabWidget Change-Id: I01905732563807715eec21879e5a1c8c6fc2b5fe Reviewed-by: Eike Ziller Reviewed-by: --- src/plugins/coreplugin/fancytabwidget.cpp | 69 +++++++++-------------- 1 file changed, 28 insertions(+), 41 deletions(-) diff --git a/src/plugins/coreplugin/fancytabwidget.cpp b/src/plugins/coreplugin/fancytabwidget.cpp index 5d3bf71764f..85935b27987 100644 --- a/src/plugins/coreplugin/fancytabwidget.cpp +++ b/src/plugins/coreplugin/fancytabwidget.cpp @@ -7,13 +7,13 @@ #include "fancyactionbar.h" #include +#include #include #include #include #include #include -#include #include #include #include @@ -457,57 +457,44 @@ FancyTabWidget::FancyTabWidget(QWidget *parent) m_tabBar = new FancyTabBar(this); m_tabBar->setObjectName("ModeSelector"); // used for UI introduction - m_selectionWidget = new QWidget(this); - auto selectionLayout = new QVBoxLayout; - selectionLayout->setSpacing(0); - selectionLayout->setContentsMargins(0, 0, 0, 0); - auto bar = new StyledBar; - auto layout = new QHBoxLayout(bar); - layout->setContentsMargins(0, 0, 0, 0); - layout->setSpacing(0); - auto fancyButton = new FancyColorButton(this); + auto fancyButton = new FancyColorButton; connect(fancyButton, &FancyColorButton::clicked, this, &FancyTabWidget::topAreaClicked); - layout->addWidget(fancyButton); - selectionLayout->addWidget(bar); - - selectionLayout->addWidget(m_tabBar); - selectionLayout->addStretch(1); - m_selectionWidget->setLayout(selectionLayout); - m_selectionWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); - - m_cornerWidgetContainer = new QWidget(this); - m_cornerWidgetContainer->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); - m_cornerWidgetContainer->setAutoFillBackground(false); - - auto cornerWidgetLayout = new QVBoxLayout; - cornerWidgetLayout->setSpacing(0); - cornerWidgetLayout->setContentsMargins(0, 0, 0, 0); - cornerWidgetLayout->addStretch(); - m_cornerWidgetContainer->setLayout(cornerWidgetLayout); - - selectionLayout->addWidget(m_cornerWidgetContainer, 0); m_modesStack = new QStackedLayout; m_statusBar = new QStatusBar; m_statusBar->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed); - auto vlayout = new QVBoxLayout; - vlayout->setContentsMargins(0, 0, 0, 0); - vlayout->setSpacing(0); - vlayout->addLayout(m_modesStack); - vlayout->addWidget(m_statusBar); + QVBoxLayout *vlayout; + + using namespace Layouting; + Row { fancyButton, noMargin() }.attachTo(bar); + Row { + Widget { + bindTo(&m_selectionWidget), + Column { + bar, + m_tabBar, + st, + Widget { + bindTo(&m_cornerWidgetContainer), + Column { st, spacing(0), noMargin() }, + }, + spacing(0), noMargin(), + }, + }, + Column { bindTo(&vlayout), m_modesStack, m_statusBar, spacing(0) }, + spacing(1), noMargin(), + }.attachTo(this); + + m_selectionWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); + + m_cornerWidgetContainer->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); + m_cornerWidgetContainer->setAutoFillBackground(false); m_infoBarDisplay.setTarget(vlayout, 1); m_infoBarDisplay.setEdge(Qt::BottomEdge); - auto mainLayout = new QHBoxLayout; - mainLayout->setContentsMargins(0, 0, 0, 0); - mainLayout->setSpacing(1); - mainLayout->addWidget(m_selectionWidget); - mainLayout->addLayout(vlayout); - setLayout(mainLayout); - connect(m_tabBar, &FancyTabBar::currentAboutToChange, this, &FancyTabWidget::currentAboutToShow); connect(m_tabBar, &FancyTabBar::currentChanged, this, &FancyTabWidget::showWidget); connect(m_tabBar, &FancyTabBar::menuTriggered, this, &FancyTabWidget::menuTriggered);