comparison src/gtkroomlist.c @ 11490:1ae1454204cd

[gaim-migrate @ 13733] make the type-ahead/ctrl-f searching in the buddy list case insensitive, and add type-ahead/ctrl-f searching to the roomlist (room names only) committer: Tailor Script <tailor@pidgin.im>
author Stu Tomlinson <stu@nosnilmot.com>
date Sat, 10 Sep 2005 18:21:27 +0000
parents a511b77a368b
children 255e6912607b
comparison
equal deleted inserted replaced
11489:63e339161d83 11490:1ae1454204cd
494 return -1; 494 return -1;
495 else 495 else
496 return 1; 496 return 1;
497 } 497 }
498 498
499 static gboolean
500 _search_func(GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data)
501 {
502 gboolean result;
503 gchar *name, *fold, *fkey;
504
505 gtk_tree_model_get(model, iter, column, &name, -1);
506 fold = g_utf8_casefold(name, -1);
507 fkey = g_utf8_casefold(key, -1);
508
509 result = (g_strstr_len(fold, strlen(fold), fkey) == NULL);
510
511 g_free(fold);
512 g_free(fkey);
513 g_free(name);
514
515 return result;
516 }
517
499 static void gaim_gtk_roomlist_set_fields(GaimRoomlist *list, GList *fields) 518 static void gaim_gtk_roomlist_set_fields(GaimRoomlist *list, GList *fields)
500 { 519 {
501 GaimGtkRoomlist *grl = list->ui_data; 520 GaimGtkRoomlist *grl = list->ui_data;
502 gint columns = NUM_OF_COLUMNS; 521 gint columns = NUM_OF_COLUMNS;
503 int j; 522 int j;
583 } 602 }
584 603
585 g_signal_connect(G_OBJECT(tree), "button-press-event", G_CALLBACK(room_click_cb), list); 604 g_signal_connect(G_OBJECT(tree), "button-press-event", G_CALLBACK(room_click_cb), list);
586 g_signal_connect(G_OBJECT(tree), "row-expanded", G_CALLBACK(row_expanded_cb), list); 605 g_signal_connect(G_OBJECT(tree), "row-expanded", G_CALLBACK(row_expanded_cb), list);
587 g_signal_connect(G_OBJECT(tree), "row-activated", G_CALLBACK(row_activated_cb), list); 606 g_signal_connect(G_OBJECT(tree), "row-activated", G_CALLBACK(row_activated_cb), list);
607
608 /* Enable CTRL+F searching */
609 gtk_tree_view_set_search_column(GTK_TREE_VIEW(tree), NAME_COLUMN);
610 gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(tree), _search_func, NULL, NULL);
611
588 } 612 }
589 613
590 static gboolean gaim_gtk_progress_bar_pulse(gpointer data) 614 static gboolean gaim_gtk_progress_bar_pulse(gpointer data)
591 { 615 {
592 GaimRoomlist *list = data; 616 GaimRoomlist *list = data;