diff --git a/src/controls/QskDrawer.cpp b/src/controls/QskDrawer.cpp index c699e73f..6dcb8220 100644 --- a/src/controls/QskDrawer.cpp +++ b/src/controls/QskDrawer.cpp @@ -249,64 +249,6 @@ bool QskDrawer::event( QEvent* event ) return Inherited::event( event ); } -void QskDrawer::keyPressEvent( QKeyEvent* event ) -{ - if ( isOpen() ) - { - bool doClose = false; - - const auto key = event->key(); - - switch( key ) - { - case Qt::Key_Escape: - case Qt::Key_Cancel: - { - doClose = true; - break; - } - -#if 0 - /* - Do we want to have this - and what about opening with - the same keys ??? - */ - case Qt::Key_Up: - case Qt::Key_Down: - case Qt::Key_Left: - case Qt::Key_Right: - { - switch( m_data->edge ) - { - case Qt::TopEdge: - doClose = ( key == Qt::Key_Up ); - break; - case Qt::BottomEdge: - doClose = ( key == Qt::Key_Down ); - break; - case Qt::LeftEdge: - doClose = ( key == Qt::Key_Left ); - break; - case Qt::RightEdge: - doClose = ( key == Qt::Key_Right ); - break; - } - - break; - } -#endif - } - - if ( doClose ) - { - close(); - return; - } - } - - Inherited::keyPressEvent( event ); -} - void QskDrawer::gestureEvent( QskGestureEvent* event ) { if ( event->gesture()->type() == QskGesture::Pan ) diff --git a/src/controls/QskDrawer.h b/src/controls/QskDrawer.h index c067e5ac..e3c6e89d 100644 --- a/src/controls/QskDrawer.h +++ b/src/controls/QskDrawer.h @@ -46,7 +46,6 @@ class QSK_EXPORT QskDrawer : public QskSlideIn void itemChange( ItemChange, const ItemChangeData& ) override; void gestureEvent( QskGestureEvent* ) override; - void keyPressEvent( QKeyEvent* ) override; private: class PrivateData; diff --git a/src/controls/QskMenu.cpp b/src/controls/QskMenu.cpp index e4db363a..20b7f35c 100644 --- a/src/controls/QskMenu.cpp +++ b/src/controls/QskMenu.cpp @@ -267,20 +267,18 @@ void QskMenu::keyPressEvent( QKeyEvent* event ) if( m_data->currentIndex < 0 ) return; - int key = event->key(); - - switch( key ) + switch( event->key() ) { case Qt::Key_Up: { traverse( -1 ); - break; + return; } case Qt::Key_Down: { traverse( 1 ); - break; + return; } case Qt::Key_Select: @@ -292,19 +290,17 @@ void QskMenu::keyPressEvent( QKeyEvent* event ) return; } - case Qt::Key_Escape: - case Qt::Key_Cancel: - { - close(); - return; - } - default: { if ( const int steps = qskFocusChainIncrement( event ) ) + { traverse( steps ); + return; + } } } + + return Inherited::keyPressEvent( event ); } void QskMenu::keyReleaseEvent( QKeyEvent* ) diff --git a/src/controls/QskPopup.cpp b/src/controls/QskPopup.cpp index d82615e0..bb390445 100644 --- a/src/controls/QskPopup.cpp +++ b/src/controls/QskPopup.cpp @@ -519,6 +519,17 @@ bool QskPopup::event( QEvent* event ) return ok; } +void QskPopup::keyPressEvent( QKeyEvent* event ) +{ + if ( qskIsStandardKeyInput( event, QKeySequence::Cancel ) ) + { + close(); + return; + } + + return Inherited::keyPressEvent( event ); +} + void QskPopup::focusInEvent( QFocusEvent* event ) { Inherited::focusInEvent( event ); diff --git a/src/controls/QskPopup.h b/src/controls/QskPopup.h index 7d427def..a8ccb709 100644 --- a/src/controls/QskPopup.h +++ b/src/controls/QskPopup.h @@ -88,6 +88,7 @@ class QSK_EXPORT QskPopup : public QskControl bool event( QEvent* ) override; void focusInEvent( QFocusEvent* ) override; void focusOutEvent( QFocusEvent* ) override; + void keyPressEvent( QKeyEvent* ) override; void windowChangeEvent( QskWindowChangeEvent* ) override; void itemChange( QQuickItem::ItemChange, diff --git a/src/dialogs/QskDialogSubWindow.cpp b/src/dialogs/QskDialogSubWindow.cpp index 69e84ffb..5643fec7 100644 --- a/src/dialogs/QskDialogSubWindow.cpp +++ b/src/dialogs/QskDialogSubWindow.cpp @@ -278,15 +278,10 @@ void QskDialogSubWindow::keyPressEvent( QKeyEvent* event ) { auto button = m_data->buttonBox->defaultButton(); if ( button && button->isEnabled() ) + { button->click(); - } - - if ( qskIsStandardKeyInput( event, QKeySequence::Cancel ) ) - { - // using shortcuts instead ??? - - reject(); - return; + return; + } } Inherited::keyPressEvent( event );