Warning, /plasma/plasma-workspace/kcms/cursortheme/ui/LaunchFeedbackDialog.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2017 Eike Hein <hein@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-only 0005 */ 0006 0007 import QtQuick 2.15 0008 import QtQuick.Controls 2.15 as QQC2 0009 import QtQuick.Layouts 1.15 0010 import org.kde.kcmutils as KCM 0011 import org.kde.kirigami 2.20 as Kirigami 0012 0013 Kirigami.OverlaySheet { 0014 id: sheet 0015 0016 title: i18nc("@title", "Launch Feedback") 0017 0018 ColumnLayout { 0019 Layout.preferredWidth: Kirigami.Units.gridUnit * 20 0020 Layout.maximumWidth: Kirigami.Units.gridUnit * 30 0021 spacing: Kirigami.Units.largeSpacing 0022 0023 QQC2.Label { 0024 Layout.fillWidth: true 0025 text: i18nc("@info:usagetip", "Configure the animations played while an application is launching.") 0026 textFormat: Text.PlainText 0027 wrapMode: Text.Wrap 0028 } 0029 0030 Kirigami.FormLayout { 0031 id: formLayout 0032 0033 readonly property bool cursorImmutable: kcm.launchFeedbackSettings.isBusyCursorImmutable || kcm.launchFeedbackSettings.isBlinkingImmutable || kcm.launchFeedbackSettings.isBouncingImmutable 0034 0035 QQC2.ButtonGroup { 0036 id: busyCursorGroup 0037 onCheckedButtonChanged: { 0038 kcm.launchFeedbackSettings.busyCursor = busyCursorStatic.checked || busyCursorBlinking.checked || busyCursorBouncing.checked; 0039 kcm.launchFeedbackSettings.blinking = busyCursorBlinking.checked; 0040 kcm.launchFeedbackSettings.bouncing = busyCursorBouncing.checked; 0041 } 0042 } 0043 0044 QQC2.RadioButton { 0045 id: busyCursorDisabled 0046 0047 Kirigami.FormData.label: i18nc("@label", "Cursor feedback:") 0048 text: i18nc("@option:radio No cursor feedback when launching apps", "None") 0049 checked: !kcm.launchFeedbackSettings.busyCursor && !kcm.launchFeedbackSettings.blinking && !kcm.launchFeedbackSettings.bouncing 0050 enabled: !formLayout.cursorImmutable 0051 QQC2.ButtonGroup.group: busyCursorGroup 0052 } 0053 0054 QQC2.RadioButton { 0055 id: busyCursorStatic 0056 0057 text: i18nc("@option:radio", "Static") 0058 checked: kcm.launchFeedbackSettings.busyCursor && !busyCursorBlinking.checked && !busyCursorBouncing.checked 0059 enabled: !formLayout.cursorImmutable 0060 QQC2.ButtonGroup.group: busyCursorGroup 0061 } 0062 0063 QQC2.RadioButton { 0064 id: busyCursorBlinking 0065 0066 text: i18nc("@option:radio", "Blinking") 0067 checked: kcm.launchFeedbackSettings.blinking 0068 enabled: !formLayout.cursorImmutable 0069 QQC2.ButtonGroup.group: busyCursorGroup 0070 } 0071 0072 QQC2.RadioButton { 0073 id: busyCursorBouncing 0074 0075 text: i18nc("@option:radio", "Bouncing") 0076 checked: kcm.launchFeedbackSettings.bouncing 0077 enabled: !formLayout.cursorImmutable 0078 QQC2.ButtonGroup.group: busyCursorGroup 0079 0080 KCM.SettingStateBinding { 0081 configObject: kcm.launchFeedbackSettings 0082 settingName: "bouncing" 0083 extraEnabledConditions: !formLayout.cursorImmutable 0084 } 0085 } 0086 0087 QQC2.CheckBox { 0088 id: taskManagerNotification 0089 0090 Kirigami.FormData.label: i18nc("@label", "Task Manager feedback:") 0091 0092 text: i18nc("@option:check", "Enable animation") 0093 0094 checked: kcm.launchFeedbackSettings.taskbarButton 0095 enabled: !kcm.launchFeedbackSettings.isTaskbarButtonImmutable 0096 onToggled: kcm.launchFeedbackSettings.taskbarButton = checked; 0097 0098 KCM.SettingStateBinding { 0099 configObject: kcm.launchFeedbackSettings 0100 settingName: "taskbarButton" 0101 } 0102 } 0103 0104 Item { 0105 Kirigami.FormData.isSection: true 0106 } 0107 0108 QQC2.SpinBox { 0109 id: notificationTimeout 0110 Layout.preferredWidth: notificationTimeoutMetrics.implicitWidth + leftPadding + rightPadding 0111 Kirigami.FormData.label: i18nc("@label", "Stop animations after:") 0112 0113 enabled: !kcm.launchFeedbackSettings.isCursorTimeoutImmutable || !kcm.launchFeedbackSettings.isTaskbarTimeoutImmutable 0114 from: 1 0115 to: 60 0116 stepSize: 1 0117 editable: true 0118 0119 value: kcm.launchFeedbackSettings.cursorTimeout 0120 onValueModified: { 0121 kcm.launchFeedbackSettings.cursorTimeout = value 0122 kcm.launchFeedbackSettings.taskbarTimeout = value 0123 } 0124 0125 textFromValue: function(value, locale) { return i18np("%1 second", "%1 seconds", value)} 0126 valueFromText: function(text, locale) { return parseInt(text) } 0127 0128 KCM.SettingStateBinding { 0129 configObject: kcm.launchFeedbackSettings 0130 settingName: "cursorTimeout" 0131 extraEnabledConditions: taskManagerNotification.checked 0132 } 0133 0134 TextMetrics { 0135 id: notificationTimeoutMetrics 0136 font: notificationTimeout.font 0137 text: i18np("%1 second", "%1 seconds", 60) 0138 } 0139 } 0140 } 0141 } 0142 }