static void collection_save_cb(FileDialog *fd, gpointer data) { CollectionData *cd = data; const gchar *path; path = fd->dest_path; /* FIXME: utf8 */ if (!file_extension_match(path, GQ_COLLECTION_EXT)) { gchar *buf; buf = g_strconcat(path, GQ_COLLECTION_EXT, NULL); gtk_entry_set_text(GTK_ENTRY(fd->entry), buf); g_free(buf); } collection_save_confirmed(fd, FALSE, cd); }
void view_window_new(FileData *fd) { GList *list; if (file_extension_match(fd->path, GQ_COLLECTION_EXT)) { ViewWindow *vw; CollectionData *cd; CollectInfo *info; cd = collection_new(fd->path); if (collection_load(cd, fd->path, COLLECTION_LOAD_NONE)) { info = collection_get_first(cd); } else { collection_unref(cd); cd = NULL; info = NULL; } vw = real_view_window_new(NULL, NULL, cd, info); if (vw && cd) { g_signal_connect(G_OBJECT(vw->window), "destroy", G_CALLBACK(view_window_collection_unref_cb), cd); } } else if (isdir(fd->path) && filelist_read(fd, &list, NULL)) { list = filelist_sort_path(list); list = filelist_filter(list, FALSE); real_view_window_new(NULL, list, NULL, NULL); filelist_free(list); } else { real_view_window_new(fd, NULL, NULL, NULL); } }
static void collection_window_update_title(CollectWindow *cw) { gboolean free_name = FALSE; gchar *name; gchar *buf; if (!cw) return; if (file_extension_match(cw->cd->name, GQ_COLLECTION_EXT)) { name = remove_extension_from_path(cw->cd->name); free_name = TRUE; } else { name = cw->cd->name; } buf = g_strdup_printf(_("%s - Collection - %s"), name, GQ_APPNAME); if (free_name) g_free(name); gtk_window_set_title(GTK_WINDOW(cw->window), buf); g_free(buf); }