/*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.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.mouseSettingssettingName: "MouseKeys"}checked: kcm.mouseSettings.mouseKeysonToggled: kcm.mouseSettings.mouseKeys = checked}trailingItems: [Kirigami.ContextualHelpButton {toolTipText: xi18nc("@info:tooltip", "The numpad key <shortcut>5</shortcut> functions as a mouse click, toggled by <shortcut>/</shortcut> for middle click, <shortcut>*</shortcut> for right click and <shortcut>NumLock</shortcut> for left 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.")}]}Kirigami.FormEntry {title: i18nc("@label:spinbox", "Acceleration delay:")contentItem: QQC2.SpinBox {id: accelerationDelayfrom: 1to: 490KCMUtils.SettingStateBinding {configObject: kcm.mouseSettingssettingName: "AccelerationDelay"}value: kcm.mouseSettings.accelerationDelayonValueChanged: kcm.mouseSettings.accelerationDelay = valuetextFromValue: function(value, locale) {return i18ncp("@label:valuesuffix acceleration delay spinbox %1 is value", "%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"), ""))}}}Kirigami.FormEntry {title: i18nc("@label:spinbox", "Repeat interval:")contentItem: QQC2.SpinBox {id: repeatIntervalfrom: 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 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: accelerationTimefrom: 1to: 100KCMUtils.SettingStateBinding {configObject: kcm.mouseSettingssettingName: "AccelerationTime"}value: kcm.mouseSettings.accelerationTimeonValueChanged: kcm.mouseSettings.accelerationTime = valuevalidator: IntValidatorWithSuffix {bottom: accelerationTime.fromtop: accelerationTime.to}}}Kirigami.FormEntry {title: i18nc("@label:spinbox", "Maximum speed:")contentItem: QQC2.SpinBox {from: 1to: 100KCMUtils.SettingStateBinding {configObject: kcm.mouseSettingssettingName: "MaxSpeed"}value: kcm.mouseSettings.maxSpeedonValueChanged: kcm.mouseSettings.maxSpeed = value}}Kirigami.FormEntry {title: i18nc("@label:spinbox", "Pointer acceleration:")contentItem: QQC2.SpinBox {from: -1000to: 5000KCMUtils.SettingStateBinding {configObject: kcm.mouseSettingssettingName: "ProfileCurve"}value: kcm.mouseSettings.profileCurveonValueChanged: kcm.mouseSettings.profileCurve = value}}}}