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 );
|
auto burger = new QskPushButton( "≡", this );
|
||||||
burger->setEmphasis( QskPushButton::LowEmphasis );
|
burger->setEmphasis( QskPushButton::LowEmphasis );
|
||||||
|
|
||||||
connect( burger, &QskPushButton::clicked,
|
connect( burger, &QskPushButton::clicked,
|
||||||
drawer, &QskPopup::open );
|
this, &Header::drawerRequested );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void enabledToggled( bool );
|
void enabledToggled( bool );
|
||||||
|
void drawerRequested();
|
||||||
};
|
};
|
||||||
|
|
||||||
class MainView : public QskMainView
|
class MainView : public QskMainView
|
||||||
@ -264,6 +262,12 @@ namespace
|
|||||||
connect( header, &Header::enabledToggled,
|
connect( header, &Header::enabledToggled,
|
||||||
tabView, &TabView::setPagesEnabled );
|
tabView, &TabView::setPagesEnabled );
|
||||||
|
|
||||||
|
auto drawer = new Drawer( this );
|
||||||
|
drawer->setEdge( Qt::RightEdge );
|
||||||
|
|
||||||
|
connect( header, &Header::drawerRequested,
|
||||||
|
drawer, &QskPopup::open );
|
||||||
|
|
||||||
setHeader( header );
|
setHeader( header );
|
||||||
setBody( tabView );
|
setBody( tabView );
|
||||||
}
|
}
|
||||||
|
@ -142,12 +142,9 @@ Qt::MouseButtons QskGestureRecognizer::acceptedMouseButtons() const
|
|||||||
return m_data->buttons;
|
return m_data->buttons;
|
||||||
}
|
}
|
||||||
|
|
||||||
QRectF QskGestureRecognizer::gestureRect() const
|
bool QskGestureRecognizer::isAcceptedPos( const QPointF& pos ) const
|
||||||
{
|
{
|
||||||
if ( m_data->watchedItem )
|
return m_data->watchedItem && m_data->watchedItem->contains( pos );
|
||||||
return qskItemRect( m_data->watchedItem );
|
|
||||||
|
|
||||||
return QRectF( 0.0, 0.0, -1.0, -1.0 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void QskGestureRecognizer::setRejectOnTimeout( bool on )
|
void QskGestureRecognizer::setRejectOnTimeout( bool on )
|
||||||
@ -313,7 +310,7 @@ bool QskGestureRecognizer::processMouseEvent(
|
|||||||
|
|
||||||
if ( event->type() == QEvent::MouseButtonPress )
|
if ( event->type() == QEvent::MouseButtonPress )
|
||||||
{
|
{
|
||||||
if ( !gestureRect().contains( pos ) )
|
if ( !isAcceptedPos( pos ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if ( m_data->state != Idle )
|
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( State state READ state NOTIFY stateChanged )
|
||||||
Q_PROPERTY( QQuickItem* watchedItem READ watchedItem WRITE setWatchedItem )
|
Q_PROPERTY( QQuickItem* watchedItem READ watchedItem WRITE setWatchedItem )
|
||||||
|
Q_PROPERTY( QQuickItem* targetItem READ targetItem WRITE setTargetItem )
|
||||||
|
|
||||||
Q_PROPERTY( Qt::MouseButtons acceptedMouseButtons
|
Q_PROPERTY( Qt::MouseButtons acceptedMouseButtons
|
||||||
READ acceptedMouseButtons WRITE setAcceptedMouseButtons )
|
READ acceptedMouseButtons WRITE setAcceptedMouseButtons )
|
||||||
@ -72,7 +73,7 @@ class QSK_EXPORT QskGestureRecognizer : public QObject
|
|||||||
|
|
||||||
State state() const;
|
State state() const;
|
||||||
|
|
||||||
virtual QRectF gestureRect() const;
|
virtual bool isAcceptedPos( const QPointF& ) const;
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void stateChanged( State from, State to );
|
void stateChanged( State from, State to );
|
||||||
|
@ -136,15 +136,15 @@ namespace
|
|||||||
setOrientations( Qt::Horizontal | Qt::Vertical );
|
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 ( auto scrollBox = qobject_cast< const QskScrollBox* >( watchedItem() ) )
|
||||||
{
|
{
|
||||||
if ( qskIsScrollable( scrollBox, orientations() ) )
|
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