summary refs log tree commit diff
path: root/src/ui
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-03-16 17:56:45 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-03-16 17:56:45 +0200
commit4a6becacca08fbb66d254fdca4870a33013df77a (patch)
tree21ade90977db21099de3a357829afd16f599ea86 /src/ui
parentRemove opacity animation from the scrollbar (diff)
downloadnheko-4a6becacca08fbb66d254fdca4870a33013df77a.tar.xz
Add fancy snackbar animation
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/SnackBar.cc28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/ui/SnackBar.cc b/src/ui/SnackBar.cc

index 1f02ee95..123d83e8 100644 --- a/src/ui/SnackBar.cc +++ b/src/ui/SnackBar.cc
@@ -1,6 +1,8 @@ #include <QDebug> #include <QPainter> +#include <tweeny.h> + #include "SnackBar.h" constexpr int STARTING_OFFSET = 1; @@ -27,7 +29,18 @@ SnackBar::SnackBar(QWidget *parent) hideTimer_ = QSharedPointer<QTimer>(new QTimer); hideTimer_->setSingleShot(true); - connect(showTimer_.data(), SIGNAL(timeout()), this, SLOT(onTimeout())); + auto offset_anim = tweeny::from(1.0f).to(0.0f).during(4000).via(tweeny::easing::elasticOut); + connect(showTimer_.data(), &QTimer::timeout, this, [this, offset_anim]() mutable { + if (offset_anim.progress() < 1.0f) { + offset_ = offset_anim.step(0.02f); + update(); + } else { + showTimer_->stop(); + hideTimer_->start(duration_); + offset_anim.seek(0.0f); + } + }); + connect(hideTimer_.data(), SIGNAL(timeout()), this, SLOT(hideMessage())); } @@ -76,19 +89,6 @@ SnackBar::showMessage(const QString &msg) } void -SnackBar::onTimeout() -{ - offset_ -= 1.1; - - if (offset_ <= 0.0) { - showTimer_->stop(); - hideTimer_->start(duration_); - } - - update(); -} - -void SnackBar::mousePressEvent(QMouseEvent *) { hideMessage();