From ef1c1bd6519a1df4111af1c59e8c45a74a5d0abf Mon Sep 17 00:00:00 2001 From: kateleet Date: Sat, 25 Dec 2021 06:12:34 +0800 Subject: [PATCH] feat(touchpad): add natural scrolling --- src/qml/Touchpad/Main.qml | 20 ++++++++++++++++++++ src/touchpad.cpp | 11 +++++++++++ src/touchpad.h | 5 +++++ translations/en_US.ts | 25 +++++++++++++------------ translations/zh_CN.ts | 27 ++++++++++++++------------- 5 files changed, 63 insertions(+), 25 deletions(-) diff --git a/src/qml/Touchpad/Main.qml b/src/qml/Touchpad/Main.qml index 5196400..173f79f 100644 --- a/src/qml/Touchpad/Main.qml +++ b/src/qml/Touchpad/Main.qml @@ -57,6 +57,7 @@ ItemPage { id: _enableSwitch Layout.fillHeight: true Layout.alignment: Qt.AlignRight + rightPadding: 0 Component.onCompleted: { checked = touchpad.enabled @@ -76,12 +77,31 @@ ItemPage { Layout.fillHeight: true onCheckedChanged: touchpad.tapToClick = checked Layout.alignment: Qt.AlignRight + rightPadding: 0 Component.onCompleted: { checked = touchpad.tapToClick } } + Label { + visible: _enableSwitch.checked + text: qsTr("Natural scrolling") + Layout.fillWidth: true + } + + Switch { + visible: _enableSwitch.checked + Layout.fillHeight: true + Layout.alignment: Qt.AlignRight + onCheckedChanged: touchpad.naturalScroll = checked + rightPadding: 0 + + Component.onCompleted: { + checked = touchpad.naturalScroll + } + } + Label { visible: _enableSwitch.checked text: qsTr("Pointer acceleration") diff --git a/src/touchpad.cpp b/src/touchpad.cpp index f71e7e9..7d8ed92 100644 --- a/src/touchpad.cpp +++ b/src/touchpad.cpp @@ -59,6 +59,17 @@ void Touchpad::setTapToClick(bool enabled) emit tapToClickChanged(); } +bool Touchpad::naturalScroll() const +{ + return m_iface.property("naturalScroll").toBool(); +} + +void Touchpad::setNaturalScroll(bool naturalScroll) +{ + m_iface.asyncCall("setNaturalScroll", naturalScroll); + emit naturalScrollChanged(); +} + qreal Touchpad::pointerAcceleration() const { if (!m_iface.isValid()) diff --git a/src/touchpad.h b/src/touchpad.h index 261d04f..a5aff1f 100644 --- a/src/touchpad.h +++ b/src/touchpad.h @@ -30,6 +30,7 @@ class Touchpad : public QObject Q_PROPERTY(bool available READ available CONSTANT) Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) Q_PROPERTY(bool tapToClick READ tapToClick WRITE setTapToClick NOTIFY tapToClickChanged) + Q_PROPERTY(bool naturalScroll READ naturalScroll WRITE setNaturalScroll NOTIFY naturalScrollChanged) Q_PROPERTY(qreal pointerAcceleration READ pointerAcceleration WRITE setPointerAcceleration NOTIFY pointerAccelerationChanged) public: @@ -42,6 +43,9 @@ public: bool tapToClick() const; void setTapToClick(bool enabled); + bool naturalScroll() const; + void setNaturalScroll(bool naturalScroll); + qreal pointerAcceleration() const; void setPointerAcceleration(qreal value); @@ -49,6 +53,7 @@ signals: void enabledChanged(); void tapToClickChanged(); void pointerAccelerationChanged(); + void naturalScrollChanged(); private: QDBusInterface m_iface; diff --git a/translations/en_US.ts b/translations/en_US.ts index 73a6563..877fb54 100644 --- a/translations/en_US.ts +++ b/translations/en_US.ts @@ -677,6 +677,7 @@ + Natural scrolling @@ -716,12 +717,12 @@ - + Tap to click - + Pointer acceleration @@ -837,44 +838,44 @@ NewNetworkDialog - + Name - + Network Name - + Security - + None - + UserName - - - + + + Password Password - + Cancel Cancel - + Join diff --git a/translations/zh_CN.ts b/translations/zh_CN.ts index 8e4f137..0bf9953 100644 --- a/translations/zh_CN.ts +++ b/translations/zh_CN.ts @@ -677,6 +677,7 @@ + Natural scrolling 自然滚动 @@ -716,12 +717,12 @@ 启用 - + Tap to click 轻触点击 - + Pointer acceleration 指针速度 @@ -837,44 +838,44 @@ NewNetworkDialog - + Name 名称 - + Network Name 网络名称 - + Security 安全性 - + None - + UserName 用户名 - - - + + + Password 密码 - + Cancel 取消 - + Join 添加 @@ -1027,7 +1028,7 @@ Touchpad - 触摸版 + 触摸板