Utils: Add ToolBar to layoutbuilder

Change-Id: I26ce85f73e625508d816c0e361a6afc65adf65ff
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-07-11 13:23:00 +02:00
parent c914e5f9c2
commit abf2234e4f
2 changed files with 29 additions and 2 deletions

View File

@@ -3,20 +3,21 @@
#include "layoutbuilder.h"
#include <QApplication>
#include <QDebug>
#include <QFormLayout>
#include <QGridLayout>
#include <QGroupBox>
#include <QLabel>
#include <QPushButton>
#include <QStackedLayout>
#include <QSpacerItem>
#include <QSpinBox>
#include <QSplitter>
#include <QStackedLayout>
#include <QStyle>
#include <QTabWidget>
#include <QTextEdit>
#include <QApplication>
#include <QToolBar>
namespace Layouting {
@@ -774,6 +775,26 @@ Splitter::Splitter(std::initializer_list<LayoutItem> items)
};
}
ToolBar::ToolBar(std::initializer_list<LayoutItem> items)
{
subItems = items;
onAdd = [](LayoutBuilder &builder) {
auto toolbar = new QToolBar;
toolbar->setOrientation(Qt::Horizontal);
builder.stack.append(toolbar);
};
onExit = [](LayoutBuilder &builder) {
const Slice slice = builder.stack.last();
QToolBar *toolBar = qobject_cast<QToolBar *>(slice.widget);
for (const ResultItem &ri : slice.pendingItems) {
if (ri.widget)
toolBar->addWidget(ri.widget);
}
builder.stack.pop_back();
builder.stack.last().pendingItems.append(ResultItem(toolBar));
};
}
TabWidget::TabWidget(std::initializer_list<LayoutItem> items)
{
this->subItems = items;

View File

@@ -171,6 +171,12 @@ public:
Splitter(std::initializer_list<LayoutItem> items);
};
class QTCREATOR_UTILS_EXPORT ToolBar : public LayoutItem
{
public:
ToolBar(std::initializer_list<LayoutItem> items);
};
class QTCREATOR_UTILS_EXPORT TabWidget : public LayoutItem
{
public: