void tab_completion_append_to_history(GtkWidget *entry, const gchar *path) { TabCompData *td; GtkTreeModel *store; GList *work; gint n = 0; td = g_object_get_data(G_OBJECT(entry), "tab_completion_data"); if (!path) return; if (!td || !td->has_history) return; history_list_add_to_key(td->history_key, path, td->history_levels); gtk_combo_box_set_active(GTK_COMBO_BOX(td->combo), -1); store = gtk_combo_box_get_model(GTK_COMBO_BOX(td->combo)); gtk_list_store_clear(GTK_LIST_STORE(store)); work = history_list_get_by_key(td->history_key); while (work) { gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(td->combo), (gchar *)work->data); work = work->next; n++; } if (td->tab_append_func) { td->tab_append_func(path, td->tab_append_data, n); } }
static void bar_exif_row_toggled_cb(GtkCellRendererToggle *toggle, const gchar *path, gpointer data) { GtkWidget *listview = data; GtkTreeModel *store; GtkTreeIter iter; GtkTreePath *tpath; gchar *name = NULL; gboolean active; store = gtk_tree_view_get_model(GTK_TREE_VIEW(listview)); tpath = gtk_tree_path_new_from_string(path); gtk_tree_model_get_iter(store, &iter, tpath); gtk_tree_path_free(tpath); gtk_tree_model_get(store, &iter, EXIF_ADVCOL_ENABLED, &active, EXIF_ADVCOL_NAME, &name, -1); active = (!active); if (active && g_list_length(history_list_get_by_key("exif_extras")) >= EXIF_BAR_CUSTOM_COUNT) { active = FALSE; } gtk_list_store_set(GTK_LIST_STORE(store), &iter, EXIF_ADVCOL_ENABLED, active, -1); if (active) { history_list_add_to_key("exif_extras", name, EXIF_BAR_CUSTOM_COUNT); } else { history_list_item_change("exif_extras", name, NULL); } g_free(name); }