summaryrefslogtreecommitdiff
path: root/liblightdm-qt
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2011-07-19 17:33:01 +1000
committerRobert Ancell <robert.ancell@canonical.com>2011-07-19 17:33:01 +1000
commit30632c4739061dd68216ca23dcbd2baed92e765e (patch)
tree05029ed6eacd31ba3bb8d8b1bb428ec0e280321a /liblightdm-qt
parentb2ae582739eea6e96441bed418e476a00ec6594e (diff)
downloadlightdm-30632c4739061dd68216ca23dcbd2baed92e765e.tar.gz
Make singletons for LightDM::UsersModel and QLightDM:SessionsModel
Diffstat (limited to 'liblightdm-qt')
-rw-r--r--liblightdm-qt/QLightDM/Session5
-rw-r--r--liblightdm-qt/QLightDM/User7
-rw-r--r--liblightdm-qt/session.cpp10
-rw-r--r--liblightdm-qt/user.cpp10
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: