diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2011-07-19 17:33:01 +1000 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2011-07-19 17:33:01 +1000 |
commit | 30632c4739061dd68216ca23dcbd2baed92e765e (patch) | |
tree | 05029ed6eacd31ba3bb8d8b1bb428ec0e280321a /liblightdm-qt | |
parent | b2ae582739eea6e96441bed418e476a00ec6594e (diff) | |
download | lightdm-30632c4739061dd68216ca23dcbd2baed92e765e.tar.gz |
Make singletons for LightDM::UsersModel and QLightDM:SessionsModel
Diffstat (limited to 'liblightdm-qt')
-rw-r--r-- | liblightdm-qt/QLightDM/Session | 5 | ||||
-rw-r--r-- | liblightdm-qt/QLightDM/User | 7 | ||||
-rw-r--r-- | liblightdm-qt/session.cpp | 10 | ||||
-rw-r--r-- | liblightdm-qt/user.cpp | 10 |
4 files changed, 28 insertions, 4 deletions
diff --git a/liblightdm-qt/QLightDM/Session b/liblightdm-qt/QLightDM/Session index 1c6e6c28..83310bbc 100644 --- a/liblightdm-qt/QLightDM/Session +++ b/liblightdm-qt/QLightDM/Session @@ -21,11 +21,10 @@ namespace QLightDM { { Q_OBJECT public: - enum SessionModelRoles {IdRole = Qt::UserRole}; - explicit SessionsModel(QObject *parent = 0); virtual ~SessionsModel(); + enum SessionModelRoles {IdRole = Qt::UserRole}; int rowCount(const QModelIndex &parent) const; QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const; @@ -33,6 +32,8 @@ namespace QLightDM { SessionsModelPrivate *d; void buildList(); //maybe make this a public slot, which apps can call only if they give a care about the session. }; + + SessionsModel *sessions(); }; #endif // QLIGHTDM_SESSION_H diff --git a/liblightdm-qt/QLightDM/User b/liblightdm-qt/QLightDM/User index 9d26f424..08841fc1 100644 --- a/liblightdm-qt/QLightDM/User +++ b/liblightdm-qt/QLightDM/User @@ -62,12 +62,13 @@ namespace QLightDM { Q_OBJECT public: + explicit UsersModel(QObject *parent = 0); + ~UsersModel(); + enum UserModelRoles {NameRole = Qt::UserRole, RealNameRole, LoggedInRole}; - explicit UsersModel(QObject *parent = 0); - ~UsersModel(); int rowCount(const QModelIndex &parent) const; QVariant data(const QModelIndex &index, int role) const; @@ -84,6 +85,8 @@ namespace QLightDM QList<User> getUsers(); UsersModelPrivate *d; }; + + UsersModel *users(); } #endif // QLIGHTDM_USER_H diff --git a/liblightdm-qt/session.cpp b/liblightdm-qt/session.cpp index 5547975e..7134d937 100644 --- a/liblightdm-qt/session.cpp +++ b/liblightdm-qt/session.cpp @@ -35,6 +35,16 @@ public: QString comment; }; +static SessionsModel *session_model = NULL; + +SessionsModel *QLightDM::sessions() +{ + if (!session_model) + session_model = new SessionsModel (); + + return session_model; +} + SessionsModel::SessionsModel(QObject *parent) : QAbstractListModel(parent), d(new SessionsModelPrivate()) diff --git a/liblightdm-qt/user.cpp b/liblightdm-qt/user.cpp index 55b23254..3a34dc18 100644 --- a/liblightdm-qt/user.cpp +++ b/liblightdm-qt/user.cpp @@ -25,6 +25,16 @@ using namespace QLightDM; +static UsersModel *user_model = NULL; + +UsersModel *QLightDM::users() +{ + if (!user_model) + user_model = new UsersModel (); + + return user_model; +} + class UserPrivate : public QSharedData { public: |