From 264a408c91175d5e06eb0bdcc96214ee0801695a Mon Sep 17 00:00:00 2001 From: morb_au Date: Wed, 19 Jul 2006 01:05:31 +0000 Subject: [PATCH] Fix an Q_ASSERT failure in the Print Composer when "Adding new vect legend" and then clicking it into place on the composer canvas. This appears to be because of the use of QWidget::removeChild in QgsComposer::removeWidgetChildren, which is a Qt3 idiom (it doesn't appear in the Qt4.1 API). A QWidget::setParent(0) idiom is now used instead. git-svn-id: http://svn.osgeo.org/qgis/trunk@5611 c8812cc2-4d05-0410-92ff-de0c093fc19c --- src/composer/qgscomposer.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/composer/qgscomposer.cpp b/src/composer/qgscomposer.cpp index 58889e52b8b..2316615a27c 100644 --- a/src/composer/qgscomposer.cpp +++ b/src/composer/qgscomposer.cpp @@ -140,8 +140,17 @@ void QgsComposer::removeWidgetChildren ( QWidget *w ) if( ob->isWidgetType() ) { QWidget *ow = (QWidget *) ob; - w->removeChild ( ob ); - ow->hide (); + + // The following line is legacy Qt3, is not supported in Qt4 + // and can cause a SIGABRT + //w->removeChild ( ob ); + // instead: + ow->setParent(0); + // TODO: Eventually mItemOptionsFrame should be made + // a Qt4 QStackedWidget and all this removeWidgetChildren + // shenanigans can alledgedly go away + + ow->hide(); } } }