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/qcommonstyle_p.h | |
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/qcommonstyle_p.h')
-rw-r--r-- | src/widgets/styles/qcommonstyle_p.h | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/widgets/styles/qcommonstyle_p.h b/src/widgets/styles/qcommonstyle_p.h index 496723f8dd..2032e06e31 100644 --- a/src/widgets/styles/qcommonstyle_p.h +++ b/src/widgets/styles/qcommonstyle_p.h @@ -44,6 +44,7 @@ #include "qcommonstyle.h" #include "qstyle_p.h" +#include "qstyleanimation_p.h" #include "qstyleoption.h" @@ -67,17 +68,24 @@ class QCommonStylePrivate : public QStylePrivate { Q_DECLARE_PUBLIC(QCommonStyle) public: - inline QCommonStylePrivate() + inline QCommonStylePrivate() : #ifndef QT_NO_ITEMVIEWS - : cachedOption(0) + cachedOption(0), #endif + animationFps(30) { } -#ifndef QT_NO_ITEMVIEWS ~QCommonStylePrivate() { +#ifndef QT_NO_ANIMATION + qDeleteAll(animations); +#endif +#ifndef QT_NO_ITEMVIEWS delete cachedOption; +#endif } + +#ifndef QT_NO_ITEMVIEWS void viewItemDrawText(QPainter *p, const QStyleOptionViewItem *option, const QRect &rect) const; void viewItemLayout(const QStyleOptionViewItem *opt, QRect *checkRect, QRect *pixmapRect, QRect *textRect, bool sizehint) const; @@ -106,6 +114,17 @@ public: #ifndef QT_NO_TABBAR void tabLayout(const QStyleOptionTabV3 *opt, const QWidget *widget, QRect *textRect, QRect *pixmapRect) const; #endif + + int animationFps; + void _q_removeAnimation(); + + QList<const QObject*> animationTargets() const; + QStyleAnimation* animation(const QObject *target) const; + void startAnimation(QStyleAnimation *animation); + void stopAnimation(const QObject *target); + +private: + QHash<const QObject*, QStyleAnimation*> animations; }; QT_END_NAMESPACE |