Changeset View
Changeset View
Standalone View
Standalone View
kcms/keyboard/kcmui/package/contents/ui/Advanced.qml
- This file was added.
1 | import QtQuick 2.9 | ||||
---|---|---|---|---|---|
2 | import QtQuick.Layouts 1.3 | ||||
3 | import QtQuick.Controls 2.3 as Controls | ||||
4 | import org.kde.kirigami 2.5 as Kirigami | ||||
5 | import org.kde.plasma.core 2.1 as PlasmaCore | ||||
6 | import org.kde.kcm 1.2 as KCM | ||||
7 | import org.kde.kquickcontrols 2.0 as KQuickControls | ||||
8 | | ||||
9 | KCM.ScrollViewKCM { | ||||
10 | id: root | ||||
11 | | ||||
12 | property var dataModel; | ||||
13 | signal changed(); | ||||
14 | | ||||
15 | property var openedGroups: []; | ||||
16 | | ||||
17 | view: ListView { | ||||
18 | model: PlasmaCore.SortFilterModel { | ||||
19 | id: sortFilterModel | ||||
20 | sourceModel: dataModel | ||||
21 | filterRole: "section_name_plus_is_group" | ||||
22 | filterCallback: function(idx, item) { | ||||
23 | var sectionName = item.split('+')[0]; | ||||
24 | var isGroup = item.split('+')[1] === "true"; | ||||
25 | return isGroup || root.openedGroups.indexOf(sectionName) >= 0; | ||||
26 | } | ||||
27 | } | ||||
28 | | ||||
29 | delegate: Kirigami.BasicListItem { | ||||
30 | id: item | ||||
31 | reserveSpaceForIcon: !model.is_group | ||||
32 | separatorVisible: true | ||||
33 | | ||||
34 | Controls.CheckBox { | ||||
35 | id: checkbox | ||||
36 | | ||||
37 | Binding on checked { | ||||
38 | when: !model.is_group | ||||
39 | value: model.selected | ||||
40 | } | ||||
41 | | ||||
42 | checked: model.is_group && root.openedGroups.indexOf(model.section_name) >= 0 | ||||
43 | | ||||
44 | onClicked: { | ||||
45 | if (model.is_group) { | ||||
46 | if (checked) { | ||||
47 | root.openedGroups.push(model.section_name); | ||||
48 | sortFilterModel.invalidate(); | ||||
49 | } | ||||
50 | else { | ||||
51 | root.openedGroups.splice(openedGroups.indexOf(model.section_name), 1); | ||||
52 | sortFilterModel.invalidate(); | ||||
53 | } | ||||
54 | } | ||||
55 | else { | ||||
56 | model.selected = checked; | ||||
57 | root.changed(); | ||||
58 | } | ||||
59 | } | ||||
60 | } | ||||
61 | | ||||
62 | Text { | ||||
63 | text: model.description | ||||
64 | } | ||||
65 | } | ||||
66 | } | ||||
67 | } |