QskGestureRecognizer improvements
This commit is contained in:
parent
2e980f087d
commit
208865ba8d
@ -229,19 +229,17 @@ namespace
|
||||
}
|
||||
|
||||
{
|
||||
auto drawer = new Drawer( parentItem() );
|
||||
drawer->setEdge( Qt::RightEdge );
|
||||
|
||||
auto burger = new QskPushButton( "≡", this );
|
||||
burger->setEmphasis( QskPushButton::LowEmphasis );
|
||||
|
||||
connect( burger, &QskPushButton::clicked,
|
||||
drawer, &QskPopup::open );
|
||||
this, &Header::drawerRequested );
|
||||
}
|
||||
}
|
||||
|
||||
Q_SIGNALS:
|
||||
void enabledToggled( bool );
|
||||
void drawerRequested();
|
||||
};
|
||||
|
||||
class MainView : public QskMainView
|
||||
@ -264,6 +262,12 @@ namespace
|
||||
connect( header, &Header::enabledToggled,
|
||||
tabView, &TabView::setPagesEnabled );
|
||||
|
||||
auto drawer = new Drawer( this );
|
||||
drawer->setEdge( Qt::RightEdge );
|
||||
|
||||
connect( header, &Header::drawerRequested,
|
||||
drawer, &QskPopup::open );
|
||||
|
||||
setHeader( header );
|
||||
setBody( tabView );
|
||||
}
|
||||
|
@ -142,12 +142,9 @@ Qt::MouseButtons QskGestureRecognizer::acceptedMouseButtons() const
|
||||
return m_data->buttons;
|
||||
}
|
||||
|
||||
QRectF QskGestureRecognizer::gestureRect() const
|
||||
bool QskGestureRecognizer::isAcceptedPos( const QPointF& pos ) const
|
||||
{
|
||||
if ( m_data->watchedItem )
|
||||
return qskItemRect( m_data->watchedItem );
|
||||
|
||||
return QRectF( 0.0, 0.0, -1.0, -1.0 );
|
||||
return m_data->watchedItem && m_data->watchedItem->contains( pos );
|
||||
}
|
||||
|
||||
void QskGestureRecognizer::setRejectOnTimeout( bool on )
|
||||
@ -313,7 +310,7 @@ bool QskGestureRecognizer::processMouseEvent(
|
||||
|
||||
if ( event->type() == QEvent::MouseButtonPress )
|
||||
{
|
||||
if ( !gestureRect().contains( pos ) )
|
||||
if ( !isAcceptedPos( pos ) )
|
||||
return false;
|
||||
|
||||
if ( m_data->state != Idle )
|
||||
|
@ -22,6 +22,7 @@ class QSK_EXPORT QskGestureRecognizer : public QObject
|
||||
|
||||
Q_PROPERTY( State state READ state NOTIFY stateChanged )
|
||||
Q_PROPERTY( QQuickItem* watchedItem READ watchedItem WRITE setWatchedItem )
|
||||
Q_PROPERTY( QQuickItem* targetItem READ targetItem WRITE setTargetItem )
|
||||
|
||||
Q_PROPERTY( Qt::MouseButtons acceptedMouseButtons
|
||||
READ acceptedMouseButtons WRITE setAcceptedMouseButtons )
|
||||
@ -72,7 +73,7 @@ class QSK_EXPORT QskGestureRecognizer : public QObject
|
||||
|
||||
State state() const;
|
||||
|
||||
virtual QRectF gestureRect() const;
|
||||
virtual bool isAcceptedPos( const QPointF& ) const;
|
||||
|
||||
Q_SIGNALS:
|
||||
void stateChanged( State from, State to );
|
||||
|
@ -136,15 +136,15 @@ namespace
|
||||
setOrientations( Qt::Horizontal | Qt::Vertical );
|
||||
}
|
||||
|
||||
QRectF gestureRect() const override
|
||||
bool isAcceptedPos( const QPointF& pos ) const override
|
||||
{
|
||||
if ( auto scrollBox = qobject_cast< const QskScrollBox* >( watchedItem() ) )
|
||||
{
|
||||
if ( qskIsScrollable( scrollBox, orientations() ) )
|
||||
return scrollBox->viewContentsRect();
|
||||
return scrollBox->viewContentsRect().contains( pos );
|
||||
}
|
||||
|
||||
return QRectF( 0.0, 0.0, -1.0, -1.0 ); // empty
|
||||
return false;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user