1 /////////////////////////////////////////////////////////////////////////
2 // pulseanimation.cpp //
4 // Copyright(C) 2009 Igor Trindade Oliveira <igor.oliveira@indt.org.br>//
5 // Copyright(C) 2009 Adenilson Cavalcanti <adenilson.silva@idnt.org.br>//
7 // This library is free software; you can redistribute it and/or //
8 // modify it under the terms of the GNU Lesser General Public //
9 // License as published by the Free Software Foundation; either //
10 // version 2.1 of the License, or (at your option) any later version. //
12 // This library is distributed in the hope that it will be useful, //
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU //
15 // Lesser General Public License for more details. //
17 // You should have received a copy of the GNU Lesser General Public //
18 // License along with this library; if not, write to the Free Software //
19 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA //
21 /////////////////////////////////////////////////////////////////////////
22 #include "pulseanimation.h"
24 PulseAnimation::PulseAnimation(QGraphicsWidget
*target
, QObject
*parent
)
25 : QObject(parent
), m_inside(false)
27 target
->installEventFilter(this);
28 target
->setAcceptHoverEvents(true);
32 QSequentialAnimationGroup
*group
= new QSequentialAnimationGroup(this);
33 QPropertyAnimation
*anim1
= new QPropertyAnimation(target
, "yScale");
34 QVariant originalValue
= target
->property("yScale");
35 // ### duration etc. should be configurable
36 anim1
->setDuration(50);
37 anim1
->setEndValue(1.40);
38 group
->addAnimation(anim1
);
39 QPropertyAnimation
*anim2
= new QPropertyAnimation(target
, "yScale");
40 anim2
->setDuration(1250);
41 anim2
->setEndValue(originalValue
);
42 anim2
->setEasingCurve(QEasingCurve::OutElastic
);
43 group
->addAnimation(anim2
);
44 //QObject::connect(group, SIGNAL(finished()), this, SLOT(onAnimationFinished()));
48 bool PulseAnimation::eventFilter(QObject
*o
, QEvent
*e
)
50 QGraphicsWidget
*widget
= qobject_cast
<QGraphicsWidget
*>(o
);
54 if (e
->type() == QEvent::GraphicsSceneHoverEnter
) {
57 } else if (e
->type() == QEvent::GraphicsSceneHoverLeave
) {