kwin/kcmkwin/kwinrules/package/contents/ui/RuleItemDelegate.qml
Vlad Zahorodnii 1fb9f6f13a Switch to SPDX license markers
The main advantage of SPDX license identifiers over the traditional
license headers is that it's more difficult to overlook inappropriate
licenses for kwin, for example GPL 3. We also don't have to copy a
lot of boilerplate text.

In order to create this change, I ran licensedigger -r -c from the
toplevel source directory.
2020-08-07 19:57:56 +00:00

98 lines
2.8 KiB
QML

/*
* SPDX-FileCopyrightText: 2020 Ismael Asensio <isma.af@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
import QtQuick 2.14
import QtQuick.Layouts 1.14
import QtQuick.Controls 2.14 as QQC2
import org.kde.kirigami 2.10 as Kirigami
Kirigami.AbstractListItem {
id: ruleDelegate
property bool ruleEnabled: model.enabled
Kirigami.Theme.colorSet: Kirigami.Theme.View
width: ListView.view.width
highlighted: false
hoverEnabled: false
RowLayout {
Kirigami.Icon {
id: itemIcon
source: model.icon
Layout.preferredHeight: Kirigami.Units.iconSizes.smallMedium
Layout.preferredWidth: Kirigami.Units.iconSizes.smallMedium
Layout.rightMargin: Kirigami.Units.smallSpacing
Layout.alignment: Qt.AlignVCenter
}
QQC2.Label {
text: model.name
horizontalAlignment: Text.AlignLeft
elide: Text.ElideRight
Layout.preferredWidth: 10 * Kirigami.Units.gridUnit
Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter
}
RowLayout {
// This layout keeps the width constant between delegates, independent of items visibility
Layout.fillWidth: true
Layout.preferredWidth: 20 * Kirigami.Units.gridUnit
Layout.minimumWidth: 13 * Kirigami.Units.gridUnit
OptionsComboBox {
id: policyCombo
Layout.preferredWidth: 50 // 50%
Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter
flat: true
visible: count > 0
enabled: ruleEnabled
model: policyModel
onActivated: {
policy = currentValue;
}
}
ValueEditor {
id: valueEditor
Layout.preferredWidth: 50 // 50%
Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
enabled: model.enabled
ruleValue: model.value
ruleOptions: model.options
controlType: model.type
onValueEdited: (value) => {
model.value = value;
}
}
QQC2.ToolButton {
id: itemEnabled
icon.name: "edit-delete"
visible: model.selectable
Layout.alignment: Qt.AlignVCenter
onClicked: {
model.enabled = false;
}
}
}
QQC2.ToolTip {
text: model.description
visible: hovered && (text.length > 0)
}
}
}