20#include <lomiri/shell/launcher/LauncherModelInterface.h>
21#include <lomiri/shell/application/ApplicationManagerInterface.h>
23#include <QAbstractListModel>
30using namespace lomiri::shell::launcher;
31using namespace lomiri::shell::application;
33class LauncherModel:
public LauncherModelInterface
38 LauncherModel(QObject *parent =
nullptr);
41 int rowCount(
const QModelIndex &parent = QModelIndex())
const override;
43 QVariant data(
const QModelIndex &index,
int role)
const override;
45 Q_INVOKABLE lomiri::shell::launcher::LauncherItemInterface* get(
int index)
const override;
46 Q_INVOKABLE
void move(
int oldIndex,
int newIndex)
override;
47 Q_INVOKABLE
void pin(
const QString &appId,
int index = -1)
override;
48 Q_INVOKABLE
void quickListActionInvoked(
const QString &appId,
int actionIndex)
override;
49 Q_INVOKABLE
void setUser(
const QString &username)
override;
50 Q_INVOKABLE QString getUrlForAppId(
const QString &appId)
const;
52 lomiri::shell::application::ApplicationManagerInterface* applicationManager()
const override;
53 void setApplicationManager(lomiri::shell::application::ApplicationManagerInterface *appManager)
override;
55 bool onlyPinned()
const override;
56 void setOnlyPinned(
bool onlyPinned)
override;
58 int findApplication(
const QString &appId);
61 void requestRemove(
const QString &appId)
override;
62 Q_INVOKABLE
void refresh();
63 Q_INVOKABLE
void alert(
const QString &appId);
68 void unpin(
const QString &appId);
71 void countChanged(
const QString &appId,
int count);
72 void countVisibleChanged(
const QString &appId,
bool count);
73 void progressChanged(
const QString &appId,
int progress);
75 void applicationAdded(
const QModelIndex &parent,
int row);
76 void applicationRemoved(
const QModelIndex &parent,
int row);
77 void focusedAppIdChanged();
78 void updateSurfaceList();
79 void updateSurfaceListForApp(ApplicationInfoInterface *app);
80 void updateSurfaceListForSurface();
83 QList<LauncherItem*> m_list;
85 GSettings *m_settings;
86 DBusInterface *m_dbusIface;
87 ASAdapter *m_asAdapter;
89 ApplicationManagerInterface *m_appManager;
91 friend class LauncherModelTest;