Warning, /multimedia/haruna/src/qml/Settings/MouseSettings.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 * SPDX-FileCopyrightText: 2020 George Florea Bănuș <georgefb899@gmail.com>
0003 *
0004 * SPDX-License-Identifier: GPL-3.0-or-later
0005 */
0006
0007 import QtQml
0008 import QtQuick
0009 import QtQuick.Layouts
0010 import QtQuick.Controls
0011
0012 import org.kde.kirigami as Kirigami
0013 import org.kde.haruna
0014 import org.kde.haruna.settings
0015
0016 SettingsBasePage {
0017 id: root
0018
0019 hasHelp: false
0020 helpFile: ""
0021
0022 ColumnLayout {
0023 id: content
0024
0025 anchors.fill: parent
0026 spacing: Kirigami.Units.largeSpacing
0027
0028 ListModel {
0029 id: mouseActionsModel
0030
0031 ListElement {
0032 label: "Left"
0033 key: "left"
0034 }
0035 ListElement {
0036 label: "Left double click"
0037 key: "leftx2"
0038 }
0039 ListElement {
0040 label: "Right"
0041 key: "right"
0042 }
0043 ListElement {
0044 label: "Right double click"
0045 key: "rightx2"
0046 }
0047 ListElement {
0048 label: "Middle"
0049 key: "middle"
0050 }
0051 ListElement {
0052 label: "Middle double click"
0053 key: "middlex2"
0054 }
0055 ListElement {
0056 label: "Scroll up"
0057 key: "scrollUp"
0058 }
0059 ListElement {
0060 label: "Scroll down"
0061 key: "scrollDown"
0062 }
0063 }
0064
0065 ListView {
0066 id: mouseButtonsListView
0067
0068 property int delegateHeight
0069
0070 model: mouseActionsModel
0071 delegate: ItemDelegate {
0072 id: delegate
0073
0074 width: content.width
0075 highlighted: false
0076
0077 contentItem: RowLayout {
0078 Kirigami.IconTitleSubtitle {
0079 title: model.label
0080 subtitle: MouseSettings[model.key]
0081 ? appActions[MouseSettings[model.key]].text
0082 : i18nc("@label", "No action set")
0083 icon.name: MouseSettings[model.key] ? "checkmark" : ""
0084
0085 Layout.fillWidth: true
0086 }
0087 ToolButton {
0088 visible: MouseSettings[model.key]
0089 icon.name: "edit-clear-all"
0090 onClicked: {
0091 MouseSettings[model.key] = ""
0092 MouseSettings.save()
0093 }
0094
0095 ToolTip {
0096 text: i18nc("@info:tooltip", "Clear action")
0097 }
0098 }
0099 }
0100
0101 onClicked: openSelectActionPopup()
0102 Component.onCompleted: mouseButtonsListView.delegateHeight = height
0103
0104 Connections {
0105 target: selectActionPopup
0106 function onActionSelected(actionName) {
0107 if (selectActionPopup.buttonIndex === model.index) {
0108 MouseSettings[model.key] = actionName
0109 MouseSettings.save()
0110 }
0111 }
0112 }
0113
0114 function openSelectActionPopup() {
0115 selectActionPopup.buttonIndex = model.index
0116 selectActionPopup.title = model.label
0117 selectActionPopup.open()
0118 }
0119 }
0120
0121 Layout.fillWidth: true
0122 Layout.fillHeight: true
0123 }
0124
0125 Item {
0126 width: Kirigami.Units.gridUnit
0127 height: Kirigami.Units.gridUnit
0128 }
0129
0130 SelectActionPopup {
0131 id: selectActionPopup
0132
0133 subtitle: i18nc("@title", "Double click to set action")
0134 }
0135 }
0136 }