diff options
author | unknown <Roopesh Chander@.(none)> | 2009-11-10 16:03:30 +0530 |
---|---|---|
committer | unknown <Roopesh Chander@.(none)> | 2009-11-10 16:09:46 +0530 |
commit | 641fffc31ead062b78385c9285f97a70fd1c9e67 (patch) | |
tree | 30fcc7d2cdfc25884ed12ae0aff48cf8c1fdd448 /graphicstoolbar.cpp | |
parent | d6a88f5dc543dd20897e24238f536c2c3a9d2830 (diff) |
change both opacity and blur parallelly
Diffstat (limited to 'graphicstoolbar.cpp')
-rw-r--r-- | graphicstoolbar.cpp | 27 |
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() { |