|
|
|
@ -74,18 +74,33 @@ bool FlyoutOverlayWidget::isShown() const
@@ -74,18 +74,33 @@ bool FlyoutOverlayWidget::isShown() const
|
|
|
|
|
return (percent == 1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool FlyoutOverlayWidget::isBeingAnimated() const |
|
|
|
|
{ |
|
|
|
|
return (animation->state() == QAbstractAnimation::Running); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool FlyoutOverlayWidget::isBeingShown() const |
|
|
|
|
{ |
|
|
|
|
return (isBeingAnimated() && animation->direction() == QAbstractAnimation::Forward); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void FlyoutOverlayWidget::animateShow() |
|
|
|
|
{ |
|
|
|
|
this->startPos = pos(); |
|
|
|
|
animation->setDirection(QAbstractAnimation::Forward); |
|
|
|
|
animation->start(); |
|
|
|
|
if (percent == 1.0f) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
if (animation->state() != QAbstractAnimation::Running) |
|
|
|
|
this->startPos = pos(); |
|
|
|
|
|
|
|
|
|
startAnimation(true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void FlyoutOverlayWidget::animateHide() |
|
|
|
|
{ |
|
|
|
|
this->startPos = pos(); |
|
|
|
|
animation->setDirection(QAbstractAnimation::Backward); |
|
|
|
|
animation->start(); |
|
|
|
|
if (animation->state() != QAbstractAnimation::Running) |
|
|
|
|
this->startPos = pos(); |
|
|
|
|
|
|
|
|
|
startAnimation(false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void FlyoutOverlayWidget::finishedAnimation() |
|
|
|
@ -98,3 +113,11 @@ void FlyoutOverlayWidget::finishedAnimation()
@@ -98,3 +113,11 @@ void FlyoutOverlayWidget::finishedAnimation()
|
|
|
|
|
QTimer::singleShot(50, this, &FlyoutOverlayWidget::hidden); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void FlyoutOverlayWidget::startAnimation(bool forward) |
|
|
|
|
{ |
|
|
|
|
animation->setDirection(forward ? QAbstractAnimation::Forward : QAbstractAnimation::Backward); |
|
|
|
|
animation->start(); |
|
|
|
|
animation->setCurrentTime(animation->duration() * percent); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|