on xenial help sign in
MenuitemFactory: add utility functions to get proper components allow user to override
commit4084254ce96dda7570dd8284a9d8158f3e17eb61 authorMarco Trevisan (Treviño) <mail@3v1n0.net> dateThu 22 Sep 2016, 20:07 (10 years ago) parent848d7f6
2 files changed+33−17
qml/Panel/Indicators/MenuItemFactory.qml+32−16 tests/qmltests/Panel/tst_IndicatorPage.qml+1−1
qml/Panel/Indicators/MenuItemFactory.qml+32−16
@@ -31,7 +31,8 @@ Item {
3131 property var rootModel: null
3232 property var menuModel: null
3333
34− readonly property var _map: {
34+ property var _userMap: null
35+ readonly property var _typeToComponent: {
3536 "default": {
3637 "unity.widgets.systemsettings.tablet.volumecontrol" : sliderMenu,
3738 "unity.widgets.systemsettings.tablet.switch" : switchMenu,
@@ -87,6 +88,32 @@ Item {
8788 }
8889 }
8990
91+ function getComponentForIndicatorEntryType(indicator, type) {
92+ var component = undefined;
93+ var map = _userMap || _typeToComponent
94+ var indicatorComponents = map[indicator];
95+
96+ if (indicatorComponents !== undefined) {
97+ component = indicatorComponents[type];
98+ }
99+
100+ if (component === undefined) {
101+ component = map["default"][type];
102+ }
103+
104+ return component
105+ }
106+
107+ function getComponentForIndicatorEntryAction(indicator, action) {
108+ var component = undefined;
109+ var indicatorFilter = _action_filter_map[indicator]
110+
111+ if (indicatorFilter !== undefined) {
112+ component = indicatorFilter[action];
113+ }
114+ return component
115+ }
116+
90117 function getExtendedProperty(object, propertyName, defaultValue) {
91118 if (object && object.hasOwnProperty(propertyName)) {
92119 return object[propertyName];
@@ -974,25 +1001,14 @@ Item {
9741001 context = context.substring("fake-".length)
9751002
9761003 if (modelData.action !== undefined && modelData.action !== "") {
977− var contextFilter = _action_filter_map[context]
978− if (contextFilter !== undefined) {
979− var component = contextFilter[modelData.action];
980− if (component !== undefined)
981− return component
1004+ var component = getComponentForIndicatorEntryAction(context, modelData.action)
1005+ if (component !== undefined) {
1006+ return component
9821007 }
9831008 }
9841009
9851010 if (modelData.type !== undefined && modelData.type !== "") {
986− var component = undefined;
987−
988− var contextComponents = _map[context];
989− if (contextComponents !== undefined) {
990− component = contextComponents[modelData.type];
991− }
992−
993− if (component === undefined) {
994− component = _map["default"][modelData.type];
995− }
1011+ var component = getComponentForIndicatorEntryType(context, modelData.type)
9961012 if (component !== undefined) {
9971013 return component;
9981014 }
tests/qmltests/Panel/tst_IndicatorPage.qml+1−1
@@ -36,7 +36,7 @@ Item {
3636 menuObjectPath: "/com/canonical/indicator/test"
3737
3838 factory {
39− _map: {
39+ _userMap: {
4040 "default": {
4141 "com.canonical.indicator.test" : testMenu
4242 }