void keyword_delete(GtkTreeStore *keyword_tree, GtkTreeIter *iter_ptr) { GList *list; GtkTreeIter child; while (gtk_tree_model_iter_children(GTK_TREE_MODEL(keyword_tree), &child, iter_ptr)) { keyword_delete(keyword_tree, &child); } meta_data_connect_mark_with_keyword(GTK_TREE_MODEL(keyword_tree), iter_ptr, -1); gtk_tree_model_get(GTK_TREE_MODEL(keyword_tree), iter_ptr, KEYWORD_COLUMN_HIDE_IN, &list, -1); g_list_free(list); gtk_tree_store_remove(keyword_tree, iter_ptr); }
static void bar_pane_keywords_delete_cb(GtkWidget *menu_widget, gpointer data) { PaneKeywordsData *pkd = data; GtkTreeModel *model; GtkTreeIter iter; GtkTreeModel *keyword_tree; GtkTreeIter kw_iter; if (!pkd->click_tpath) return; model = gtk_tree_view_get_model(GTK_TREE_VIEW(pkd->keyword_treeview)); keyword_tree = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(model)); if (!gtk_tree_model_get_iter(model, &iter, pkd->click_tpath)) return; gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(model), &kw_iter, &iter); keyword_delete(GTK_TREE_STORE(keyword_tree), &kw_iter); }
void keyword_move_recursive(GtkTreeStore *keyword_tree, GtkTreeIter *to, GtkTreeIter *from) { keyword_copy_recursive(keyword_tree, to, from); keyword_delete(keyword_tree, from); }