summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Le Folgoc <mrpouit@ubuntu.com>2012-07-31 00:07:02 +0200
committerLionel Le Folgoc <mrpouit@ubuntu.com>2012-07-31 00:07:02 +0200
commit8b73588a8c8f109772abbc15e661a902a3410879 (patch)
tree0b32add12a034caa7d76eceaa07dd96052e75a49
parent251c1423bfe7dc528adf8c2ef8cf82801ce1ddd2 (diff)
downloadlightdm-gtk-greeter-8b73588a8c8f109772abbc15e661a902a3410879.tar.gz
Add a config option to set the path to the logo image
-rw-r--r--data/greeter.ui4
-rw-r--r--data/lightdm-gtk-greeter.conf2
-rw-r--r--src/lightdm-gtk-greeter.c26
3 files changed, 30 insertions, 2 deletions
diff --git a/data/greeter.ui b/data/greeter.ui
index 7fcbaa5..c278f9e 100644
--- a/data/greeter.ui
+++ b/data/greeter.ui
@@ -30,8 +30,8 @@
<property name="border_width">12</property>
<property name="spacing">6</property>
<child>
- <object class="GtkImage" id="image1">
- <property name="name">image1</property>
+ <object class="GtkImage" id="logo">
+ <property name="name">logo</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="pixel_size">64</property>
diff --git a/data/lightdm-gtk-greeter.conf b/data/lightdm-gtk-greeter.conf
index dacc33d..1869ea2 100644
--- a/data/lightdm-gtk-greeter.conf
+++ b/data/lightdm-gtk-greeter.conf
@@ -1,4 +1,5 @@
#
+# logo = Logo file to use, either an image absolute path, or a path relative to the greeter data directory
# background = Background file to use, either an image path or a color (e.g. #772953)
# show-language-selector (true or false)
# theme-name = GTK+ theme to use
@@ -10,6 +11,7 @@
# show-language-selector (true or false)
#
[greeter]
+#logo=
#background=
#show-language-selector=false
#theme-name=
diff --git a/src/lightdm-gtk-greeter.c b/src/lightdm-gtk-greeter.c
index 4527d4c..b595888 100644
--- a/src/lightdm-gtk-greeter.c
+++ b/src/lightdm-gtk-greeter.c
@@ -824,6 +824,32 @@ main (int argc, char **argv)
language_combo = GTK_COMBO_BOX (gtk_builder_get_object (builder, "language_combobox"));
panel_window = GTK_WINDOW (gtk_builder_get_object (builder, "panel_window"));
+ /* Load logo */
+ value = g_key_file_get_value (config, "greeter", "logo", NULL);
+ if (value)
+ {
+ gchar *path;
+ GtkImage *logo = GTK_IMAGE (gtk_builder_get_object (builder, "logo"));
+ GdkPixbuf *logo_pixbuf = NULL;
+ GError *error = NULL;
+
+ if (g_path_is_absolute (value))
+ path = g_strdup (value);
+ else
+ path = g_build_filename (GREETER_DATA_DIR, value, NULL);
+
+ g_debug ("Loading logo %s", path);
+ logo_pixbuf = gdk_pixbuf_new_from_file (path, &error);
+ if (logo_pixbuf)
+ gtk_image_set_from_pixbuf (logo, logo_pixbuf);
+ else
+ g_warning ("Failed to load logo: %s", error->message);
+ g_clear_error (&error);
+ g_object_unref (logo_pixbuf);
+ g_free (path);
+ g_free (value);
+ }
+
gtk_label_set_text (GTK_LABEL (gtk_builder_get_object (builder, "hostname_label")), lightdm_get_hostname ());
/* Glade can't handle custom menuitems, so set them up manually */