on xenial help sign in
Merge
commitc6b0f389946038bb2de4636489b0d064ed3c1ed5 authorAlbert Astals <albert.astals@canonical.com> dateWed 11 Dec 2013, 10:08 (13 years ago) parent7cd287d7e7264a
6 files changed+37−35
Launcher/Launcher.qml+3−3 Launcher/LauncherPanel.qml+2−2 Shell.qml+1−1 plugins/Unity/Indicators/Messaging/qml/MessageMenuItemFactory.qml+12−22 plugins/Unity/Indicators/qml/IndicatorPage.qml+13−1 tests/qmltests/Launcher/tst_Launcher.qml+6−6
Launcher/Launcher.qml+3−3
@@ -41,7 +41,7 @@ Item {
4141 signal dash()
4242
4343 // emitted when the dash icon in the launcher has been tapped
44− signal dashItemSelected()
44+ signal showDashHome()
4545
4646 onStateChanged: {
4747 if (state == "") {
@@ -161,9 +161,9 @@ Item {
161161 root.state = ""
162162 launcherApplicationSelected(appId)
163163 }
164− onDashItemSelected: {
164+ onShowDashHome: {
165165 root.state = ""
166− root.dashItemSelected(index)
166+ root.showDashHome();
167167 }
168168
169169 onPreventHidingChanged: {
Launcher/LauncherPanel.qml+2−2
@@ -36,7 +36,7 @@ Item {
3636 property int highlightIndex: -1
3737
3838 signal applicationSelected(string appId)
39− signal dashItemSelected(int index)
39+ signal showDashHome()
4040
4141 BorderImage {
4242 id: background
@@ -57,7 +57,7 @@ Item {
5757 id: dashItem
5858 width: parent.width
5959 height: units.gu(7)
60− onClicked: root.dashItemSelected(0)
60+ onClicked: root.showDashHome()
6161 z: 1
6262 Image {
6363 objectName: "dashItem"
Shell.qml+1−1
@@ -667,7 +667,7 @@ FocusScope {
667667 dragAreaWidth: shell.edgeSize
668668 available: (!greeter.shown || greeter.narrowMode) && edgeDemo.launcherEnabled
669669
670− onDashItemSelected: {
670+ onShowDashHome: {
671671 if (edgeDemo.running)
672672 return;
673673
plugins/Unity/Indicators/Messaging/qml/MessageMenuItemFactory.qml+12−22
@@ -37,28 +37,6 @@ Indicators.BaseMenuItem {
3737
3838 sourceComponent: loadMessage(actionsDescription);
3939
40− // Binding all properties for the item, to make sure that any change in the
41− // property will be propagated to the contents.item at any time
42− Binding {
43− target: contents.item
44− property: "menuSelected"
45− value: menuSelected
46− when: (contents.status == Loader.Ready)
47− }
48−
49− Binding {
50− target: contents.item
51− property: "menu"
52− value: menu
53− when: (contents.status == Loader.Ready)
54− }
55−
56− Connections {
57− target: contents.item ? contents.item : null
58− onSelectMenu: selectMenu()
59− onDeselectMenu: deselectMenu()
60− }
61−
6240 Component {
6341 id: simpleTextMessage
6442 SimpleTextMessage {
@@ -76,6 +54,10 @@ Indicators.BaseMenuItem {
7654 onDismiss: {
7755 menuItem.model.activate(modelIndex, false);
7856 }
57+
58+ menuSelected: menuItem.menuSelected
59+ onSelectMenu: menuItem.selectMenu()
60+ onDeselectMenu: menuItem.deselectMenu()
7961 }
8062 }
8163 Component {
@@ -107,6 +89,10 @@ Indicators.BaseMenuItem {
10789 onReply: {
10890 replyAction.activate(value);
10991 }
92+
93+ menuSelected: menuItem.menuSelected
94+ onSelectMenu: menuItem.selectMenu()
95+ onDeselectMenu: menuItem.deselectMenu()
11096 }
11197 }
11298 Component {
@@ -149,6 +135,10 @@ Indicators.BaseMenuItem {
149135 onReply: {
150136 replyAction.activate(value);
151137 }
138+
139+ menuSelected: menuItem.menuSelected
140+ onSelectMenu: menuItem.selectMenu()
141+ onDeselectMenu: menuItem.deselectMenu()
152142 }
153143 }
154144 }
plugins/Unity/Indicators/qml/IndicatorPage.qml+13−1
@@ -140,10 +140,11 @@ IndicatorBase {
140140
141141 onLoaded: {
142142 if (item.hasOwnProperty("menuSelected")) {
143− item.menuSelected = Qt.binding(function() { return mainMenu.selectedIndex == index; });
143+ item.menuSelected = mainMenu.selectedIndex == index;
144144 item.selectMenu.connect(function() { mainMenu.selectedIndex = index; });
145145 item.deselectMenu.connect(function() { mainMenu.selectedIndex = -1; });
146146 }
147+
147148 if (item.hasOwnProperty("menu")) {
148149 item.menu = Qt.binding(function() { return model; });
149150 }
@@ -154,6 +155,17 @@ IndicatorBase {
154155 property: "objectName"
155156 value: model.action
156157 }
158+
159+ // TODO: Fixes lp#1243146
160+ // This is a workaround for a Qt bug. https://bugreports.qt-project.org/browse/QTBUG-34351
161+ Connections {
162+ target: mainMenu
163+ onSelectedIndexChanged: {
164+ if (loader.item && loader.item.hasOwnProperty("menuSelected")) {
165+ loader.item.menuSelected = mainMenu.selectedIndex == index;
166+ }
167+ }
168+ }
157169 }
158170 }
159171 }
tests/qmltests/Launcher/tst_Launcher.qml+6−6
@@ -41,9 +41,9 @@ Item {
4141 lastSelectedApplication = appId
4242 }
4343
44− property int dashItemSelected_count: 0
45− onDashItemSelected: {
46− dashItemSelected_count++;
44+ property int showDashHome_count: 0
45+ onShowDashHome: {
46+ showDashHome_count++;
4747 }
4848
4949 property int maxPanelX: 0
@@ -138,9 +138,9 @@ Item {
138138 }
139139
140140 /* If I click on the dash icon on the launcher
141− Launcher::dashItemSelected signal should be emitted */
141+ Launcher::showDashHome signal should be emitted */
142142 function test_clickingOnDashIconCausesSignalEmission() {
143− launcher.dashItemSelected_count = 0
143+ launcher.showDashHome_count = 0
144144
145145 revealer.dragLauncherIntoView()
146146
@@ -149,7 +149,7 @@ Item {
149149
150150 mouseClick(dashIcon, dashIcon.width/2, dashIcon.height/2)
151151
152− tryCompare(launcher, "dashItemSelected_count", 1)
152+ tryCompare(launcher, "showDashHome_count", 1)
153153
154154 // Tapping on the dash icon also dismisses the launcher
155155 revealer.waitUntilLauncherDisappears()