Merge lp:~mterry/lightdm/background-file into lp:lightdm

Proposed by Michael Terry
Status: Merged
Approved by: Robert Ancell
Approved revision: 1327
Merged at revision: 1329
Proposed branch: lp:~mterry/lightdm/background-file
Merge into: lp:lightdm
Diff against target: 170 lines (+49/-1)
4 files modified
liblightdm-gobject/lightdm/user.h (+2/-0)
liblightdm-gobject/user.c (+39/-0)
liblightdm-qt/QLightDM/usersmodel.h (+2/-1)
liblightdm-qt/usersmodel.cpp (+6/-0)
To merge this branch: bzr merge lp:~mterry/lightdm/background-file
Reviewer Review Type Date Requested Status
LightDM Development Team Pending
Review via email: mp+84803@code.launchpad.net

Description of the change

This branch adds support for grabbing background information from accountsservice (which does not yet support publishing that info, but I have a branch for that ready to go).

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'liblightdm-gobject/lightdm/user.h'
2--- liblightdm-gobject/lightdm/user.h 2011-07-22 02:55:15 +0000
3+++ liblightdm-gobject/lightdm/user.h 2011-12-07 16:54:25 +0000
4@@ -93,6 +93,8 @@
5
6 const gchar *lightdm_user_get_image (LightDMUser *user);
7
8+const gchar *lightdm_user_get_background (LightDMUser *user);
9+
10 const gchar *lightdm_user_get_language (LightDMUser *user);
11
12 const gchar *lightdm_user_get_layout (LightDMUser *user);
13
14=== modified file 'liblightdm-gobject/user.c'
15--- liblightdm-gobject/user.c 2011-10-07 22:41:42 +0000
16+++ liblightdm-gobject/user.c 2011-12-07 16:54:25 +0000
17@@ -34,6 +34,7 @@
18 USER_PROP_DISPLAY_NAME,
19 USER_PROP_HOME_DIRECTORY,
20 USER_PROP_IMAGE,
21+ USER_PROP_BACKGROUND,
22 USER_PROP_LANGUAGE,
23 USER_PROP_LAYOUT,
24 USER_PROP_SESSION,
25@@ -92,6 +93,7 @@
26 gchar *real_name;
27 gchar *home_directory;
28 gchar *image;
29+ gchar *background;
30
31 GKeyFile *dmrc_file;
32 gchar *language;
33@@ -433,6 +435,16 @@
34 else
35 priv->image = g_strdup (icon_file);
36 }
37+ else if (strcmp (name, "BackgroundFile") == 0 && g_variant_is_of_type (value, G_VARIANT_TYPE_STRING))
38+ {
39+ gchar *background_file;
40+ g_variant_get (value, "&s", &background_file);
41+ g_free (priv->background);
42+ if (strcmp (background_file, "") == 0)
43+ priv->background = NULL;
44+ else
45+ priv->background = g_strdup (background_file);
46+ }
47 }
48 g_variant_iter_free (iter);
49
50@@ -1081,6 +1093,21 @@
51 return GET_USER_PRIVATE (user)->image;
52 }
53
54+/**
55+ * lightdm_user_get_background:
56+ * @user: A #LightDMUser
57+ *
58+ * Get the background file path for a user.
59+ *
60+ * Return value: The background file path for the given user or #NULL if no path
61+ **/
62+const gchar *
63+lightdm_user_get_background (LightDMUser *user)
64+{
65+ g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL);
66+ return GET_USER_PRIVATE (user)->background;
67+}
68+
69 static void
70 load_dmrc (LightDMUser *user)
71 {
72@@ -1274,6 +1301,7 @@
73 priv->real_name = g_strdup ("");
74 priv->home_directory = g_strdup ("");
75 priv->image = g_strdup ("");
76+ priv->background = g_strdup ("");
77 priv->language = g_strdup ("");
78 priv->layout = g_strdup ("");
79 priv->session = g_strdup ("");
80@@ -1315,6 +1343,9 @@
81 case USER_PROP_IMAGE:
82 g_value_set_string (value, lightdm_user_get_image (self));
83 break;
84+ case USER_PROP_BACKGROUND:
85+ g_value_set_string (value, lightdm_user_get_background (self));
86+ break;
87 case USER_PROP_LANGUAGE:
88 g_value_set_string (value, lightdm_user_get_language (self));
89 break;
90@@ -1343,6 +1374,7 @@
91 g_free (priv->real_name);
92 g_free (priv->home_directory);
93 g_free (priv->image);
94+ g_free (priv->background);
95 if (priv->dmrc_file)
96 g_key_file_free (priv->dmrc_file);
97 }
98@@ -1394,6 +1426,13 @@
99 NULL,
100 G_PARAM_READWRITE));
101 g_object_class_install_property (object_class,
102+ USER_PROP_BACKGROUND,
103+ g_param_spec_string ("background",
104+ "background",
105+ "User background",
106+ NULL,
107+ G_PARAM_READWRITE));
108+ g_object_class_install_property (object_class,
109 USER_PROP_LANGUAGE,
110 g_param_spec_string ("language",
111 "language",
112
113=== modified file 'liblightdm-qt/QLightDM/usersmodel.h'
114--- liblightdm-qt/QLightDM/usersmodel.h 2011-11-26 12:40:52 +0000
115+++ liblightdm-qt/QLightDM/usersmodel.h 2011-12-07 16:54:25 +0000
116@@ -30,7 +30,8 @@
117
118 enum UserModelRoles {NameRole = Qt::UserRole,
119 RealNameRole,
120- LoggedInRole};
121+ LoggedInRole,
122+ BackgroundRole};
123
124 int rowCount(const QModelIndex &parent) const;
125 QVariant data(const QModelIndex &index, int role) const;
126
127=== modified file 'liblightdm-qt/usersmodel.cpp'
128--- liblightdm-qt/usersmodel.cpp 2011-11-28 13:57:49 +0000
129+++ liblightdm-qt/usersmodel.cpp 2011-12-07 16:54:25 +0000
130@@ -26,6 +26,7 @@
131 QString realName;
132 QString homeDirectory;
133 QString image;
134+ QString background;
135 bool isLoggedIn;
136 QString displayName() const;
137 };
138@@ -91,6 +92,7 @@
139 user.homeDirectory = QString::fromLocal8Bit(lightdm_user_get_home_directory(ldmUser));
140 user.realName = QString::fromLocal8Bit(lightdm_user_get_real_name(ldmUser));
141 user.image = QString::fromLocal8Bit(lightdm_user_get_image(ldmUser));
142+ user.background = QString::fromLocal8Bit(lightdm_user_get_background(ldmUser));
143 user.isLoggedIn = lightdm_user_get_logged_in(ldmUser);
144 users.append(user);
145 }
146@@ -116,6 +118,7 @@
147 user.homeDirectory = QString::fromLocal8Bit(lightdm_user_get_home_directory(ldmUser));
148 user.realName = QString::fromLocal8Bit(lightdm_user_get_real_name(ldmUser));
149 user.image = QString::fromLocal8Bit(lightdm_user_get_image(ldmUser));
150+ user.background = QString::fromLocal8Bit(lightdm_user_get_background(ldmUser));
151 user.isLoggedIn = lightdm_user_get_logged_in(ldmUser);
152 that->users.append(user);
153
154@@ -136,6 +139,7 @@
155 that->users[i].homeDirectory = QString::fromLocal8Bit(lightdm_user_get_home_directory(ldmUser));
156 that->users[i].realName = QString::fromLocal8Bit(lightdm_user_get_real_name(ldmUser));
157 that->users[i].image = QString::fromLocal8Bit(lightdm_user_get_image(ldmUser));
158+ that->users[i].background = QString::fromLocal8Bit(lightdm_user_get_background(ldmUser));
159 that->users[i].isLoggedIn = lightdm_user_get_logged_in(ldmUser);
160
161 QModelIndex index = that->q_ptr->createIndex(i, 0);
162@@ -209,6 +213,8 @@
163 return d->users[row].realName;
164 case UsersModel::LoggedInRole:
165 return d->users[row].isLoggedIn;
166+ case UsersModel::BackgroundRole:
167+ return QPixmap(d->users[row].background);
168 }
169
170 return QVariant();

Subscribers

People subscribed via source and target branches