/*SPDX-FileCopyrightText: 2018 Tomaz Canabrava <tcanabrava@kde.org>SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL*/import QtQuickimport QtQuick.Layoutsimport QtQuick.Controls as QQC2import org.kde.kcmutils as KCMUtilsimport org.kde.kirigami as Kirigamiimport org.kde.plasma.access.kcmKirigami.FormLayout {RowLayout {spacing: Kirigami.Units.smallSpacingKirigami.FormData.label: i18nc("@option:check", "Use number pad to move cursor:")Kirigami.FormData.buddyFor: mouseKeysQQC2.CheckBox {id: mouseKeystext: i18nc("@option:check Enable mouse navigation", "Enable")KCMUtils.SettingStateBinding {configObject: kcm.mouseSettingssettingName: "MouseKeys"}checked: kcm.mouseSettings.mouseKeysonToggled: kcm.mouseSettings.mouseKeys = checked}Kirigami.ContextualHelpButton {toolTipText: xi18nc("@info:tooltip", "The numpad key <shortcut>5</shortcut> functions as a mouse click. The keys <shortcut>2</shortcut>, <shortcut>4</shortcut>, <shortcut>6</shortcut>, and <shortcut>8</shortcut> allow for cardinal movement (down, left, right, and up). The keys <shortcut>1</shortcut>, <shortcut>3</shortcut>, <shortcut>7</shortcut>, and <shortcut>9</shortcut> allow for diagonal movement.")}}QQC2.SpinBox {id: accelerationDelayKirigami.FormData.label: i18nc("@label:spinbox", "Acceleration delay:")from: 1to: 490KCMUtils.SettingStateBinding {configObject: kcm.mouseSettingssettingName: "AccelerationDelay"}value: kcm.mouseSettings.accelerationDelayonValueChanged: kcm.mouseSettings.accelerationDelay = valuetextFromValue: function(value, locale) {return i18np("%1 ms", "%1 ms", value)}validator: IntValidatorWithSuffix {bottom: accelerationDelay.fromtop: accelerationDelay.to}valueFromText: (text, locale) => {return Number.fromLocaleString(locale, text.replace(i18ncp("short for millisecond(s)", "ms", "ms"), ""))}}QQC2.SpinBox {id: repeatIntervalKirigami.FormData.label: i18nc("@label:spinbox", "Repeat interval:")from: 1to: 130KCMUtils.SettingStateBinding {configObject: kcm.mouseSettingssettingName: "RepetitionInterval"}value: kcm.mouseSettings.repetitionIntervalonValueChanged: kcm.mouseSettings.repetitionInterval = valuevalidator: IntValidatorWithSuffix {bottom: repeatInterval.fromtop: repeatInterval.to}textFromValue: function(value, locale) {return i18np("%1 ms", "%1 ms", value)}valueFromText: (text, locale) => {return Number.fromLocaleString(locale, text.replace(i18ncp("short for millisecond(s)", "ms", "ms"), ""))}}QQC2.SpinBox {id: accelerationTimeKirigami.FormData.label: i18nc("@label:spinbox", "Acceleration time:")from: 1to: 100KCMUtils.SettingStateBinding {configObject: kcm.mouseSettingssettingName: "AccelerationTime"}value: kcm.mouseSettings.accelerationTimeonValueChanged: kcm.mouseSettings.accelerationTime = valuevalidator: IntValidatorWithSuffix {bottom: accelerationTime.fromtop: accelerationTime.to}textFromValue: function(value, locale) {return i18np("%1 ms", "%1 ms", value)}valueFromText: (text, locale) => {return Number.fromLocaleString(locale, text.replace(i18ncp("short for millisecond(s)", "ms", "ms"), ""))}}QQC2.SpinBox {Kirigami.FormData.label: i18nc("@label:spinbox", "Maximum speed:")from: 1to: 100KCMUtils.SettingStateBinding {configObject: kcm.mouseSettingssettingName: "MaxSpeed"}value: kcm.mouseSettings.maxSpeedonValueChanged: kcm.mouseSettings.maxSpeed = value}QQC2.SpinBox {Kirigami.FormData.label: i18nc("@label:spinbox", "Pointer acceleration:")from: -1000to: 5000KCMUtils.SettingStateBinding {configObject: kcm.mouseSettingssettingName: "ProfileCurve"}value: kcm.mouseSettings.profileCurveonValueChanged: kcm.mouseSettings.profileCurve = value}}