don't close popup after first click, so user can select all necessary

options at once
This commit is contained in:
Alexander Bruy 2017-04-07 10:05:23 +03:00
parent 9fbb31a31c
commit 1e3baca361
2 changed files with 9 additions and 2 deletions

View File

@ -169,10 +169,11 @@ void QgsCheckableComboBox::toggleItemCheckState( int index )
void QgsCheckableComboBox::hidePopup()
{
if ( !view()->underMouse() )
if ( !mSkipHide )
{
QComboBox::hidePopup();
}
mSkipHide = false;
}
void QgsCheckableComboBox::showContextMenu( const QPoint &pos )
@ -206,7 +207,11 @@ void QgsCheckableComboBox::deselectAllOptions()
bool QgsCheckableComboBox::eventFilter( QObject *object, QEvent *event )
{
Q_UNUSED( object );
if ( ( event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonRelease )
&& object == view()->viewport() )
{
mSkipHide = true;
}
if ( event->type() == QEvent::MouseButtonRelease )
{

View File

@ -227,6 +227,8 @@ class GUI_EXPORT QgsCheckableComboBox : public QComboBox
QString mSeparator;
QString mDefaultText;
bool mSkipHide = false;
QMenu *mContextMenu = nullptr;
QAction *mSelectAllAction = nullptr;
QAction *mDeselectAllAction = nullptr;