Mercurial > pidgin
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; |