Core: Use LayoutBuilder for FancyTabWidget

Change-Id: I01905732563807715eec21879e5a1c8c6fc2b5fe
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Alessandro Portale
2023-06-01 17:19:33 +02:00
parent d171e6da69
commit dbfc2a3242

View File

@@ -7,13 +7,13 @@
#include "fancyactionbar.h"
#include <utils/hostosinfo.h>
#include <utils/layoutbuilder.h>
#include <utils/qtcassert.h>
#include <utils/styledbar.h>
#include <utils/stylehelper.h>
#include <utils/theme/theme.h>
#include <QDebug>
#include <QHBoxLayout>
#include <QMouseEvent>
#include <QPainter>
#include <QPixmapCache>
@@ -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);