pidgin/plugins/disco/gtkdisco.c

changeset 40534
8dad2981fb86
parent 40502
875489636847
child 40700
4c3ee00e6107
equal deleted inserted replaced
40533:b1921b17b683 40534:8dad2981fb86
143 } 143 }
144 144
145 static void 145 static void
146 dialog_select_account_cb(GtkWidget *chooser, PidginDiscoDialog *dialog) 146 dialog_select_account_cb(GtkWidget *chooser, PidginDiscoDialog *dialog)
147 { 147 {
148 PurpleAccount *account = pidgin_account_chooser_get_selected(chooser); 148 PurpleAccount *account = pidgin_account_chooser_get_selected(PIDGIN_ACCOUNT_CHOOSER(chooser));
149 gboolean change = (account != dialog->account); 149 gboolean change = (account != dialog->account);
150 dialog->account = account; 150 dialog->account = account;
151 gtk_widget_set_sensitive(dialog->browse_button, account != NULL); 151 gtk_widget_set_sensitive(dialog->browse_button, account != NULL);
152 152
153 if (change) { 153 if (change) {
412 static void close_button_cb(GtkButton *button, PidginDiscoDialog *dialog) 412 static void close_button_cb(GtkButton *button, PidginDiscoDialog *dialog)
413 { 413 {
414 gtk_widget_destroy(GTK_WIDGET(dialog)); 414 gtk_widget_destroy(GTK_WIDGET(dialog));
415 } 415 }
416 416
417 static gboolean account_filter_func(PurpleAccount *account)
418 {
419 return purple_strequal(purple_account_get_protocol_id(account), XMPP_PROTOCOL_ID);
420 }
421
422 static gboolean 417 static gboolean
423 disco_paint_tooltip(GtkWidget *tipwindow, cairo_t *cr, gpointer data) 418 disco_paint_tooltip(GtkWidget *tipwindow, cairo_t *cr, gpointer data)
424 { 419 {
425 PangoLayout *layout = g_object_get_data(G_OBJECT(tipwindow), "tooltip-plugin"); 420 PangoLayout *layout = g_object_get_data(G_OBJECT(tipwindow), "tooltip-plugin");
426 GtkStyleContext *context = gtk_widget_get_style_context(tipwindow); 421 GtkStyleContext *context = gtk_widget_get_style_context(tipwindow);
518 for (node = dialogs; node; node = node->next) { 513 for (node = dialogs; node; node = node->next) {
519 PidginDiscoDialog *dialog = node->data; 514 PidginDiscoDialog *dialog = node->data;
520 PidginDiscoList *list = dialog->discolist; 515 PidginDiscoList *list = dialog->discolist;
521 516
522 if (list && list->pc == pc) { 517 if (list && list->pc == pc) {
518 PurpleAccount *account = NULL;
519
523 if (list->in_progress) 520 if (list->in_progress)
524 pidgin_disco_list_set_in_progress(list, FALSE); 521 pidgin_disco_list_set_in_progress(list, FALSE);
525 522
526 gtk_tree_store_clear(dialog->model); 523 gtk_tree_store_clear(dialog->model);
527 524
528 pidgin_disco_list_unref(list); 525 pidgin_disco_list_unref(list);
529 dialog->discolist = NULL; 526 dialog->discolist = NULL;
530 527
528 account = pidgin_account_chooser_get_selected(
529 PIDGIN_ACCOUNT_CHOOSER(dialog->account_chooser));
530
531 gtk_widget_set_sensitive( 531 gtk_widget_set_sensitive(
532 dialog->browse_button, 532 dialog->browse_button,
533 pidgin_account_chooser_get_selected( 533 account != NULL);
534 dialog->account_chooser) != NULL);
535 534
536 gtk_widget_set_sensitive(dialog->register_button, FALSE); 535 gtk_widget_set_sensitive(dialog->register_button, FALSE);
537 gtk_widget_set_sensitive(dialog->add_button, FALSE); 536 gtk_widget_set_sensitive(dialog->add_button, FALSE);
538 } 537 }
539 } 538 }
607 dialogs = g_list_prepend(dialogs, dialog); 606 dialogs = g_list_prepend(dialogs, dialog);
608 607
609 gtk_widget_init_template(GTK_WIDGET(dialog)); 608 gtk_widget_init_template(GTK_WIDGET(dialog));
610 609
611 /* accounts dropdown list */ 610 /* accounts dropdown list */
612 pidgin_account_chooser_set_filter_func( 611 dialog->account = pidgin_account_chooser_get_selected(
613 PIDGIN_ACCOUNT_CHOOSER(dialog->account_chooser), 612 PIDGIN_ACCOUNT_CHOOSER(dialog->account_chooser));
614 account_filter_func);
615 dialog->account =
616 pidgin_account_chooser_get_selected(dialog->account_chooser);
617 613
618 /* browse button */ 614 /* browse button */
619 gtk_widget_set_sensitive(dialog->browse_button, dialog->account != NULL); 615 gtk_widget_set_sensitive(dialog->browse_button, dialog->account != NULL);
620 616
621 pidgin_tooltip_setup_for_treeview(GTK_WIDGET(dialog->tree), dialog, 617 pidgin_tooltip_setup_for_treeview(GTK_WIDGET(dialog->tree), dialog,

mercurial