gesture also used for closing
This commit is contained in:
parent
930cb321a1
commit
79924aeebe
|
@ -196,30 +196,35 @@ namespace
|
||||||
bool isAcceptedPos( const QPointF& pos ) const override
|
bool isAcceptedPos( const QPointF& pos ) const override
|
||||||
{
|
{
|
||||||
auto drawer = qobject_cast< const QskDrawer* >( targetItem() );
|
auto drawer = qobject_cast< const QskDrawer* >( targetItem() );
|
||||||
|
if ( drawer->isFading() )
|
||||||
const auto dragMargin = drawer->dragMargin();
|
|
||||||
if ( dragMargin <= 0.0 )
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
auto rect = qskItemRect( watchedItem() );
|
auto rect = qskItemRect( watchedItem() );
|
||||||
|
|
||||||
switch( drawer->edge() )
|
if ( !drawer->isOpen() )
|
||||||
{
|
{
|
||||||
case Qt::LeftEdge:
|
const auto dragMargin = drawer->dragMargin();
|
||||||
rect.setRight( rect.left() + dragMargin );
|
if ( dragMargin <= 0.0 )
|
||||||
break;
|
return false;
|
||||||
|
|
||||||
case Qt::RightEdge:
|
switch( drawer->edge() )
|
||||||
rect.setLeft( rect.right() - dragMargin );
|
{
|
||||||
break;
|
case Qt::LeftEdge:
|
||||||
|
rect.setRight( rect.left() + dragMargin );
|
||||||
|
break;
|
||||||
|
|
||||||
case Qt::TopEdge:
|
case Qt::RightEdge:
|
||||||
rect.setBottom( rect.top() + dragMargin );
|
rect.setLeft( rect.right() - dragMargin );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Qt::BottomEdge:
|
case Qt::TopEdge:
|
||||||
rect.setTop( rect.bottom() - dragMargin );
|
rect.setBottom( rect.top() + dragMargin );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case Qt::BottomEdge:
|
||||||
|
rect.setTop( rect.bottom() - dragMargin );
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return rect.contains( pos );
|
return rect.contains( pos );
|
||||||
|
@ -324,8 +329,9 @@ void QskDrawer::gestureEvent( QskGestureEvent* event )
|
||||||
const auto gesture = static_cast< const QskPanGesture* >( event->gesture().get() );
|
const auto gesture = static_cast< const QskPanGesture* >( event->gesture().get() );
|
||||||
if ( gesture->state() == QskGesture::Finished )
|
if ( gesture->state() == QskGesture::Finished )
|
||||||
{
|
{
|
||||||
if ( qskCheckDirection( m_data->edge, gesture ) )
|
const auto forwards = qskCheckDirection( m_data->edge, gesture );
|
||||||
open();
|
if ( forwards != isOpen() )
|
||||||
|
setOpen( forwards );
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue