forked from qt-creator/qt-creator
Utils: Consolidate LayoutBuilder interface a bit
- the var args template for addItems was overkill creating a lot of
instantiations. Use a temporary list instead.
- allow default constructed LayoutItems to be used for an empty cell,
avoiding the use of a QLabel with empty text
- add an addRow({...}) overload as convenience shortcut for
.startNewRow().addItems({...}
- rename startNewRow() to finishRow()
Change-Id: I6d49dacbac3d7acf140ca526884ba1ceeeca2e0d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -64,7 +64,7 @@ LayoutBuilder::~LayoutBuilder()
|
||||
flushPendingFormItems();
|
||||
}
|
||||
|
||||
LayoutBuilder &LayoutBuilder::startNewRow()
|
||||
LayoutBuilder &LayoutBuilder::finishRow()
|
||||
{
|
||||
if (m_formLayout)
|
||||
flushPendingFormItems();
|
||||
@@ -79,9 +79,12 @@ LayoutBuilder &LayoutBuilder::startNewRow()
|
||||
|
||||
LayoutBuilder &LayoutBuilder::addRow(const LayoutItem &item)
|
||||
{
|
||||
startNewRow();
|
||||
addItem(item);
|
||||
return *this;
|
||||
return finishRow().addItem(item);
|
||||
}
|
||||
|
||||
LayoutBuilder &LayoutBuilder::addRow(const QList<LayoutBuilder::LayoutItem> &items)
|
||||
{
|
||||
return finishRow().addItems(items);
|
||||
}
|
||||
|
||||
void LayoutBuilder::flushPendingFormItems()
|
||||
@@ -139,7 +142,7 @@ QLayout *LayoutBuilder::layout() const
|
||||
return m_gridLayout;
|
||||
}
|
||||
|
||||
LayoutBuilder &LayoutBuilder::addItem(LayoutItem item)
|
||||
LayoutBuilder &LayoutBuilder::addItem(const LayoutItem &item)
|
||||
{
|
||||
if (item.widget && !item.widget->parent())
|
||||
item.widget->setParent(layout()->parentWidget());
|
||||
@@ -158,4 +161,11 @@ LayoutBuilder &LayoutBuilder::addItem(LayoutItem item)
|
||||
return *this;
|
||||
}
|
||||
|
||||
LayoutBuilder &LayoutBuilder::addItems(const QList<LayoutBuilder::LayoutItem> &items)
|
||||
{
|
||||
for (const LayoutItem &item : items)
|
||||
addItem(item);
|
||||
return *this;
|
||||
}
|
||||
|
||||
} // Utils
|
||||
|
||||
Reference in New Issue
Block a user