2 * Copyright (C) 2013 Canonical, Ltd.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18import Ubuntu.Application 0.1
21 id: applicationManager
23 property var mainStageApplications: ApplicationManager.mainStageApplications
24 property var sideStageApplications: ApplicationManager.sideStageApplications
25 property var mainStageFocusedApplication: ApplicationManager.mainStageFocusedApplication
26 property var sideStageFocusedApplication: ApplicationManager.sideStageFocusedApplication
27 property bool sideStageEnabled: true
28 signal focusRequested(string desktopFile)
29 property bool keyboardVisible: ApplicationManager.keyboardVisible
30 property int keyboardHeight: ApplicationManager.keyboardHeight
32 property bool fake: ApplicationManager.fake ? ApplicationManager.fake : false
34 Component.onCompleted: {
35 // Start the watcher so that the ApplicationManager applications model can be populated.
36 ApplicationManager.startWatcher();
39 function activateApplication(desktopFile, argument) {
41 application = getApplicationFromDesktopFile(desktopFile, ApplicationInfo.MainStage);
42 if (application == null) {
43 application = getApplicationFromDesktopFile(desktopFile, ApplicationInfo.SideStage);
45 if (application != null) {
49 var execFlags = sideStageEnabled ? ApplicationManager.NoFlag : ApplicationManager.ForceMainStage;
52 return ApplicationManager.startProcess(desktopFile, execFlags, [argument]);
54 return ApplicationManager.startProcess(desktopFile, execFlags);
58 function stopProcess(application) {
59 ApplicationManager.stopProcess(application)
62 function focusApplication(application) {
63 if (application == null || application == undefined) {
67 ApplicationManager.focusApplication(application.handle);
70 function unfocusCurrentApplication() {
71 ApplicationManager.unfocusCurrentApplication(ApplicationInfo.MainStage);
74 function moveRunningApplicationStackPosition(from, to, stage) {
76 if (stage == ApplicationInfo.SideStage) {
77 applications = ApplicationManager.sideStageApplications;
79 applications = ApplicationManager.mainStageApplications;
81 // FIXME: applications.move(0, 0) crashes
82 if (from !== to && from >= 0 && to >= 0) applications.move(from, to);
85 function getApplicationFromDesktopFile(desktopFile, stage) {
86 var foundSideStageApp, foundMainStageApp;
88 foundMainStageApp = __find(desktopFile, ApplicationManager.mainStageApplications)
89 if (stage == ApplicationInfo.MainStage) {
90 return foundMainStageApp;
92 foundSideStageApp = __find(desktopFile, ApplicationManager.sideStageApplications)
93 if (stage == ApplicationInfo.SideStage) {
94 return foundSideStageApp;
97 // if stage not specified, return whichever app running on either stage
98 return (foundMainStageApp) ? foundMainStageApp : foundSideStageApp;
101 function __find(desktopFile, applications) {
102 for (var i = 0; i < applications.count; i++ ) {
103 var application = applications.get(i);
104 if (application.desktopFile == desktopFile) {
113 target: ApplicationManager
115 // FIXME: hardcoded mapping from ApplicationManager.FavoriteApplications
116 // enum to desktop files
118 if (favoriteApplication == ApplicationManager.CameraApplication) {
119 desktopFile = "/usr/share/applications/camera-app.desktop"
120 } else if (favoriteApplication == ApplicationManager.GalleryApplication) {
121 desktopFile = "/usr/share/applications/gallery-app.desktop"
122 } else if (favoriteApplication == ApplicationManager.ShareApplication) {
123 desktopFile = "/usr/share/applications/share-app.desktop"
124 } else if (favoriteApplication == ApplicationManager.BrowserApplication) {
125 desktopFile = "/usr/share/applications/webbrowser-app.desktop"
126 } else if (favoriteApplication == ApplicationManager.PhoneApplication) {
127 desktopFile = "/usr/share/applications/phone-app.desktop"
128 } else if (favoriteApplication == ApplicationManager.DialerApplication) {
129 desktopFile = "/usr/share/applications/dialer-app.desktop"
130 } else if (favoriteApplication == ApplicationManager.MessagingApplication) {
131 desktopFile = "/usr/share/applications/messaging-app.desktop"
132 } else if (favoriteApplication == ApplicationManager.AddressbookApplication) {
133 desktopFile = "/usr/share/applications/address-book-app.desktop"
136 applicationManager.focusRequested(desktopFile);
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list