diff options
Diffstat (limited to 'src/widgets/kernel/qapplication_qpa.cpp')
-rw-r--r-- | src/widgets/kernel/qapplication_qpa.cpp | 73 |
1 files changed, 31 insertions, 42 deletions
diff --git a/src/widgets/kernel/qapplication_qpa.cpp b/src/widgets/kernel/qapplication_qpa.cpp index 0651d5bf44..e737fe1d8d 100644 --- a/src/widgets/kernel/qapplication_qpa.cpp +++ b/src/widgets/kernel/qapplication_qpa.cpp @@ -52,15 +52,15 @@ #include "private/qevent_p.h" #include "qgenericpluginfactory_qpa.h" -#include "private/qplatformintegrationfactory_qpa_p.h" +#include <qpa/qplatformintegrationfactory_p.h> #include <qdesktopwidget.h> -#include <QPlatformCursor> -#include <QPlatformTheme> +#include <qpa/qplatformcursor.h> +#include <qpa/qplatformtheme.h> #include <qdebug.h> #include <QWindowSystemInterface> #include "private/qwindowsysteminterface_qpa_p.h" -#include <QPlatformIntegration> +#include <qpa/qplatformintegration.h> #include "qdesktopwidget_qpa_p.h" #include "qwidgetwindow_qpa_p.h" @@ -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) |