Recherche de texte dans un TreeView
Bonjour @ tous!
Je débute en GTK et je cherche un moyen de chercher du texte dans un TreeView.
Mon TreeView possède deux colonnes et le texte à rechercher est dans la première.
J'ai déjà essayé d'utiliser les fonctions
Code:
1 2 3 4 5 6 7
|
gboolean gtk_text_iter_forward_search (const GtkTextIter *iter,
const gchar *str,
GtkTextSearchFlags flags,
GtkTextIter *match_start,
GtkTextIter *match_end,
const GtkTextIter *limit); |
mais je ne sais pas trop comment renseigner tous les champs et donc ça plante à l'execution.
voici ce que j'ai fait:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
GtkListStore *model;
GtkTreeIter iter;
GtkTreeIter iterLast;
GtkTreeIter iterFirst;
// recupere le model
model = gtk_tree_view_get_model (GTK_TREE_VIEW(MonTreeView));
[...]
// cherche le permier iter
gtk_tree_model_get_iter_first(GTK_LIST_STORE (model), &iterFirst);
// cherche mon text
gtk_text_iter_forward_search(&iterFirst, "MaChaine", GTK_TEXT_SEARCH_TEXT_ONLY, &iter, &iterLast, NULL )) |
Pour iterLast, je ne sais pas trop comment l'initialiser, ni comment récupérer le dernier iter.
(au passage, iter ça veut dire quoi exactement?)
Merci!
Damien.
Recherche de texte dans un TreeView
Bon alors je me suis mélangé les pinceaux entre les GtkTextView et les GtkTreeView, c'est donc normal que ça plante.
Comme j'ai pas trouvé de fonction pour rechercher un text dans mon TreeView, j'ai fait une recherche à la mano et voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
enum {
ID_COLUMN,
INFO_COLUMN,
NB_COLUMNS
};
gboolean ValidList, TextFound;
GtkListStore *model;
GtkTreeIter iter;
gchar *sName;
model = gtk_tree_view_get_model (MonTreeView);
ValidList = gtk_tree_model_get_iter_first(GTK_LIST_STORE (model), &iter);
TextFound = FALSE;
while (ValidList && (!TextFound))
{
gtk_tree_model_get (GTK_LIST_STORE (model), &iter,
ID_COLUMN, &sTemp,
-1);
if (strcmp(FontNumber, sTemp) == NULL)
TextFound = TRUE;
else
{
TextFound = FALSE;
ValidList = gtk_tree_model_iter_next (GTK_LIST_STORE (model), &iter);
}
g_free(sTemp);
} |
Merci @ tous!
Damien.