on xenial help sign in
side/mainStageFocusedApplication now being determined correctly
commit6667b30da378f2616a2c9bde060bf20f7b7d50df authorGerry Boland <gerry.boland@canonical.com> dateThu 5 Sep 2013, 01:50 (13 years ago) parentd835e2a
3 files changed+41−15
Components/ApplicationManagerWrapper.qml+34−8 Components/ApplicationScreenshot.qml+1−1 Components/ApplicationsModelStageFiltered.qml+6−6
Components/ApplicationManagerWrapper.qml+34−8
@@ -22,8 +22,8 @@ Item {
2222
2323 property alias mainStageApplications: mainStageModel
2424 property alias sideStageApplications: sideStageModel
25− property alias mainStageFocusedApplication: mainStageModel.focusedApplication
26− property alias sideStageFocusedApplication: sideStageModel.focusedApplication
25+ property variant mainStageFocusedApplication: null
26+ property variant sideStageFocusedApplication: null
2727 property bool sideStageEnabled: true
2828 signal focusRequested(string desktopFile)
2929 property bool keyboardVisible: ApplicationManager.keyboardVisible
@@ -31,6 +31,9 @@ Item {
3131
3232 property bool fake: ApplicationManager.fake ? ApplicationManager.fake : false
3333
34+ onMainStageFocusedApplicationChanged: (mainStageFocusedApplication)?mainStageFocusedApplication.appId: "null"
35+ onSideStageFocusedApplicationChanged: (sideStageFocusedApplication)?sideStageFocusedApplication.appId: "null"
36+
3437 ApplicationsModelStageFiltered {
3538 id: mainStageModel
3639 stage: ApplicationInfo.MainStage
@@ -41,6 +44,29 @@ Item {
4144 stage: ApplicationInfo.SideStage
4245 }
4346
47+ Connections {
48+ target: ApplicationManager
49+ onFocusedApplicationIdChanged: {
50+ var app = ApplicationManager.findApplication(ApplicationManager.focusedApplicationId)
51+ if (!app) { //nothing at all focused, so clear all
52+ mainStageFocusedApplication = null;
53+ sideStageFocusedApplication = null;
54+ } else {
55+ if (app.stage == ApplicationInfo.MainStage) {
56+ mainStageFocusedApplication = app;
57+ // possible the side stage app being unfocused fired this signal, so check for it
58+ if (sideStageFocusedApplication && !sideStageFocusedApplication.focused)
59+ sideStageFocusedApplication = null;
60+ } else {
61+ sideStageFocusedApplication = app;
62+ // possible the main stage app being unfocused fired this signal, so check for it
63+ if (mainStageFocusedApplication && !mainStageFocusedApplication.focused)
64+ mainStageFocusedApplication = null;
65+ }
66+ }
67+ }
68+ }
69+
4470 function activateApplication(desktopFile, argument) {
4571 var appId;
4672
@@ -65,20 +91,20 @@ Item {
6591 }
6692 }
6793
68− function stopProcess(application) {
94+ function stopApplication(application) {
6995 var appId;
7096
7197 // HACK: might be called with appId, or else with Application object
7298 if (typeof application == "string") {
73− appId = desktopFileToAppId(application.desktopFile);
74− } else {
7599 appId = application;
100+ } else {
101+ appId = desktopFileToAppId(application.desktopFile);
76102 }
77103
78− ApplicationManager.stopProcess(appId);
104+ ApplicationManager.stopApplication(appId);
79105 }
80106
81− function focusApplication(application) {print("focusApplication", application.appId)
107+ function focusApplication(application) {
82108 if (application == null || application == undefined) {
83109 return;
84110 }
@@ -90,7 +116,7 @@ Item {
90116 ApplicationManager.unfocusCurrentApplication();
91117 }
92118
93− function moveRunningApplicationStackPosition(from, to, stage) { print("moveRunningApplicationStackPosition", from, to, stage)
119+ function moveRunningApplicationStackPosition(from, to, stage) {
94120 if (from == to || from < 0 || to < 0) return;
95121
96122 if (stage == ApplicationInfo.SideStage) {
Components/ApplicationScreenshot.qml+1−1
@@ -25,7 +25,7 @@ Item {
2525 property bool withBackground: false
2626 property bool ready: applicationImage.ready || withBackground
2727
28− function setApplication(application) { print("SET APP", application, (application) ? application.appId : "")
28+ function setApplication(application) {
2929 applicationScreenshot.application = application
3030 }
3131
Components/ApplicationsModelStageFiltered.qml+6−6
@@ -21,10 +21,8 @@ import Unity.Application 0.1
2121SortFilterProxyModel {
2222 id: root
2323 property int stage
24− property variant focusedApplication: null
2524
2625 function get(index) {
27− print("GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG get", index)
2826 return ApplicationManager.get(mapRowToSource(index));
2927 }
3028
@@ -39,6 +37,7 @@ SortFilterProxyModel {
3937 // assuming wanting to move to end of list
4038 realTo = ApplicationManager.count;
4139 }
40+ if (realFrom == realTo) return;
4241 ApplicationManager.move(realFrom, realTo);
4342 }
4443
@@ -47,8 +46,9 @@ SortFilterProxyModel {
4746 filterRole: ApplicationManager.RoleStage
4847 filterRegExp: RegExp(stage)
4948
50− onLayoutChanged: {
51− focusedApplication = get(0);
52− print("LAYOUT CHANGED", focusedApplication.appId)
53− }
49+// onLayoutChanged: {
50+// for (var i=0, len=root.count; i<len; i++) {
51+// print(i, get(i).appId);
52+// }
53+// }
5454}