forked from qt-creator/qt-creator
LayoutBuilder: Fix Splitter construction
QSplitter is different insofar as that it doesn't have a Layout, but a list of child widgets. Change-Id: I4e1076e39d20df409c4bab93d79770b6d0e5aa8d Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -574,8 +574,22 @@ TextEdit::TextEdit(std::initializer_list<LayoutItem> items)
|
|||||||
|
|
||||||
Splitter::Splitter(std::initializer_list<LayoutItem> items)
|
Splitter::Splitter(std::initializer_list<LayoutItem> items)
|
||||||
{
|
{
|
||||||
this->subItems = items;
|
subItems = items;
|
||||||
setupWidget<QSplitter>(this); // FIXME: Default was Qt::Vertical)
|
onAdd = [](LayoutBuilder &builder) {
|
||||||
|
auto splitter = new QSplitter;
|
||||||
|
splitter->setOrientation(Qt::Vertical);
|
||||||
|
builder.stack.append(splitter);
|
||||||
|
};
|
||||||
|
onExit = [](LayoutBuilder &builder) {
|
||||||
|
const Slice slice = builder.stack.last();
|
||||||
|
QSplitter *splitter = qobject_cast<QSplitter *>(slice.widget);
|
||||||
|
for (const ResultItem &ri : slice.pendingItems) {
|
||||||
|
if (ri.widget)
|
||||||
|
splitter->addWidget(ri.widget);
|
||||||
|
}
|
||||||
|
builder.stack.pop_back();
|
||||||
|
builder.stack.last().pendingItems.append(ResultItem(splitter));
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
TabWidget::TabWidget(std::initializer_list<LayoutItem> items)
|
TabWidget::TabWidget(std::initializer_list<LayoutItem> items)
|
||||||
|
|||||||
Reference in New Issue
Block a user