Author: coolo Date: Wed Jun 4 18:11:59 2008 New Revision: 48084 URL: http://svn.opensuse.org/viewcvs/yast?rev=48084&view=rev Log: unregister wizards + some extra paranoia Modified: trunk/qt/src/QY2Styler.cc trunk/qt/src/QY2Styler.h trunk/qt/src/YQWizard.cc Modified: trunk/qt/src/QY2Styler.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/qt/src/QY2Styler.cc?rev=48084&r1=48083&r2=48084&view=diff ============================================================================== --- trunk/qt/src/QY2Styler.cc (original) +++ trunk/qt/src/QY2Styler.cc Wed Jun 4 18:11:59 2008 @@ -87,8 +87,14 @@ widget->setStyleSheet( _style ); } +void QY2Styler::unregisterWidget( QWidget *widget ) +{ + _children.remove( widget ); +} + void QY2Styler::registerChildWidget( QWidget *parent, QWidget *widget ) { + qDebug() << "registerChildWidget " << parent << " " << widget; widget->installEventFilter( this ); _children[parent].push_back( widget ); } @@ -101,6 +107,7 @@ void QY2Styler::renderParent( QWidget *wid ) { + qDebug() << "renderParent " << wid << endl; QString name = wid->objectName(); // if the parent does not have a background, this does not make sense @@ -123,6 +130,7 @@ QWidget *child; foreach( child, _children[wid] ) { + qDebug() << "foreach " << child << " " << wid; QString name = child->objectName(); if (! child->isVisible() || _backgrounds[name].pix.isNull() ) @@ -152,6 +160,9 @@ bool QY2Styler::updateRendering( QWidget *wid ) { + if (!wid) + return false; + QString name = wid->objectName(); if ( !_backgrounds.contains( name ) ) @@ -173,6 +184,8 @@ QWidget *parent = wid->parentWidget(); while ( parent && !_children.contains( parent ) ) parent = parent->parentWidget(); + if (!parent) + return false; renderParent( parent ); } else { renderParent( wid ); Modified: trunk/qt/src/QY2Styler.h URL: http://svn.opensuse.org/viewcvs/yast/trunk/qt/src/QY2Styler.h?rev=48084&r1=48083&r2=48084&view=diff ============================================================================== --- trunk/qt/src/QY2Styler.h (original) +++ trunk/qt/src/QY2Styler.h Wed Jun 4 18:11:59 2008 @@ -17,6 +17,7 @@ void setStyleSheet( const QString &file ); QString themeDir() const; void registerWidget( QWidget *widget ); + void unregisterWidget( QWidget *widget ); void registerChildWidget( QWidget *parent, QWidget *widget ); QString textStyle() const { return _textStyle; } Modified: trunk/qt/src/YQWizard.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/qt/src/YQWizard.cc?rev=48084&r1=48083&r2=48084&view=diff ============================================================================== --- trunk/qt/src/YQWizard.cc (original) +++ trunk/qt/src/YQWizard.cc Wed Jun 4 18:11:59 2008 @@ -155,8 +155,9 @@ if ( this == main_wizard ) main_wizard = 0; - if ( _helpDlg ) - delete _helpDlg; + delete _helpDlg; + + QY2Styler::self()->unregisterWidget( this ); } bool YQWizard::isSecondary() const -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org