Hello... This code works fine for some time.... but crashes anytime with the following log....
Gtk-CRITICAL **: gtk_list_store_get_value: assertion `VALID_ITER (iter, list_store)' failed GLib-GObject-CRITICAL **: g_object_set_property: assertion `G_IS_VALUE (value)' failed GLib-GObject-CRITICAL **: g_value_unset: assertion `G_IS_VALUE (value)' failed I am trying to reuse the same GtkTreeView.... code: GtkListStore* list_store; GtkTreeModel* model; GObject* selection; GtkTreeViewColumn* column; GtkCellRenderer* renderer; GtkImage* icon=NULL ; GtkTreeIter iter; bt_int32_t i ; bt_app_ui_state_t *this = (bt_app_ui_state_t*)bt_app_ui_get_state(); if (!GTK_IS_WIDGET(this->scrolled_window_ftp)) { this->scrolled_window_ftp = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(this->scrolled_window_ftp), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); list_store = gtk_list_store_new (4, GDK_TYPE_PIXBUF, G_TYPE_STRING,G_TYPE_STRING,G_TYPE_INT); model = GTK_TREE_MODEL(list_store); this->ftp_menu_tree =gtk_tree_view_new_with_model (GTK_TREE_MODEL (list_store)); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(this->ftp_menu_tree), FALSE); gtk_container_add (GTK_CONTAINER (this->scrolled_window_ftp),GTK_WIDGET(this->ftp_menu_tree )); selection = G_OBJECT (gtk_tree_view_get_selection (GTK_TREE_VIEW (this->ftp_menu_tree))); gtk_tree_selection_set_mode (GTK_TREE_SELECTION (selection), GTK_SELECTION_SINGLE); column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_pixbuf_new(); gtk_cell_renderer_set_fixed_size(renderer,66,70); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_set_attributes(column, renderer,"pixbuf", 0,NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(this->ftp_menu_tree), column); column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_attributes(column, renderer,"text", 1,NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(this->ftp_menu_tree), column); column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_attributes(column, renderer,"text", 2,NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(this->ftp_menu_tree), column); column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_attributes(column, renderer,"text", 3,NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(this->ftp_menu_tree), column); gtk_tree_view_column_set_visible(column, FALSE); gtk_tree_view_insert_column (GTK_TREE_VIEW(this->ftp_menu_tree), column, -1); gtk_signal_connect(GTK_OBJECT(this->ftp_menu_tree), "clicked",GTK_SIGNAL_FUNC(__bt_app_ui_ftp_browse_list_click_cb),view); gtk_container_add(GTK_CONTAINER(this->ftp_browse_list_form),this->scrolled_window_ftp); bt_log_print(BT_APP,"One time............ \n"); } else { bt_log_print(BT_APP,"Second Time onwards............ \n"); if(gtk_tree_view_clear_all_item(GTK_TREE_VIEW(this->ftp_menu_tree))) bt_log_print(BT_APP,"Ftp Tree menu cleared............ \n"); else bt_log_print(BT_APP,"Ftp Tree menu NOT cleared............. \n"); } bt_log_print(BT_APP,"Folder Count %d \n",ftp_browse_info->folder_count + ftp_browse_info->file_count); for (i = 0; i < (ftp_browse_info->folder_count + ftp_browse_info->file_count); i++) { if (i < ftp_browse_info->folder_count) { if(NULL!=icon) { gtk_widget_destroy(GTK_WIDGET(icon)); icon=NULL; } icon = GTK_IMAGE(bt_app_ui_img_load (IDB_BT_FOLDER)); bt_log_print(BT_APP,"Folder Image set \n"); model = gtk_tree_view_get_model (GTK_TREE_VIEW(this->ftp_menu_tree)); list_store = GTK_LIST_STORE(model); gtk_list_store_append (list_store, &iter); gtk_list_store_set (list_store, &iter, 0, gtk_image_get_pixbuf(icon), 1,ftp_browse_info->folder_list[i].attribute,2,"",3,i, -1); bt_log_print(BT_APP,"Folder [%s] set \n",ftp_browse_info->folder_list[i].attribute); } else { if(NULL!=icon) { gtk_widget_destroy(GTK_WIDGET(icon)); icon=NULL; } icon = GTK_IMAGE(bt_app_ui_img_load (IDB_BT_FILE)); bt_log_print(BT_APP,"File Image set \n"); model = gtk_tree_view_get_model (GTK_TREE_VIEW(this->ftp_menu_tree)); list_store = GTK_LIST_STORE(model); gtk_list_store_append (list_store, &iter); size =(ftp_browse_info->file_list[i - ftp_browse_info->folder_count].size); if(size>999.0) { bt_log_print(BT_APP,"File size Bytes"); size=size/1024; if(size>999.0) { bt_log_print(BT_APP,"File size MB"); size=size/1024.0; sprintf(file_size,"%0.2f MB",size); bt_log_print("size=[%s]",file_size); } else { bt_log_print(BT_APP,"File size KB"); sprintf(file_size,"%0.2f KB",size); bt_log_print("size=[%s]",file_size); } } else { sprintf(file_size,"%d",(ftp_browse_info->file_list[i - ftp_browse_info->folder_count].size)); bt_log_print("size=[%s]",file_size); } gtk_list_store_set (list_store, &iter, 0, gtk_image_get_pixbuf(icon), 1,ftp_browse_info->file_list[i - ftp_browse_info->folder_count].attribute,2,file_size,3,i, -1); bt_log_print(BT_APP,"Folder [%s] set \n",ftp_browse_info->file_list[i - ftp_browse_info->folder_count].attribute); } } bt_log_print(BT_APP,"Updating list complete 1\n"); bt_log_print(BT_APP,"Updating list complete 2\n"); gtk_widget_show(GTK_WIDGET(this->ftp_menu_tree)); bt_log_print(BT_APP,"Updating list complete 3\n"); bt_log_print(BT_APP,"Updating list complete 4\n"); gtk_widget_show(this->scrolled_window_ftp); bt_log_print(BT_APP,"Updating list complete 5\n"); return TRUE; _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list