From 79feff41d30571ca772d450be6613dbdcf655164 Mon Sep 17 00:00:00 2001 From: Frederic Peters Date: Fri, 30 Jan 2009 10:44:08 +0000 Subject: disable chat history menu item when there is no account. (bug #562554) svn path=/trunk/; revision=2265 --- src/empathy-main-window.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src') diff --git a/src/empathy-main-window.c b/src/empathy-main-window.c index cafa5f0ae..3bf94a46d 100644 --- a/src/empathy-main-window.c +++ b/src/empathy-main-window.c @@ -99,6 +99,7 @@ typedef struct { GtkWidget *room_join_favorites; GtkWidget *edit_context; GtkWidget *edit_context_separator; + GtkWidget *chat_history_menu_item; guint size_timeout_id; GHashTable *errors; @@ -179,6 +180,9 @@ static void main_window_notify_compact_contact_list_cb (EmpathyConf static void main_window_notify_sort_criterium_cb (EmpathyConf *conf, const gchar *key, EmpathyMainWindow *window); +static void main_window_account_created_or_deleted_cb (EmpathyAccountManager *manager, + McAccount *account, + EmpathyMainWindow *window); static void main_window_flash_stop (EmpathyMainWindow *window) @@ -524,6 +528,7 @@ empathy_main_window_show (void) "edit_context_separator", &window->edit_context_separator, "presence_toolbar", &window->presence_toolbar, "roster_scrolledwindow", &sw, + "chat_history", &window->chat_history_menu_item, NULL); g_free (filename); @@ -650,6 +655,14 @@ empathy_main_window_show (void) G_CALLBACK (main_window_event_removed_cb), window); + g_signal_connect (window->account_manager, "account-created", + G_CALLBACK (main_window_account_created_or_deleted_cb), + window); + g_signal_connect (window->account_manager, "account-deleted", + G_CALLBACK (main_window_account_created_or_deleted_cb), + window); + main_window_account_created_or_deleted_cb (window->account_manager, NULL, window); + l = empathy_event_manager_get_events (window->event_manager); while (l) { main_window_event_added_cb (window->event_manager, @@ -1393,3 +1406,11 @@ main_window_notify_sort_criterium_cb (EmpathyConf *conf, } } +static void +main_window_account_created_or_deleted_cb (EmpathyAccountManager *manager, + McAccount *account, + EmpathyMainWindow *window) +{ + gtk_widget_set_sensitive (GTK_WIDGET (window->chat_history_menu_item), + empathy_account_manager_get_count (manager) > 0); +} -- cgit v1.2.3