diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2014-07-30 17:20:38 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-07-30 14:15:09 -0700 |
commit | 7bf63c5b0b1d094ecf6de593e62ad653ef398378 (patch) | |
tree | a3c9603100e679220057b0e099ef567b99302931 /qt-ui | |
parent | 3b9bceacb6efcd3e97c95077a2295c931c834514 (diff) | |
download | subsurface-7bf63c5b0b1d094ecf6de593e62ad653ef398378.tar.gz |
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 <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/profile/animationfunctions.cpp | 12 | ||||
-rw-r--r-- | qt-ui/profile/animationfunctions.h | 1 | ||||
-rw-r--r-- | qt-ui/profile/divepixmapitem.cpp | 4 |
3 files changed, 16 insertions, 1 deletions
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); } |