@@ -32,31 +32,36 @@ Item {
32 property var menuModel: null
32 property var menuModel: null
34 property var _map: {
34 property var _map: {
35− "unity.widgets.systemsettings.tablet.volumecontrol" : sliderMenu,
36+ "unity.widgets.systemsettings.tablet.volumecontrol" : sliderMenu,
36− "unity.widgets.systemsettings.tablet.switch" : switchMenu,
37+ "unity.widgets.systemsettings.tablet.switch" : switchMenu,
38− "com.canonical.indicator.button" : buttonMenu,
39+ "com.canonical.indicator.button" : buttonMenu,
39− "com.canonical.indicator.div" : separatorMenu,
40+ "com.canonical.indicator.div" : separatorMenu,
40− "com.canonical.indicator.section" : sectionMenu,
41+ "com.canonical.indicator.section" : sectionMenu,
41− "com.canonical.indicator.progress" : progressMenu,
42+ "com.canonical.indicator.progress" : progressMenu,
42− "com.canonical.indicator.slider" : sliderMenu,
43+ "com.canonical.indicator.slider" : sliderMenu,
43− "com.canonical.indicator.switch" : switchMenu,
44+ "com.canonical.indicator.switch" : switchMenu,
44− "com.canonical.indicator.alarm" : alarmMenu,
45+ "com.canonical.indicator.alarm" : alarmMenu,
45− "com.canonical.indicator.appointment" : appointmentMenu,
46+ "com.canonical.indicator.appointment" : appointmentMenu,
46− "com.canonical.indicator.transfer" : transferMenu,
47+ "com.canonical.indicator.transfer" : transferMenu,
47− "com.canonical.indicator.button-section" : buttonSectionMenu,
48+ "com.canonical.indicator.button-section" : buttonSectionMenu,
49− "com.canonical.indicator.messages.messageitem" : messageItem,
50+ "com.canonical.indicator.messages.messageitem" : messageItem,
50− "com.canonical.indicator.messages.sourceitem" : groupedMessage,
51+ "com.canonical.indicator.messages.sourceitem" : groupedMessage,
52− "com.canonical.unity.slider" : sliderMenu,
53+ "com.canonical.unity.slider" : sliderMenu,
53− "com.canonical.unity.switch" : switchMenu,
54+ "com.canonical.unity.switch" : switchMenu,
55− "com.canonical.unity.media-player" : mediaPayerMenu,
56+ "com.canonical.unity.media-player" : mediaPayerMenu,
56− "com.canonical.unity.playback-item" : playbackItemMenu,
57+ "com.canonical.unity.playback-item" : playbackItemMenu,
58− "unity.widgets.systemsettings.tablet.wifisection" : wifiSection,
59+ "unity.widgets.systemsettings.tablet.wifisection" : wifiSection,
59− "unity.widgets.systemsettings.tablet.accesspoint" : accessPoint,
60+ "unity.widgets.systemsettings.tablet.accesspoint" : accessPoint,
62+ "indicator-messages" : {
63+ "com.canonical.indicator.button" : messagesButtonMenu
62 function getExtendedProperty(object, propertyName, defaultValue) {
67 function getExtendedProperty(object, propertyName, defaultValue) {
@@ -126,6 +131,7 @@ Item {
129 Component {
135 Component {
130 id: buttonMenu;
136 id: buttonMenu;
@@ -143,6 +149,36 @@ Item {
154+ id: messagesButtonMenu;
157+ objectName: "messagesButtonMenu"
158+ property QtObject menuData: null
159+ property var menuModel: menuFactory.menuModel
160+ property int menuIndex: -1
162+ implicitHeight: units.gu(5)
163+ enabled: menuData && menuData.sensitive || false
167+ text: menuData && menuData.label || ""
168+ anchors.centerIn: parent
174+ fill: buttonMenuLabel
175+ margins: units.gu(-1)
177+ onClicked: menuModel.activate(menuIndex);
146 Component {
182 Component {
147 id: sectionMenu;
183 id: sectionMenu;
@@ -186,6 +222,20 @@ Item {
186 onTriggered: {
222 onTriggered: {
187 menuModel.activate(menuIndex);
223 menuModel.activate(menuIndex);
226+ property bool settingsMenu: menuData.action.indexOf("settings") > -1
227+ backColor: settingsMenu ? Qt.rgba(1,1,1,0.05) : "transparent"
229+ component: settingsMenu ? buttonForSettings : undefined
231+ id: buttonForSettings
236+ color: Theme.palette.selected.backgroundText
@@ -207,7 +257,6 @@ Item {
211 Component {
260 Component {
212 id: switchMenu;
261 id: switchMenu;
@@ -350,7 +399,7 @@ Item {
351 text: menuData && menuData.label || ""
400 text: menuData && menuData.label || ""
352 enabled: menuData && menuData.sensitive || false
401 enabled: menuData && menuData.sensitive || false
353− checked: menuData && menuData.isToggled || false
402+ active: menuData && menuData.isToggled || false
354 secure: getExtendedProperty(extendedData, "xCanonicalWifiApIsSecure", false)
403 secure: getExtendedProperty(extendedData, "xCanonicalWifiApIsSecure", false)
355 adHoc: getExtendedProperty(extendedData, "xCanonicalWifiApIsAdhoc", false)
404 adHoc: getExtendedProperty(extendedData, "xCanonicalWifiApIsAdhoc", false)
356 signalStrength: strengthAction.valid ? strengthAction.state : 0
405 signalStrength: strengthAction.valid ? strengthAction.state : 0
@@ -439,6 +488,7 @@ Item {
439 running: getExtendedProperty(actionState, "running", false)
488 running: getExtendedProperty(actionState, "running", false)
440 state: getExtendedProperty(actionState, "state", "")
489 state: getExtendedProperty(actionState, "state", "")
441 enabled: menuData && menuData.sensitive || false
490 enabled: menuData && menuData.sensitive || false
443 onTriggered: {
493 onTriggered: {
444 model.activate(modelIndex);
494 model.activate(modelIndex);
@@ -647,9 +697,18 @@ Item {
650− function load(modelData) {
700+ function load(modelData, context) {
651 if (modelData.type !== undefined) {
701 if (modelData.type !== undefined) {
652− var component = _map[modelData.type];
702+ var component = undefined;
704+ var contextComponents = _map[context];
705+ if (contextComponents !== undefined) {
706+ component = contextComponents[modelData.type];
709+ if (component === undefined) {
710+ component = _map["default"][modelData.type];
653 if (component !== undefined) {
712 if (component !== undefined) {
654 return component;
713 return component;