From 7bf63c5b0b1d094ecf6de593e62ad653ef398378 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Wed, 30 Jul 2014 17:20:38 -0300 Subject: Add a new 'show' Animation, and use it on the close button. The error with 'ungrabMouse' warning that we got was because we were removing an item that had the mouse grab instead of waiting a few milisseconds so it won't be the mouse grabber anymore. So I'v used the Animations::hide() to get rid of it, and since it worked well, I'v also added a Animations::show() method to display it in a good fade-in way. Signed-off-by: Tomaz Canabrava Signed-off-by: Dirk Hohndel --- qt-ui/profile/animationfunctions.cpp | 12 ++++++++++++ qt-ui/profile/animationfunctions.h | 1 + qt-ui/profile/divepixmapitem.cpp | 4 +++- 3 files changed, 16 insertions(+), 1 deletion(-) (limited to 'qt-ui') diff --git a/qt-ui/profile/animationfunctions.cpp b/qt-ui/profile/animationfunctions.cpp index dc46d7f82..fb1c85f8d 100644 --- a/qt-ui/profile/animationfunctions.cpp +++ b/qt-ui/profile/animationfunctions.cpp @@ -18,6 +18,18 @@ namespace Animations { } } + void show(QObject *obj) + { + if (prefs.animation_speed != 0) { + QPropertyAnimation *animation = new QPropertyAnimation(obj, "opacity"); + animation->setStartValue(0); + animation->setEndValue(1); + animation->start(QAbstractAnimation::DeleteWhenStopped); + } else { + obj->setProperty("opacity", 1); + } + } + void animDelete(QObject *obj) { if (prefs.animation_speed != 0) { diff --git a/qt-ui/profile/animationfunctions.h b/qt-ui/profile/animationfunctions.h index d8e44be0c..3cfcff563 100644 --- a/qt-ui/profile/animationfunctions.h +++ b/qt-ui/profile/animationfunctions.h @@ -8,6 +8,7 @@ class QObject; namespace Animations { void hide(QObject *obj); + void show(QObject *obj); void moveTo(QObject *obj, qreal x, qreal y); void moveTo(QObject *obj, const QPointF &pos); void animDelete(QObject *obj); diff --git a/qt-ui/profile/divepixmapitem.cpp b/qt-ui/profile/divepixmapitem.cpp index 41541c21e..853b95029 100644 --- a/qt-ui/profile/divepixmapitem.cpp +++ b/qt-ui/profile/divepixmapitem.cpp @@ -94,7 +94,9 @@ void DivePictureItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) scene()->addItem(button); } button->setPos(mapToScene(0,0)); + button->setOpacity(0); button->show(); + Animations::show(button); button->disconnect(); connect(button, SIGNAL(clicked()), this, SLOT(removePicture())); } @@ -119,7 +121,7 @@ void DivePictureItem::mousePressEvent(QGraphicsSceneMouseEvent *event) void DivePictureItem::removePicture() { - button->hide(); + Animations::hide(button); hide(); DivePictureModel::instance()->removePicture(fileUrl); } -- cgit v1.2.3-70-g09d2