aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2014-07-30 17:20:38 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-07-30 14:15:09 -0700
commit7bf63c5b0b1d094ecf6de593e62ad653ef398378 (patch)
treea3c9603100e679220057b0e099ef567b99302931
parent3b9bceacb6efcd3e97c95077a2295c931c834514 (diff)
downloadsubsurface-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>
-rw-r--r--qt-ui/profile/animationfunctions.cpp12
-rw-r--r--qt-ui/profile/animationfunctions.h1
-rw-r--r--qt-ui/profile/divepixmapitem.cpp4
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);
}