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>
This commit is contained in:
Tomaz Canabrava 2014-07-30 17:20:38 -03:00 committed by Dirk Hohndel
parent 3b9bceacb6
commit 7bf63c5b0b
3 changed files with 16 additions and 1 deletions

View file

@ -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) void animDelete(QObject *obj)
{ {
if (prefs.animation_speed != 0) { if (prefs.animation_speed != 0) {

View file

@ -8,6 +8,7 @@ class QObject;
namespace Animations { namespace Animations {
void hide(QObject *obj); void hide(QObject *obj);
void show(QObject *obj);
void moveTo(QObject *obj, qreal x, qreal y); void moveTo(QObject *obj, qreal x, qreal y);
void moveTo(QObject *obj, const QPointF &pos); void moveTo(QObject *obj, const QPointF &pos);
void animDelete(QObject *obj); void animDelete(QObject *obj);

View file

@ -94,7 +94,9 @@ void DivePictureItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
scene()->addItem(button); scene()->addItem(button);
} }
button->setPos(mapToScene(0,0)); button->setPos(mapToScene(0,0));
button->setOpacity(0);
button->show(); button->show();
Animations::show(button);
button->disconnect(); button->disconnect();
connect(button, SIGNAL(clicked()), this, SLOT(removePicture())); connect(button, SIGNAL(clicked()), this, SLOT(removePicture()));
} }
@ -119,7 +121,7 @@ void DivePictureItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
void DivePictureItem::removePicture() void DivePictureItem::removePicture()
{ {
button->hide(); Animations::hide(button);
hide(); hide();
DivePictureModel::instance()->removePicture(fileUrl); DivePictureModel::instance()->removePicture(fileUrl);
} }