LayoutBuilder: Use explicitly empty cells for nullptr widgets

And layouts, and empty label texts.

Task-number: QTCREATORBUG-31024
Change-Id: I8435327ddd75d0a218d2a50efe900a7d5ec6490f
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
hjk
2024-06-07 10:44:08 +02:00
parent 88ee3aa908
commit 2b4212bfd6
2 changed files with 22 additions and 21 deletions

View File

@@ -232,10 +232,21 @@ LayoutItem::LayoutItem() = default;
LayoutItem::~LayoutItem() = default; LayoutItem::~LayoutItem() = default;
LayoutItem::LayoutItem(QLayout *l)
: layout(l), empty(!l)
{}
LayoutItem::LayoutItem(QWidget *w)
: widget(w), empty(!w)
{}
LayoutItem::LayoutItem(const QString &t)
: text(t), empty(t.isEmpty())
{}
LayoutItem::LayoutItem(const LayoutModifier &inner) LayoutItem::LayoutItem(const LayoutModifier &inner)
{ : empty(!inner), ownerModifier(inner)
ownerModifier = inner; {}
}
/*! /*!
\fn template <class T> LayoutItem(const T &t) \fn template <class T> LayoutItem(const T &t)
@@ -428,31 +439,23 @@ void addToWidget(Widget *widget, const Layout &layout)
void addToLayout(Layout *layout, const Widget &inner) void addToLayout(Layout *layout, const Widget &inner)
{ {
LayoutItem item; layout->addLayoutItem(access(&inner));
item.widget = access(&inner);
layout->addLayoutItem(item);
} }
void addToLayout(Layout *layout, QWidget *inner) void addToLayout(Layout *layout, QWidget *inner)
{ {
LayoutItem item; layout->addLayoutItem(inner);
item.widget = inner;
layout->addLayoutItem(item);
} }
void addToLayout(Layout *layout, QLayout *inner) void addToLayout(Layout *layout, QLayout *inner)
{ {
LayoutItem item; layout->addLayoutItem(inner);
item.layout = inner;
layout->addLayoutItem(item);
} }
void addToLayout(Layout *layout, const Layout &inner) void addToLayout(Layout *layout, const Layout &inner)
{ {
inner.flush_(); inner.flush_();
LayoutItem item; layout->addLayoutItem(access(&inner));
item.layout = access(&inner);
layout->addLayoutItem(item);
} }
void addToLayout(Layout *layout, const LayoutModifier &inner) void addToLayout(Layout *layout, const LayoutModifier &inner)
@@ -462,9 +465,7 @@ void addToLayout(Layout *layout, const LayoutModifier &inner)
void addToLayout(Layout *layout, const QString &inner) void addToLayout(Layout *layout, const QString &inner)
{ {
LayoutItem item; layout->addLayoutItem(inner);
item.text = inner;
layout->addLayoutItem(item);
} }
void empty(Layout *layout) void empty(Layout *layout)

View File

@@ -149,9 +149,9 @@ class QTCREATOR_UTILS_EXPORT LayoutItem
public: public:
~LayoutItem(); ~LayoutItem();
LayoutItem(); LayoutItem();
LayoutItem(QLayout *l) : layout(l) {} LayoutItem(QLayout *l);
LayoutItem(QWidget *w) : widget(w) {} LayoutItem(QWidget *w);
LayoutItem(const QString &t) : text(t) {} LayoutItem(const QString &t);
LayoutItem(const LayoutModifier &inner); LayoutItem(const LayoutModifier &inner);
QString text; QString text;