@@ -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 }