@@ -16,15 +16,14 @@
1616
1717import QtQuick 2.0
1818import Unity.Application 0.1
19−import Utils 0.1
2019
2120Item {
2221 id: applicationManager
2322
24− property var mainStageApplications: mainStageModel
25− property var sideStageApplications: sideStageModel
26− property var mainStageFocusedApplication: null
27− property var sideStageFocusedApplication: null
23+ property alias mainStageApplications: mainStageModel
24+ property alias sideStageApplications: sideStageModel
25+ property alias mainStageFocusedApplication: mainStageModel.focusedApplication
26+ property alias sideStageFocusedApplication: sideStageModel.focusedApplication
2827 property bool sideStageEnabled: true
2928 signal focusRequested(string desktopFile)
3029 property bool keyboardVisible: ApplicationManager.keyboardVisible
@@ -32,39 +31,21 @@ Item {
3231
3332 property bool fake: ApplicationManager.fake ? ApplicationManager.fake : false
3433
35− SortFilterProxyModel {
34+ ApplicationsModelStageFiltered {
3635 id: mainStageModel
37− model: ApplicationManager
38− dynamicSortFilter: true
39− filterRole: ApplicationManager.RoleStage
40− filterRegExp: RegExp(ApplicationInfo.MainStage)
41−
42− onCountChanged: { print("MODEL Main:", count, ApplicationManager.RoleStage, ApplicationManager.RoleFocused)
43− mainStageFocusedApplication = ApplicationManager.get(mainStageModel.findFirst(ApplicationManager.RoleFocused, true));
44− print("MS", mainStageFocusedApplication)
45− }
46− onLayoutChanged: print("LAYOUT")
47− onDataChanged: print("DATA")
36+ stage: ApplicationInfo.MainStage
4837 }
4938
50− SortFilterProxyModel {
39+ ApplicationsModelStageFiltered {
5140 id: sideStageModel
52− model: ApplicationManager
53− dynamicSortFilter: true
54− filterRole: ApplicationManager.RoleStage
55− filterRegExp: RegExp(ApplicationInfo.SideStage)
56−
57− onDataChanged: { print("MODEL Side", count)
58− sideStageFocusedApplication = ApplicationManager.get(sideStageModel.findFirst(ApplicationManager.RoleFocused, true));
59− print("SS", sideStageFocusedApplication)
60− }
41+ stage: ApplicationInfo.SideStage
6142 }
6243
6344 function activateApplication(desktopFile, argument) {
6445 var appId;
6546
6647 // HACK: might be called with appId, but mostly with desktopFile
67− if (desktopFile.indexOf(".desktop") = -1) {
48+ if (desktopFile.indexOf(".desktop") >= 0) {
6849 appId = desktopFileToAppId(desktopFile);
6950 } else {
7051 appId = desktopFile;
@@ -97,7 +78,7 @@ Item {
9778 ApplicationManager.stopProcess(appId);
9879 }
9980
100− function focusApplication(application) {
81+ function focusApplication(application) {print("focusApplication", application.appId)
10182 if (application == null || application == undefined) {
10283 return;
10384 }
@@ -109,13 +90,25 @@ Item {
10990 ApplicationManager.unfocusCurrentApplication();
11091 }
11192
112− function moveRunningApplicationStackPosition(from, to, stage) { //FIXME: stage unused!
113− if (from !== to && from >= 0 && to >= 0) ApplicationManager.move(from, to);
93+ function moveRunningApplicationStackPosition(from, to, stage) { print("moveRunningApplicationStackPosition", from, to, stage)
94+ if (from == to || from < 0 || to < 0) return;
95+
96+ if (stage == ApplicationInfo.SideStage) {
97+ sideStageModel.move(from, to);
98+ } else {
99+ mainStageModel.move(from, to);
100+ }
114101 }
115102
116103 function getApplicationFromDesktopFile(desktopFile, stage) {
117− var foundSideStageApp, foundMainStageApp;
118− var appId = desktopFileToAppId(desktopFile);
104+ var appId;
105+
106+ // HACK: might be called with appId, but mostly with desktopFile
107+ if (desktopFile.indexOf(".desktop") >= 0) {
108+ appId = desktopFileToAppId(desktopFile);
109+ } else {
110+ appId = desktopFile;
111+ }
119112
120113 for (var i = 0, len = ApplicationManager.count; i < len; i++ ) {
121114 var app = ApplicationManager.get(i);