diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-05-08 13:02:44 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-09 02:28:31 +0200 |
commit | e996009eb7699cd7caecccd027e39d0eca7f60ab (patch) | |
tree | 339a2c1d935a360d45e3ff77aa9187d68431d33e /src/widgets/kernel/qapplication_qpa.cpp | |
parent | 55070e863710d49dd4b09903be9a85ea94dff1fe (diff) |
QPA: Add a themeHint for the animations.
Introduce a flag matching the Qt::UI_Effect enumeration and
return it as hint.
Replace the separate boolean flags in QApplication by a single
integer using the flags.
Change-Id: I29e33d4d23d13723ddb1b3f62fe781b9c0747572
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Diffstat (limited to 'src/widgets/kernel/qapplication_qpa.cpp')
-rw-r--r-- | src/widgets/kernel/qapplication_qpa.cpp | 65 |
1 files changed, 27 insertions, 38 deletions
diff --git a/src/widgets/kernel/qapplication_qpa.cpp b/src/widgets/kernel/qapplication_qpa.cpp index 998f06cd15..e737fe1d8d 100644 --- a/src/widgets/kernel/qapplication_qpa.cpp +++ b/src/widgets/kernel/qapplication_qpa.cpp @@ -354,58 +354,47 @@ int QApplication::wheelScrollLines() } #endif -void QApplication::setEffectEnabled(Qt::UIEffect effect, bool enable) +static inline int uiEffectToFlag(Qt::UIEffect effect) { switch (effect) { + case Qt::UI_General: + return QPlatformTheme::GeneralUiEffect; case Qt::UI_AnimateMenu: - QApplicationPrivate::animate_menu = enable; - break; + return QPlatformTheme::AnimateMenuUiEffect; case Qt::UI_FadeMenu: - if (enable) - QApplicationPrivate::animate_menu = true; - QApplicationPrivate::fade_menu = enable; - break; + return QPlatformTheme::FadeMenuUiEffect; case Qt::UI_AnimateCombo: - QApplicationPrivate::animate_combo = enable; - break; + return QPlatformTheme::AnimateComboUiEffect; case Qt::UI_AnimateTooltip: - QApplicationPrivate::animate_tooltip = enable; - break; + return QPlatformTheme::AnimateTooltipUiEffect; case Qt::UI_FadeTooltip: - if (enable) - QApplicationPrivate::animate_tooltip = true; - QApplicationPrivate::fade_tooltip = enable; - break; + return QPlatformTheme::FadeTooltipUiEffect; case Qt::UI_AnimateToolBox: - QApplicationPrivate::animate_toolbox = enable; - break; - default: - QApplicationPrivate::animate_ui = enable; - break; + return QPlatformTheme::AnimateToolBoxUiEffect; + } + return 0; +} + +void QApplication::setEffectEnabled(Qt::UIEffect effect, bool enable) +{ + int effectFlags = uiEffectToFlag(effect); + if (enable) { + if (effectFlags & QPlatformTheme::FadeMenuUiEffect) + effectFlags |= QPlatformTheme::AnimateMenuUiEffect; + if (effectFlags & QPlatformTheme::FadeTooltipUiEffect) + effectFlags |= QPlatformTheme::AnimateTooltipUiEffect; + QApplicationPrivate::enabledAnimations |= effectFlags; + } else { + QApplicationPrivate::enabledAnimations &= ~effectFlags; } } bool QApplication::isEffectEnabled(Qt::UIEffect effect) { - if (QColormap::instance().depth() < 16 || !QApplicationPrivate::animate_ui) + return QColormap::instance().depth() >= 16 + && (QApplicationPrivate::enabledAnimations & QPlatformTheme::GeneralUiEffect) + && (QApplicationPrivate::enabledAnimations & uiEffectToFlag(effect)); return false; - - switch(effect) { - case Qt::UI_AnimateMenu: - return QApplicationPrivate::animate_menu; - case Qt::UI_FadeMenu: - return QApplicationPrivate::fade_menu; - case Qt::UI_AnimateCombo: - return QApplicationPrivate::animate_combo; - case Qt::UI_AnimateTooltip: - return QApplicationPrivate::animate_tooltip; - case Qt::UI_FadeTooltip: - return QApplicationPrivate::fade_tooltip; - case Qt::UI_AnimateToolBox: - return QApplicationPrivate::animate_toolbox; - default: - return QApplicationPrivate::animate_ui; - } } QWidget *QApplication::topLevelAt(const QPoint &pos) |