comparison pidgin/gtkblist.c @ 32615:20dfcc9aa471

Remove deprecated PidginBuddyList.connection_errors.
author andrew.victor@mxit.com
date Thu, 15 Sep 2011 22:22:11 +0000
parents 694382c3d150
children 0f94ec89f0bc 78fae2fc38d5
comparison
equal deleted inserted replaced
32614:694382c3d150 32615:20dfcc9aa471
4761 static void pidgin_blist_new_list(PurpleBuddyList *blist) 4761 static void pidgin_blist_new_list(PurpleBuddyList *blist)
4762 { 4762 {
4763 PidginBuddyList *gtkblist; 4763 PidginBuddyList *gtkblist;
4764 4764
4765 gtkblist = g_new0(PidginBuddyList, 1); 4765 gtkblist = g_new0(PidginBuddyList, 1);
4766 gtkblist->connection_errors = g_hash_table_new_full(g_direct_hash,
4767 g_direct_equal, NULL, g_free);
4768 gtkblist->priv = g_new0(PidginBuddyListPrivate, 1); 4766 gtkblist->priv = g_new0(PidginBuddyListPrivate, 1);
4769 4767
4770 blist->ui_data = gtkblist; 4768 blist->ui_data = gtkblist;
4771 } 4769 }
4772 4770
5076 5074
5077 static void 5075 static void
5078 generic_error_destroy_cb(GtkObject *dialog, 5076 generic_error_destroy_cb(GtkObject *dialog,
5079 PurpleAccount *account) 5077 PurpleAccount *account)
5080 { 5078 {
5081 g_hash_table_remove(gtkblist->connection_errors, account);
5082 /* If the error dialog is being destroyed in response to the 5079 /* If the error dialog is being destroyed in response to the
5083 * account-error-changed signal, we don't want to clear the current 5080 * account-error-changed signal, we don't want to clear the current
5084 * error. 5081 * error.
5085 */ 5082 */
5086 if (g_object_get_data(G_OBJECT(dialog), DO_NOT_CLEAR_ERROR) == NULL) 5083 if (g_object_get_data(G_OBJECT(dialog), DO_NOT_CLEAR_ERROR) == NULL)
5334 gtk_widget_set_tooltip_text(label, description); 5331 gtk_widget_set_tooltip_text(label, description);
5335 #endif 5332 #endif
5336 } 5333 }
5337 5334
5338 5335
5339 /**
5340 * Was used by the connection API to tell the blist if an account has a
5341 * connection error or no longer has a connection error, but the blist now does
5342 * this itself with the @ref account-error-changed signal.
5343 *
5344 * @param account The account that either has a connection error
5345 * or no longer has a connection error.
5346 * @param message The connection error message, or NULL if this
5347 * account is no longer in an error state.
5348 */
5349 static void
5350 pidgin_blist_update_account_error_state(PurpleAccount *account, const char *text)
5351 {
5352 /* connection_errors isn't actually used anywhere; it's just kept in
5353 * sync with reality in case a plugin uses it.
5354 */
5355 if (text == NULL)
5356 g_hash_table_remove(gtkblist->connection_errors, account);
5357 else
5358 g_hash_table_insert(gtkblist->connection_errors, account, g_strdup(text));
5359 }
5360
5361 /* Call appropriate error notification code based on error types */ 5336 /* Call appropriate error notification code based on error types */
5362 static void 5337 static void
5363 update_account_error_state(PurpleAccount *account, 5338 update_account_error_state(PurpleAccount *account,
5364 const PurpleConnectionErrorInfo *old, 5339 const PurpleConnectionErrorInfo *old,
5365 const PurpleConnectionErrorInfo *new, 5340 const PurpleConnectionErrorInfo *new,
5368 gboolean descriptions_differ; 5343 gboolean descriptions_differ;
5369 const char *desc; 5344 const char *desc;
5370 5345
5371 if (old == NULL && new == NULL) 5346 if (old == NULL && new == NULL)
5372 return; 5347 return;
5373
5374 /* For backwards compatibility: */
5375 if (new)
5376 pidgin_blist_update_account_error_state(account, new->description);
5377 else
5378 pidgin_blist_update_account_error_state(account, NULL);
5379 5348
5380 if (new != NULL) 5349 if (new != NULL)
5381 pidgin_blist_select_notebook_page(gtkblist); 5350 pidgin_blist_select_notebook_page(gtkblist);
5382 5351
5383 if (old != NULL && new == NULL) { 5352 if (old != NULL && new == NULL) {
6882 if (gtkblist->timeout) 6851 if (gtkblist->timeout)
6883 g_source_remove(gtkblist->timeout); 6852 g_source_remove(gtkblist->timeout);
6884 if (gtkblist->drag_timeout) 6853 if (gtkblist->drag_timeout)
6885 g_source_remove(gtkblist->drag_timeout); 6854 g_source_remove(gtkblist->drag_timeout);
6886 6855
6887 g_hash_table_destroy(gtkblist->connection_errors);
6888 gtkblist->refresh_timer = 0; 6856 gtkblist->refresh_timer = 0;
6889 gtkblist->timeout = 0; 6857 gtkblist->timeout = 0;
6890 gtkblist->drag_timeout = 0; 6858 gtkblist->drag_timeout = 0;
6891 gtkblist->window = gtkblist->vbox = gtkblist->treeview = NULL; 6859 gtkblist->window = gtkblist->vbox = gtkblist->treeview = NULL;
6892 g_object_unref(G_OBJECT(gtkblist->treemodel)); 6860 g_object_unref(G_OBJECT(gtkblist->treemodel));