From 0fe1ffdfdf9c06af2b6dad36e7472e6dd5c18a7f Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Fri, 19 Aug 2011 12:50:36 +0100 Subject: the beginnings of using gsettings in the gconf helper --- src/gconf-helper.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/gconf-helper.c b/src/gconf-helper.c index 93ae96f..3bd254a 100644 --- a/src/gconf-helper.c +++ b/src/gconf-helper.c @@ -19,7 +19,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ - +#include #include #include @@ -34,6 +34,8 @@ with this program. If not, see . #include "gconf-helper.h" static GConfClient * gconf_client = NULL; +static GSettings* settings = NULL; + static guint confirmation_notify = 0; static guint logout_notify = 0; static guint restart_notify = 0; @@ -41,10 +43,10 @@ static guint shutdown_notify = 0; gboolean supress_confirmations (void) { - if(!gconf_client) { - gconf_client = gconf_client_get_default (); + if(!settings) { + settings = g_settings_new ("com.canonical.indicators.sound"); } - return gconf_client_get_bool (gconf_client, SUPPRESS_KEY, NULL) ; + return g_settings_get_boolean (settings, SUPPRESS_KEY, NULL) ; } gboolean -- cgit v1.2.3 From 1290c1032eea7ce2f8bdd28e3bebf618b47216ca Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 19 Aug 2011 11:06:40 -0500 Subject: Fix getting of all the keys to be settings functions --- src/gconf-helper.c | 32 ++++++++++++++++---------------- src/gconf-helper.h | 10 +++++----- 2 files changed, 21 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/gconf-helper.c b/src/gconf-helper.c index 3bd254a..f9e73ad 100644 --- a/src/gconf-helper.c +++ b/src/gconf-helper.c @@ -41,36 +41,36 @@ static guint logout_notify = 0; static guint restart_notify = 0; static guint shutdown_notify = 0; -gboolean -supress_confirmations (void) { +static void +build_settings (void) { if(!settings) { - settings = g_settings_new ("com.canonical.indicators.sound"); + settings = g_settings_new (SESSION_SCHEMA); } - return g_settings_get_boolean (settings, SUPPRESS_KEY, NULL) ; + return; +} + +gboolean +supress_confirmations (void) { + build_settings(); + return g_settings_get_boolean (settings, SUPPRESS_KEY) ; } gboolean show_logout (void) { - if(!gconf_client) { - gconf_client = gconf_client_get_default (); - } - return !gconf_client_get_bool (gconf_client, LOGOUT_KEY, NULL) ; + build_settings(); + return !g_settings_get_boolean (settings, LOGOUT_KEY) ; } gboolean show_restart (void) { - if(!gconf_client) { - gconf_client = gconf_client_get_default (); - } - return !gconf_client_get_bool (gconf_client, RESTART_KEY, NULL) ; + build_settings(); + return !g_settings_get_boolean (settings, RESTART_KEY) ; } gboolean show_shutdown (void) { - if(!gconf_client) { - gconf_client = gconf_client_get_default (); - } - return !gconf_client_get_bool (gconf_client, SHUTDOWN_KEY, NULL) ; + build_settings(); + return !g_settings_get_boolean (settings, SHUTDOWN_KEY) ; } static void update_menu_entries_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { diff --git a/src/gconf-helper.h b/src/gconf-helper.h index 039b309..0d84dc6 100644 --- a/src/gconf-helper.h +++ b/src/gconf-helper.h @@ -33,11 +33,11 @@ with this program. If not, see . #include #include -#define GLOBAL_DIR "/apps/indicator-session" -#define SUPPRESS_KEY GLOBAL_DIR "/suppress_logout_restart_shutdown" -#define LOGOUT_KEY GLOBAL_DIR "/suppress_logout_menuitem" -#define RESTART_KEY GLOBAL_DIR "/suppress_restart_menuitem" -#define SHUTDOWN_KEY GLOBAL_DIR "/suppress_shutdown_menuitem" +#define SESSION_SCHEMA "org.canonical.indicator.session" +#define SUPPRESS_KEY "suppress_logout_restart_shutdown" +#define LOGOUT_KEY "suppress_logout_menuitem" +#define RESTART_KEY "suppress_restart_menuitem" +#define SHUTDOWN_KEY "suppress_shutdown_menuitem" #define LOCKDOWN_DIR "/desktop/gnome/lockdown" #define LOCKDOWN_KEY_USER LOCKDOWN_DIR "/disable_user_switching" -- cgit v1.2.3 From 2fe4c360b2eb616cb43472b8e8e7b69bdefd349d Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 19 Aug 2011 11:08:30 -0500 Subject: Dropping gconf from build --- src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index 3bfd790..9565545 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -100,7 +100,7 @@ indicator_session_service_SOURCES = \ users-service-dbus.h \ users-service-dbus.c \ user-menu-mgr.h \ - user-menu-mgr.c \ + user-menu-mgr.c \ device-menu-mgr.h \ device-menu-mgr.c \ apt-watcher.h \ -- cgit v1.2.3 From cb15da3ae85cbd185e4878aa0156e928db5d790e Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 19 Aug 2011 11:21:26 -0500 Subject: Comment out notifications so that we can get this compiling again. --- src/gconf-helper.c | 10 ++++++---- src/gconf-helper.h | 2 -- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/gconf-helper.c b/src/gconf-helper.c index f9e73ad..fad1275 100644 --- a/src/gconf-helper.c +++ b/src/gconf-helper.c @@ -20,8 +20,6 @@ with this program. If not, see . */ #include -#include - #include #include @@ -33,13 +31,14 @@ with this program. If not, see . #include "dbus-shared-names.h" #include "gconf-helper.h" -static GConfClient * gconf_client = NULL; static GSettings* settings = NULL; +#if 0 static guint confirmation_notify = 0; static guint logout_notify = 0; static guint restart_notify = 0; static guint shutdown_notify = 0; +#endif static void build_settings (void) { @@ -73,6 +72,7 @@ show_shutdown (void) { return !g_settings_get_boolean (settings, SHUTDOWN_KEY) ; } +#if 0 static void update_menu_entries_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi = (RestartShutdownLogoutMenuItems*) data; GConfValue * value = gconf_entry_get_value (entry); @@ -123,9 +123,11 @@ update_shutdown_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !gconf_value_get_bool(value)); } } +#endif void update_menu_entries(RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi) { +#if 0 /* If we don't have a client, build one. */ if(!gconf_client) { gconf_client = gconf_client_get_default (); @@ -166,7 +168,7 @@ update_menu_entries(RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi) update_restart_callback, restart_shutdown_logout_mi->restart_mi, NULL, NULL); shutdown_notify = gconf_client_notify_add (gconf_client, SHUTDOWN_KEY, update_shutdown_callback, restart_shutdown_logout_mi->shutdown_mi, NULL, NULL); - +#endif return; } diff --git a/src/gconf-helper.h b/src/gconf-helper.h index 0d84dc6..b3b5151 100644 --- a/src/gconf-helper.h +++ b/src/gconf-helper.h @@ -23,8 +23,6 @@ with this program. If not, see . #ifndef __GCONF_HELPER_H__ #define __GCONF_HELPER_H__ 1 -#include - #include #include -- cgit v1.2.3 From df3f3b8129650e2e843f9295bb092166f89e4057 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 19 Aug 2011 12:03:29 -0500 Subject: Porting the keys for the device and user manager over to use gsettings --- src/device-menu-mgr.c | 24 ++++++++++++++++-------- src/gconf-helper.h | 10 +++++----- src/user-menu-mgr.c | 13 ++++++------- 3 files changed, 27 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/device-menu-mgr.c b/src/device-menu-mgr.c index cbddaa3..ef9567b 100644 --- a/src/device-menu-mgr.c +++ b/src/device-menu-mgr.c @@ -44,7 +44,8 @@ struct _DeviceMenuMgr UdevMgr* udev_mgr; }; -static GConfClient *gconf_client = NULL; +static GSettings *lockdown_settings = NULL; +static GSettings *keybinding_settings = NULL; static DbusmenuMenuitem *lock_menuitem = NULL; static DbusmenuMenuitem *system_settings_menuitem = NULL; static DbusmenuMenuitem *display_settings_menuitem = NULL; @@ -125,6 +126,7 @@ device_menu_mgr_class_init (DeviceMenuMgrClass *klass) object_class->finalize = device_menu_mgr_finalize; } +#if 0 // TODO // Is this needed anymore static void @@ -171,6 +173,7 @@ keybinding_changed (GConfClient *client, } return; } +#endif /* Check to see if the lockdown key is protecting from locking the screen. If not, lock it. */ @@ -178,7 +181,7 @@ static void lock_if_possible (DeviceMenuMgr* self) { device_menu_mgr_ensure_gconf_client (self); - if (!gconf_client_get_bool (gconf_client, LOCKDOWN_KEY_SCREENSAVER, NULL)) { + if (!g_settings_get_boolean (lockdown_settings, LOCKDOWN_KEY_SCREENSAVER)) { lock_screen (NULL, 0, NULL); } return; @@ -660,9 +663,8 @@ device_menu_mgr_build_static_items (DeviceMenuMgr* self, gboolean greeter_mode) /* Make sure we have a valid GConf client, and build one if needed */ device_menu_mgr_ensure_gconf_client (self); - can_lockscreen = !gconf_client_get_bool ( gconf_client, - LOCKDOWN_KEY_SCREENSAVER, - NULL); + can_lockscreen = !g_settings_get_boolean (lockdown_settings, + LOCKDOWN_KEY_SCREENSAVER); /* Lock screen item */ if (can_lockscreen) { lock_menuitem = dbusmenu_menuitem_new(); @@ -670,7 +672,7 @@ device_menu_mgr_build_static_items (DeviceMenuMgr* self, gboolean greeter_mode) DBUSMENU_MENUITEM_PROP_LABEL, _("Lock Screen")); - gchar * shortcut = gconf_client_get_string(gconf_client, KEY_LOCK_SCREEN, NULL); + gchar * shortcut = g_settings_get_string(keybinding_settings, KEY_LOCK_SCREEN); if (shortcut != NULL) { g_debug("Lock screen shortcut: %s", shortcut); dbusmenu_menuitem_property_set_shortcut_string(lock_menuitem, shortcut); @@ -832,8 +834,13 @@ setup_restart_watch (DeviceMenuMgr* self) static void device_menu_mgr_ensure_gconf_client (DeviceMenuMgr* self) { - if (!gconf_client) { - gconf_client = gconf_client_get_default (); + if (!lockdown_settings) { + lockdown_settings = g_settings_new (LOCKDOWN_SCHEMA); + } + if (!keybinding_settings) { + keybinding_settings = g_settings_new (KEYBINDING_SCHEMA); + } +#if 0 gconf_client_add_dir(gconf_client, LOCKDOWN_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); gconf_client_notify_add (gconf_client, LOCKDOWN_DIR, @@ -850,6 +857,7 @@ device_menu_mgr_ensure_gconf_client (DeviceMenuMgr* self) NULL, NULL); } +#endif } DbusmenuMenuitem* diff --git a/src/gconf-helper.h b/src/gconf-helper.h index b3b5151..1adb269 100644 --- a/src/gconf-helper.h +++ b/src/gconf-helper.h @@ -37,11 +37,11 @@ with this program. If not, see . #define RESTART_KEY "suppress_restart_menuitem" #define SHUTDOWN_KEY "suppress_shutdown_menuitem" -#define LOCKDOWN_DIR "/desktop/gnome/lockdown" -#define LOCKDOWN_KEY_USER LOCKDOWN_DIR "/disable_user_switching" -#define LOCKDOWN_KEY_SCREENSAVER LOCKDOWN_DIR "/disable_lock_screen" -#define KEYBINDING_DIR "/apps/gnome_settings_daemon/keybindings" -#define KEY_LOCK_SCREEN KEYBINDING_DIR "/screensaver" +#define LOCKDOWN_SCHEMA "org.gnome.desktop.lockdown" +#define LOCKDOWN_KEY_USER "disable_user_switching" +#define LOCKDOWN_KEY_SCREENSAVER "disable_lock_screen" +#define KEYBINDING_SCHEMA "org.gnome.settings-daemon.plugins.media-keys" +#define KEY_LOCK_SCREEN "screensaver" typedef struct _RestartShutdownLogoutMenuItems { diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 44c1960..3062f04 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -26,7 +26,7 @@ with this program. If not, see . #include "lock-helper.h" #include "users-service-dbus.h" -static GConfClient * gconf_client = NULL; +static GSettings* settings = NULL; static DbusmenuMenuitem *switch_menuitem = NULL; struct _UserMenuMgr @@ -114,7 +114,7 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) /* Check to see which menu items we're allowed to have */ can_activate = users_service_dbus_can_activate_session (self->users_dbus_interface) && - !gconf_client_get_bool (gconf_client, LOCKDOWN_KEY_USER, NULL); + !g_settings_get_boolean (settings, LOCKDOWN_KEY_USER); /* Remove the old menu items if that makes sense */ children = dbusmenu_menuitem_take_children (self->root_item); @@ -290,7 +290,7 @@ static void lock_if_possible (void) { ensure_gconf_client (); - if (!gconf_client_get_bool (gconf_client, LOCKDOWN_KEY_SCREENSAVER, NULL)) { + if (!g_settings_get_boolean (settings, LOCKDOWN_KEY_SCREENSAVER)) { lock_screen(NULL, 0, NULL); } @@ -375,11 +375,10 @@ user_change (UsersServiceDbus *service, static void ensure_gconf_client () { - if (!gconf_client) { - gconf_client = gconf_client_get_default (); - gconf_client_add_dir (gconf_client, LOCKDOWN_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); - gconf_client_add_dir (gconf_client, KEYBINDING_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); + if(!settings) { + settings = g_settings_new (SESSION_SCHEMA); } + return; } DbusmenuMenuitem* -- cgit v1.2.3 From 733c32bb8d9619109ad47ab599c2f960cf19308b Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Fri, 19 Aug 2011 18:10:09 +0100 Subject: users now dynamically responsive to addition and deletion of users --- src/user-menu-mgr.c | 12 ++++++++---- src/users-service-dbus.c | 29 ++++++++++++++++++++++------- 2 files changed, 30 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 44c1960..e1796ce 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -76,7 +76,7 @@ user_menu_mgr_init (UserMenuMgr *self) G_CALLBACK (user_change), self); g_signal_connect (G_OBJECT (self->users_dbus_interface), - "user-removed", + "user-deleted", G_CALLBACK (user_change), self); } @@ -174,6 +174,9 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) user_menu_is_visible = self->user_count > 1; } + g_debug ("USER COUNT FROM REBUILD PERSPECTIVE : %i", + self->user_count); + session_dbus_set_user_menu_visibility (self->session_dbus_interface, user_menu_is_visible); @@ -364,9 +367,10 @@ user_change (UsersServiceDbus *service, const gchar *user_id, gpointer user_data) { - //DbusmenuMenuitem *root = (DbusmenuMenuitem *)user_data; - // TODO sort this out. - //rebuild_user_items (root, service); + g_debug ("user change in the user menu mgr"); + g_return_if_fail (USER_IS_MENU_MGR (user_data)); + UserMenuMgr* user_mgr = USER_MENU_MGR(user_data); + user_menu_mgr_rebuild_items (user_mgr, FALSE); return; } diff --git a/src/users-service-dbus.c b/src/users-service-dbus.c index e7507a4..434bab8 100644 --- a/src/users-service-dbus.c +++ b/src/users-service-dbus.c @@ -711,11 +711,6 @@ sync_users (UsersServiceDbus *self) g_return_if_fail(IS_USERS_SERVICE_DBUS(self)); UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); - if (g_hash_table_size (priv->users) > 0) - { - return; - } - if (priv->count > MINIMUM_USERS && priv->count < MAXIMUM_USERS) { GPtrArray *users = NULL; @@ -758,7 +753,13 @@ sync_users (UsersServiceDbus *self) continue; } - + // Double check we havent processed this user already + if (users_service_dbus_get_user_by_username (self, + g_value_get_string (g_hash_table_lookup (properties, "UserName"))) != NULL) + { + continue; + } + user = g_new0 (UserData, 1); user->uid = g_value_get_uint64 (g_hash_table_lookup (properties, "Uid")); @@ -788,13 +789,19 @@ user_added (DBusGProxy *proxy, { UsersServiceDbus *service = (UsersServiceDbus *)user_data; UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (service); - + g_debug ("user added in the service dbus"); priv->count++; if (priv->count < MAXIMUM_USERS) { + g_debug ("syncing users"); sync_users (service); } + + g_signal_emit (service, + signals[USER_ADDED], + 0, + user_id); } static void @@ -802,11 +809,19 @@ user_deleted (DBusGProxy *proxy, const gchar *user_id, gpointer user_data) { + g_debug ("user deleted in the service dbus"); + UsersServiceDbus *service = (UsersServiceDbus *)user_data; UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (service); priv->count--; g_hash_table_remove (priv->users, user_id); + + g_signal_emit (service, + signals[USER_DELETED], + 0, + user_id); + } UserData * -- cgit v1.2.3 From 2d97d089958309db8115a5c9cfd9ffa4cb5ff39d Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Fri, 19 Aug 2011 18:14:59 +0100 Subject: remove the debugs --- src/user-menu-mgr.c | 4 ---- src/users-service-dbus.c | 6 +----- 2 files changed, 1 insertion(+), 9 deletions(-) (limited to 'src') diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index e1796ce..7c95ab3 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -174,9 +174,6 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) user_menu_is_visible = self->user_count > 1; } - g_debug ("USER COUNT FROM REBUILD PERSPECTIVE : %i", - self->user_count); - session_dbus_set_user_menu_visibility (self->session_dbus_interface, user_menu_is_visible); @@ -367,7 +364,6 @@ user_change (UsersServiceDbus *service, const gchar *user_id, gpointer user_data) { - g_debug ("user change in the user menu mgr"); g_return_if_fail (USER_IS_MENU_MGR (user_data)); UserMenuMgr* user_mgr = USER_MENU_MGR(user_data); user_menu_mgr_rebuild_items (user_mgr, FALSE); diff --git a/src/users-service-dbus.c b/src/users-service-dbus.c index 434bab8..03d1144 100644 --- a/src/users-service-dbus.c +++ b/src/users-service-dbus.c @@ -789,12 +789,10 @@ user_added (DBusGProxy *proxy, { UsersServiceDbus *service = (UsersServiceDbus *)user_data; UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (service); - g_debug ("user added in the service dbus"); priv->count++; if (priv->count < MAXIMUM_USERS) { - g_debug ("syncing users"); sync_users (service); } @@ -808,9 +806,7 @@ static void user_deleted (DBusGProxy *proxy, const gchar *user_id, gpointer user_data) -{ - g_debug ("user deleted in the service dbus"); - +{ UsersServiceDbus *service = (UsersServiceDbus *)user_data; UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (service); -- cgit v1.2.3 From 7f2161b7e2ab9902076a0e47fecac7796546fb4b Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 19 Aug 2011 13:13:57 -0500 Subject: Change name to settings helper --- src/Makefile.am | 6 +- src/device-menu-mgr.c | 2 +- src/gconf-helper.c | 174 ------------------------------------------------ src/gconf-helper.h | 60 ----------------- src/gtk-logout-helper.c | 2 +- src/settings-helper.c | 174 ++++++++++++++++++++++++++++++++++++++++++++++++ src/settings-helper.h | 60 +++++++++++++++++ src/user-menu-mgr.c | 2 +- 8 files changed, 240 insertions(+), 240 deletions(-) delete mode 100644 src/gconf-helper.c delete mode 100644 src/gconf-helper.h create mode 100644 src/settings-helper.c create mode 100644 src/settings-helper.h (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index 9565545..dba0a9e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -96,7 +96,7 @@ indicator_session_service_SOURCES = \ session-dbus.h \ gen-session-dbus.xml.c \ dbusmenu-shared.h \ - gconf-helper.c \ + settings-helper.c \ users-service-dbus.h \ users-service-dbus.c \ user-menu-mgr.h \ @@ -126,8 +126,8 @@ indicator_session_service_LDADD = \ gtk_logout_helper_SOURCES = \ gtk-logout-helper.c \ - gconf-helper.c \ - gconf-helper.h \ + settings-helper.c \ + settings-helper.h \ dialog.c \ dialog.h diff --git a/src/device-menu-mgr.c b/src/device-menu-mgr.c index ef9567b..d07ae6a 100644 --- a/src/device-menu-mgr.c +++ b/src/device-menu-mgr.c @@ -21,7 +21,7 @@ with this program. If not, see . #include #include "device-menu-mgr.h" -#include "gconf-helper.h" +#include "settings-helper.h" #include "dbus-shared-names.h" #include "dbusmenu-shared.h" #include "lock-helper.h" diff --git a/src/gconf-helper.c b/src/gconf-helper.c deleted file mode 100644 index fad1275..0000000 --- a/src/gconf-helper.c +++ /dev/null @@ -1,174 +0,0 @@ -/* -A small wrapper utility for connecting to gconf. - -Copyright 2009 Canonical Ltd. - -Authors: - Christoph Korn - -This program is free software: you can redistribute it and/or modify it -under the terms of the GNU General Public License version 3, as published -by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranties of -MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program. If not, see . -*/ - -#include -#include - -#include -#include - -#include -#include - -#include "dbus-shared-names.h" -#include "gconf-helper.h" - -static GSettings* settings = NULL; - -#if 0 -static guint confirmation_notify = 0; -static guint logout_notify = 0; -static guint restart_notify = 0; -static guint shutdown_notify = 0; -#endif - -static void -build_settings (void) { - if(!settings) { - settings = g_settings_new (SESSION_SCHEMA); - } - return; -} - -gboolean -supress_confirmations (void) { - build_settings(); - return g_settings_get_boolean (settings, SUPPRESS_KEY) ; -} - -gboolean -show_logout (void) { - build_settings(); - return !g_settings_get_boolean (settings, LOGOUT_KEY) ; -} - -gboolean -show_restart (void) { - build_settings(); - return !g_settings_get_boolean (settings, RESTART_KEY) ; -} - -gboolean -show_shutdown (void) { - build_settings(); - return !g_settings_get_boolean (settings, SHUTDOWN_KEY) ; -} - -#if 0 -static void update_menu_entries_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { - RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi = (RestartShutdownLogoutMenuItems*) data; - GConfValue * value = gconf_entry_get_value (entry); - const gchar * key = gconf_entry_get_key (entry); - - if(g_strcmp0 (key, SUPPRESS_KEY) == 0) { - if (gconf_value_get_bool (value)) { - dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->logout_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Log Out")); - dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->restart_mi, RESTART_ITEM_LABEL, _("Restart")); - dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->shutdown_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Shut Down")); - } else { - dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->logout_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Log Out…")); - dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->restart_mi, RESTART_ITEM_LABEL, _("Restart…")); - dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->shutdown_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Shut Down…")); - } - } -} - -static void -update_logout_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { - DbusmenuMenuitem * mi = (DbusmenuMenuitem*) data; - GConfValue * value = gconf_entry_get_value (entry); - const gchar * key = gconf_entry_get_key (entry); - - if(g_strcmp0 (key, LOGOUT_KEY) == 0) { - dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !gconf_value_get_bool(value)); - } -} - -static void -update_restart_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { - DbusmenuMenuitem * mi = (DbusmenuMenuitem*) data; - GConfValue * value = gconf_entry_get_value (entry); - const gchar * key = gconf_entry_get_key (entry); - - if(g_strcmp0 (key, RESTART_KEY) == 0) { - dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !gconf_value_get_bool(value)); - } -} - -static void -update_shutdown_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { - DbusmenuMenuitem * mi = (DbusmenuMenuitem*) data; - GConfValue * value = gconf_entry_get_value (entry); - const gchar * key = gconf_entry_get_key (entry); - - if(g_strcmp0 (key, SHUTDOWN_KEY) == 0) { - dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !gconf_value_get_bool(value)); - } -} -#endif - -void -update_menu_entries(RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi) { -#if 0 - /* If we don't have a client, build one. */ - if(!gconf_client) { - gconf_client = gconf_client_get_default (); - } - - /* If we've not gotten any notifications, then we need - to add the directory for notifications to come from. */ - if (confirmation_notify == 0 || logout_notify == 0) { - gconf_client_add_dir (gconf_client, GLOBAL_DIR, - GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); - } - - if (confirmation_notify != 0) { - gconf_client_notify_remove (gconf_client, confirmation_notify); - confirmation_notify = 0; - } - - if (logout_notify != 0) { - gconf_client_notify_remove (gconf_client, logout_notify); - logout_notify = 0; - } - - if (restart_notify != 0) { - gconf_client_notify_remove (gconf_client, restart_notify); - restart_notify = 0; - } - - if (shutdown_notify != 0) { - gconf_client_notify_remove (gconf_client, shutdown_notify); - shutdown_notify = 0; - } - - confirmation_notify = gconf_client_notify_add (gconf_client, SUPPRESS_KEY, - update_menu_entries_callback, restart_shutdown_logout_mi, NULL, NULL); - logout_notify = gconf_client_notify_add (gconf_client, LOGOUT_KEY, - update_logout_callback, restart_shutdown_logout_mi->logout_mi, NULL, NULL); - restart_notify = gconf_client_notify_add (gconf_client, RESTART_KEY, - update_restart_callback, restart_shutdown_logout_mi->restart_mi, NULL, NULL); - shutdown_notify = gconf_client_notify_add (gconf_client, SHUTDOWN_KEY, - update_shutdown_callback, restart_shutdown_logout_mi->shutdown_mi, NULL, NULL); -#endif - return; -} - diff --git a/src/gconf-helper.h b/src/gconf-helper.h deleted file mode 100644 index 1adb269..0000000 --- a/src/gconf-helper.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -A small wrapper utility for connecting to gconf. - -Copyright 2009 Canonical Ltd. - -Authors: - Christoph Korn - -This program is free software: you can redistribute it and/or modify it -under the terms of the GNU General Public License version 3, as published -by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranties of -MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program. If not, see . -*/ - - -#ifndef __GCONF_HELPER_H__ -#define __GCONF_HELPER_H__ 1 - -#include - -#include -#include - -#include -#include - -#define SESSION_SCHEMA "org.canonical.indicator.session" -#define SUPPRESS_KEY "suppress_logout_restart_shutdown" -#define LOGOUT_KEY "suppress_logout_menuitem" -#define RESTART_KEY "suppress_restart_menuitem" -#define SHUTDOWN_KEY "suppress_shutdown_menuitem" - -#define LOCKDOWN_SCHEMA "org.gnome.desktop.lockdown" -#define LOCKDOWN_KEY_USER "disable_user_switching" -#define LOCKDOWN_KEY_SCREENSAVER "disable_lock_screen" -#define KEYBINDING_SCHEMA "org.gnome.settings-daemon.plugins.media-keys" -#define KEY_LOCK_SCREEN "screensaver" - -typedef struct _RestartShutdownLogoutMenuItems -{ - DbusmenuMenuitem * logout_mi; - DbusmenuMenuitem * restart_mi; - DbusmenuMenuitem * shutdown_mi; -} -RestartShutdownLogoutMenuItems; - -void update_menu_entries(RestartShutdownLogoutMenuItems*); -gboolean supress_confirmations (void); -gboolean show_logout (void); -gboolean show_restart (void); -gboolean show_shutdown (void); - -#endif /* __GCONF_HELPER__ */ diff --git a/src/gtk-logout-helper.c b/src/gtk-logout-helper.c index b8923c6..33dce3a 100644 --- a/src/gtk-logout-helper.c +++ b/src/gtk-logout-helper.c @@ -26,7 +26,7 @@ with this program. If not, see . #include #include #include "dialog.h" -#include "gconf-helper.h" +#include "settings-helper.h" static void consolekit_fallback (LogoutDialogType action) diff --git a/src/settings-helper.c b/src/settings-helper.c new file mode 100644 index 0000000..bfe7a15 --- /dev/null +++ b/src/settings-helper.c @@ -0,0 +1,174 @@ +/* +A small wrapper utility for connecting to gconf. + +Copyright 2009 Canonical Ltd. + +Authors: + Christoph Korn + +This program is free software: you can redistribute it and/or modify it +under the terms of the GNU General Public License version 3, as published +by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranties of +MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR +PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program. If not, see . +*/ + +#include +#include + +#include +#include + +#include +#include + +#include "dbus-shared-names.h" +#include "settings-helper.h" + +static GSettings* settings = NULL; + +#if 0 +static guint confirmation_notify = 0; +static guint logout_notify = 0; +static guint restart_notify = 0; +static guint shutdown_notify = 0; +#endif + +static void +build_settings (void) { + if(!settings) { + settings = g_settings_new (SESSION_SCHEMA); + } + return; +} + +gboolean +supress_confirmations (void) { + build_settings(); + return g_settings_get_boolean (settings, SUPPRESS_KEY) ; +} + +gboolean +show_logout (void) { + build_settings(); + return !g_settings_get_boolean (settings, LOGOUT_KEY) ; +} + +gboolean +show_restart (void) { + build_settings(); + return !g_settings_get_boolean (settings, RESTART_KEY) ; +} + +gboolean +show_shutdown (void) { + build_settings(); + return !g_settings_get_boolean (settings, SHUTDOWN_KEY) ; +} + +#if 0 +static void update_menu_entries_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { + RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi = (RestartShutdownLogoutMenuItems*) data; + GConfValue * value = gconf_entry_get_value (entry); + const gchar * key = gconf_entry_get_key (entry); + + if(g_strcmp0 (key, SUPPRESS_KEY) == 0) { + if (gconf_value_get_bool (value)) { + dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->logout_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Log Out")); + dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->restart_mi, RESTART_ITEM_LABEL, _("Restart")); + dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->shutdown_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Shut Down")); + } else { + dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->logout_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Log Out…")); + dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->restart_mi, RESTART_ITEM_LABEL, _("Restart…")); + dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->shutdown_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Shut Down…")); + } + } +} + +static void +update_logout_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { + DbusmenuMenuitem * mi = (DbusmenuMenuitem*) data; + GConfValue * value = gconf_entry_get_value (entry); + const gchar * key = gconf_entry_get_key (entry); + + if(g_strcmp0 (key, LOGOUT_KEY) == 0) { + dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !gconf_value_get_bool(value)); + } +} + +static void +update_restart_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { + DbusmenuMenuitem * mi = (DbusmenuMenuitem*) data; + GConfValue * value = gconf_entry_get_value (entry); + const gchar * key = gconf_entry_get_key (entry); + + if(g_strcmp0 (key, RESTART_KEY) == 0) { + dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !gconf_value_get_bool(value)); + } +} + +static void +update_shutdown_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { + DbusmenuMenuitem * mi = (DbusmenuMenuitem*) data; + GConfValue * value = gconf_entry_get_value (entry); + const gchar * key = gconf_entry_get_key (entry); + + if(g_strcmp0 (key, SHUTDOWN_KEY) == 0) { + dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !gconf_value_get_bool(value)); + } +} +#endif + +void +update_menu_entries(RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi) { +#if 0 + /* If we don't have a client, build one. */ + if(!gconf_client) { + gconf_client = gconf_client_get_default (); + } + + /* If we've not gotten any notifications, then we need + to add the directory for notifications to come from. */ + if (confirmation_notify == 0 || logout_notify == 0) { + gconf_client_add_dir (gconf_client, GLOBAL_DIR, + GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); + } + + if (confirmation_notify != 0) { + gconf_client_notify_remove (gconf_client, confirmation_notify); + confirmation_notify = 0; + } + + if (logout_notify != 0) { + gconf_client_notify_remove (gconf_client, logout_notify); + logout_notify = 0; + } + + if (restart_notify != 0) { + gconf_client_notify_remove (gconf_client, restart_notify); + restart_notify = 0; + } + + if (shutdown_notify != 0) { + gconf_client_notify_remove (gconf_client, shutdown_notify); + shutdown_notify = 0; + } + + confirmation_notify = gconf_client_notify_add (gconf_client, SUPPRESS_KEY, + update_menu_entries_callback, restart_shutdown_logout_mi, NULL, NULL); + logout_notify = gconf_client_notify_add (gconf_client, LOGOUT_KEY, + update_logout_callback, restart_shutdown_logout_mi->logout_mi, NULL, NULL); + restart_notify = gconf_client_notify_add (gconf_client, RESTART_KEY, + update_restart_callback, restart_shutdown_logout_mi->restart_mi, NULL, NULL); + shutdown_notify = gconf_client_notify_add (gconf_client, SHUTDOWN_KEY, + update_shutdown_callback, restart_shutdown_logout_mi->shutdown_mi, NULL, NULL); +#endif + return; +} + diff --git a/src/settings-helper.h b/src/settings-helper.h new file mode 100644 index 0000000..1adb269 --- /dev/null +++ b/src/settings-helper.h @@ -0,0 +1,60 @@ +/* +A small wrapper utility for connecting to gconf. + +Copyright 2009 Canonical Ltd. + +Authors: + Christoph Korn + +This program is free software: you can redistribute it and/or modify it +under the terms of the GNU General Public License version 3, as published +by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranties of +MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR +PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program. If not, see . +*/ + + +#ifndef __GCONF_HELPER_H__ +#define __GCONF_HELPER_H__ 1 + +#include + +#include +#include + +#include +#include + +#define SESSION_SCHEMA "org.canonical.indicator.session" +#define SUPPRESS_KEY "suppress_logout_restart_shutdown" +#define LOGOUT_KEY "suppress_logout_menuitem" +#define RESTART_KEY "suppress_restart_menuitem" +#define SHUTDOWN_KEY "suppress_shutdown_menuitem" + +#define LOCKDOWN_SCHEMA "org.gnome.desktop.lockdown" +#define LOCKDOWN_KEY_USER "disable_user_switching" +#define LOCKDOWN_KEY_SCREENSAVER "disable_lock_screen" +#define KEYBINDING_SCHEMA "org.gnome.settings-daemon.plugins.media-keys" +#define KEY_LOCK_SCREEN "screensaver" + +typedef struct _RestartShutdownLogoutMenuItems +{ + DbusmenuMenuitem * logout_mi; + DbusmenuMenuitem * restart_mi; + DbusmenuMenuitem * shutdown_mi; +} +RestartShutdownLogoutMenuItems; + +void update_menu_entries(RestartShutdownLogoutMenuItems*); +gboolean supress_confirmations (void); +gboolean show_logout (void); +gboolean show_restart (void); +gboolean show_shutdown (void); + +#endif /* __GCONF_HELPER__ */ diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 3062f04..45e95dd 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -20,7 +20,7 @@ with this program. If not, see . #include #include "user-menu-mgr.h" -#include "gconf-helper.h" +#include "settings-helper.h" #include "dbus-shared-names.h" #include "dbusmenu-shared.h" #include "lock-helper.h" -- cgit v1.2.3 From 2611fa7ba14756cf1e084b1bed84539641568723 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 19 Aug 2011 13:33:46 -0500 Subject: Setting the notifications to use the g_settings changed signals --- src/settings-helper.c | 66 +++++++++++++++++---------------------------------- 1 file changed, 22 insertions(+), 44 deletions(-) (limited to 'src') diff --git a/src/settings-helper.c b/src/settings-helper.c index bfe7a15..e259b09 100644 --- a/src/settings-helper.c +++ b/src/settings-helper.c @@ -33,12 +33,10 @@ with this program. If not, see . static GSettings* settings = NULL; -#if 0 static guint confirmation_notify = 0; static guint logout_notify = 0; static guint restart_notify = 0; static guint shutdown_notify = 0; -#endif static void build_settings (void) { @@ -72,14 +70,11 @@ show_shutdown (void) { return !g_settings_get_boolean (settings, SHUTDOWN_KEY) ; } -#if 0 -static void update_menu_entries_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { +static void update_menu_entries_callback (GSettings * settings, const gchar * key, gpointer data) { RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi = (RestartShutdownLogoutMenuItems*) data; - GConfValue * value = gconf_entry_get_value (entry); - const gchar * key = gconf_entry_get_key (entry); if(g_strcmp0 (key, SUPPRESS_KEY) == 0) { - if (gconf_value_get_bool (value)) { + if (g_settings_get_boolean (settings, key)) { dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->logout_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Log Out")); dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->restart_mi, RESTART_ITEM_LABEL, _("Restart")); dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->shutdown_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Shut Down")); @@ -92,83 +87,66 @@ static void update_menu_entries_callback (GConfClient *client, guint cnxn_id, GC } static void -update_logout_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { +update_logout_callback (GSettings * settings, const gchar * key, gpointer data) { DbusmenuMenuitem * mi = (DbusmenuMenuitem*) data; - GConfValue * value = gconf_entry_get_value (entry); - const gchar * key = gconf_entry_get_key (entry); if(g_strcmp0 (key, LOGOUT_KEY) == 0) { - dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !gconf_value_get_bool(value)); + dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !g_settings_get_boolean(settings, key)); } } static void -update_restart_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { +update_restart_callback (GSettings * settings, const gchar * key, gpointer data) { DbusmenuMenuitem * mi = (DbusmenuMenuitem*) data; - GConfValue * value = gconf_entry_get_value (entry); - const gchar * key = gconf_entry_get_key (entry); if(g_strcmp0 (key, RESTART_KEY) == 0) { - dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !gconf_value_get_bool(value)); + dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !g_settings_get_boolean(settings, key)); } } static void -update_shutdown_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { +update_shutdown_callback (GSettings * settings, const gchar * key, gpointer data) { DbusmenuMenuitem * mi = (DbusmenuMenuitem*) data; - GConfValue * value = gconf_entry_get_value (entry); - const gchar * key = gconf_entry_get_key (entry); if(g_strcmp0 (key, SHUTDOWN_KEY) == 0) { - dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !gconf_value_get_bool(value)); + dbusmenu_menuitem_property_set_bool(mi, DBUSMENU_MENUITEM_PROP_VISIBLE, !g_settings_get_boolean(settings, key)); } } -#endif void update_menu_entries(RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi) { -#if 0 /* If we don't have a client, build one. */ - if(!gconf_client) { - gconf_client = gconf_client_get_default (); - } - - /* If we've not gotten any notifications, then we need - to add the directory for notifications to come from. */ - if (confirmation_notify == 0 || logout_notify == 0) { - gconf_client_add_dir (gconf_client, GLOBAL_DIR, - GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); - } + build_settings(); if (confirmation_notify != 0) { - gconf_client_notify_remove (gconf_client, confirmation_notify); + g_signal_handler_disconnect (settings, confirmation_notify); confirmation_notify = 0; } if (logout_notify != 0) { - gconf_client_notify_remove (gconf_client, logout_notify); + g_signal_handler_disconnect (settings, logout_notify); logout_notify = 0; } if (restart_notify != 0) { - gconf_client_notify_remove (gconf_client, restart_notify); + g_signal_handler_disconnect (settings, restart_notify); restart_notify = 0; } if (shutdown_notify != 0) { - gconf_client_notify_remove (gconf_client, shutdown_notify); + g_signal_handler_disconnect (settings, shutdown_notify); shutdown_notify = 0; } - confirmation_notify = gconf_client_notify_add (gconf_client, SUPPRESS_KEY, - update_menu_entries_callback, restart_shutdown_logout_mi, NULL, NULL); - logout_notify = gconf_client_notify_add (gconf_client, LOGOUT_KEY, - update_logout_callback, restart_shutdown_logout_mi->logout_mi, NULL, NULL); - restart_notify = gconf_client_notify_add (gconf_client, RESTART_KEY, - update_restart_callback, restart_shutdown_logout_mi->restart_mi, NULL, NULL); - shutdown_notify = gconf_client_notify_add (gconf_client, SHUTDOWN_KEY, - update_shutdown_callback, restart_shutdown_logout_mi->shutdown_mi, NULL, NULL); -#endif + confirmation_notify = g_signal_connect (settings, "changed::" SUPPRESS_KEY, + G_CALLBACK(update_menu_entries_callback), restart_shutdown_logout_mi); + logout_notify = g_signal_connect (settings, "changed::" LOGOUT_KEY, + G_CALLBACK(update_logout_callback), restart_shutdown_logout_mi->logout_mi); + restart_notify = g_signal_connect (settings, "changed::" RESTART_KEY, + G_CALLBACK(update_restart_callback), restart_shutdown_logout_mi->restart_mi); + shutdown_notify = g_signal_connect (settings, "changed::" SHUTDOWN_KEY, + G_CALLBACK(update_shutdown_callback), restart_shutdown_logout_mi->shutdown_mi); + return; } -- cgit v1.2.3 From a802b4546c1f3fd4361a868a26bafb7393a34817 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 19 Aug 2011 13:34:13 -0500 Subject: Fixing the comment --- src/settings-helper.c | 2 +- src/settings-helper.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/settings-helper.c b/src/settings-helper.c index e259b09..5a69d17 100644 --- a/src/settings-helper.c +++ b/src/settings-helper.c @@ -1,5 +1,5 @@ /* -A small wrapper utility for connecting to gconf. +A small wrapper utility for connecting to GSettings. Copyright 2009 Canonical Ltd. diff --git a/src/settings-helper.h b/src/settings-helper.h index 1adb269..72d2111 100644 --- a/src/settings-helper.h +++ b/src/settings-helper.h @@ -1,5 +1,5 @@ /* -A small wrapper utility for connecting to gconf. +A small wrapper utility for connecting to GSettings. Copyright 2009 Canonical Ltd. -- cgit v1.2.3 From 549bf385e28969f3026f6eab2d38c25697e02e7b Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 19 Aug 2011 13:34:48 -0500 Subject: Removing the 'gconf' string --- src/user-menu-mgr.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 45e95dd..718380c 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -56,7 +56,7 @@ static void user_change (UsersServiceDbus *service, const gchar *user_id, gpointer user_data); -static void ensure_gconf_client (); +static void ensure_settings_client (); static gboolean check_guest_session (void); static void activate_guest_session (DbusmenuMenuitem * mi, guint timestamp, @@ -110,7 +110,7 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) /* Make sure we have a valid GConf client, and build one if needed */ - ensure_gconf_client (); + ensure_settings_client (); /* Check to see which menu items we're allowed to have */ can_activate = users_service_dbus_can_activate_session (self->users_dbus_interface) && @@ -288,7 +288,7 @@ check_new_session () locking the screen. If not, lock it. */ static void lock_if_possible (void) { - ensure_gconf_client (); + ensure_settings_client (); if (!g_settings_get_boolean (settings, LOCKDOWN_KEY_SCREENSAVER)) { lock_screen(NULL, 0, NULL); @@ -373,7 +373,7 @@ user_change (UsersServiceDbus *service, /* Ensures that we have a GConf client and if we build one set up the signal handler. */ static void -ensure_gconf_client () +ensure_settings_client () { if(!settings) { settings = g_settings_new (SESSION_SCHEMA); -- cgit v1.2.3 From 375ef3ab8b43925e28a2453b0b6374aedc4b357b Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 19 Aug 2011 13:51:37 -0500 Subject: Changing name of ensure function --- src/device-menu-mgr.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/device-menu-mgr.c b/src/device-menu-mgr.c index d07ae6a..04b0adf 100644 --- a/src/device-menu-mgr.c +++ b/src/device-menu-mgr.c @@ -73,7 +73,7 @@ static gboolean allow_suspend = TRUE; static DBusGProxy * up_main_proxy = NULL; static DBusGProxy * up_prop_proxy = NULL; -static void device_menu_mgr_ensure_gconf_client (DeviceMenuMgr* self); +static void device_menu_mgr_ensure_settings_client (DeviceMenuMgr* self); static void setup_restart_watch (DeviceMenuMgr* self); static void setup_up (DeviceMenuMgr* self); static void device_menu_mgr_rebuild_items (DeviceMenuMgr *self); @@ -179,7 +179,7 @@ keybinding_changed (GConfClient *client, locking the screen. If not, lock it. */ static void lock_if_possible (DeviceMenuMgr* self) { - device_menu_mgr_ensure_gconf_client (self); + device_menu_mgr_ensure_settings_client (self); if (!g_settings_get_boolean (lockdown_settings, LOCKDOWN_KEY_SCREENSAVER)) { lock_screen (NULL, 0, NULL); @@ -662,7 +662,7 @@ device_menu_mgr_build_static_items (DeviceMenuMgr* self, gboolean greeter_mode) /* Make sure we have a valid GConf client, and build one if needed */ - device_menu_mgr_ensure_gconf_client (self); + device_menu_mgr_ensure_settings_client (self); can_lockscreen = !g_settings_get_boolean (lockdown_settings, LOCKDOWN_KEY_SCREENSAVER); /* Lock screen item */ @@ -832,7 +832,7 @@ setup_restart_watch (DeviceMenuMgr* self) /* Ensures that we have a GConf client and if we build one set up the signal handler. */ static void -device_menu_mgr_ensure_gconf_client (DeviceMenuMgr* self) +device_menu_mgr_ensure_settings_client (DeviceMenuMgr* self) { if (!lockdown_settings) { lockdown_settings = g_settings_new (LOCKDOWN_SCHEMA); -- cgit v1.2.3 From d44d40c06cc4dab568027eb97852a8f789449116 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 19 Aug 2011 13:58:37 -0500 Subject: Changing to using the GSettings signals for change --- src/device-menu-mgr.c | 51 ++++++++++++++------------------------------------- 1 file changed, 14 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/device-menu-mgr.c b/src/device-menu-mgr.c index 04b0adf..c298682 100644 --- a/src/device-menu-mgr.c +++ b/src/device-menu-mgr.c @@ -126,25 +126,21 @@ device_menu_mgr_class_init (DeviceMenuMgrClass *klass) object_class->finalize = device_menu_mgr_finalize; } -#if 0 // TODO // Is this needed anymore static void -lockdown_changed (GConfClient *client, - guint cnxd_id, - GConfEntry *entry, +lockdown_changed (GSettings * settings, + const gchar * key, gpointer user_data) { - DeviceMenuMgr* self = DEVICE_MENU_MGR (user_data); - GConfValue *value = gconf_entry_get_value (entry); - const gchar *key = gconf_entry_get_key (entry); + DeviceMenuMgr* self = DEVICE_MENU_MGR (user_data); - if (value == NULL || key == NULL) { + if (key == NULL) { return; } if (g_strcmp0 (key, LOCKDOWN_KEY_USER) == 0 || - g_strcmp0 (key, LOCKDOWN_KEY_SCREENSAVER) == 0) { + g_strcmp0 (key, LOCKDOWN_KEY_SCREENSAVER) == 0) { device_menu_mgr_rebuild_items(self); } @@ -152,28 +148,23 @@ lockdown_changed (GConfClient *client, } static void -keybinding_changed (GConfClient *client, - guint cnxd_id, - GConfEntry *entry, +keybinding_changed (GSettings *settings, + const gchar *key, gpointer user_data) { - GConfValue *value = gconf_entry_get_value (entry); - const gchar *key = gconf_entry_get_key (entry); - - if (value == NULL || key == NULL) { + if (key == NULL) { return; } if (g_strcmp0 (key, KEY_LOCK_SCREEN) == 0) { - g_debug("Keybinding changed to: %s", gconf_value_get_string(value)); + g_debug("Keybinding changed to: %s", g_settings_get_string(settings, key)); if (lock_menuitem != NULL) { dbusmenu_menuitem_property_set_shortcut_string (lock_menuitem, - gconf_value_get_string(value)); + g_settings_get_string(settings, key)); } } return; } -#endif /* Check to see if the lockdown key is protecting from locking the screen. If not, lock it. */ @@ -836,28 +827,14 @@ device_menu_mgr_ensure_settings_client (DeviceMenuMgr* self) { if (!lockdown_settings) { lockdown_settings = g_settings_new (LOCKDOWN_SCHEMA); + g_signal_connect(lockdown_settings, "changed", G_CALLBACK(lockdown_changed), self); } if (!keybinding_settings) { keybinding_settings = g_settings_new (KEYBINDING_SCHEMA); + g_signal_connect(lockdown_settings, "changed::" KEY_LOCK_SCREEN, G_CALLBACK(keybinding_changed), self); } -#if 0 - gconf_client_add_dir(gconf_client, LOCKDOWN_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); - gconf_client_notify_add (gconf_client, - LOCKDOWN_DIR, - lockdown_changed, - self, - NULL, - NULL); - - gconf_client_add_dir(gconf_client, KEYBINDING_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); - gconf_client_notify_add (gconf_client, - KEYBINDING_DIR, - keybinding_changed, - self, - NULL, - NULL); - } -#endif + + return; } DbusmenuMenuitem* -- cgit v1.2.3 From 4ee9a5748d7d69f3194325a9f020d1fc50bfb22b Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 19 Aug 2011 15:09:03 -0500 Subject: Fixing key names --- src/settings-helper.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/settings-helper.h b/src/settings-helper.h index 72d2111..7b377ca 100644 --- a/src/settings-helper.h +++ b/src/settings-helper.h @@ -31,15 +31,15 @@ with this program. If not, see . #include #include -#define SESSION_SCHEMA "org.canonical.indicator.session" -#define SUPPRESS_KEY "suppress_logout_restart_shutdown" -#define LOGOUT_KEY "suppress_logout_menuitem" -#define RESTART_KEY "suppress_restart_menuitem" -#define SHUTDOWN_KEY "suppress_shutdown_menuitem" +#define SESSION_SCHEMA "com.canonical.indicator.session" +#define SUPPRESS_KEY "suppress-logout-restart-shutdown" +#define LOGOUT_KEY "suppress-logout-menuitem" +#define RESTART_KEY "suppress-restart-menuitem" +#define SHUTDOWN_KEY "suppress-shutdown-menuitem" #define LOCKDOWN_SCHEMA "org.gnome.desktop.lockdown" -#define LOCKDOWN_KEY_USER "disable_user_switching" -#define LOCKDOWN_KEY_SCREENSAVER "disable_lock_screen" +#define LOCKDOWN_KEY_USER "disable-user-switching" +#define LOCKDOWN_KEY_SCREENSAVER "disable-lock-screen" #define KEYBINDING_SCHEMA "org.gnome.settings-daemon.plugins.media-keys" #define KEY_LOCK_SCREEN "screensaver" -- cgit v1.2.3 From 09514f45d0ab63579ce97faf07cbc0a79e981465 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 19 Aug 2011 15:09:11 -0500 Subject: Using the right schema --- src/user-menu-mgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 718380c..30ea0ff 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -376,7 +376,7 @@ static void ensure_settings_client () { if(!settings) { - settings = g_settings_new (SESSION_SCHEMA); + settings = g_settings_new (LOCKDOWN_SCHEMA); } return; } -- cgit v1.2.3 From 229e92aa9c59c822808bf9e129592247347e22b8 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 19 Aug 2011 21:23:57 -0500 Subject: Fix all the ellipsis --- src/device-menu-mgr.c | 8 ++++---- src/dialog.c | 6 +++--- src/gconf-helper.c | 6 +++--- src/indicator-session.c | 4 ++-- src/user-menu-mgr.c | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/device-menu-mgr.c b/src/device-menu-mgr.c index 3223cf5..1dd2d7f 100644 --- a/src/device-menu-mgr.c +++ b/src/device-menu-mgr.c @@ -523,7 +523,7 @@ device_menu_mgr_build_settings_items (DeviceMenuMgr* self) system_settings_menuitem = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (system_settings_menuitem, DBUSMENU_MENUITEM_PROP_LABEL, - _("System Settings...")); + _("System Settings…")); g_signal_connect (G_OBJECT(system_settings_menuitem), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(show_system_settings_with_context), ""); @@ -534,7 +534,7 @@ device_menu_mgr_build_settings_items (DeviceMenuMgr* self) display_settings_menuitem = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (display_settings_menuitem, DBUSMENU_MENUITEM_PROP_LABEL, - _("Displays...")); + _("Displays…")); g_signal_connect (G_OBJECT(display_settings_menuitem), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(show_system_settings_with_context), "display"); @@ -544,7 +544,7 @@ device_menu_mgr_build_settings_items (DeviceMenuMgr* self) bluetooth_settings_menuitem = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (bluetooth_settings_menuitem, DBUSMENU_MENUITEM_PROP_LABEL, - _("Bluetooth...")); + _("Bluetooth…")); g_signal_connect (G_OBJECT(bluetooth_settings_menuitem), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(show_system_settings_with_context), "bluetooth"); @@ -555,7 +555,7 @@ device_menu_mgr_build_settings_items (DeviceMenuMgr* self) login_settings_menuitem = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (login_settings_menuitem, DBUSMENU_MENUITEM_PROP_LABEL, - _("Startup Applications...")); + _("Startup Applications…")); g_signal_connect (G_OBJECT(login_settings_menuitem), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(show_session_properties), diff --git a/src/dialog.c b/src/dialog.c index 299f954..45cfdcb 100644 --- a/src/dialog.c +++ b/src/dialog.c @@ -53,15 +53,15 @@ static const gchar * button_strings[LOGOUT_DIALOG_TYPE_CNT] = { they are also going to get a password dialog to do the action. */ static const gchar * button_auth_strings[LOGOUT_DIALOG_TYPE_CNT] = { /* LOGOUT_DIALOG_LOGOUT, */ NC_("button auth", "Log Out"), - /* LOGOUT_DIALOG_RESTART, */ NC_("button auth", "Restart..."), - /* LOGOUT_DIALOG_SHUTDOWN, */ NC_("button auth", "Shut Down...") + /* LOGOUT_DIALOG_RESTART, */ NC_("button auth", "Restart…"), + /* LOGOUT_DIALOG_SHUTDOWN, */ NC_("button auth", "Shut Down…") }; /* TRANSLATORS: This button appears on the logout dialog when there are updates that require restart. It will do a restart in place of a log out. */ static const gchar * restart_updates = N_("Restart Instead"); -static const gchar * restart_auth = N_("Restart Instead..."); +static const gchar * restart_auth = N_("Restart Instead…"); static const gchar * body_logout_update = N_("Some software updates won't apply until the computer next restarts."); static const gchar * icon_strings[LOGOUT_DIALOG_TYPE_CNT] = { diff --git a/src/gconf-helper.c b/src/gconf-helper.c index 4911dcb..93ae96f 100644 --- a/src/gconf-helper.c +++ b/src/gconf-helper.c @@ -82,9 +82,9 @@ static void update_menu_entries_callback (GConfClient *client, guint cnxn_id, GC dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->restart_mi, RESTART_ITEM_LABEL, _("Restart")); dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->shutdown_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Shut Down")); } else { - dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->logout_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Log Out...")); - dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->restart_mi, RESTART_ITEM_LABEL, _("Restart...")); - dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->shutdown_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Shut Down...")); + dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->logout_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Log Out…")); + dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->restart_mi, RESTART_ITEM_LABEL, _("Restart…")); + dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->shutdown_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Shut Down…")); } } } diff --git a/src/indicator-session.c b/src/indicator-session.c index bfe0b75..80bf63f 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -529,7 +529,7 @@ switch_property_change (DbusmenuMenuitem * item, 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; } @@ -556,7 +556,7 @@ switch_property_change (DbusmenuMenuitem * item, 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 { diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index bf3b77f..8477354 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -232,7 +232,7 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self) 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, -- cgit v1.2.3 From 5012f285c0e332919542cfe5cb92f140c437182f Mon Sep 17 00:00:00 2001 From: Jeremy Bicha Date: Sun, 21 Aug 2011 16:43:49 -0400 Subject: Add User Accounts link to bottom of user menu --- src/user-menu-mgr.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 44c1960..bbe51a9 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -273,7 +273,24 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) 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 * user_accounts_item = dbusmenu_menuitem_new(); + dbusmenu_menuitem_property_set (user_accounts_item, + DBUSMENU_MENUITEM_PROP_TYPE, + DBUSMENU_CLIENT_TYPES_DEFAULT); + dbusmenu_menuitem_property_set (user_accounts_item, + DBUSMENU_MENUITEM_PROP_LABEL, + _("User Accounts…")); + + g_signal_connect (G_OBJECT (user_accounts_item), + DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, + G_CALLBACK (activate_user_accounts), + NULL); + + dbusmenu_menuitem_child_append (self->root_item, user_accounts_item); + + } /* Checks to see if we can create sessions */ @@ -357,6 +374,19 @@ activate_online_accounts (DbusmenuMenuitem *mi, } } +static void +activate_user_accounts (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 -- cgit v1.2.3 From 84a75758a3a76b024168612b3932d7b09e5bd1a8 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Mon, 22 Aug 2011 14:05:48 +0100 Subject: used the set aside defines for icon names --- src/dbus-shared-names.h | 4 ++-- src/indicator-session.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/dbus-shared-names.h b/src/dbus-shared-names.h index d9dfff1..c71dc61 100644 --- a/src/dbus-shared-names.h +++ b/src/dbus-shared-names.h @@ -61,7 +61,7 @@ typedef enum { #define RESTART_ITEM_LABEL "restart-label" #define RESTART_ITEM_ICON "restart-icon" -#define ICON_DEFAULT "system-shutdown-panel" -#define ICON_RESTART "system-shutdown-panel-restart" +#define ICON_DEFAULT "system-devices-panel" +#define ICON_RESTART "system-devices-panel-alert" #endif /* __DBUS_SHARED_NAMES_H__ */ diff --git a/src/indicator-session.c b/src/indicator-session.c index c980378..fab47b3 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -167,7 +167,7 @@ indicator_session_init (IndicatorSession *self) // devices self->devices.menu = GTK_MENU (dbusmenu_gtkmenu_new(INDICATOR_SESSION_DBUS_NAME, INDICATOR_SESSION_DBUS_OBJECT)); - self->devices.image = indicator_image_helper ("system-devices-panel"); + self->devices.image = indicator_image_helper (ICON_DEFAULT); gtk_widget_show (GTK_WIDGET(self->devices.menu)); gtk_widget_show (GTK_WIDGET(self->devices.image)); @@ -499,7 +499,7 @@ receive_signal (GDBusProxy * proxy, } else if (g_strcmp0(signal_name, "RebootRequired") == 0) { // TODO waiting on design to give me a name. - self->devices.image = indicator_image_helper ("system-devices-alert-panel"); + self->devices.image = indicator_image_helper (ICON_RESTART); } } -- cgit v1.2.3 From 881e921a24838b3091ce4356d656e55137a1e953 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Mon, 22 Aug 2011 15:53:07 +0100 Subject: user images now being loaded into the user menu --- src/dbus-shared-names.h | 2 +- src/user-menu-mgr.c | 23 +++++++++------------ src/user-widget.c | 55 ++++++++++++++++++++++++++++++++----------------- 3 files changed, 47 insertions(+), 33 deletions(-) (limited to 'src') diff --git a/src/dbus-shared-names.h b/src/dbus-shared-names.h index c71dc61..c5372e4 100644 --- a/src/dbus-shared-names.h +++ b/src/dbus-shared-names.h @@ -55,7 +55,7 @@ typedef enum { #define USER_ITEM_PROP_LOGGED_IN "user-item-logged-in" #define USER_ITEM_PROP_IS_CURRENT_USER "user-item-is-current-user" #define USER_ITEM_PROP_ICON "user-item-icon-path" -#define USER_ITEM_ICON_DEFAULT "user-offline" +#define USER_ITEM_ICON_DEFAULT "avatar-default" #define RESTART_ITEM_TYPE "x-canonical-restart-item" #define RESTART_ITEM_LABEL "restart-label" diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 30ea0ff..1bd7468 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -92,8 +92,6 @@ static void user_menu_mgr_class_init (UserMenuMgrClass *klass) { GObjectClass* object_class = G_OBJECT_CLASS (klass); - //GObjectClass* parent_class = G_OBJECT_CLASS (klass); - object_class->finalize = user_menu_mgr_finalize; } @@ -212,15 +210,7 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) dbusmenu_menuitem_property_set (mi, USER_ITEM_PROP_NAME, conflictedname); g_free(conflictedname); } else { - //g_debug ("%i %s", (gint)user->uid, user->real_name); - //g_debug ("users uid = %i", (gint)user->uid); - //g_debug ("users real name = %s", user->real_name); - if (user == NULL){ - g_debug ("USER pointer is NULL"); - return; - } - g_debug ("%p: %s", user, user->real_name); - + g_debug ("%p: %s", user, user->real_name); dbusmenu_menuitem_property_set (mi, USER_ITEM_PROP_NAME, user->real_name); @@ -229,9 +219,16 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) USER_ITEM_PROP_LOGGED_IN, user->sessions != NULL); if (user->icon_file != NULL && user->icon_file[0] != '\0') { - dbusmenu_menuitem_property_set(mi, USER_ITEM_PROP_ICON, user->icon_file); + g_debug ("user %s has this icon : %s", + user->user_name, + user->icon_file); + dbusmenu_menuitem_property_set (mi, + USER_ITEM_PROP_ICON, + user->icon_file); } else { - dbusmenu_menuitem_property_set(mi, USER_ITEM_PROP_ICON, USER_ITEM_ICON_DEFAULT); + dbusmenu_menuitem_property_set (mi, + USER_ITEM_PROP_ICON, + USER_ITEM_ICON_DEFAULT); } gboolean logged_in = g_strcmp0 (user->user_name, g_get_user_name()) == 0; diff --git a/src/user-widget.c b/src/user-widget.c index 6495e80..172c645 100644 --- a/src/user-widget.c +++ b/src/user-widget.c @@ -107,23 +107,6 @@ user_widget_init (UserWidget *self) // Create the UI elements. priv->user_image = gtk_image_new (); - // Just for now set the image to the default avator image - GdkPixbuf* pixbuf = NULL; - GError* error = NULL; - pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), - "avatar-default", - 32, - GTK_ICON_LOOKUP_FORCE_SIZE, - &error); - - if (pixbuf == NULL || error != NULL) { - g_warning ("Could not load the default avatar image for some reason"); - } - else{ - gtk_image_set_from_pixbuf (GTK_IMAGE(priv->user_image), pixbuf); - g_object_unref (pixbuf); - } - priv->user_name = gtk_label_new (""); priv->container = gtk_hbox_new (FALSE, 0); priv->tick_icon = gtk_image_new_from_icon_name ("account-logged-in", @@ -325,9 +308,43 @@ user_widget_set_twin_item (UserWidget* self, gtk_widget_hide(priv->tick_icon); } - g_debug("Using user icon for '%s' from file: %s", - dbusmenu_menuitem_property_get(twin_item, USER_ITEM_PROP_NAME), icon_name); + GdkPixbuf* pixbuf = NULL; + GError* error = NULL; + pixbuf = gdk_pixbuf_new_from_file_at_size(icon_name, 32, 32, NULL); + + if (pixbuf == NULL || error != NULL) { + g_warning ("Could not load the user image (%s) for some reason", + icon_name); + if (pixbuf != NULL){ + g_object_unref (pixbuf); + pixbuf = NULL; + } + if (error != NULL){ + g_error_free (error); + error = NULL; + } + + pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), + USER_ITEM_ICON_DEFAULT, + 32, + GTK_ICON_LOOKUP_FORCE_SIZE, + &error); + } + if (pixbuf == NULL || error != NULL) { + g_warning ("Could not load the user image"); + if (error != NULL){ + g_error_free (error); + error = NULL; + } + } + else{ + gtk_image_set_from_pixbuf (GTK_IMAGE(priv->user_image), pixbuf); + } + if (pixbuf != NULL){ + g_object_unref (pixbuf); + pixbuf = NULL; + } } /** -- cgit v1.2.3 From 2ab97a71ad1c79d223eb3491229b3c6f6954f6aa Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Mon, 22 Aug 2011 18:45:19 +0100 Subject: user icon border now being drawn and gtk2 dot also taken care of --- src/user-widget.c | 434 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 386 insertions(+), 48 deletions(-) (limited to 'src') diff --git a/src/user-widget.c b/src/user-widget.c index 172c645..13f7d0b 100644 --- a/src/user-widget.c +++ b/src/user-widget.c @@ -3,7 +3,8 @@ Copyright 2011 Canonical Ltd. Authors: Conor Curran - + Mirco Müller + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3, as published by the Free Software Foundation. @@ -24,6 +25,7 @@ with this program. If not, see . #include #include #include +#include #include #include "user-widget.h" #include "dbus-shared-names.h" @@ -44,6 +46,13 @@ struct _UserWidgetPrivate #define USER_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), USER_WIDGET_TYPE, UserWidgetPrivate)) +typedef struct +{ + double r; + double g; + double b; +} CairoColorRGB; + /* Prototypes */ static void user_widget_class_init (UserWidgetClass *klass); static void user_widget_init (UserWidget *self); @@ -60,10 +69,25 @@ static void user_widget_property_update (DbusmenuMenuitem* item, gchar* property, GVariant* value, gpointer userdata); + + +static void _color_shade (const CairoColorRGB *a, + float k, + CairoColorRGB *b); + +static void draw_album_border (GtkWidget *widget, gboolean selected); + #if GTK_CHECK_VERSION(3, 0, 0) +/*static void user_widget_get_preferred_height (GtkWidget* self, + gint* minimum_height, + gint* natural_height);*/ static gboolean user_widget_primitive_draw_cb_gtk_3 (GtkWidget *image, cairo_t* cr, gpointer user_data); +static gboolean user_widget_draw_usericon_gtk_3 (GtkWidget *widget, + cairo_t* cr, + gpointer user_data); + #else static gboolean user_widget_primitive_draw_cb (GtkWidget *image, GdkEventExpose *event, @@ -79,6 +103,7 @@ user_widget_class_init (UserWidgetClass *klass) GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); widget_class->button_release_event = user_widget_button_release_event; + //widget_class->get_preferred_height = user_widget_get_preferred_height; g_type_class_add_private (klass, sizeof (UserWidgetPrivate)); @@ -106,6 +131,8 @@ user_widget_init (UserWidget *self) // Create the UI elements. priv->user_image = gtk_image_new (); + gtk_misc_set_alignment(GTK_MISC(priv->user_image), 0.0, 0.0); + gtk_misc_set_padding (GTK_MISC(priv->user_image),0, 4.0); priv->user_name = gtk_label_new (""); priv->container = gtk_hbox_new (FALSE, 0); @@ -129,18 +156,23 @@ user_widget_init (UserWidget *self) FALSE, FALSE, 5); - gtk_widget_show_all (priv->container); - gtk_container_add (GTK_CONTAINER (self), priv->container); - + gtk_widget_show_all (priv->container); + gtk_container_add (GTK_CONTAINER (self), priv->container); gtk_widget_show_all (priv->tick_icon); gtk_widget_set_no_show_all (priv->tick_icon, TRUE); gtk_widget_hide (priv->tick_icon); + // Fetch the drawing context. #if GTK_CHECK_VERSION(3, 0, 0) g_signal_connect_after (GTK_WIDGET(self), "draw", G_CALLBACK(user_widget_primitive_draw_cb_gtk_3), GTK_WIDGET(self)); + + g_signal_connect_after (GTK_WIDGET(priv->user_image), "draw", + G_CALLBACK(user_widget_draw_usericon_gtk_3), + GTK_WIDGET(self)); + #else g_signal_connect_after (GTK_WIDGET(self), "expose-event", G_CALLBACK(user_widget_primitive_draw_cb), @@ -163,9 +195,20 @@ user_widget_finalize (GObject *object) G_OBJECT_CLASS (user_widget_parent_class)->finalize (object); } + +/*****************************************************************/ + #if GTK_CHECK_VERSION(3, 0, 0) -// Draw the radio dot and/or green check mark +/*static void user_widget_get_preferred_height (GtkWidget* self, + gint* minimum_height, + gint* natural_height) +{ + minimum_height = *natural_height = 60; +} +*/ + + // TODO handle drawing of green check mark static gboolean user_widget_primitive_draw_cb_gtk_3 (GtkWidget *widget, @@ -184,15 +227,13 @@ user_widget_primitive_draw_cb_gtk_3 (GtkWidget *widget, } GtkStyle *style; - gdouble x, y; - gdouble offset = 15.0; - + gdouble x, y; style = gtk_widget_get_style (widget); GtkAllocation allocation; gtk_widget_get_allocation (widget, &allocation); x = allocation.x + 13; - y = offset; + y = allocation.height / 2; cairo_arc (cr, x, y, 3.0, 0.0, 2 * G_PI);; @@ -204,68 +245,359 @@ user_widget_primitive_draw_cb_gtk_3 (GtkWidget *widget, return FALSE; } +static gboolean +user_widget_draw_usericon_gtk_3 (GtkWidget *widget, + cairo_t* cr, + gpointer user_data) +{ + /*g_return_val_if_fail(IS_USER_WIDGET(user_data), FALSE); + UserWidget* meta = USER_WIDGET(user_data); + UserWidgetPrivate * priv = USER_WIDGET_GET_PRIVATE(meta); + */ + draw_album_border (widget, FALSE); + return TRUE; +} +/** + * TODO: + * Sort out gtk2 + */ // GTK 2 Expose handler #else - -// Draw the triangle if the player is running ... static gboolean user_widget_primitive_draw_cb (GtkWidget *widget, GdkEventExpose *event, gpointer user_data) { - /* g_return_val_if_fail(IS_USER_WIDGET(user_data), FALSE); UserWidget* meta = USER_WIDGET(user_data); UserWidgetPrivate * priv = USER_WIDGET_GET_PRIVATE(meta); + // Draw dot only when user is the current user. + if (!dbusmenu_menuitem_property_get_bool (priv->twin_item, + USER_ITEM_PROP_IS_CURRENT_USER)){ + return FALSE; + } + GtkStyle *style; cairo_t *cr; - int x, y, arrow_width, arrow_height; - - gint offset = 3; - arrow_width = 5; - arrow_height = 9; + cr = (cairo_t*) gdk_cairo_create (gtk_widget_get_window (widget)); + gdouble x, y; style = gtk_widget_get_style (widget); - - cr = (cairo_t*) gdk_cairo_create (gtk_widget_get_window (widget)); - GtkAllocation allocation; gtk_widget_get_allocation (widget, &allocation); - x = allocation.x; - y = allocation.y; - - // Draw player icon - if (priv->icon_buf != NULL){ - gdk_cairo_set_source_pixbuf (cr, - priv->icon_buf, - x + arrow_width + 1, - y + offset); - cairo_paint (cr); - } - - // Draw triangle but only if the player is running. - if (dbusmenu_menuitem_property_get_bool (priv->twin_item, - DBUSMENU_METADATA_MENUITEM_PLAYER_RUNNING)){ - y += (double)arrow_height/2.0 + offset; - cairo_set_line_width (cr, 1.0); - - cairo_move_to (cr, x, y); - cairo_line_to (cr, x, y + arrow_height); - cairo_line_to (cr, x + arrow_width, y + (double)arrow_height/2.0); - cairo_close_path (cr); - cairo_set_source_rgb (cr, style->fg[gtk_widget_get_state(widget)].red/65535.0, - style->fg[gtk_widget_get_state(widget)].green/65535.0, - style->fg[gtk_widget_get_state(widget)].blue/65535.0); - cairo_fill (cr); - } + x = allocation.x + 13; + y = allocation.height / 2; - cairo_destroy (cr);*/ + cairo_arc (cr, x, y, 3.0, 0.0, 2 * G_PI);; + + cairo_set_source_rgb (cr, style->fg[gtk_widget_get_state(widget)].red/65535.0, + style->fg[gtk_widget_get_state(widget)].green/65535.0, + style->fg[gtk_widget_get_state(widget)].blue/65535.0); + cairo_fill (cr); + cairo_destroy (cr); + return FALSE; } #endif +static void +draw_album_border(GtkWidget *widg, gboolean selected) +{ + cairo_t *cr; + cr = gdk_cairo_create (gtk_widget_get_window (widg)); + #if GTK_CHECK_VERSION(3, 0, 0) + gtk_style_context_add_class (gtk_widget_get_style_context (widg), + "menu"); + #endif + + GtkStyle *style; + style = gtk_widget_get_style (widg); + + GtkAllocation alloc; + gtk_widget_get_allocation (widg, &alloc); + gint offset = 0; + gint v_offset = 4; + + alloc.width = alloc.width + (offset * 2); + alloc.height = alloc.height - v_offset - 2; + alloc.x = alloc.x - offset; + alloc.y = alloc.y + v_offset/2 +1; + + CairoColorRGB bg_normal, fg_normal; + + bg_normal.r = style->bg[0].red/65535.0; + bg_normal.g = style->bg[0].green/65535.0; + bg_normal.b = style->bg[0].blue/65535.0; + + gint state = selected ? 5 : 0; + + fg_normal.r = style->fg[state].red/65535.0; + fg_normal.g = style->fg[state].green/65535.0; + fg_normal.b = style->fg[state].blue/65535.0; + + CairoColorRGB dark_top_color; + CairoColorRGB light_bottom_color; + CairoColorRGB background_color; + + _color_shade ( &bg_normal, 0.93, &background_color ); + _color_shade ( &bg_normal, 0.23, &dark_top_color ); + _color_shade ( &fg_normal, 0.55, &light_bottom_color ); + + cairo_rectangle (cr, + alloc.x, alloc.y, + alloc.width, alloc.height); + + cairo_set_line_width (cr, 1.0); + + cairo_clip ( cr ); + + cairo_move_to (cr, alloc.x, alloc.y ); + cairo_line_to (cr, alloc.x + alloc.width, + alloc.y ); + cairo_line_to ( cr, alloc.x + alloc.width, + alloc.y + alloc.height ); + cairo_line_to ( cr, alloc.x, alloc.y + alloc.height ); + cairo_line_to ( cr, alloc.x, alloc.y); + cairo_close_path (cr); + + cairo_set_source_rgba ( cr, + background_color.r, + background_color.g, + background_color.b, + 1.0 ); + + cairo_stroke ( cr ); + + cairo_move_to (cr, alloc.x, alloc.y ); + cairo_line_to (cr, alloc.x + alloc.width, + alloc.y ); + + cairo_close_path (cr); + cairo_set_source_rgba ( cr, + dark_top_color.r, + dark_top_color.g, + dark_top_color.b, + 1.0 ); + + cairo_stroke ( cr ); + + cairo_move_to ( cr, alloc.x + alloc.width, + alloc.y + alloc.height ); + cairo_line_to ( cr, alloc.x, alloc.y + alloc.height ); + + cairo_close_path (cr); + cairo_set_source_rgba ( cr, + light_bottom_color.r, + light_bottom_color.g, + light_bottom_color.b, + 1.0); + + cairo_stroke ( cr ); + cairo_destroy (cr); +} + +static void +_color_rgb_to_hls (gdouble *r, + gdouble *g, + gdouble *b) +{ + gdouble min; + gdouble max; + gdouble red; + gdouble green; + gdouble blue; + gdouble h = 0; + gdouble l; + gdouble s; + gdouble delta; + + red = *r; + green = *g; + blue = *b; + + if (red > green) + { + if (red > blue) + max = red; + else + max = blue; + + if (green < blue) + min = green; + else + min = blue; + } + else + { + if (green > blue) + max = green; + else + max = blue; + + if (red < blue) + min = red; + else + min = blue; + } + l = (max+min)/2; + if (fabs (max-min) < 0.0001) + { + h = 0; + s = 0; + } + else + { + if (l <= 0.5) + s = (max-min)/(max+min); + else + s = (max-min)/(2-max-min); + + delta = (max -min) != 0 ? (max -min) : 1; + + if(delta == 0) + delta = 1; + if (red == max) + h = (green-blue)/delta; + else if (green == max) + h = 2+(blue-red)/delta; + else if (blue == max) + h = 4+(red-green)/delta; + + h *= 60; + if (h < 0.0) + h += 360; + } + + *r = h; + *g = l; + *b = s; +} + +static void +_color_hls_to_rgb (gdouble *h, + gdouble *l, + gdouble *s) +{ + gdouble hue; + gdouble lightness; + gdouble saturation; + gdouble m1, m2; + gdouble r, g, b; + + lightness = *l; + saturation = *s; + + if (lightness <= 0.5) + m2 = lightness*(1+saturation); + else + m2 = lightness+saturation-lightness*saturation; + + m1 = 2*lightness-m2; + + if (saturation == 0) + { + *h = lightness; + *l = lightness; + *s = lightness; + } + else + { + hue = *h+120; + while (hue > 360) + hue -= 360; + while (hue < 0) + hue += 360; + + if (hue < 60) + r = m1+(m2-m1)*hue/60; + else if (hue < 180) + r = m2; + else if (hue < 240) + r = m1+(m2-m1)*(240-hue)/60; + else + r = m1; + + hue = *h; + while (hue > 360) + hue -= 360; + while (hue < 0) + hue += 360; + + if (hue < 60) + g = m1+(m2-m1)*hue/60; + else if (hue < 180) + g = m2; + else if (hue < 240) + g = m1+(m2-m1)*(240-hue)/60; + else + g = m1; + + hue = *h-120; + while (hue > 360) + hue -= 360; + while (hue < 0) + hue += 360; + + if (hue < 60) + b = m1+(m2-m1)*hue/60; + else if (hue < 180) + b = m2; + else if (hue < 240) + b = m1+(m2-m1)*(240-hue)/60; + else + b = m1; + + *h = r; + *l = g; + *s = b; + } +} + +void +_color_shade (const CairoColorRGB *a, float k, CairoColorRGB *b) +{ + double red; + double green; + double blue; + + red = a->r; + green = a->g; + blue = a->b; + + if (k == 1.0) + { + b->r = red; + b->g = green; + b->b = blue; + return; + } + + _color_rgb_to_hls (&red, &green, &blue); + + green *= k; + if (green > 1.0) + green = 1.0; + else if (green < 0.0) + green = 0.0; + + blue *= k; + if (blue > 1.0) + blue = 1.0; + else if (blue < 0.0) + blue = 0.0; + + _color_hls_to_rgb (&red, &green, &blue); + + b->r = red; + b->g = green; + b->b = blue; +} + + +/*****************************************************************/ + /* Suppress/consume keyevents */ static gboolean user_widget_button_release_event (GtkWidget *menuitem, @@ -274,6 +606,10 @@ user_widget_button_release_event (GtkWidget *menuitem, return FALSE; } + +/** + * TODO, be sensitive to UI updates + * */ static void user_widget_property_update (DbusmenuMenuitem* item, gchar* property, GVariant* value, gpointer userdata) @@ -283,6 +619,8 @@ user_widget_property_update (DbusmenuMenuitem* item, gchar* property, } + + static void user_widget_set_twin_item (UserWidget* self, DbusmenuMenuitem* twin_item) -- cgit v1.2.3 From 282f1128e3612e58461c1a134cbb411377fe7e63 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Mon, 22 Aug 2011 18:46:54 +0100 Subject: tidy up --- src/user-widget.c | 19 ------------------- 1 file changed, 19 deletions(-) (limited to 'src') diff --git a/src/user-widget.c b/src/user-widget.c index 13f7d0b..41b6eda 100644 --- a/src/user-widget.c +++ b/src/user-widget.c @@ -78,9 +78,6 @@ static void _color_shade (const CairoColorRGB *a, static void draw_album_border (GtkWidget *widget, gboolean selected); #if GTK_CHECK_VERSION(3, 0, 0) -/*static void user_widget_get_preferred_height (GtkWidget* self, - gint* minimum_height, - gint* natural_height);*/ static gboolean user_widget_primitive_draw_cb_gtk_3 (GtkWidget *image, cairo_t* cr, gpointer user_data); @@ -103,7 +100,6 @@ user_widget_class_init (UserWidgetClass *klass) GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); widget_class->button_release_event = user_widget_button_release_event; - //widget_class->get_preferred_height = user_widget_get_preferred_height; g_type_class_add_private (klass, sizeof (UserWidgetPrivate)); @@ -183,8 +179,6 @@ user_widget_init (UserWidget *self) static void user_widget_dispose (GObject *object) { - //UserWidgetPrivate * priv = USER_WIDGET_GET_PRIVATE(USER_WIDGET(object)); - G_OBJECT_CLASS (user_widget_parent_class)->dispose (object); } @@ -200,15 +194,6 @@ user_widget_finalize (GObject *object) #if GTK_CHECK_VERSION(3, 0, 0) -/*static void user_widget_get_preferred_height (GtkWidget* self, - gint* minimum_height, - gint* natural_height) -{ - minimum_height = *natural_height = 60; -} -*/ - - // TODO handle drawing of green check mark static gboolean user_widget_primitive_draw_cb_gtk_3 (GtkWidget *widget, @@ -250,10 +235,6 @@ user_widget_draw_usericon_gtk_3 (GtkWidget *widget, cairo_t* cr, gpointer user_data) { - /*g_return_val_if_fail(IS_USER_WIDGET(user_data), FALSE); - UserWidget* meta = USER_WIDGET(user_data); - UserWidgetPrivate * priv = USER_WIDGET_GET_PRIVATE(meta); - */ draw_album_border (widget, FALSE); return TRUE; } -- cgit v1.2.3 From c8b7d9a2d30fbcd6e0d072a60318b6466653ebb1 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Mon, 22 Aug 2011 18:53:35 +0100 Subject: don't draw border on default icon --- src/user-widget.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/user-widget.c b/src/user-widget.c index 41b6eda..a3ad1e4 100644 --- a/src/user-widget.c +++ b/src/user-widget.c @@ -37,6 +37,7 @@ struct _UserWidgetPrivate { DbusmenuMenuitem* twin_item; GtkWidget* user_image; + gboolean using_personal_icon; GtkWidget* user_name; GtkWidget* container; GtkWidget* tick_icon; @@ -235,8 +236,15 @@ user_widget_draw_usericon_gtk_3 (GtkWidget *widget, cairo_t* cr, gpointer user_data) { + g_return_val_if_fail(IS_USER_WIDGET(user_data), FALSE); + UserWidget* meta = USER_WIDGET(user_data); + UserWidgetPrivate * priv = USER_WIDGET_GET_PRIVATE(meta); + + if (priv->using_personal_icon == FALSE) + return FALSE; + draw_album_border (widget, FALSE); - return TRUE; + return FALSE; } /** * TODO: @@ -643,12 +651,17 @@ user_widget_set_twin_item (UserWidget* self, error = NULL; } + priv->using_personal_icon = FALSE; + pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), USER_ITEM_ICON_DEFAULT, 32, GTK_ICON_LOOKUP_FORCE_SIZE, &error); } + else{ + priv->using_personal_icon = TRUE; + } if (pixbuf == NULL || error != NULL) { g_warning ("Could not load the user image"); -- cgit v1.2.3 From faa1e437d22814566c4e8e0cc9db9c2546192cbe Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Mon, 22 Aug 2011 20:21:29 +0100 Subject: changed around the sync users so as it can be used to refresh the user list on any given event --- src/users-service-dbus.c | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/users-service-dbus.c b/src/users-service-dbus.c index 03d1144..07ce889 100644 --- a/src/users-service-dbus.c +++ b/src/users-service-dbus.c @@ -58,6 +58,8 @@ static void user_added (DBusGProxy *proxy static void user_deleted (DBusGProxy *proxy, const gchar *user_id, gpointer user_data); +static void user_changed (DBusGProxy *proxy, + gpointer user_data); static void seat_proxy_session_added (DBusGProxy *seat_proxy, const gchar *session_id, UsersServiceDbus *service); @@ -753,21 +755,37 @@ sync_users (UsersServiceDbus *self) continue; } + + user = g_hash_table_lookup (priv->users, id); // Double check we havent processed this user already - if (users_service_dbus_get_user_by_username (self, - g_value_get_string (g_hash_table_lookup (properties, "UserName"))) != NULL) + if (user != NULL) { - continue; + g_free(user->user_name); + g_free(user->real_name); + g_free(user->icon_file); + user->real_name_conflict = FALSE; + //continue; } - - user = g_new0 (UserData, 1); - + else + { + user = g_new0 (UserData, 1); + } + // Can't subscribe to the Changed signal on each individual user path + // for some reason. + /*dbus_g_proxy_add_signal (proxy, + "Changed", + G_TYPE_INVALID); + + dbus_g_proxy_connect_signal (proxy, "Changed", + G_CALLBACK(user_changed), + self, + NULL);*/ user->uid = g_value_get_uint64 (g_hash_table_lookup (properties, "Uid")); user->user_name = g_strdup (g_value_get_string (g_hash_table_lookup (properties, "UserName"))); user->real_name = g_strdup (g_value_get_string (g_hash_table_lookup (properties, "RealName"))); user->icon_file = g_strdup (g_value_get_string (g_hash_table_lookup (properties, "IconFile"))); user->real_name_conflict = FALSE; - user->menuitem = NULL; + user->menuitem = NULL; g_hash_table_unref (properties); @@ -782,6 +800,15 @@ sync_users (UsersServiceDbus *self) } } +static void +user_changed (DBusGProxy *proxy, + gpointer user_data) +{ + g_debug ("JUST RESYNCED THE USERS FROM A USER CHANGE"); + UsersServiceDbus *service = (UsersServiceDbus *)user_data; + sync_users (service); +} + static void user_added (DBusGProxy *proxy, const gchar *user_id, -- cgit v1.2.3 From ca8ee2aec023d95d73e3563d45bc1b660a548f40 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Mon, 22 Aug 2011 20:24:56 +0100 Subject: uncomment signal subscription that doesn't work --- src/users-service-dbus.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/users-service-dbus.c b/src/users-service-dbus.c index 07ce889..4b41f4b 100644 --- a/src/users-service-dbus.c +++ b/src/users-service-dbus.c @@ -772,14 +772,14 @@ sync_users (UsersServiceDbus *self) } // Can't subscribe to the Changed signal on each individual user path // for some reason. - /*dbus_g_proxy_add_signal (proxy, + dbus_g_proxy_add_signal (proxy, "Changed", G_TYPE_INVALID); dbus_g_proxy_connect_signal (proxy, "Changed", G_CALLBACK(user_changed), self, - NULL);*/ + NULL); user->uid = g_value_get_uint64 (g_hash_table_lookup (properties, "Uid")); user->user_name = g_strdup (g_value_get_string (g_hash_table_lookup (properties, "UserName"))); user->real_name = g_strdup (g_value_get_string (g_hash_table_lookup (properties, "RealName"))); -- cgit v1.2.3 From c4d38ac2f3589a83cbd9127c178da4926d5773aa Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 23 Aug 2011 10:25:11 -0500 Subject: Activate prototype --- src/user-menu-mgr.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 588d3d0..5ac1c63 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -44,6 +44,9 @@ static void activate_new_session (DbusmenuMenuitem * mi, static void activate_user_session (DbusmenuMenuitem *mi, guint timestamp, gpointer user_data); +static void activate_user_accounts (DbusmenuMenuitem *mi, + guint timestamp, + gpointer user_data); static gint compare_users_by_username (const gchar *a, const gchar *b); static void activate_online_accounts (DbusmenuMenuitem *mi, -- cgit v1.2.3 From 62d5071180e89c16c32d7b1bfee4410d37bee5f5 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Tue, 23 Aug 2011 16:54:52 +0100 Subject: removed bluetooth item and labels on webcams and scanners are now manufacturer specific --- src/device-menu-mgr.c | 28 +++++++--------------- src/udev-mgr.c | 65 +++++++++++++++++++++++++++++++++++++++++++++------ src/user-menu-mgr.c | 4 ++++ 3 files changed, 70 insertions(+), 27 deletions(-) (limited to 'src') diff --git a/src/device-menu-mgr.c b/src/device-menu-mgr.c index c298682..e111450 100644 --- a/src/device-menu-mgr.c +++ b/src/device-menu-mgr.c @@ -49,7 +49,6 @@ static GSettings *keybinding_settings = NULL; static DbusmenuMenuitem *lock_menuitem = NULL; static DbusmenuMenuitem *system_settings_menuitem = NULL; static DbusmenuMenuitem *display_settings_menuitem = NULL; -static DbusmenuMenuitem *bluetooth_settings_menuitem = NULL; static DbusmenuMenuitem *login_settings_menuitem = NULL; static DbusmenuMenuitem *software_updates_menuitem = NULL; static DbusmenuMenuitem *printers_menuitem = NULL; @@ -535,17 +534,6 @@ device_menu_mgr_build_settings_items (DeviceMenuMgr* self) dbusmenu_menuitem_child_add_position(self->root_item, display_settings_menuitem, 1); - bluetooth_settings_menuitem = dbusmenu_menuitem_new(); - dbusmenu_menuitem_property_set (bluetooth_settings_menuitem, - DBUSMENU_MENUITEM_PROP_LABEL, - _("Bluetooth…")); - g_signal_connect (G_OBJECT(bluetooth_settings_menuitem), - DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, - G_CALLBACK(show_system_settings_with_context), "bluetooth"); - dbusmenu_menuitem_child_add_position(self->root_item, - bluetooth_settings_menuitem, - 2); - login_settings_menuitem = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (login_settings_menuitem, DBUSMENU_MENUITEM_PROP_LABEL, @@ -556,20 +544,20 @@ device_menu_mgr_build_settings_items (DeviceMenuMgr* self) "login"); dbusmenu_menuitem_child_add_position(self->root_item, login_settings_menuitem, - 3); + 2); software_updates_menuitem = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (software_updates_menuitem, DBUSMENU_MENUITEM_PROP_LABEL, _("Software Up to Date")); dbusmenu_menuitem_child_add_position(self->root_item, software_updates_menuitem, - 4); + 3); DbusmenuMenuitem * separator1 = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (separator1, DBUSMENU_MENUITEM_PROP_TYPE, DBUSMENU_CLIENT_TYPES_SEPARATOR); - dbusmenu_menuitem_child_add_position (self->root_item, separator1, 5); + dbusmenu_menuitem_child_add_position (self->root_item, separator1, 4); } static void @@ -584,7 +572,7 @@ device_menu_mgr_build_devices_items (DeviceMenuMgr* self) FALSE); dbusmenu_menuitem_child_add_position (self->root_item, device_heading, - 6); + 5); printers_menuitem = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (printers_menuitem, @@ -596,7 +584,7 @@ device_menu_mgr_build_devices_items (DeviceMenuMgr* self) "printers"); dbusmenu_menuitem_child_add_position(self->root_item, printers_menuitem, - 7); + 6); scanners_menuitem = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (scanners_menuitem, DBUSMENU_MENUITEM_PROP_LABEL, @@ -607,7 +595,7 @@ device_menu_mgr_build_devices_items (DeviceMenuMgr* self) NULL); dbusmenu_menuitem_child_add_position (self->root_item, scanners_menuitem, - 8); + 7); dbusmenu_menuitem_property_set_bool (scanners_menuitem, DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE); @@ -622,7 +610,7 @@ device_menu_mgr_build_devices_items (DeviceMenuMgr* self) NULL); dbusmenu_menuitem_child_add_position (self->root_item, webcam_menuitem, - 10); + 8); dbusmenu_menuitem_property_set_bool (webcam_menuitem, DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE); @@ -631,7 +619,7 @@ device_menu_mgr_build_devices_items (DeviceMenuMgr* self) dbusmenu_menuitem_property_set (separator3, DBUSMENU_MENUITEM_PROP_TYPE, DBUSMENU_CLIENT_TYPES_SEPARATOR); - dbusmenu_menuitem_child_add_position (self->root_item, separator3, 11); + dbusmenu_menuitem_child_add_position (self->root_item, separator3, 9); } static void diff --git a/src/udev-mgr.c b/src/udev-mgr.c index f66d862..179e56f 100644 --- a/src/udev-mgr.c +++ b/src/udev-mgr.c @@ -22,8 +22,7 @@ with this program. If not, see . // TEMP #include #include -#include -#include +#include #include "udev-mgr.h" #include "sane-rules.h" @@ -235,13 +234,29 @@ udev_mgr_handle_webcam (UdevMgr* self, } g_hash_table_remove (self->webcams_present, product); - + dbusmenu_menuitem_property_set (self->webcam_item, + DBUSMENU_MENUITEM_PROP_LABEL, + _("Webcams")); } else { if (g_hash_table_lookup (self->webcams_present, product) != NULL){ g_warning ("Got an ADD event on a webcam device but we already have that device in our webcam cache"); return; } + + const gchar* manufacturer = NULL; + manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); + + if (manufacturer != NULL){ + gchar* lowered = g_ascii_strdown (manufacturer, -1); + lowered[0] = g_ascii_toupper (lowered[0]); + gchar* label = g_strdup_printf("%s Webcam", lowered); + g_free (lowered); + dbusmenu_menuitem_property_set (self->webcam_item, + DBUSMENU_MENUITEM_PROP_LABEL, + _(label)); + } + g_hash_table_insert (self->webcams_present, g_strdup (product), g_strdup (vendor)); @@ -254,23 +269,26 @@ debug_device (UdevMgr* self, GUdevDevice* device, UdevMgrDeviceAction action) { - /*const gchar* vendor; + const gchar* vendor; const gchar* product; const gchar* number; const gchar* name; + const gchar* manufacturer; vendor = g_udev_device_get_property (device, "ID_VENDOR_ID"); + manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); product = g_udev_device_get_property (device, "ID_MODEL_ID"); number = g_udev_device_get_number (device); name = g_udev_device_get_name (device); - g_debug ("device vendor id %s , product id of %s , number of %s and name of %s", + g_debug ("%s device vendor id %s , product id of %s , number of %s and name of %s", + g_strdup(manufacturer), g_strdup(vendor), g_strdup(product), g_strdup(number), g_strdup(name)); - const gchar *const *list; + /*const gchar *const *list; const gchar *const *iter; char propstr[500]; guint32 namelen = 0, i; @@ -290,7 +308,7 @@ debug_device (UdevMgr* self, strcat(propstr, " "); strcat(propstr, g_udev_device_get_property(device, *iter)); g_debug("%s", propstr); - }*/ + }*/ } static void udev_mgr_handle_scsi_device (UdevMgr* self, @@ -344,6 +362,10 @@ static void udev_mgr_handle_scsi_device (UdevMgr* self, } else{ g_hash_table_remove (self->scanners_present, vendor); + dbusmenu_menuitem_property_set (self->scanner_item, + DBUSMENU_MENUITEM_PROP_LABEL, + _("Scanners")); + } } else{ @@ -351,6 +373,18 @@ static void udev_mgr_handle_scsi_device (UdevMgr* self, g_warning ("Got an ADD event on a scanner device but we already have that device in our scanners cache"); } else{ + const gchar* manufacturer = NULL; + manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); + + if (manufacturer != NULL){ + gchar* lowered = g_ascii_strdown (manufacturer, -1); + lowered[0] = g_ascii_toupper (lowered[0]); + gchar* label = g_strdup_printf("%s Scanner", lowered); + g_free (lowered); + dbusmenu_menuitem_property_set (self->scanner_item, + DBUSMENU_MENUITEM_PROP_LABEL, + _(label)); + } g_hash_table_insert (self->scanners_present, g_strdup(vendor), g_strdup(model_id)); @@ -397,6 +431,9 @@ udev_mgr_check_if_usb_device_is_supported (UdevMgr* self, } else{ g_hash_table_remove (self->scanners_present, vendor); + dbusmenu_menuitem_property_set (self->scanner_item, + DBUSMENU_MENUITEM_PROP_LABEL, + _("Scanners")); } } else{ @@ -404,6 +441,20 @@ udev_mgr_check_if_usb_device_is_supported (UdevMgr* self, g_warning ("Got an ADD event on a scanner device but we already have that device in our scanners cache"); } else{ + const gchar* manufacturer = NULL; + + manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); + if (manufacturer != NULL){ + + gchar* lowered = g_ascii_strdown (manufacturer, -1); + lowered[0] = g_ascii_toupper (lowered[0]); + gchar* label = g_strdup_printf("%s Scanner", lowered); + g_free (lowered); + dbusmenu_menuitem_property_set (self->scanner_item, + DBUSMENU_MENUITEM_PROP_LABEL, + _(label)); + } + g_hash_table_insert (self->scanners_present, g_strdup(vendor), g_strdup(model_id)); diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 588d3d0..9d76b8b 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -49,6 +49,10 @@ static gint compare_users_by_username (const gchar *a, static void activate_online_accounts (DbusmenuMenuitem *mi, guint timestamp, gpointer user_data); +static void activate_user_accounts (DbusmenuMenuitem *mi, + guint timestamp, + gpointer user_data); + static void user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode); static gboolean check_new_session (); -- cgit v1.2.3 From c8335dabc0de12258ff397924e264cc02ae86554 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Tue, 23 Aug 2011 17:14:35 +0100 Subject: user menu now shown if guest session is possible also guest name has been set on the panel --- src/device-menu-mgr.c | 2 -- src/user-menu-mgr.c | 14 ++++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/device-menu-mgr.c b/src/device-menu-mgr.c index e111450..523ea8d 100644 --- a/src/device-menu-mgr.c +++ b/src/device-menu-mgr.c @@ -740,7 +740,6 @@ device_menu_mgr_build_static_items (DeviceMenuMgr* self, gboolean greeter_mode) self->udev_mgr = udev_mgr_new (scanners_menuitem, webcam_menuitem); } - static void device_menu_mgr_rebuild_items (DeviceMenuMgr* self) { @@ -821,7 +820,6 @@ device_menu_mgr_ensure_settings_client (DeviceMenuMgr* self) keybinding_settings = g_settings_new (KEYBINDING_SCHEMA); g_signal_connect(lockdown_settings, "changed::" KEY_LOCK_SCREEN, G_CALLBACK(keybinding_changed), self); } - return; } diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 9d76b8b..424706e 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -173,7 +173,7 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) gboolean user_menu_is_visible = FALSE; if (!greeter_mode){ - user_menu_is_visible = self->user_count > 1; + user_menu_is_visible = self->user_count > 1 || check_guest_session(); } session_dbus_set_user_menu_visibility (self->session_dbus_interface, @@ -240,9 +240,15 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) USER_ITEM_PROP_IS_CURRENT_USER, logged_in); if (logged_in == TRUE){ - g_debug ("about to set the users real name to %s for user %s", - user->real_name, user->user_name); - session_dbus_set_users_real_name (self->session_dbus_interface, user->real_name); + if (check_guest_session() == TRUE){ + g_debug ("about to set the users real name to %s for user %s", + user->real_name, user->user_name); + session_dbus_set_users_real_name (self->session_dbus_interface, user->real_name); + } + else{ + session_dbus_set_users_real_name (self->session_dbus_interface, + _("Guest")); + } } dbusmenu_menuitem_child_append (self->root_item, mi); -- cgit v1.2.3 From 430f5bce4eef7194f260496a31a18c24e16969b4 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Tue, 23 Aug 2011 18:17:54 +0100 Subject: set the alert state on the apt item when reboot is required --- src/apt-watcher.c | 3 +++ src/user-menu-mgr.c | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/apt-watcher.c b/src/apt-watcher.c index 7d706a0..a4298a8 100644 --- a/src/apt-watcher.c +++ b/src/apt-watcher.c @@ -279,6 +279,9 @@ apt_watcher_transaction_state_update_cb (AptTransaction* trans, dbusmenu_menuitem_property_set (self->apt_item, DBUSMENU_MENUITEM_PROP_LABEL, _("Reboot Required")); + dbusmenu_menuitem_property_set (self->apt_item, + DBUSMENU_MENUITEM_PROP_DISPOSITION, + DBUSMENU_MENUITEM_DISPOSITION_ALERT); session_dbus_restart_required (self->session_dbus_interface); } g_debug ("Finished with a reboot value of %i", reboot); diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 424706e..aa02b01 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -236,16 +236,22 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) } gboolean logged_in = g_strcmp0 (user->user_name, g_get_user_name()) == 0; + + g_debug ("user name = %s and g user name = %s", + user->user_name, + g_get_user_name()); + dbusmenu_menuitem_property_set_bool (mi, USER_ITEM_PROP_IS_CURRENT_USER, logged_in); if (logged_in == TRUE){ - if (check_guest_session() == TRUE){ + if (check_guest_session()){ g_debug ("about to set the users real name to %s for user %s", user->real_name, user->user_name); session_dbus_set_users_real_name (self->session_dbus_interface, user->real_name); } else{ + g_debug ("about to set the users real name to GUEST"); session_dbus_set_users_real_name (self->session_dbus_interface, _("Guest")); } @@ -429,7 +435,7 @@ static gboolean check_guest_session (void) { if (geteuid() < 500) { - /* System users shouldn't have guest account shown. Mosly + /* System users shouldn't have guest account shown. Mostly this would be the case of the guest user itself. */ return FALSE; } -- cgit v1.2.3 From 11ee8ffc85036820c4f8f8dbaf79f1dbfff82e94 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 23 Aug 2011 16:30:32 -0500 Subject: Fixing those ASCII quotes --- src/dialog.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/dialog.c b/src/dialog.c index 45cfdcb..4b139ca 100644 --- a/src/dialog.c +++ b/src/dialog.c @@ -62,7 +62,7 @@ static const gchar * button_auth_strings[LOGOUT_DIALOG_TYPE_CNT] = { in place of a log out. */ static const gchar * restart_updates = N_("Restart Instead"); static const gchar * restart_auth = N_("Restart Instead…"); -static const gchar * body_logout_update = N_("Some software updates won't apply until the computer next restarts."); +static const gchar * body_logout_update = N_("Some software updates won’t apply until the computer next restarts."); static const gchar * icon_strings[LOGOUT_DIALOG_TYPE_CNT] = { /* LOGOUT_DIALOG_LOGOUT, */ "system-log-out", -- cgit v1.2.3 From a11951d98dad7f9b65be6c5866c3dd46b3f077e6 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Wed, 24 Aug 2011 10:22:02 +0100 Subject: gtk2 user widget drawing fixed --- src/user-widget.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src') diff --git a/src/user-widget.c b/src/user-widget.c index a3ad1e4..1530967 100644 --- a/src/user-widget.c +++ b/src/user-widget.c @@ -90,6 +90,10 @@ static gboolean user_widget_draw_usericon_gtk_3 (GtkWidget *widget, static gboolean user_widget_primitive_draw_cb (GtkWidget *image, GdkEventExpose *event, gpointer user_data); +static gboolean user_widget_draw_usericon_gtk_2 (GtkWidget *widget, + GdkEventExpose *event, + gpointer user_data); + #endif G_DEFINE_TYPE (UserWidget, user_widget, GTK_TYPE_MENU_ITEM); @@ -174,6 +178,9 @@ user_widget_init (UserWidget *self) g_signal_connect_after (GTK_WIDGET(self), "expose-event", G_CALLBACK(user_widget_primitive_draw_cb), GTK_WIDGET(self)); + g_signal_connect_after (GTK_WIDGET(priv->user_image), "expose-event", + G_CALLBACK(user_widget_draw_usericon_gtk_2), + GTK_WIDGET(self)); #endif } @@ -252,6 +259,23 @@ user_widget_draw_usericon_gtk_3 (GtkWidget *widget, */ // GTK 2 Expose handler #else + +static gboolean +user_widget_draw_usericon_gtk_2 (GtkWidget *widget, + GdkEventExpose *event, + gpointer user_data) +{ + g_return_val_if_fail(IS_USER_WIDGET(user_data), FALSE); + UserWidget* meta = USER_WIDGET(user_data); + UserWidgetPrivate * priv = USER_WIDGET_GET_PRIVATE(meta); + + if (priv->using_personal_icon == FALSE) + return FALSE; + + draw_album_border (widget, FALSE); + return FALSE; +} + static gboolean user_widget_primitive_draw_cb (GtkWidget *widget, GdkEventExpose *event, @@ -273,6 +297,8 @@ user_widget_primitive_draw_cb (GtkWidget *widget, gdouble x, y; style = gtk_widget_get_style (widget); + + GtkAllocation allocation; gtk_widget_get_allocation (widget, &allocation); x = allocation.x + 13; -- cgit v1.2.3 From a7004c65b73ddf79a69b504a5e70227c32c75eeb Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Wed, 24 Aug 2011 10:36:58 +0100 Subject: fix that broken trunk --- src/user-menu-mgr.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 588d3d0..e59dda8 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -49,6 +49,9 @@ static gint compare_users_by_username (const gchar *a, static void activate_online_accounts (DbusmenuMenuitem *mi, guint timestamp, gpointer user_data); +static void activate_user_accounts (DbusmenuMenuitem *mi, + guint timestamp, + gpointer user_data); static void user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode); static gboolean check_new_session (); -- cgit v1.2.3 From 5654480a85100da972d03729f7012c4402eb7e13 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Wed, 24 Aug 2011 12:45:58 +0100 Subject: fix the dot alignment in the gtk2s user widget --- src/user-widget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/user-widget.c b/src/user-widget.c index 1530967..937a9eb 100644 --- a/src/user-widget.c +++ b/src/user-widget.c @@ -302,7 +302,7 @@ user_widget_primitive_draw_cb (GtkWidget *widget, gtk_widget_get_allocation (widget, &allocation); x = allocation.x + 13; - y = allocation.height / 2; + y = allocation.y + allocation.height/2; cairo_arc (cr, x, y, 3.0, 0.0, 2 * G_PI);; -- cgit v1.2.3 From cbae3e05ba000358ad819566cfb46a847e424400 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Thu, 25 Aug 2011 10:57:03 +0100 Subject: fixed the translations --- src/udev-mgr.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/udev-mgr.c b/src/udev-mgr.c index 179e56f..7e51383 100644 --- a/src/udev-mgr.c +++ b/src/udev-mgr.c @@ -19,9 +19,6 @@ with this program. If not, see . #include -// TEMP -#include -#include #include #include "udev-mgr.h" @@ -250,11 +247,11 @@ udev_mgr_handle_webcam (UdevMgr* self, if (manufacturer != NULL){ gchar* lowered = g_ascii_strdown (manufacturer, -1); lowered[0] = g_ascii_toupper (lowered[0]); - gchar* label = g_strdup_printf("%s Webcam", lowered); + gchar* label = g_strdup_printf(_("%s Webcam"), lowered); g_free (lowered); dbusmenu_menuitem_property_set (self->webcam_item, DBUSMENU_MENUITEM_PROP_LABEL, - _(label)); + label); } g_hash_table_insert (self->webcams_present, @@ -379,11 +376,11 @@ static void udev_mgr_handle_scsi_device (UdevMgr* self, if (manufacturer != NULL){ gchar* lowered = g_ascii_strdown (manufacturer, -1); lowered[0] = g_ascii_toupper (lowered[0]); - gchar* label = g_strdup_printf("%s Scanner", lowered); + gchar* label = g_strdup_printf(_("%s Scanner"), lowered); g_free (lowered); dbusmenu_menuitem_property_set (self->scanner_item, DBUSMENU_MENUITEM_PROP_LABEL, - _(label)); + label); } g_hash_table_insert (self->scanners_present, g_strdup(vendor), @@ -448,11 +445,11 @@ udev_mgr_check_if_usb_device_is_supported (UdevMgr* self, gchar* lowered = g_ascii_strdown (manufacturer, -1); lowered[0] = g_ascii_toupper (lowered[0]); - gchar* label = g_strdup_printf("%s Scanner", lowered); + gchar* label = g_strdup_printf(_("%s Scanner"), lowered); g_free (lowered); dbusmenu_menuitem_property_set (self->scanner_item, DBUSMENU_MENUITEM_PROP_LABEL, - _(label)); + label); } g_hash_table_insert (self->scanners_present, -- cgit v1.2.3