diff options
author | Lionel Le Folgoc <mrpouit@ubuntu.com> | 2012-07-31 00:07:02 +0200 |
---|---|---|
committer | Lionel Le Folgoc <mrpouit@ubuntu.com> | 2012-07-31 00:07:02 +0200 |
commit | 8b73588a8c8f109772abbc15e661a902a3410879 (patch) | |
tree | 0b32add12a034caa7d76eceaa07dd96052e75a49 | |
parent | 251c1423bfe7dc528adf8c2ef8cf82801ce1ddd2 (diff) | |
download | lightdm-gtk-greeter-8b73588a8c8f109772abbc15e661a902a3410879.tar.gz |
Add a config option to set the path to the logo image
-rw-r--r-- | data/greeter.ui | 4 | ||||
-rw-r--r-- | data/lightdm-gtk-greeter.conf | 2 | ||||
-rw-r--r-- | src/lightdm-gtk-greeter.c | 26 |
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 */ |