Tree Iter?
- From: Thijs Assies <thijs_a gmx net>
- To: gtk add devel <gtk-app-devel-list gnome org>
- Subject: Tree Iter?
- Date: Tue, 21 Sep 2004 16:59:48 +0200
Hi, i am working on a program en i have a problem:
I have a GtkTree wich contains a few rows with names of forums,
topics of these forums should be added to the tree as childs of the
forum. So when I have a forum called "Cars Online "(CO), with a topic
named "Why is my car broken?",
CO
Why is my car broken?
Should appear in the Tree (with the topic as a child of the forum).
When adding a topic it should be added to the correct Forum, so i put
all forums in a GList with Iters to them to be able to create a new
child of that Forum, But i got the following error:
(test:1544): Gtk-CRITICAL **: file gtktreestore.c: line 1381
(gtk_tree_store_append): assertion `VALID_ITER (parent, tree_store)'
failed
Somehow the Iter isnt valid after being stored in a GList.
how can i solve this?
Code:
GList *frms, *tpx; /* the glists to contain the structs,
they are set to NULL in a init function */
typedef struct _forum {
gchar *title;
GtkTreeIter iter; /* the structs contain a lot more info but
that doesnt matter for this problem */
} forum;
typedef struct _topic {
gchar *title;
gchar *num_replies;
GtkTreeIter iter;
} topic;
/* This function works well, the forum is added to the Tree
* Just like it should, so far no problems */
void
add_forum_to_tree(gchar *frmname) {
forum *temp = g_new(forum,1); /* create a new forum struct*/
temp->title = g_strdup(frmname);
gtk_tree_store_append(store, &(temp->iter), NULL); /*append iter */
gtk_tree_store_set(store, &(temp->iter), NAME_COLLUMN, temp->title, -1);
frms = g_list_add(frms,temp); /* add the forum to the GList */
}
void
add_topic_to_tree(gchar *frmname, gchar *title, gchar *replies) {
GList *browse = NULL;
forum *frm_temp;
topic *temp = g_new (topic, 1);
temp->title = g_strdup(title);
temp->replies = g_strdup(replies);
for(browse=frms; browse; browse=frms->next) { /* browse frms GList*/
frm_temp = (forum *)browse->data;
if(!strcmp(frm_temp->title,frmname)) {
/* it works so far, when i add prinf("%s\n",frm_temp->title);
* it displays the title, but from here it goes wrong */
gtk_tree_store_append(store, &(frm_temp->iter), &(temp->iter));
gtk_tree_store_set(store, &(temp->iter), NAME_COLLUMN, temp->title,-1);
/* this didnt work, somehow frm_temp->iter isnt useable after it has
been in the GList. */
tpx = g_list_append(tpx,temp);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]