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)
|
||||
{
|
||||
this->subItems = items;
|
||||
setupWidget<QSplitter>(this); // FIXME: Default was Qt::Vertical)
|
||||
subItems = items;
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user