melawy-plasma-plasmoid-pres.../com.github.zren.presentwindows/contents/ui/config/ConfigGeneral.qml

150 lines
4.1 KiB
QML

import QtQuick 2.0
import QtQuick.Controls 1.0
import QtQuick.Controls 2.5 as QQC2
import QtQuick.Layouts 1.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.kirigami 2.5 as Kirigami
import "../lib" as Lib
import "../libconfig" as LibConfig
Kirigami.FormLayout {
//-------------------------------------------------------
LibConfig.Heading {
text: i18n("Behavior")
useThickTopMargin: false
}
Lib.DesktopEffectToggle {
id: overviewToggle
effectId: 'overview'
}
Lib.DesktopEffectToggle {
id: presentWindowsToggle
effectId: 'presentwindows'
}
Lib.DesktopEffectToggle {
id: showDesktopGridToggle
effectId: 'desktopgrid'
}
LibConfig.RadioButtonGroup {
id: clickCommandGroup
configKey: 'clickCommand'
Kirigami.FormData.label: i18n("Click")
Kirigami.FormData.buddyFor: null // Note: it attaches to the first CheckBox in the Repeater since it loads first.
model: []
//---
Repeater {
model: [
{ value: 'Overview', text: i18nd("kwin_effects", "Toggle Overview"), effectToggle: overviewToggle },
{ value: 'ExposeAll', text: i18nd("kwin_effects", "Toggle Present Windows (All desktops)"), effectToggle: presentWindowsToggle },
{ value: 'Expose', text: i18nd("kwin_effects", "Toggle Present Windows (Current desktop)"), effectToggle: presentWindowsToggle },
{ value: 'ExposeClass', text: i18nd("kwin_effects", "Toggle Present Windows (Window class)"), effectToggle: presentWindowsToggle },
{ value: 'ShowDesktopGrid', text: i18nd("kwin_effects", "Toggle Desktop Grid"), effectToggle: showDesktopGridToggle },
]
RowLayout {
QQC2.RadioButton {
text: modelData.text
enabled: modelData.effectToggle.loaded && modelData.effectToggle.effectEnabled
QQC2.ButtonGroup.group: clickCommandGroup.group
checked: modelData.value === plasmoid.configuration[clickCommandGroup.configKey]
onClicked: {
focus = true
if (clickCommandGroup.configKey) {
plasmoid.configuration[clickCommandGroup.configKey] = modelData.value
}
}
}
QQC2.Button {
visible: modelData.effectToggle.loaded && !modelData.effectToggle.effectEnabled
text: i18n("Enable Desktop Effect")
onClicked: modelData.effectToggle.toggle()
}
}
}
//---
Lib.KPackageModel {
id: kwinScriptModel
packageType: 'KWin/Script'
}
Repeater {
visible: kwinScriptModel.loaded
model: [
{
pluginId: 'Parachute',
url: 'https://store.kde.org/p/1370195/',
},
]
RowLayout {
QQC2.RadioButton {
text: modelData.pluginId
enabled: kwinScriptModel.contains(modelData.pluginId)
QQC2.ButtonGroup.group: clickCommandGroup.group
checked: modelData.value === plasmoid.configuration[clickCommandGroup.configKey]
onClicked: {
focus = true
if (clickCommandGroup.configKey) {
plasmoid.configuration[clickCommandGroup.configKey] = modelData.value
}
}
}
LibConfig.Label {
text: '<a href="' + modelData.url + '">' + modelData.url + '</a>'
}
}
}
}
//-------------------------------------------------------
LibConfig.Heading {
text: i18n("Appearance")
}
LibConfig.AppletIconField {
id: iconField
configKey: 'icon'
Kirigami.FormData.label: i18n("Icon")
defaultValue: 'presentwindows-24px'
presetValues: [
'presentwindows-24px',
'presentwindows-22px',
'presentwindows-16px',
'edit-group',
'window',
'view-app-grid-symbolic',
'homerun',
]
}
//-------------------------------------------------------
LibConfig.Heading {
text: i18n("Unity Pager Theme")
}
LibConfig.RadioButtonGroup {
configKey: 'useUnityTheme'
Kirigami.FormData.label: i18n("Use Unity 7 Theme")
model: [
{ value: 0, text: i18n("Never") },
{ value: 1, text: i18n("When Plasma Style is Unity Ambiance") },
{ value: 2, text: i18n("Always") },
]
}
LibConfig.Label {
text: i18n("Should we use a Virtual Desktop indicator similar to Unity 7? This feature is enabled for the <a href=\"https://store.kde.org/p/998797/\">Unity Ambiance</a> Plasma Style by default.")
}
Label {
text: i18n("<b>Current Plasma Style:</b> %1", PlasmaCore.Theme.themeName)
}
}