forked from qt-creator/qt-creator
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:
@@ -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);
|
||||
|
Reference in New Issue
Block a user