return name;
}
+gchar *keyword_get_mark(GtkTreeModel *keyword_tree, GtkTreeIter *iter)
+{
+ gchar *mark_str;
+
+ gtk_tree_model_get(keyword_tree, iter, KEYWORD_COLUMN_MARK, &mark_str, -1);
+ return mark_str;
+}
+
gchar *keyword_get_casefold(GtkTreeModel *keyword_tree, GtkTreeIter *iter)
{
gchar *casefold;
gtk_tree_model_foreach(GTK_TREE_MODEL(keyword_tree), keyword_show_all_in_cb, id);
}
+static gboolean keyword_revert_hidden_in_cb(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data)
+{
+ if (keyword_is_hidden_in(GTK_TREE_MODEL(keyword_tree), iter, data))
+ {
+ keyword_show_in(GTK_TREE_STORE(model), iter, data);
+ }
+ return FALSE;
+}
+
+void keyword_revert_hidden_in(GtkTreeStore *keyword_tree, gpointer id)
+{
+ gtk_tree_model_foreach(GTK_TREE_MODEL(keyword_tree), keyword_revert_hidden_in_cb, id);
+}
+
static void keyword_hide_unset_in_recursive(GtkTreeStore *keyword_tree, GtkTreeIter *iter_ptr, gpointer id, GList *keywords)
{
GtkTreeIter iter = *iter_ptr;
{
GtkTreeIter children;
gchar *name;
+ gchar *mark_str;
WRITE_NL(); WRITE_STRING("<keyword ");
name = keyword_get_name(keyword_tree, &iter);
write_char_option(outstr, indent, "name", name);
g_free(name);
write_bool_option(outstr, indent, "kw", keyword_get_is_keyword(keyword_tree, &iter));
+ mark_str = keyword_get_mark(keyword_tree, &iter);
+ if (mark_str && mark_str[0])
+ {
+ write_char_option(outstr, indent, "mark", mark_str);
+ }
+
if (gtk_tree_model_iter_children(keyword_tree, &children, &iter))
{
WRITE_STRING(">");
{
gchar *name = NULL;
gboolean is_kw = TRUE;
+ gchar *mark_str = NULL;
while (*attribute_names)
{
if (READ_CHAR_FULL("name", name)) continue;
if (READ_BOOL_FULL("kw", is_kw)) continue;
+ if (READ_CHAR_FULL("mark", mark_str)) continue;
log_printf("unknown attribute %s = %s\n", option, value);
}
gtk_tree_store_append(keyword_tree, &iter, parent);
}
keyword_set(keyword_tree, &iter, name, is_kw);
+
+ if (mark_str)
+ {
+ meta_data_connect_mark_with_keyword(GTK_TREE_MODEL(keyword_tree),
+ &iter, (gint)atoi(mark_str) - 1);
+ }
+
g_free(name);
return gtk_tree_iter_copy(&iter);
}