QskPopup key handling added
This commit is contained in:
parent
346aff98d1
commit
83df3ad8da
@ -32,7 +32,7 @@ static inline qreal qskDefaultDragMargin()
|
||||
return QGuiApplication::styleHints()->startDragDistance();
|
||||
}
|
||||
|
||||
static void qskCatchMouseEvents( QQuickItem* item )
|
||||
static inline void qskCatchMouseEvents( QQuickItem* item )
|
||||
{
|
||||
#if 1
|
||||
// manipulating other items - do we really want to do this ?
|
||||
@ -352,64 +352,6 @@ qreal QskDrawer::dragMargin() const
|
||||
return m_data->dragMargin;
|
||||
}
|
||||
|
||||
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 )
|
||||
|
@ -52,7 +52,6 @@ class QSK_EXPORT QskDrawer : public QskPopup
|
||||
protected:
|
||||
void itemChange( ItemChange, const ItemChangeData& ) override;
|
||||
void gestureEvent( QskGestureEvent* ) override;
|
||||
void keyPressEvent( QKeyEvent* ) override;
|
||||
|
||||
private:
|
||||
void setSliding( bool );
|
||||
|
@ -268,20 +268,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:
|
||||
@ -293,19 +291,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* )
|
||||
|
@ -472,10 +472,10 @@ bool QskPopup::event( QEvent* event )
|
||||
}
|
||||
case QskEvent::Animator:
|
||||
{
|
||||
const auto animtorEvent = static_cast< QskAnimatorEvent* >( event );
|
||||
const auto animatorEvent = static_cast< QskAnimatorEvent* >( event );
|
||||
|
||||
if ( ( animtorEvent->state() == QskAnimatorEvent::Terminated )
|
||||
&& ( animtorEvent->aspect() == m_data->transitionAspect ) )
|
||||
if ( ( animatorEvent->state() == QskAnimatorEvent::Terminated )
|
||||
&& ( animatorEvent->aspect() == m_data->transitionAspect ) )
|
||||
{
|
||||
if ( !isOpen() )
|
||||
{
|
||||
@ -507,6 +507,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 );
|
||||
|
@ -91,6 +91,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,
|
||||
|
@ -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 );
|
||||
|
Loading…
x
Reference in New Issue
Block a user