]> git.0d.be Git - empathy.git/commitdiff
Automatically add default account domain where appropriate. Fixes bug #534425 (Jonny...
authorJonny Lamb <jonny.lamb@collabora.co.uk>
Fri, 4 Jul 2008 14:49:20 +0000 (14:49 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Fri, 4 Jul 2008 14:49:20 +0000 (14:49 +0000)
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
svn path=/trunk/; revision=1193

libempathy-gtk/empathy-account-widget.c

index 5116841c1e9bc2581b7b792e3d39dbfbc78ede18..044e4f7e0dd026d0e2259349d101191fe4c7a5c1 100644 (file)
@@ -60,9 +60,31 @@ account_widget_entry_focus_cb (GtkWidget     *widget,
                gtk_entry_set_text (GTK_ENTRY (widget), value ? value : "");
                g_free (value);
        } else {
+               McProfile *profile;
+               const gchar *default_account_domain = NULL;
+               gchar *value = NULL;
+
+               profile = mc_account_get_profile (account);
+               if (mc_profile_get_capabilities (profile) &
+                       MC_PROFILE_CAPABILITY_SPLIT_ACCOUNT) {
+
+                       default_account_domain = mc_profile_get_default_account_domain (profile);
+               }
+
+               if ((strcmp (param_name, "account") == 0) && default_account_domain &&
+                       !strstr (str, "@")) {
+
+                       DEBUG ("Adding @%s suffix to account",
+                               default_account_domain);
+                       value = g_strconcat (str, "@", default_account_domain, NULL);
+                       gtk_entry_set_text (GTK_ENTRY (widget), value);
+               } else {
+                       value = g_strdup (str);
+               }
                DEBUG ("Setting %s to %s", param_name,
-                       strstr (param_name, "password") ? "***" : str);
-               mc_account_set_param_string (account, param_name, str);
+                       strstr (param_name, "password") ? "***" : value);
+               mc_account_set_param_string (account, param_name, value);
+               g_free (value);
        }
 
        return FALSE;