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 "fancyactionbar.h"
|
||||||
|
|
||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
|
#include <utils/layoutbuilder.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
#include <utils/styledbar.h>
|
#include <utils/styledbar.h>
|
||||||
#include <utils/stylehelper.h>
|
#include <utils/stylehelper.h>
|
||||||
#include <utils/theme/theme.h>
|
#include <utils/theme/theme.h>
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QHBoxLayout>
|
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QPixmapCache>
|
#include <QPixmapCache>
|
||||||
@@ -457,57 +457,44 @@ FancyTabWidget::FancyTabWidget(QWidget *parent)
|
|||||||
m_tabBar = new FancyTabBar(this);
|
m_tabBar = new FancyTabBar(this);
|
||||||
m_tabBar->setObjectName("ModeSelector"); // used for UI introduction
|
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 bar = new StyledBar;
|
||||||
auto layout = new QHBoxLayout(bar);
|
auto fancyButton = new FancyColorButton;
|
||||||
layout->setContentsMargins(0, 0, 0, 0);
|
|
||||||
layout->setSpacing(0);
|
|
||||||
auto fancyButton = new FancyColorButton(this);
|
|
||||||
connect(fancyButton, &FancyColorButton::clicked, this, &FancyTabWidget::topAreaClicked);
|
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_modesStack = new QStackedLayout;
|
||||||
m_statusBar = new QStatusBar;
|
m_statusBar = new QStatusBar;
|
||||||
m_statusBar->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed);
|
m_statusBar->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed);
|
||||||
|
|
||||||
auto vlayout = new QVBoxLayout;
|
QVBoxLayout *vlayout;
|
||||||
vlayout->setContentsMargins(0, 0, 0, 0);
|
|
||||||
vlayout->setSpacing(0);
|
using namespace Layouting;
|
||||||
vlayout->addLayout(m_modesStack);
|
Row { fancyButton, noMargin() }.attachTo(bar);
|
||||||
vlayout->addWidget(m_statusBar);
|
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.setTarget(vlayout, 1);
|
||||||
m_infoBarDisplay.setEdge(Qt::BottomEdge);
|
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::currentAboutToChange, this, &FancyTabWidget::currentAboutToShow);
|
||||||
connect(m_tabBar, &FancyTabBar::currentChanged, this, &FancyTabWidget::showWidget);
|
connect(m_tabBar, &FancyTabBar::currentChanged, this, &FancyTabWidget::showWidget);
|
||||||
connect(m_tabBar, &FancyTabBar::menuTriggered, this, &FancyTabWidget::menuTriggered);
|
connect(m_tabBar, &FancyTabBar::menuTriggered, this, &FancyTabWidget::menuTriggered);
|
||||||
|
Reference in New Issue
Block a user