diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2012-10-05 10:42:10 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-10-16 15:29:15 +0200 |
commit | 7501d55ae005cf9a155a6bcbeac468bfde40177d (patch) | |
tree | 2247bea576be9e45b241e50c1db33532211c7f0d /src/widgets/styles/qstylesheetstyle.cpp | |
parent | e437051ff51d57bcc6937dc23fe6a77bf9897130 (diff) |
Introduce (private) QStyleAnimation
QStyleAnimation handles style animations in a generic fashion by
sending StyleAnimationUpdate events back to the animation target
instead of calling QWidget::update() directly. This decouples style
animations from widgets and makes it possible to run style animations
for QQuickItems (ie. the desktop components).
The next step is to add "QObject* QStyleOption::target" and use that
everywhere instead of the widget pointer passed to various QStyle
methods.
Change-Id: Ib963c54872805fc3f0123ff922f82c9962a68b90
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Diffstat (limited to 'src/widgets/styles/qstylesheetstyle.cpp')
-rw-r--r-- | src/widgets/styles/qstylesheetstyle.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp index 1cd9a98e87..068b7a4355 100644 --- a/src/widgets/styles/qstylesheetstyle.cpp +++ b/src/widgets/styles/qstylesheetstyle.cpp @@ -71,6 +71,7 @@ #include <qheaderview.h> #include <qprogressbar.h> #include <private/qwindowsstyle_p.h> +#include <private/qstyleanimation_p.h> #include <qtabbar.h> #include <QMetaProperty> #include <qmainwindow.h> @@ -3832,7 +3833,11 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q if (pb->minimum == 0 && pb->maximum == 0) { Q_D(const QWindowsStyle); int chunkCount = fillWidth/chunkWidth; - int offset = (d->animateStep*8%rect.width()); + int offset = 0; +#ifndef QT_NO_ANIMATION + if (QProgressStyleAnimation *animation = qobject_cast<QProgressStyleAnimation*>(d->animation(w))) + offset = animation->animationStep() * 8 % rect.width(); +#endif int x = reverse ? r.left() + r.width() - offset - chunkWidth : r.x() + offset; while (chunkCount > 0) { r.setRect(x, rect.y(), chunkWidth, rect.height()); |