@@ -15,15 +15,16 @@
1515 */
1616
1717import QtQuick 2.0
18−import Ubuntu.Application 0.1
18+import Unity.Application 0.1
19+import Utils 0.1
1920
2021Item {
2122 id: applicationManager
2223
2324 property var mainStageApplications: ApplicationManager.mainStageApplications
2425 property var sideStageApplications: ApplicationManager.sideStageApplications
25− property var mainStageFocusedApplication: ApplicationManager.mainStageFocusedApplication
26− property var sideStageFocusedApplication: ApplicationManager.sideStageFocusedApplication
26+ property var mainStageFocusedApplication: mainStageModel
27+ property var sideStageFocusedApplication: sideStageModel
2728 property bool sideStageEnabled: true
2829 signal focusRequested(string desktopFile)
2930 property bool keyboardVisible: ApplicationManager.keyboardVisible
@@ -31,9 +32,30 @@ Item {
3132
3233 property bool fake: ApplicationManager.fake ? ApplicationManager.fake : false
3334
34− Component.onCompleted: {
35− // Start the watcher so that the ApplicationManager applications model can be populated.
36− ApplicationManager.startWatcher();
35+ SortFilterProxyModel {
36+ 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 = mainStageModel.findFirst(ApplicationManager.RoleFocused, true);
44+ print("MS", mainStageFocusedApplication)
45+ }
46+ }
47+
48+ SortFilterProxyModel {
49+ id: sideStageModel
50+ model: ApplicationManager
51+ dynamicSortFilter: true
52+ filterRole: ApplicationManager.RoleStage
53+ filterRegExp: RegExp(ApplicationInfo.SideStage)
54+
55+ onDataChanged: { print("MODEL Side", count)
56+ sideStageFocusedApplication = sideStageModel.findFirst(ApplicationManager.RoleFocused, true);
57+ print("SS", sideStageFocusedApplication)
58+ }
3759 }
3860
3961 function activateApplication(desktopFile, argument) {
@@ -109,6 +131,20 @@ Item {
109131 }
110132 }
111133
134+ function desktopFileToAppId(desktopFile) {
135+ var right = desktopFile.lastIndexOf(".desktop")
136+ var left = desktopFile.lastIndexOf("/")
137+ if (left == -1 || right == -1 || left == right) {
138+ console.log("ApplicationManagerWrapper: unable to extract appId from " + desktopFile)
139+ return "";
140+ }
141+ return desktopFile.substring(left+1, right)
142+ }
143+
144+ function appIdToDesktopFile(desktopFile) {
145+ return "/usr/share/applications/" + desktopFile + ".desktop"
146+ }
147+
112148 Connections {
113149 target: ApplicationManager
114150 onFocusRequested: {