summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qgridlayout.cpp
diff options
context:
space:
mode:
authorThorbjørn Lund Martsum <tmartsum@gmail.com>2012-09-03 06:35:39 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-21 23:17:55 +0200
commit42d681f9cfc984046a93b9efe19903d46ac68bb1 (patch)
tree0a93a177458dc661b9ceb200f8fa21250b6b601f /src/widgets/kernel/qgridlayout.cpp
parente327ba191df56f3315a004d7650d5f1080f12acb (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.cpp13
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()) {