diff options
author | Thorbjørn Lund Martsum <tmartsum@gmail.com> | 2012-09-03 06:35:39 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-21 23:17:55 +0200 |
commit | 42d681f9cfc984046a93b9efe19903d46ac68bb1 (patch) | |
tree | 0a93a177458dc661b9ceb200f8fa21250b6b601f /src/widgets/kernel/qgridlayout.cpp | |
parent | e327ba191df56f3315a004d7650d5f1080f12acb (diff) |
Add widget replace function to QLayout
Sometimes it is nice to be able to replace a widget in a layout.
Change-Id: I23a6a65e417e94d53bc48639503db1a142bc3f10
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Diffstat (limited to 'src/widgets/kernel/qgridlayout.cpp')
-rw-r--r-- | src/widgets/kernel/qgridlayout.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/widgets/kernel/qgridlayout.cpp b/src/widgets/kernel/qgridlayout.cpp index 96820e3891..7da2104971 100644 --- a/src/widgets/kernel/qgridlayout.cpp +++ b/src/widgets/kernel/qgridlayout.cpp @@ -85,6 +85,7 @@ public: void setGeometry(const QRect &r) { item_->setGeometry(r); } Qt::Alignment alignment() const { return item_->alignment(); } QLayoutItem *item() { return item_; } + void setItem(QLayoutItem *newitem) { item_ = newitem; } QLayoutItem *takeItem() { QLayoutItem *i = item_; item_ = 0; return i; } int hStretch() { return item_->widget() ? @@ -171,6 +172,18 @@ public: } return 0; } + QLayoutItem* replaceAt(int index, QLayoutItem *newitem) Q_DECL_OVERRIDE + { + if (!newitem) + return 0; + QLayoutItem *item = 0; + QGridBox *b = things.value(index); + if (b) { + item = b->takeItem(); + b->setItem(newitem); + } + return item; + } void getItemPosition(int index, int *row, int *column, int *rowSpan, int *columnSpan) const { if (index < things.count()) { |