@@ -31,7 +31,8 @@ Item {
31 property var rootModel: null
31 property var rootModel: null
32 property var menuModel: null
32 property var menuModel: null
34+ property var _userMap: null
34− readonly property var _map: {
35+ readonly property var _typeToComponent: {
35 "default": {
36 "default": {
36 "unity.widgets.systemsettings.tablet.volumecontrol" : sliderMenu,
37 "unity.widgets.systemsettings.tablet.volumecontrol" : sliderMenu,
37 "unity.widgets.systemsettings.tablet.switch" : switchMenu,
38 "unity.widgets.systemsettings.tablet.switch" : switchMenu,
@@ -87,6 +88,32 @@ Item {
91+ function getComponentForIndicatorEntryType(indicator, type) {
92+ var component = undefined;
93+ var map = _userMap || _typeToComponent
94+ var indicatorComponents = map[indicator];
96+ if (indicatorComponents !== undefined) {
97+ component = indicatorComponents[type];
100+ if (component === undefined) {
101+ component = map["default"][type];
107+ function getComponentForIndicatorEntryAction(indicator, action) {
108+ var component = undefined;
109+ var indicatorFilter = _action_filter_map[indicator]
111+ if (indicatorFilter !== undefined) {
112+ component = indicatorFilter[action];
90 function getExtendedProperty(object, propertyName, defaultValue) {
117 function getExtendedProperty(object, propertyName, defaultValue) {
91 if (object && object.hasOwnProperty(propertyName)) {
118 if (object && object.hasOwnProperty(propertyName)) {
92 return object[propertyName];
119 return object[propertyName];
@@ -974,25 +1001,14 @@ Item {
974 context = context.substring("fake-".length)
1001 context = context.substring("fake-".length)
976 if (modelData.action !== undefined && modelData.action !== "") {
1003 if (modelData.action !== undefined && modelData.action !== "") {
977− var contextFilter = _action_filter_map[context]
1004+ var component = getComponentForIndicatorEntryAction(context, modelData.action)
978− if (contextFilter !== undefined) {
979− var component = contextFilter[modelData.action];
980− if (component !== undefined)
1005+ if (component !== undefined) {
981− return component
1006+ return component
985 if (modelData.type !== undefined && modelData.type !== "") {
1010 if (modelData.type !== undefined && modelData.type !== "") {
986− var component = undefined;
1011+ var component = getComponentForIndicatorEntryType(context, modelData.type)
988− var contextComponents = _map[context];
989− if (contextComponents !== undefined) {
990− component = contextComponents[modelData.type];
993− if (component === undefined) {
994− component = _map["default"][modelData.type];
996 if (component !== undefined) {
1012 if (component !== undefined) {
997 return component;
1013 return component;