pidgin/gtkrequest.c

changeset 41910
4f86a754ed7b
parent 41864
6f490dec468f
child 41943
e41631a5f894
equal deleted inserted replaced
41909:55aaac83f315 41910:4f86a754ed7b
1396 } 1396 }
1397 1397
1398 static GtkWidget * 1398 static GtkWidget *
1399 create_account_field(PurpleRequestField *field) 1399 create_account_field(PurpleRequestField *field)
1400 { 1400 {
1401 GtkWidget *widget; 1401 GtkWidget *widget = NULL;
1402 PurpleAccount *account; 1402 PurpleAccount *account = NULL;
1403 PurpleFilterAccountFunc account_filter = NULL;
1403 GtkFilter *filter = NULL; 1404 GtkFilter *filter = NULL;
1404 1405
1405 widget = pidgin_account_chooser_new(); 1406 widget = pidgin_account_chooser_new();
1406 account = purple_request_field_account_get_default_value(field); 1407 account = purple_request_field_account_get_default_value(field);
1407 1408
1408 filter = GTK_FILTER(gtk_custom_filter_new( 1409 account_filter = purple_request_field_account_get_filter(field);
1409 field_custom_account_filter_cb, 1410 if(account_filter != NULL) {
1410 purple_request_field_account_get_filter(field), 1411 GtkCustomFilter *custom_filter = NULL;
1411 NULL)); 1412
1413 custom_filter = gtk_custom_filter_new(field_custom_account_filter_cb,
1414 account_filter, NULL);
1415
1416 filter = GTK_FILTER(custom_filter);
1417 }
1412 1418
1413 if(!purple_request_field_account_get_show_all(field)) { 1419 if(!purple_request_field_account_get_show_all(field)) {
1414 GtkEveryFilter *every = NULL; 1420 GtkEveryFilter *every = NULL;
1415 1421
1416 every = gtk_every_filter_new(); 1422 every = gtk_every_filter_new();
1417 gtk_multi_filter_append(GTK_MULTI_FILTER(every), filter); 1423
1424 if(GTK_IS_FILTER(filter)) {
1425 gtk_multi_filter_append(GTK_MULTI_FILTER(every), filter);
1426 }
1418 1427
1419 filter = pidgin_account_filter_connected_new(); 1428 filter = pidgin_account_filter_connected_new();
1420 gtk_multi_filter_append(GTK_MULTI_FILTER(every), filter); 1429 gtk_multi_filter_append(GTK_MULTI_FILTER(every), filter);
1421 1430
1422 filter = GTK_FILTER(every); 1431 filter = GTK_FILTER(every);
1423 } 1432 }
1424 1433
1425 pidgin_account_chooser_set_selected(PIDGIN_ACCOUNT_CHOOSER(widget), 1434 pidgin_account_chooser_set_selected(PIDGIN_ACCOUNT_CHOOSER(widget),
1426 account); 1435 account);
1427 pidgin_account_chooser_set_filter(PIDGIN_ACCOUNT_CHOOSER(widget), filter); 1436
1428 g_object_unref(filter); 1437 if(GTK_IS_FILTER(filter)) {
1438 pidgin_account_chooser_set_filter(PIDGIN_ACCOUNT_CHOOSER(widget), filter);
1439 g_object_unref(filter);
1440 }
1429 1441
1430 g_signal_connect(widget, "notify::account", G_CALLBACK(field_account_cb), 1442 g_signal_connect(widget, "notify::account", G_CALLBACK(field_account_cb),
1431 field); 1443 field);
1432 1444
1433 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field)); 1445 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));

mercurial