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 From 5441c68c465cb69821e6307df24aecddbb571176 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Thu, 25 Aug 2011 17:05:41 +0100 Subject: protection against dodgy vendor ids provided by udev --- src/udev-mgr.c | 78 +++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 55 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/udev-mgr.c b/src/udev-mgr.c index 7e51383..cf148e2 100644 --- a/src/udev-mgr.c +++ b/src/udev-mgr.c @@ -49,7 +49,9 @@ static void debug_device (UdevMgr* self, GUdevDevice* device, UdevMgrDeviceAction action); - +static gchar* format_device_name (UdevMgr* self, + gchar* brand, + gchar* type); struct _UdevMgr { GObject parent_instance; @@ -233,7 +235,7 @@ udev_mgr_handle_webcam (UdevMgr* self, product); dbusmenu_menuitem_property_set (self->webcam_item, DBUSMENU_MENUITEM_PROP_LABEL, - _("Webcams")); + _("Webcam")); } else { if (g_hash_table_lookup (self->webcams_present, product) != NULL){ @@ -245,13 +247,11 @@ udev_mgr_handle_webcam (UdevMgr* self, 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); + format_device_name (self, + g_strdup(manufacturer), + "Webcam")); } g_hash_table_insert (self->webcams_present, @@ -307,7 +307,8 @@ debug_device (UdevMgr* self, g_debug("%s", propstr); }*/ } - +// TODO SCSI is not dynamic right ? +// i.e. just need to handle startup scan. static void udev_mgr_handle_scsi_device (UdevMgr* self, GUdevDevice* device, UdevMgrDeviceAction action) @@ -315,7 +316,19 @@ static void udev_mgr_handle_scsi_device (UdevMgr* self, const gchar* type = NULL; type = g_udev_device_get_property (device, "TYPE"); // apparently anything thats type 3 and SCSI is a Scanner - if (g_strcmp0 (type, "6") == 0){ + if (g_strcmp0 (type, "6") == 0 && action == ADD){ + + const gchar* manufacturer = NULL; + manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); + + if (manufacturer != NULL){ + dbusmenu_menuitem_property_set (self->scanner_item, + DBUSMENU_MENUITEM_PROP_LABEL, + format_device_name (self, + g_strdup(manufacturer), + "Scanner")); + } + gchar* random_scanner_name = g_strdup_printf("%p--scanner", self); g_hash_table_insert (self->scanners_present, random_scanner_name, @@ -361,7 +374,7 @@ static void udev_mgr_handle_scsi_device (UdevMgr* self, g_hash_table_remove (self->scanners_present, vendor); dbusmenu_menuitem_property_set (self->scanner_item, DBUSMENU_MENUITEM_PROP_LABEL, - _("Scanners")); + _("Scanner")); } } @@ -374,13 +387,11 @@ static void udev_mgr_handle_scsi_device (UdevMgr* self, 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); + format_device_name (self, + g_strdup(manufacturer), + "Scanner")); } g_hash_table_insert (self->scanners_present, g_strdup(vendor), @@ -397,7 +408,7 @@ udev_mgr_check_if_usb_device_is_supported (UdevMgr* self, UdevMgrDeviceAction action) { const gchar* vendor = NULL; - debug_device (self, device, action); + //debug_device (self, device, action); vendor = g_udev_device_get_property (device, "ID_VENDOR_ID"); @@ -430,7 +441,7 @@ udev_mgr_check_if_usb_device_is_supported (UdevMgr* self, g_hash_table_remove (self->scanners_present, vendor); dbusmenu_menuitem_property_set (self->scanner_item, DBUSMENU_MENUITEM_PROP_LABEL, - _("Scanners")); + _("Scanner")); } } else{ @@ -442,14 +453,12 @@ udev_mgr_check_if_usb_device_is_supported (UdevMgr* self, 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); + format_device_name (self, + g_strdup(manufacturer), + "Scanner")); } g_hash_table_insert (self->scanners_present, @@ -502,3 +511,26 @@ UdevMgr* udev_mgr_new (DbusmenuMenuitem* scanner, } return mgr; } + +static gchar* format_device_name (UdevMgr* self, + gchar* brand, + gchar* type) +{ + // We don't want to accommodate long names + if (strlen(brand) > 7) + return type; + + gint i = 0; + + // If it contains something other than an alphabetic entry ignore it. + for(i = 0; i < sizeof(brand); i++){ + if ( !g_ascii_isalpha (brand[i]) ) + return type; + } + + gchar* lowered = g_ascii_strdown (brand, -1); + lowered[0] = g_ascii_toupper (lowered[0]); + gchar* label = g_strdup_printf(_("%s %s"), lowered, type); + g_free (lowered); + return label; +} -- cgit v1.2.3 From 9631736c86733243e55b82b6e3f0ce2bc8489d8c Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Thu, 25 Aug 2011 18:52:42 +0100 Subject: fix the min users bug plus guest label utf8 issue --- src/session-service.c | 2 +- src/user-menu-mgr.c | 48 +++++++++++++++++++++++------------------------- src/users-service-dbus.h | 2 +- 3 files changed, 25 insertions(+), 27 deletions(-) (limited to 'src') diff --git a/src/session-service.c b/src/session-service.c index 753e304..e16832c 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -97,7 +97,7 @@ main (int argc, char ** argv) /* Setting up i18n and gettext. Apparently, we need all of these. */ - setlocale (LC_ALL, ""); + setlocale (LC_ALL, "C"); bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); textdomain (GETTEXT_PACKAGE); diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 64b29c5..1b404d3 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -188,17 +188,29 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) for (u = users; u != NULL; u = g_list_next (u)) { user = u->data; - g_debug ("%p: %s", user, user->real_name); + //g_debug ("%p: %s", user, user->real_name); user->service = self->users_dbus_interface; - + gboolean current_user = g_strcmp0 (user->user_name, g_get_user_name()) == 0; + if (current_user == 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")); + } + } + + if (g_strcmp0(user->user_name, "guest") == 0) { /* Check to see if the guest has sessions and so therefore should get a check mark. */ - if (user->sessions != NULL) { - dbusmenu_menuitem_property_set_bool (guest_mi, - USER_ITEM_PROP_LOGGED_IN, - TRUE); - } + dbusmenu_menuitem_property_set_bool (guest_mi, + USER_ITEM_PROP_LOGGED_IN, + user->sessions != NULL); /* If we're showing user accounts, keep going through the list */ if (self->user_count > MINIMUM_USERS && self->user_count < MAXIMUM_USERS) { continue; @@ -217,7 +229,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 ("%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); @@ -238,28 +250,14 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) USER_ITEM_ICON_DEFAULT); } - gboolean logged_in = g_strcmp0 (user->user_name, g_get_user_name()) == 0; - g_debug ("user name = %s and g user name = %s", + /*g_debug ("user name = %s and g user name = %s", user->user_name, - g_get_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()){ - 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")); - } - } - + current_user); dbusmenu_menuitem_child_append (self->root_item, mi); g_signal_connect (G_OBJECT (mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, diff --git a/src/users-service-dbus.h b/src/users-service-dbus.h index c3f0171..4dbf2a4 100644 --- a/src/users-service-dbus.h +++ b/src/users-service-dbus.h @@ -57,7 +57,7 @@ struct _UserData /* XXX - MAXIMUM_USERS should be set to 7 once we've * got some gdm issues worked out. */ -#define MINIMUM_USERS 1 +#define MINIMUM_USERS 0 #define MAXIMUM_USERS 7 struct _UsersServiceDbus { -- cgit v1.2.3 From 24faed74de6b156999ba0c444e60c52d84d84030 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 25 Aug 2011 13:42:14 -0500 Subject: Change the function to assume nothing about the parameters and always allocate a string --- src/udev-mgr.c | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/udev-mgr.c b/src/udev-mgr.c index cf148e2..edc2262 100644 --- a/src/udev-mgr.c +++ b/src/udev-mgr.c @@ -50,8 +50,9 @@ static void debug_device (UdevMgr* self, UdevMgrDeviceAction action); static gchar* format_device_name (UdevMgr* self, - gchar* brand, - gchar* type); + const gchar* brand, + const gchar* generic, + const gchar* branded) G_GNUC_WARN_UNUSED_RESULT; struct _UdevMgr { GObject parent_instance; @@ -247,11 +248,11 @@ udev_mgr_handle_webcam (UdevMgr* self, manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); if (manufacturer != NULL){ + gchar * label = format_device_name(self, manufacturer, _("Webcam"), _("%s Webcam")); dbusmenu_menuitem_property_set (self->webcam_item, DBUSMENU_MENUITEM_PROP_LABEL, - format_device_name (self, - g_strdup(manufacturer), - "Webcam")); + label); + g_free(label); } g_hash_table_insert (self->webcams_present, @@ -322,11 +323,11 @@ static void udev_mgr_handle_scsi_device (UdevMgr* self, manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); if (manufacturer != NULL){ + gchar * label = format_device_name(self, manufacturer, _("Scanner"), _("%s Scanner")); dbusmenu_menuitem_property_set (self->scanner_item, DBUSMENU_MENUITEM_PROP_LABEL, - format_device_name (self, - g_strdup(manufacturer), - "Scanner")); + label); + g_free(label); } gchar* random_scanner_name = g_strdup_printf("%p--scanner", self); @@ -387,11 +388,11 @@ static void udev_mgr_handle_scsi_device (UdevMgr* self, manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); if (manufacturer != NULL){ + gchar * label = format_device_name(self, manufacturer, _("Scanner"), _("%s Scanner")); dbusmenu_menuitem_property_set (self->scanner_item, DBUSMENU_MENUITEM_PROP_LABEL, - format_device_name (self, - g_strdup(manufacturer), - "Scanner")); + label); + g_free(label); } g_hash_table_insert (self->scanners_present, g_strdup(vendor), @@ -453,12 +454,11 @@ udev_mgr_check_if_usb_device_is_supported (UdevMgr* self, manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); if (manufacturer != NULL){ - + gchar * label = format_device_name(self, manufacturer, _("Scanner"), _("%s Scanner")); dbusmenu_menuitem_property_set (self->scanner_item, DBUSMENU_MENUITEM_PROP_LABEL, - format_device_name (self, - g_strdup(manufacturer), - "Scanner")); + label); + g_free(label); } g_hash_table_insert (self->scanners_present, @@ -513,24 +513,25 @@ UdevMgr* udev_mgr_new (DbusmenuMenuitem* scanner, } static gchar* format_device_name (UdevMgr* self, - gchar* brand, - gchar* type) + const gchar* brand, + const gchar* generic, + const gchar* branded) { // We don't want to accommodate long names if (strlen(brand) > 7) - return type; + return g_strdup(generic); gint i = 0; // If it contains something other than an alphabetic entry ignore it. for(i = 0; i < sizeof(brand); i++){ if ( !g_ascii_isalpha (brand[i]) ) - return type; + return g_strdup(generic); } gchar* lowered = g_ascii_strdown (brand, -1); lowered[0] = g_ascii_toupper (lowered[0]); - gchar* label = g_strdup_printf(_("%s %s"), lowered, type); + gchar* label = g_strdup_printf(branded, lowered); g_free (lowered); return label; } -- cgit v1.2.3 From f659aae78da79fe7f34b1943c51ac84de787f725 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Fri, 26 Aug 2011 11:17:26 +0100 Subject: fixed the translation bug --- src/session-service.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/session-service.c b/src/session-service.c index e16832c..753e304 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -97,7 +97,7 @@ main (int argc, char ** argv) /* Setting up i18n and gettext. Apparently, we need all of these. */ - setlocale (LC_ALL, "C"); + setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); textdomain (GETTEXT_PACKAGE); -- cgit v1.2.3