← Back to team overview

ayatana-commits team mailing list archive

[Merge] lp:~jbicha/indicator-session/add-account-settings into lp:indicator-session

 

Jeremy Bicha has proposed merging lp:~jbicha/indicator-session/add-account-settings into lp:indicator-session.

Requested reviews:
  Indicator Applet Developers (indicator-applet-developers)

For more details, see:
https://code.launchpad.net/~jbicha/indicator-session/add-account-settings/+merge/70619

Originally proposed at https://lists.launchpad.net/ayatana/msg06235.html

I see this option as being far more useful than Online Accounts as users want to be able to change their password, profile picture, automatic login setting, and add an extra user easily.
-- 
https://code.launchpad.net/~jbicha/indicator-session/add-account-settings/+merge/70619
Your team ayatana-commits is subscribed to branch lp:indicator-session.
=== modified file 'src/indicator-session.c'
--- src/indicator-session.c	2011-07-22 16:44:04 +0000
+++ src/indicator-session.c	2011-08-05 19:18:53 +0000
@@ -524,7 +524,7 @@
 
   if (variant == NULL || g_variant_get_string(variant, NULL) == NULL ||
       g_variant_get_string(variant, NULL)[0] == '\0' || no_name_in_lang) {
-    finalstring = _("Switch User...");
+    finalstring = _("Switch User…");
     set_ellipsize = FALSE;
   }
 
@@ -551,7 +551,7 @@
     gdouble ems = width / pixels_per_em;
     g_debug("Username width %fem", ems);
 
-    finalstring = g_strdup_printf(_("Switch From %s..."), username);
+    finalstring = g_strdup_printf(_("Switch From %s…"), username);
     if (ems >= 20.0f) {
       set_ellipsize = TRUE;
     } else {

=== modified file 'src/user-menu-mgr.c'
--- src/user-menu-mgr.c	2011-07-18 11:19:38 +0000
+++ src/user-menu-mgr.c	2011-08-05 19:18:53 +0000
@@ -49,6 +49,9 @@
 static void activate_online_accounts (DbusmenuMenuitem *mi,
                                       guint timestamp,
                                       gpointer user_data);
+static void activate_account_settings (DbusmenuMenuitem *mi,
+                                      guint timestamp,
+                                      gpointer user_data);
 static void user_menu_mgr_rebuild_items (UserMenuMgr *self);
 static gboolean check_new_session ();
 static void user_change (UsersServiceDbus *service,
@@ -208,7 +211,7 @@
     }
     g_list_free(users);
   }
-  // Add the online accounts and separator
+  // Add the separator, online accounts, and account settings links
   DbusmenuMenuitem * separator1 = dbusmenu_menuitem_new();
   dbusmenu_menuitem_property_set (separator1,
                                   DBUSMENU_MENUITEM_PROP_TYPE,
@@ -220,14 +223,30 @@
                                   DBUSMENU_CLIENT_TYPES_DEFAULT);
   dbusmenu_menuitem_property_set (online_accounts_item,
                                   DBUSMENU_MENUITEM_PROP_LABEL,
-                                  _("Online Accounts..."));
+                                  _("Online Accounts…"));
 
   g_signal_connect (G_OBJECT (online_accounts_item),
                     DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
                     G_CALLBACK (activate_online_accounts),
                     NULL);
                                   
-  dbusmenu_menuitem_child_append (self->root_item, online_accounts_item);    
+  dbusmenu_menuitem_child_append (self->root_item, online_accounts_item);
+
+  DbusmenuMenuitem * account_settings_item = dbusmenu_menuitem_new();
+  dbusmenu_menuitem_property_set (account_settings_item,
+                                  DBUSMENU_MENUITEM_PROP_TYPE,
+                                  DBUSMENU_CLIENT_TYPES_DEFAULT);
+  dbusmenu_menuitem_property_set (account_settings_item,
+                                  DBUSMENU_MENUITEM_PROP_LABEL,
+                                  _("Account Settings…"));
+
+  g_signal_connect (G_OBJECT (account_settings_item),
+                    DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
+                    G_CALLBACK (activate_account_settings),
+                    NULL);
+                                  
+  dbusmenu_menuitem_child_append (self->root_item, account_settings_item); 
+
 }
 
 /* Checks to see if we can create sessions */
@@ -311,6 +330,19 @@
   }
 }
 
+static void
+activate_account_settings (DbusmenuMenuitem *mi,
+                          guint timestamp,
+                          gpointer user_data)
+{
+  GError * error = NULL;
+  if (!g_spawn_command_line_async("gnome-control-center user-accounts", &error))
+  {
+    g_warning("Unable to show control centre: %s", error->message);
+    g_error_free(error);
+  }
+}
+
 /* Signal called when a user is added.  It updates the count and
    rebuilds the menu */
 static void


Follow ups