~nick-dedekind/unity8/indicator.submenu-reinit

« back to all changes in this revision

Viewing changes to tests/mocks/Unity/Application/ApplicationManager.h

  • Committer: Nick Dedekind
  • Date: 2013-09-16 07:37:30 UTC
  • mfrom: (229.1.91 trunk)
  • Revision ID: nicholas.dedekind@gmail.com-20130916073730-3o9iv6i9h0d2c7rl
merged with trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
#include <QObject>
21
21
#include <QList>
22
22
#include <QStringList>
23
 
#include "ApplicationListModel.h"
24
23
#include "ApplicationInfo.h"
25
24
 
 
25
// unity-api
 
26
#include <unity/shell/application/ApplicationManagerInterface.h>
 
27
 
26
28
class QQuickItem;
 
29
using namespace unity::shell::application;
27
30
 
28
 
class ApplicationManager : public QObject {
 
31
class ApplicationManager : public ApplicationManagerInterface {
29
32
    Q_OBJECT
30
33
    Q_ENUMS(Role)
31
34
    Q_ENUMS(StageHint)
39
42
    Q_PROPERTY(int sideStageWidth READ sideStageWidth)
40
43
    Q_PROPERTY(StageHint stageHint READ stageHint)
41
44
    Q_PROPERTY(FormFactorHint formFactorHint READ formFactorHint)
42
 
    Q_PROPERTY(ApplicationListModel* mainStageApplications READ mainStageApplications)
43
 
    Q_PROPERTY(ApplicationListModel* sideStageApplications READ sideStageApplications)
44
 
    Q_PROPERTY(ApplicationInfo* mainStageFocusedApplication READ mainStageFocusedApplication
45
 
               NOTIFY mainStageFocusedApplicationChanged)
46
 
    Q_PROPERTY(ApplicationInfo* sideStageFocusedApplication READ sideStageFocusedApplication
47
 
               NOTIFY sideStageFocusedApplicationChanged)
48
45
 
49
46
    Q_PROPERTY(bool fake READ fake CONSTANT)
50
47
 
64
61
        DesktopFormFactor, PhoneFormFactor, TabletFormFactor
65
62
    };
66
63
    enum FavoriteApplication {
67
 
        CameraApplication, GalleryApplication, BrowserApplication, ShareApplication
 
64
        CameraApplication, GalleryApplication, BrowserApplication, ShareApplication,
 
65
        PhoneApplication, DialerApplication, MessagingApplication, AddressbookApplication
68
66
    };
69
67
    enum Flag {
70
68
        NoFlag = 0x0,
77
75
    int sideStageWidth() const;
78
76
    StageHint stageHint() const;
79
77
    FormFactorHint formFactorHint() const;
80
 
    ApplicationListModel* mainStageApplications() const;
81
 
    ApplicationListModel* sideStageApplications() const;
82
 
    ApplicationInfo* mainStageFocusedApplication() const;
83
 
    ApplicationInfo* sideStageFocusedApplication() const;
84
78
 
85
79
    bool fake() { return true; }
86
80
 
87
 
    Q_INVOKABLE void focusApplication(int handle);
88
 
    Q_INVOKABLE void unfocusCurrentApplication(StageHint stageHint);
89
 
    Q_INVOKABLE ApplicationInfo* startProcess(QString desktopFile,
90
 
                                        ExecFlags flags,
91
 
                                        QStringList arguments = QStringList());
92
 
    Q_INVOKABLE void stopProcess(ApplicationInfo* application);
93
 
    Q_INVOKABLE void startWatcher() {}
 
81
    // QAbstractItemModel methods.
 
82
    int rowCount(const QModelIndex& parent = QModelIndex()) const override;
 
83
    QVariant data(const QModelIndex& index, int role) const override;
 
84
    Q_INVOKABLE ApplicationInfo *get(int index) const override;
 
85
    Q_INVOKABLE ApplicationInfo *findApplication(const QString &appId) const override;
 
86
 
 
87
    Q_INVOKABLE void move(int from, int to);
 
88
 
 
89
    // Application control methods
 
90
    Q_INVOKABLE bool focusApplication(const QString &appId) override;
 
91
    Q_INVOKABLE void unfocusCurrentApplication() override;
 
92
    Q_INVOKABLE ApplicationInfo *startApplication(const QString &appId, const QStringList &arguments = QStringList()) override;
 
93
    Q_INVOKABLE ApplicationInfo *startApplication(const QString &appId, ExecFlags flags, const QStringList &arguments = QStringList());
 
94
    Q_INVOKABLE bool stopApplication(const QString &appId) override;
 
95
 
 
96
    QString focusedApplicationId() const override;
94
97
 
95
98
 Q_SIGNALS:
96
99
    void keyboardHeightChanged();
97
100
    void keyboardVisibleChanged();
98
 
    void mainStageFocusedApplicationChanged();
99
 
    void sideStageFocusedApplicationChanged();
100
101
    void focusRequested(FavoriteApplication favoriteApplication);
101
102
 
102
103
 private:
 
104
    void add(ApplicationInfo *application);
 
105
    void remove(ApplicationInfo* application);
103
106
    void showApplicationWindow(ApplicationInfo *application);
104
107
    void buildListOfAvailableApplications();
105
108
    void generateQmlStrings(ApplicationInfo *application);
109
112
    void createSideStage();
110
113
    int m_keyboardHeight;
111
114
    bool m_keyboardVisible;
112
 
    ApplicationListModel* m_mainStageApplications;
113
 
    ApplicationListModel* m_sideStageApplications;
114
 
    ApplicationInfo* m_mainStageFocusedApplication;
115
 
    ApplicationInfo* m_sideStageFocusedApplication;
 
115
    QList<ApplicationInfo*> m_runningApplications;
116
116
    QList<ApplicationInfo*> m_availableApplications;
117
117
    QQmlComponent *m_mainStageComponent;
118
118
    QQuickItem *m_mainStage;