From 711eddcf8ae0743fa341437877db01d967651fde Mon Sep 17 00:00:00 2001 From: Denis Rouzaud Date: Wed, 24 Jan 2018 08:34:19 -0400 Subject: [PATCH] [options search] correctly remove event filter --- src/gui/qgsoptionsdialogbase.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/gui/qgsoptionsdialogbase.cpp b/src/gui/qgsoptionsdialogbase.cpp index ee576db73a60..c668f90c0e63 100644 --- a/src/gui/qgsoptionsdialogbase.cpp +++ b/src/gui/qgsoptionsdialogbase.cpp @@ -484,15 +484,22 @@ bool QgsSearchHighlightOptionWidget::eventFilter( QObject *obj, QEvent *event ) { if ( mInstalledFilter && event->type() == QEvent::Show && obj == mWidget ) { - removeEventFilter( mWidget ); + mWidget->removeEventFilter( this ); mInstalledFilter = false; + // instead of catching the event and calling show again + // it might be better to use a timer to change the style + // after the widget is shown +#if 1 mWidget->show(); - //QTimer::singleShot( 500, this, [ = ] - //{ mWidget->setStyleSheet( mWidget->styleSheet() + mStyleSheet ); - mChangedStyle = true; - //} ); return true; +#else + QTimer::singleShot( 500, this, [ = ] + { + mWidget->setStyleSheet( mWidget->styleSheet() + mStyleSheet ); + mChangedStyle = true; + } ); +#endif } return QObject::eventFilter( obj, event ); } @@ -510,7 +517,7 @@ void QgsSearchHighlightOptionWidget::reset() } else if ( mInstalledFilter ) { - removeEventFilter( mWidget ); + mWidget->removeEventFilter( this ); mInstalledFilter = false; } }