Changeset View
Changeset View
Standalone View
Standalone View
applets/kickoff/package/contents/ui/ActionMenu.qml
Show First 20 Lines • Show All 58 Lines • ▼ Show 20 Line(s) | 56 | function refreshMenu() { | |||
---|---|---|---|---|---|
59 | } | 59 | } | ||
60 | 60 | | |||
61 | if (!actionList) { | 61 | if (!actionList) { | ||
62 | return; | 62 | return; | ||
63 | } | 63 | } | ||
64 | 64 | | |||
65 | menu = contextMenuComponent.createObject(root); | 65 | menu = contextMenuComponent.createObject(root); | ||
66 | 66 | | |||
67 | actionList.forEach(function(actionItem) { | 67 | // actionList.forEach(function(actionItem) { | ||
68 | var item = contextMenuItemComponent.createObject(menu, { | 68 | // var item = contextMenuItemComponent.createObject(menu, { | ||
69 | // "actionItem": actionItem, | ||||
70 | // }); | ||||
71 | // }); | ||||
72 | | ||||
73 | fillMenu(menu, actionList); | ||||
74 | } | ||||
75 | | ||||
76 | function fillMenu(menu, items) { | ||||
77 | items.forEach(function(actionItem) { | ||||
78 | if (actionItem.subActions) { | ||||
79 | // This is a menu | ||||
80 | var submenuItem = contextSubmenuItemComponent.createObject( | ||||
81 | menu, { "actionItem" : actionItem }); | ||||
82 | | ||||
83 | fillMenu(submenuItem.submenu, actionItem.subActions); | ||||
84 | | ||||
85 | } else { | ||||
86 | var item = contextMenuItemComponent.createObject( | ||||
87 | menu, | ||||
88 | { | ||||
69 | "actionItem": actionItem, | 89 | "actionItem": actionItem, | ||
90 | } | ||||
91 | ); | ||||
92 | } | ||||
70 | }); | 93 | }); | ||
71 | }); | 94 | | ||
72 | } | 95 | } | ||
73 | 96 | | |||
74 | Component { | 97 | Component { | ||
75 | id: contextMenuComponent | 98 | id: contextMenuComponent | ||
76 | 99 | | |||
77 | PlasmaComponents.ContextMenu { | 100 | PlasmaComponents.ContextMenu { | ||
78 | visualParent: root.visualParent | 101 | visualParent: root.visualParent | ||
79 | } | 102 | } | ||
80 | } | 103 | } | ||
81 | 104 | | |||
82 | Component { | 105 | Component { | ||
106 | id: contextSubmenuItemComponent | ||||
107 | | ||||
108 | PlasmaComponents.MenuItem { | ||||
109 | id: submenuItem | ||||
110 | | ||||
111 | property variant actionItem | ||||
112 | | ||||
113 | text: actionItem.text ? actionItem.text : "" | ||||
114 | icon: actionItem.icon ? actionItem.icon : null | ||||
115 | | ||||
116 | property variant submenu : submenu_ | ||||
117 | | ||||
118 | PlasmaComponents.ContextMenu { | ||||
119 | id: submenu_ | ||||
120 | visualParent: submenuItem.action | ||||
121 | } | ||||
122 | } | ||||
123 | } | ||||
124 | | ||||
125 | Component { | ||||
83 | id: contextMenuItemComponent | 126 | id: contextMenuItemComponent | ||
84 | 127 | | |||
85 | PlasmaComponents.MenuItem { | 128 | PlasmaComponents.MenuItem { | ||
86 | property variant actionItem | 129 | property variant actionItem | ||
87 | 130 | | |||
88 | text: actionItem.text ? actionItem.text : "" | 131 | text : actionItem.text ? actionItem.text : "" | ||
89 | enabled: actionItem.type != "title" && ("enabled" in actionItem ? actionItem.enabled : true) | 132 | enabled : actionItem.type != "title" && ("enabled" in actionItem ? actionItem.enabled : true) | ||
90 | separator: actionItem.type == "separator" | 133 | separator : actionItem.type == "separator" | ||
91 | section: actionItem.type == "title" | 134 | section : actionItem.type == "title" | ||
92 | icon: actionItem.icon ? actionItem.icon : null | 135 | icon : actionItem.icon ? actionItem.icon : null | ||
136 | checkable : actionItem.checkable ? actionItem.checkable : false | ||||
137 | checked : actionItem.checked ? actionItem.checked : false | ||||
93 | 138 | | |||
94 | onClicked: { | 139 | onClicked: { | ||
95 | actionClicked(actionItem.actionId, actionItem.actionArgument); | 140 | actionClicked(actionItem.actionId, actionItem.actionArgument); | ||
96 | } | 141 | } | ||
97 | } | 142 | } | ||
98 | } | 143 | } | ||
99 | } | 144 | } |