Warning, /plasma/plasma-desktop/applets/taskmanager/package/contents/ui/ConfigAppearance.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2013 Eike Hein <hein@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 import QtQuick 2.15 0008 import QtQuick.Controls 2.15 0009 import QtQuick.Layouts 1.15 0010 0011 import org.kde.kirigami 2.19 as Kirigami 0012 import org.kde.plasma.core as PlasmaCore 0013 import org.kde.plasma.plasmoid 2.0 0014 import org.kde.kcmutils as KCM 0015 0016 KCM.SimpleKCM { 0017 readonly property bool plasmaPaAvailable: Qt.createComponent("PulseAudio.qml").status === Component.Ready 0018 readonly property bool plasmoidVertical: Plasmoid.formFactor === PlasmaCore.Types.Vertical 0019 readonly property bool iconOnly: Plasmoid.pluginName === "org.kde.plasma.icontasks" 0020 0021 property alias cfg_showToolTips: showToolTips.checked 0022 property alias cfg_highlightWindows: highlightWindows.checked 0023 property bool cfg_indicateAudioStreams 0024 property alias cfg_fill: fill.checked 0025 property alias cfg_maxStripes: maxStripes.value 0026 property alias cfg_forceStripes: forceStripes.checked 0027 property int cfg_iconSpacing: 0 0028 0029 Component.onCompleted: { 0030 /* Don't rely on bindings for checking the radiobuttons 0031 When checking forceStripes, the condition for the checked value for the allow stripes button 0032 became true and that one got checked instead, stealing the checked state for the just clicked checkbox 0033 */ 0034 if (maxStripes.value === 1) { 0035 forbidStripes.checked = true; 0036 } else if (!Plasmoid.configuration.forceStripes && maxStripes.value > 1) { 0037 allowStripes.checked = true; 0038 } else if (Plasmoid.configuration.forceStripes && maxStripes.value > 1) { 0039 forceStripes.checked = true; 0040 } 0041 } 0042 Kirigami.FormLayout { 0043 CheckBox { 0044 id: showToolTips 0045 Kirigami.FormData.label: i18n("General:") 0046 text: i18n("Show small window previews when hovering over Tasks") 0047 } 0048 0049 CheckBox { 0050 id: highlightWindows 0051 text: i18n("Hide other windows when hovering over previews") 0052 } 0053 0054 CheckBox { 0055 id: indicateAudioStreams 0056 text: i18n("Mark applications that play audio") 0057 checked: cfg_indicateAudioStreams && plasmaPaAvailable 0058 onToggled: cfg_indicateAudioStreams = checked 0059 enabled: plasmaPaAvailable 0060 } 0061 0062 CheckBox { 0063 id: fill 0064 text: i18nc("@option:check", "Fill free space on Panel") 0065 } 0066 0067 Item { 0068 Kirigami.FormData.isSection: true 0069 } 0070 0071 RadioButton { 0072 id: forbidStripes 0073 Kirigami.FormData.label: plasmoidVertical ? i18nc("@option: radio", "Use multi-column view:") : i18nc("@option:radio", "Use multi-row view:") 0074 onToggled: { 0075 if (checked) { 0076 maxStripes.value = 1 0077 } 0078 } 0079 text: i18nc("Never use multi-column view for Task Manager", "Never") 0080 } 0081 0082 RadioButton { 0083 id: allowStripes 0084 onToggled: { 0085 if (checked) { 0086 maxStripes.value = Math.max(2, maxStripes.value) 0087 } 0088 } 0089 text: i18nc("When to use multi-row view in Task Manager", "When Panel is low on space and thick enough") 0090 } 0091 0092 RadioButton { 0093 id: forceStripes 0094 onToggled: { 0095 if (checked) { 0096 maxStripes.value = Math.max(2, maxStripes.value) 0097 } 0098 } 0099 text: i18nc("When to use multi-row view in Task Manager", "Always when Panel is thick enough") 0100 } 0101 0102 SpinBox { 0103 id: maxStripes 0104 enabled: maxStripes.value > 1 0105 Kirigami.FormData.label: plasmoidVertical ? i18nc("@label:spinbox", "Maximum columns:") : i18nc("@label:spinbox", "Maximum rows:") 0106 from: 1 0107 } 0108 0109 Item { 0110 Kirigami.FormData.isSection: true 0111 } 0112 0113 ComboBox { 0114 visible: iconOnly 0115 Kirigami.FormData.label: i18n("Spacing between icons:") 0116 0117 model: [ 0118 { 0119 "label": i18nc("@item:inlistbox Icon spacing", "Small"), 0120 "spacing": 0 0121 }, 0122 { 0123 "label": i18nc("@item:inlistbox Icon spacing", "Normal"), 0124 "spacing": 1 0125 }, 0126 { 0127 "label": i18nc("@item:inlistbox Icon spacing", "Large"), 0128 "spacing": 3 0129 }, 0130 ] 0131 0132 textRole: "label" 0133 enabled: !Kirigami.Settings.tabletMode 0134 0135 currentIndex: { 0136 if (Kirigami.Settings.tabletMode) { 0137 return 2; // Large 0138 } 0139 0140 switch (cfg_iconSpacing) { 0141 case 0: return 0; // Small 0142 case 1: return 1; // Normal 0143 case 3: return 2; // Large 0144 } 0145 } 0146 onActivated: cfg_iconSpacing = model[currentIndex]["spacing"]; 0147 } 0148 0149 Label { 0150 visible: Kirigami.Settings.tabletMode 0151 text: i18nc("@info:usagetip under a set of radio buttons when Touch Mode is on", "Automatically set to Large when in Touch Mode") 0152 font: Kirigami.Theme.smallFont 0153 } 0154 } 0155 }