From 4d3a35f63788fa5ff7a11a5bb7bd6176bd2ac70e Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 23 Jan 2017 13:42:49 +0100 Subject: Make wheelScrollLines a QStyleHint The number of lines to scroll on a wheel click have previously been a QPlatformTheme hint and QApplication setting, this patch moves it to QStyleHint so it may be easier read by QGuiApplications. Change-Id: I80673c7b99d78c6407b1202b3742e1cb5fef0583 Reviewed-by: Friedemann Kleint --- src/gui/kernel/qplatformintegration.cpp | 2 ++ src/gui/kernel/qplatformintegration.h | 3 ++- src/gui/kernel/qstylehints.cpp | 31 +++++++++++++++++++++++++++++++ src/gui/kernel/qstylehints.h | 4 ++++ 4 files changed, 39 insertions(+), 1 deletion(-) (limited to 'src/gui') diff --git a/src/gui/kernel/qplatformintegration.cpp b/src/gui/kernel/qplatformintegration.cpp index fd7f475bee..fe1861e08b 100644 --- a/src/gui/kernel/qplatformintegration.cpp +++ b/src/gui/kernel/qplatformintegration.cpp @@ -409,6 +409,8 @@ QVariant QPlatformIntegration::styleHint(StyleHint hint) const return QPlatformTheme::defaultThemeHint(QPlatformTheme::ItemViewActivateItemOnSingleClick); case UiEffects: return QPlatformTheme::defaultThemeHint(QPlatformTheme::UiEffects); + case WheelScrollLines: + return QPlatformTheme::defaultThemeHint(QPlatformTheme::WheelScrollLines); } return 0; diff --git a/src/gui/kernel/qplatformintegration.h b/src/gui/kernel/qplatformintegration.h index 22a834f0e1..466b3348bd 100644 --- a/src/gui/kernel/qplatformintegration.h +++ b/src/gui/kernel/qplatformintegration.h @@ -157,7 +157,8 @@ public: TabFocusBehavior, ReplayMousePressOutsidePopup, ItemViewActivateItemOnSingleClick, - UiEffects + UiEffects, + WheelScrollLines, }; virtual QVariant styleHint(StyleHint hint) const; diff --git a/src/gui/kernel/qstylehints.cpp b/src/gui/kernel/qstylehints.cpp index 22c077da41..85c0768e35 100644 --- a/src/gui/kernel/qstylehints.cpp +++ b/src/gui/kernel/qstylehints.cpp @@ -78,6 +78,7 @@ public: , m_cursorFlashTime(-1) , m_tabFocusBehavior(-1) , m_uiEffects(-1) + , m_wheelScrollLines(-1) {} int m_mouseDoubleClickInterval; @@ -88,6 +89,7 @@ public: int m_cursorFlashTime; int m_tabFocusBehavior; int m_uiEffects; + int m_wheelScrollLines; }; /*! @@ -495,4 +497,33 @@ void QStyleHints::setUseHoverEffects(bool useHoverEffects) emit useHoverEffectsChanged(useHoverEffects); } +/*! + \property QStyleHints::wheelScrollLines + \brief Number of lines to scroll by default for each wheel click. + + \since 5.9 +*/ +int QStyleHints::wheelScrollLines() const +{ + Q_D(const QStyleHints); + if (d->m_wheelScrollLines > 0) + return d->m_wheelScrollLines; + return themeableHint(QPlatformTheme::WheelScrollLines, QPlatformIntegration::WheelScrollLines).toInt(); +} + +/*! + Sets the \a wheelScrollLines. + \internal + \sa wheelScrollLines() + \since 5.9 +*/ +void QStyleHints::setWheelScrollLines(int scrollLines) +{ + Q_D(QStyleHints); + if (d->m_wheelScrollLines == scrollLines) + return; + d->m_wheelScrollLines = scrollLines; + emit wheelScrollLinesChanged(scrollLines); +} + QT_END_NAMESPACE diff --git a/src/gui/kernel/qstylehints.h b/src/gui/kernel/qstylehints.h index fb55cc7ed6..b9bf428edd 100644 --- a/src/gui/kernel/qstylehints.h +++ b/src/gui/kernel/qstylehints.h @@ -71,6 +71,7 @@ class Q_GUI_EXPORT QStyleHints : public QObject Q_PROPERTY(Qt::TabFocusBehavior tabFocusBehavior READ tabFocusBehavior NOTIFY tabFocusBehaviorChanged FINAL) Q_PROPERTY(bool singleClickActivation READ singleClickActivation STORED false CONSTANT FINAL) Q_PROPERTY(bool useHoverEffects READ useHoverEffects WRITE setUseHoverEffects NOTIFY useHoverEffectsChanged FINAL) + Q_PROPERTY(int wheelScrollLines READ wheelScrollLines NOTIFY wheelScrollLinesChanged FINAL) public: void setMouseDoubleClickInterval(int mouseDoubleClickInterval); @@ -99,6 +100,8 @@ public: bool singleClickActivation() const; bool useHoverEffects() const; void setUseHoverEffects(bool useHoverEffects); + int wheelScrollLines() const; + void setWheelScrollLines(int scrollLines); Q_SIGNALS: void cursorFlashTimeChanged(int cursorFlashTime); @@ -109,6 +112,7 @@ Q_SIGNALS: void startDragTimeChanged(int startDragTime); void tabFocusBehaviorChanged(Qt::TabFocusBehavior tabFocusBehavior); void useHoverEffectsChanged(bool useHoverEffects); + void wheelScrollLinesChanged(int scrollLines); private: friend class QGuiApplication; -- cgit v1.2.3