/* SPDX-FileCopyrightText: 2018 Tomaz Canabrava SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ import QtQuick import QtQuick.Layouts import QtQuick.Controls as QQC2 import org.kde.kcmutils as KCMUtils import org.kde.kirigami as Kirigami import org.kde.plasma.access.kcm Kirigami.Form { Kirigami.FormGroup { Kirigami.FormEntry { title: i18nc("@option:check", "Use number pad to move pointer:") contentItem: QQC2.CheckBox { text: i18nc("@option:check Enable mouse navigation", "Enable") KCMUtils.SettingStateBinding { configObject: kcm.mouseSettings settingName: "MouseKeys" } checked: kcm.mouseSettings.mouseKeys onToggled: kcm.mouseSettings.mouseKeys = checked } trailingItems: [ Kirigami.ContextualHelpButton { toolTipText: xi18nc("@info:tooltip", "The numpad key 5 functions as a mouse click, toggled by / for middle click, * for right click and NumLock for left click. The keys 2, 4, 6, and 8 allow for cardinal movement (down, left, right, and up). The keys 1, 3, 7, and 9 allow for diagonal movement.") } ] } Kirigami.FormEntry { title: i18nc("@label:spinbox", "Acceleration delay:") contentItem: QQC2.SpinBox { id: accelerationDelay from: 1 to: 490 KCMUtils.SettingStateBinding { configObject: kcm.mouseSettings settingName: "AccelerationDelay" } value: kcm.mouseSettings.accelerationDelay onValueChanged: kcm.mouseSettings.accelerationDelay = value textFromValue: function(value, locale) { return i18ncp("@label:valuesuffix acceleration delay spinbox %1 is value", "%1 ms", "%1 ms", value) } validator: IntValidatorWithSuffix { bottom: accelerationDelay.from top: accelerationDelay.to } valueFromText: (text, locale) => { return Number.fromLocaleString(locale, text.replace(i18ncp("short for millisecond(s)", "ms", "ms"), "")) } } } Kirigami.FormEntry { title: i18nc("@label:spinbox", "Repeat interval:") contentItem: QQC2.SpinBox { id: repeatInterval from: 1 to: 130 KCMUtils.SettingStateBinding { configObject: kcm.mouseSettings settingName: "RepetitionInterval" } value: kcm.mouseSettings.repetitionInterval onValueChanged: kcm.mouseSettings.repetitionInterval = value validator: IntValidatorWithSuffix { bottom: repeatInterval.from top: repeatInterval.to } textFromValue: function(value, locale) { return i18ncp("@label:valuesuffix repeat interval spinbox %1 is value", "%1 ms", "%1 ms", value) } valueFromText: (text, locale) => { return Number.fromLocaleString(locale, text.replace(i18ncp("short for millisecond(s)", "ms", "ms"), "")) } } } Kirigami.FormEntry { title: i18nc("@label:spinbox", "Acceleration time:") contentItem: QQC2.SpinBox { id: accelerationTime from: 1 to: 100 KCMUtils.SettingStateBinding { configObject: kcm.mouseSettings settingName: "AccelerationTime" } value: kcm.mouseSettings.accelerationTime onValueChanged: kcm.mouseSettings.accelerationTime = value validator: IntValidatorWithSuffix { bottom: accelerationTime.from top: accelerationTime.to } } } Kirigami.FormEntry { title: i18nc("@label:spinbox", "Maximum speed:") contentItem: QQC2.SpinBox { from: 1 to: 100 KCMUtils.SettingStateBinding { configObject: kcm.mouseSettings settingName: "MaxSpeed" } value: kcm.mouseSettings.maxSpeed onValueChanged: kcm.mouseSettings.maxSpeed = value } } Kirigami.FormEntry { title: i18nc("@label:spinbox", "Pointer acceleration:") contentItem: QQC2.SpinBox { from: -1000 to: 5000 KCMUtils.SettingStateBinding { configObject: kcm.mouseSettings settingName: "ProfileCurve" } value: kcm.mouseSettings.profileCurve onValueChanged: kcm.mouseSettings.profileCurve = value } } } }