summaryrefslogtreecommitdiffstats
path: root/graphicstoolbar.cpp
diff options
context:
space:
mode:
authorunknown <Roopesh Chander@.(none)>2009-11-10 16:03:30 +0530
committerunknown <Roopesh Chander@.(none)>2009-11-10 16:09:46 +0530
commit641fffc31ead062b78385c9285f97a70fd1c9e67 (patch)
tree30fcc7d2cdfc25884ed12ae0aff48cf8c1fdd448 /graphicstoolbar.cpp
parentd6a88f5dc543dd20897e24238f536c2c3a9d2830 (diff)
change both opacity and blur parallelly
Diffstat (limited to 'graphicstoolbar.cpp')
-rw-r--r--graphicstoolbar.cpp27
1 files changed, 13 insertions, 14 deletions
diff --git a/graphicstoolbar.cpp b/graphicstoolbar.cpp
index 562332b..51860e4 100644
--- a/graphicstoolbar.cpp
+++ b/graphicstoolbar.cpp
@@ -3,12 +3,13 @@
#include <QGraphicsRotation>
#include <QList>
#include <QGraphicsTransform>
+#include <QPropertyAnimation>
+#include <QParallelAnimationGroup>
#include "graphicstoolbar.h"
GraphicsToolBar::GraphicsToolBar(QGraphicsScene *scene, QGraphicsItem * parent, Qt::WindowFlags wFlags)
: QGraphicsWidget(parent, wFlags)
, m_scene(scene)
- , m_blurAnimation(0)
, m_fillLevel(100)
{
m_scene->addItem(this);
@@ -112,21 +113,19 @@ void GraphicsToolBar::hoverLeaveEvent(QGraphicsSceneHoverEvent* event) {
}
void GraphicsToolBar::transitionBlurEnabledTo(bool enabled) {
- if (m_blurAnimation) {
- m_blurAnimation->stop();
- delete m_blurAnimation;
- m_blurAnimation = 0;
- }
if (! graphicsEffectsEnabled())
return;
- m_blurAnimation = new QPropertyAnimation(m_blurEffect, "blurRadius", this);
- m_blurAnimation->setStartValue(enabled ? 0 : 5);
- m_blurAnimation->setEndValue(enabled? 5 : 0);
- if (enabled) {
- m_blurAnimation->setKeyValueAt(0.75, 0); // start blurring only after sometime
- }
- m_blurAnimation->setDuration(enabled? 2000 : 200);
- m_blurAnimation->start(QAbstractAnimation::KeepWhenStopped);
+ QParallelAnimationGroup *animGroup = new QParallelAnimationGroup(this);
+ QPropertyAnimation *blurAnimation = new QPropertyAnimation(m_blurEffect, "blurRadius", animGroup);
+ blurAnimation->setStartValue(enabled ? 0 : 5);
+ blurAnimation->setEndValue(enabled? 5 : 0);
+ blurAnimation->setDuration(enabled? 200 : 200);
+ QPropertyAnimation *opacityAnimation = new QPropertyAnimation(this, "opacity", animGroup);
+ opacityAnimation->setStartValue(enabled? 1.0 : 0.7);
+ opacityAnimation->setEndValue(enabled? 0.7 : 1.0);
+ animGroup->addAnimation(blurAnimation);
+ animGroup->addAnimation(opacityAnimation);
+ animGroup->start(QAbstractAnimation::DeleteWhenStopped);
}
void GraphicsToolBar::show() {