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();
|
return QGuiApplication::styleHints()->startDragDistance();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qskCatchMouseEvents( QQuickItem* item )
|
static inline void qskCatchMouseEvents( QQuickItem* item )
|
||||||
{
|
{
|
||||||
#if 1
|
#if 1
|
||||||
// manipulating other items - do we really want to do this ?
|
// manipulating other items - do we really want to do this ?
|
||||||
@ -352,64 +352,6 @@ qreal QskDrawer::dragMargin() const
|
|||||||
return m_data->dragMargin;
|
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 )
|
void QskDrawer::gestureEvent( QskGestureEvent* event )
|
||||||
{
|
{
|
||||||
if ( event->gesture()->type() == QskGesture::Pan )
|
if ( event->gesture()->type() == QskGesture::Pan )
|
||||||
|
@ -52,7 +52,6 @@ class QSK_EXPORT QskDrawer : public QskPopup
|
|||||||
protected:
|
protected:
|
||||||
void itemChange( ItemChange, const ItemChangeData& ) override;
|
void itemChange( ItemChange, const ItemChangeData& ) override;
|
||||||
void gestureEvent( QskGestureEvent* ) override;
|
void gestureEvent( QskGestureEvent* ) override;
|
||||||
void keyPressEvent( QKeyEvent* ) override;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void setSliding( bool );
|
void setSliding( bool );
|
||||||
|
@ -268,20 +268,18 @@ void QskMenu::keyPressEvent( QKeyEvent* event )
|
|||||||
if( m_data->currentIndex < 0 )
|
if( m_data->currentIndex < 0 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int key = event->key();
|
switch( event->key() )
|
||||||
|
|
||||||
switch( key )
|
|
||||||
{
|
{
|
||||||
case Qt::Key_Up:
|
case Qt::Key_Up:
|
||||||
{
|
{
|
||||||
traverse( -1 );
|
traverse( -1 );
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case Qt::Key_Down:
|
case Qt::Key_Down:
|
||||||
{
|
{
|
||||||
traverse( 1 );
|
traverse( 1 );
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case Qt::Key_Select:
|
case Qt::Key_Select:
|
||||||
@ -293,19 +291,17 @@ void QskMenu::keyPressEvent( QKeyEvent* event )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case Qt::Key_Escape:
|
|
||||||
case Qt::Key_Cancel:
|
|
||||||
{
|
|
||||||
close();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
if ( const int steps = qskFocusChainIncrement( event ) )
|
if ( const int steps = qskFocusChainIncrement( event ) )
|
||||||
|
{
|
||||||
traverse( steps );
|
traverse( steps );
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return Inherited::keyPressEvent( event );
|
||||||
}
|
}
|
||||||
|
|
||||||
void QskMenu::keyReleaseEvent( QKeyEvent* )
|
void QskMenu::keyReleaseEvent( QKeyEvent* )
|
||||||
|
@ -472,10 +472,10 @@ bool QskPopup::event( QEvent* event )
|
|||||||
}
|
}
|
||||||
case QskEvent::Animator:
|
case QskEvent::Animator:
|
||||||
{
|
{
|
||||||
const auto animtorEvent = static_cast< QskAnimatorEvent* >( event );
|
const auto animatorEvent = static_cast< QskAnimatorEvent* >( event );
|
||||||
|
|
||||||
if ( ( animtorEvent->state() == QskAnimatorEvent::Terminated )
|
if ( ( animatorEvent->state() == QskAnimatorEvent::Terminated )
|
||||||
&& ( animtorEvent->aspect() == m_data->transitionAspect ) )
|
&& ( animatorEvent->aspect() == m_data->transitionAspect ) )
|
||||||
{
|
{
|
||||||
if ( !isOpen() )
|
if ( !isOpen() )
|
||||||
{
|
{
|
||||||
@ -507,6 +507,17 @@ bool QskPopup::event( QEvent* event )
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QskPopup::keyPressEvent( QKeyEvent* event )
|
||||||
|
{
|
||||||
|
if ( qskIsStandardKeyInput( event, QKeySequence::Cancel ) )
|
||||||
|
{
|
||||||
|
close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Inherited::keyPressEvent( event );
|
||||||
|
}
|
||||||
|
|
||||||
void QskPopup::focusInEvent( QFocusEvent* event )
|
void QskPopup::focusInEvent( QFocusEvent* event )
|
||||||
{
|
{
|
||||||
Inherited::focusInEvent( event );
|
Inherited::focusInEvent( event );
|
||||||
|
@ -91,6 +91,7 @@ class QSK_EXPORT QskPopup : public QskControl
|
|||||||
bool event( QEvent* ) override;
|
bool event( QEvent* ) override;
|
||||||
void focusInEvent( QFocusEvent* ) override;
|
void focusInEvent( QFocusEvent* ) override;
|
||||||
void focusOutEvent( QFocusEvent* ) override;
|
void focusOutEvent( QFocusEvent* ) override;
|
||||||
|
void keyPressEvent( QKeyEvent* ) override;
|
||||||
void windowChangeEvent( QskWindowChangeEvent* ) override;
|
void windowChangeEvent( QskWindowChangeEvent* ) override;
|
||||||
|
|
||||||
void itemChange( QQuickItem::ItemChange,
|
void itemChange( QQuickItem::ItemChange,
|
||||||
|
@ -278,15 +278,10 @@ void QskDialogSubWindow::keyPressEvent( QKeyEvent* event )
|
|||||||
{
|
{
|
||||||
auto button = m_data->buttonBox->defaultButton();
|
auto button = m_data->buttonBox->defaultButton();
|
||||||
if ( button && button->isEnabled() )
|
if ( button && button->isEnabled() )
|
||||||
|
{
|
||||||
button->click();
|
button->click();
|
||||||
}
|
return;
|
||||||
|
}
|
||||||
if ( qskIsStandardKeyInput( event, QKeySequence::Cancel ) )
|
|
||||||
{
|
|
||||||
// using shortcuts instead ???
|
|
||||||
|
|
||||||
reject();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Inherited::keyPressEvent( event );
|
Inherited::keyPressEvent( event );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user