← Back to team overview

lightdm-gtk-greeter-team team mailing list archive

[Merge] lp:~kalgasnik/lightdm-gtk-greeter/default_avatar_option into lp:lightdm-gtk-greeter

 

Andrew P. has proposed merging lp:~kalgasnik/lightdm-gtk-greeter/default_avatar_option into lp:lightdm-gtk-greeter.

Requested reviews:
  LightDM Gtk+ Greeter Development Team (lightdm-gtk-greeter-team)

For more details, see:
https://code.launchpad.net/~kalgasnik/lightdm-gtk-greeter/default_avatar_option/+merge/200067

New option:
default-user-image = Image used as default user icon, path or #icon-name
-- 
https://code.launchpad.net/~kalgasnik/lightdm-gtk-greeter/default_avatar_option/+merge/200067
Your team LightDM Gtk+ Greeter Development Team is requested to review the proposed merge of lp:~kalgasnik/lightdm-gtk-greeter/default_avatar_option into lp:lightdm-gtk-greeter.
=== modified file 'data/lightdm-gtk-greeter.conf'
--- data/lightdm-gtk-greeter.conf	2013-11-24 20:54:22 +0000
+++ data/lightdm-gtk-greeter.conf	2013-12-26 12:37:42 +0000
@@ -13,6 +13,7 @@
 # clock-format = strftime-format string, e.g. %H:%M
 # keyboard = command to launch on-screen keyboard
 # position = main window position: x y
+# default-user-image = Image used as default user icon, path or #icon-name
 # 
 [greeter]
 #background=

=== modified file 'src/lightdm-gtk-greeter.c'
--- src/lightdm-gtk-greeter.c	2013-12-13 02:56:06 +0000
+++ src/lightdm-gtk-greeter.c	2013-12-26 12:37:42 +0000
@@ -105,6 +105,9 @@
 const WindowPosition CENTERED_WINDOW_POS = { .x = {50, +1, TRUE, 0}, .y = {50, +1, TRUE, 0} };
 WindowPosition main_window_pos;
 
+GdkPixbuf* default_user_pixbuf = NULL;
+gchar* default_user_icon = "avatar-default";
+
 
 #ifdef HAVE_LIBINDICATOR
 static gboolean
@@ -500,8 +503,11 @@
             }
         }
     }
-
-    gtk_image_set_from_icon_name (GTK_IMAGE (user_image), "avatar-default", GTK_ICON_SIZE_DIALOG);
+    
+    if (default_user_pixbuf)
+        gtk_image_set_from_pixbuf (GTK_IMAGE (user_image), default_user_pixbuf);
+    else
+        gtk_image_set_from_icon_name (GTK_IMAGE (user_image), default_user_icon, GTK_ICON_SIZE_DIALOG);
 }
 
 #if GTK_CHECK_VERSION (3, 0, 0)
@@ -2016,6 +2022,23 @@
     }
 #endif
 
+    value = g_key_file_get_value (config, "greeter", "default-user-image", NULL);
+    if (value)
+    {
+        if (value[0] == '#')
+            default_user_icon = g_strdup (value + 1);
+        else
+        {
+            default_user_pixbuf = gdk_pixbuf_new_from_file (value, &error);
+            if (!default_user_pixbuf)
+            {
+                g_warning ("Failed to load default user image: %s", error->message);
+                g_clear_error (&error);
+            }
+        }
+        g_free (value);
+    }
+
     /* Clock */
     gtk_widget_set_visible(GTK_WIDGET(clock_label),
                            g_key_file_get_boolean (config, "greeter", "show-clock", NULL));


Follow ups