From d251ee9dcbd015f2acbe76231902b72163cd05a2 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 21 Jun 2013 10:21:36 +0200 Subject: [PATCH] Designer: Fix morphing of widgets in QSplitters. They were not handled at all, children were just reparented resulting in the morphed widgets being appended. Task-number: QTBUG-31911 Change-Id: Idae8f66663416d514a2f3c299e58d726a3dd578a Reviewed-by: Jarek Kobus --- src/designer/src/lib/shared/morphmenu.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/designer/src/lib/shared/morphmenu.cpp b/src/designer/src/lib/shared/morphmenu.cpp index 516734d..8a47784 100644 --- a/src/designer/src/lib/shared/morphmenu.cpp +++ b/src/designer/src/lib/shared/morphmenu.cpp @@ -62,6 +62,7 @@ #include #include #include +#include #include #include @@ -457,6 +458,13 @@ void MorphWidgetCommand::morph(QWidget *before, QWidget *after) Q_ASSERT(lh); lh->replaceWidget(containingLayout, before, after); delete lh; + } else if (QSplitter *splitter = qobject_cast(parent)) { + const int index = splitter->indexOf(before); + before->hide(); + before->setParent(0); + splitter->insertWidget(index, after); + after->setParent(parent); + after->setGeometry(oldGeom); } else { before->hide(); before->setParent(0); -- 2.7.4