summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2014-09-08 15:10:52 +0200
committerAllan Sandfeld Jensen <allan.jensen@digia.com>2014-09-12 11:46:59 +0200
commitfac71528cce279282d66b0a96ddd8570d567955f (patch)
tree4656db0a63c92476cac5eb22d1722eaf6fd2b115 /src
parent2ad5d62f11a1823f2a7ddb13f0b0351acf4b86dc (diff)
Read and use WheelScrollLines configuration on KDE
Qt supports changing the default lines a scroll wheel click scroll, but wasn't trying to read the system settings. The patch adds support for platform themes to set the default. Change-Id: I53fdcec7984941d1d1285d927d70460356613f81 Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com> Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/kernel/qplatformtheme.cpp2
-rw-r--r--src/gui/kernel/qplatformtheme.h3
-rw-r--r--src/platformsupport/themes/genericunix/qgenericunixthemes.cpp8
-rw-r--r--src/widgets/kernel/qapplication.cpp6
4 files changed, 17 insertions, 2 deletions
diff --git a/src/gui/kernel/qplatformtheme.cpp b/src/gui/kernel/qplatformtheme.cpp
index d1b1106b28..6017ffb06c 100644
--- a/src/gui/kernel/qplatformtheme.cpp
+++ b/src/gui/kernel/qplatformtheme.cpp
@@ -513,6 +513,8 @@ QVariant QPlatformTheme::defaultThemeHint(ThemeHint hint)
int dist = qgetenv("QT_DBL_CLICK_DIST").toInt(&ok);
return QVariant(ok ? dist : 5);
}
+ case WheelScrollLines:
+ return QVariant(3);
}
return QVariant();
}
diff --git a/src/gui/kernel/qplatformtheme.h b/src/gui/kernel/qplatformtheme.h
index ad2b4a2164..619cfb59d5 100644
--- a/src/gui/kernel/qplatformtheme.h
+++ b/src/gui/kernel/qplatformtheme.h
@@ -109,7 +109,8 @@ public:
DialogSnapToDefaultButton,
ContextMenuOnMouseRelease,
MousePressAndHoldInterval,
- MouseDoubleClickDistance
+ MouseDoubleClickDistance,
+ WheelScrollLines
};
enum DialogType {
diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
index dac417ad80..5f2e541bdc 100644
--- a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
+++ b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
@@ -178,6 +178,7 @@ public:
, toolButtonStyle(Qt::ToolButtonTextBesideIcon)
, toolBarIconSize(0)
, singleClick(true)
+ , wheelScrollLines(3)
{ }
static QString kdeGlobals(const QString &kdeDir)
@@ -201,6 +202,7 @@ public:
int toolButtonStyle;
int toolBarIconSize;
bool singleClick;
+ int wheelScrollLines;
};
void QKdeThemePrivate::refresh()
@@ -250,6 +252,10 @@ void QKdeThemePrivate::refresh()
toolButtonStyle = Qt::ToolButtonTextUnderIcon;
}
+ const QVariant wheelScrollLinesValue = readKdeSetting(QStringLiteral("KDE/WheelScrollLines"), kdeDirs, kdeSettings);
+ if (wheelScrollLinesValue.isValid())
+ wheelScrollLines = wheelScrollLinesValue.toInt();
+
// Read system font, ignore 'smallestReadableFont'
if (QFont *systemFont = kdeFont(readKdeSetting(QStringLiteral("font"), kdeDirs, kdeSettings)))
resources.fonts[QPlatformTheme::SystemFont] = systemFont;
@@ -436,6 +442,8 @@ QVariant QKdeTheme::themeHint(QPlatformTheme::ThemeHint hint) const
return QVariant(int(KdeKeyboardScheme));
case QPlatformTheme::ItemViewActivateItemOnSingleClick:
return QVariant(d->singleClick);
+ case QPlatformTheme::WheelScrollLines:
+ return QVariant(d->wheelScrollLines);
default:
break;
}
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp
index 3486396f54..2e04c872ae 100644
--- a/src/widgets/kernel/qapplication.cpp
+++ b/src/widgets/kernel/qapplication.cpp
@@ -666,8 +666,12 @@ void QApplicationPrivate::initialize()
initializeMultitouch();
if (QApplication::desktopSettingsAware())
- if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
+ if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
QApplicationPrivate::enabledAnimations = theme->themeHint(QPlatformTheme::UiEffects).toInt();
+#ifndef QT_NO_WHEELEVENT
+ QApplicationPrivate::wheel_scroll_lines = theme->themeHint(QPlatformTheme::WheelScrollLines).toInt();
+#endif
+ }
is_app_running = true; // no longer starting up
}