Correctly set required version of lightdm in configure.ac.
authorHong Jen Yee (PCMan) <pcman.tw@gmail.com>
Sun, 11 Nov 2012 04:10:48 +0000 (12:10 +0800)
committerHong Jen Yee (PCMan) <pcman.tw@gmail.com>
Sun, 11 Nov 2012 06:51:20 +0000 (14:51 +0800)
Bump version number to 0.3, preparing for a new release.
Support selecting a specific language for the session using new LightDM APIs.
Rename the package name to lightdm-gtk-builder-greeter.

configure.ac
po/Makefile.in.in
src/lightdm-gtk-builder-greeter.c

index 713410d..13d6674 100644 (file)
@@ -1,10 +1,10 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-prog_name = ldm-gtk-builder-greeter
+prog_name = lightdm-gtk-builder-greeter
 
 AC_PREREQ([2.63])
-AC_INIT([ldm-gtk-builder-greeter], [0.2.0], [http://lxde.org/])
+AC_INIT([lightdm-gtk-builder-greeter], [0.3.0], [http://lxde.org/])
 AM_INIT_AUTOMAKE([-Wall -Werror foreign])
 
 AC_CONFIG_HEADERS([config.h])
@@ -38,7 +38,7 @@ AC_SUBST(GTK_CFLAGS)
 AC_SUBST(GTK_LIBS)
 
 # Check for LightDM Greeter library
-ldm_modules="liblightdm-gobject-1"
+ldm_modules="liblightdm-gobject-1 >= 0.9.8"
 PKG_CHECK_MODULES(LIGHTDM_GOBJECT, [$ldm_modules])
 AC_SUBST(LIGHTDM_GOBJECT_CFLAGS)
 AC_SUBST(LIGHTDM_GOBJECT_LIBS)
@@ -96,7 +96,7 @@ do
     echo $lang >> $srcdir/po/LINGUAS
 done
 
-GETTEXT_PACKAGE=ldm-gtk-builder-greeter
+GETTEXT_PACKAGE=lightdm-gtk-builder-greeter
 AC_SUBST(GETTEXT_PACKAGE)
 AM_GLIB_GNU_GETTEXT
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package.])
@@ -121,12 +121,12 @@ if test x"$sysconfdir" != x'/etc'; then
     echo
 else
     echo
-    echo ldm-gtk-builder-greeter........ : Version $VERSION
+    echo lightdm-gtk-builder-greeter.... : Version $VERSION
     echo
     echo Enable debug....................: "$enable_debug"
     echo
     echo http://lxde.org/
     echo
-    echo "Ready to make ldm-greeter. Type 'make' to continue."
+    echo "Ready to make lightdm-gtk-builder-greeter. Type 'make' to continue."
     echo
 fi
index cc8a222..06a8cfe 100644 (file)
@@ -49,8 +49,8 @@ MSGFMT = @MSGFMT@
 XGETTEXT = @XGETTEXT@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
-GENPOT   = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
+MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT   = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
 
 ALL_LINGUAS = @ALL_LINGUAS@
 
@@ -73,15 +73,20 @@ CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$l
 .SUFFIXES:
 .SUFFIXES: .po .pox .gmo .mo .msg .cat
 
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V))
+INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY))
+INTLTOOL__v_MSGFMT_0 = @echo "  MSGFMT" $@;
+
 .po.pox:
        $(MAKE) $(GETTEXT_PACKAGE).pot
        $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
 
 .po.mo:
-       $(MSGFMT) -o $@ $<
+       $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $<
 
 .po.gmo:
-       file=`echo $* | sed 's,.*/,,'`.gmo \
+       $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \
          && rm -f $$file && $(GMSGFMT) -o $$file $<
 
 .po.cat:
index 48074fd..cbf0c5e 100644 (file)
@@ -55,6 +55,9 @@ static GOptionEntry option_entries[] =
     { NULL }
 };
 
+static void select_language(const char *lang);
+static void select_session(const char *session);
+
 static void select_session(const char *session)
 {
     GtkTreeModel *model = gtk_combo_box_get_model(GTK_COMBO_BOX(sessions_combo));
@@ -108,6 +111,7 @@ static void on_show_prompt(LightDMGreeter *greeter, gchar* text,
         LightDMUser* user = lightdm_user_list_get_user_by_name(lightdm_user_list_get_instance(),
                                                                user_name);
         select_session(user ? lightdm_user_get_session(user) : NULL);
+        select_language(user ? lightdm_user_get_language(user) : NULL);
     }
 }
 
@@ -130,7 +134,7 @@ static void select_language(const char *lang)
 {
     GtkTreeModel* model = gtk_combo_box_get_model(GTK_COMBO_BOX(lang_combo));
     GtkTreeIter iter;
-    if (gtk_tree_model_get_iter_first(model, &iter))
+    if(lang && gtk_tree_model_get_iter_first(model, &iter))
     {
         do
         {
@@ -183,13 +187,14 @@ static void start_session(void)
     GKeyFile* dmrc;
 
 #if 0
-    /* LightDM has no API for setting default session/language for users.
+    /* Older LightDM has no API for setting default session/language for users.
      * However, its settings are loaded from ~/.dmrc.
      * So let's write our values to ~/.dmrc.
      * For details about .dmrc, see:
-     * http://library.gnome.org/admin/gdm/stable/configuration.html.en */
-
-    /* If LightDM supports this, we don't have to do the hack here. */
+     * http://library.gnome.org/admin/gdm/stable/configuration.html.en
+     * If LightDM supports this, we don't have to do the hack here. */
+    
+    /* UPDATE: New LightDM seems to store the language settings via AccountService. */
 
     user = lightdm_user_list_get_user_by_name(lightdm_user_list_get_instance(),
                                               user_name);
@@ -202,8 +207,8 @@ static void start_session(void)
     g_key_file_free(dmrc);
 #endif
 
-    /* const char* language = get_selected_language();
-     * We can do nothing here as LightDM does not support changing language. */
+    const char* language = get_selected_language();
+    lightdm_greeter_set_language(greeter, language); /* It's great that lightdm finally supports this. */
 
     if(!lightdm_greeter_start_session_sync(greeter, session, &err))
     {
@@ -550,7 +555,6 @@ int main(int argc, char** argv)
         theme_dir = g_build_filename(PACKAGE_DATA_DIR "/themes",
                                      greeter_theme_name, NULL);
     }
-g_debug("theme dir: %s", theme_dir);
 
 #if GTK_CHECK_VERSION(3, 0, 0)
     /* NOTE: this piece of code is not yet tested */