From 79815fc31d1543e70791992a66f2e70b6413cb74 Mon Sep 17 00:00:00 2001 From: "Gergely POLONKAI (W00d5t0ck)" Date: Tue, 17 Sep 2013 14:46:09 +0200 Subject: [PATCH] Created the Open dialog --- src/ag-app.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/ag-app.c b/src/ag-app.c index 5846284..7201c98 100644 --- a/src/ag-app.c +++ b/src/ag-app.c @@ -3,6 +3,7 @@ #include "ag-app.h" #include "ag-window.h" #include "config.h" +#include "astrognome.h" struct _AgAppPrivate { }; @@ -106,6 +107,49 @@ quit_cb(GSimpleAction *action, GVariant *parameter, gpointer user_data) static void open_cb(GSimpleAction *action, GVariant *parameter, gpointer user_data) { + gint response; + GtkWidget *fs; + GSList *filenames = NULL; + + fs = gtk_file_chooser_dialog_new(_("Select charts"), + NULL, + GTK_FILE_CHOOSER_ACTION_OPEN, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, + NULL); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fs), filter_all); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fs), filter_chart); + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(fs), filter_chart); + gtk_dialog_set_default_response(GTK_DIALOG(fs), GTK_RESPONSE_ACCEPT); + gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(fs), TRUE); + gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(fs), FALSE); + + response = gtk_dialog_run(GTK_DIALOG(fs)); + + if (response == GTK_RESPONSE_ACCEPT) { + filenames = gtk_file_chooser_get_uris(GTK_FILE_CHOOSER(fs)); + } + + if (filenames != NULL) { + GSList *l; + + for (l = filenames; l; l = g_slist_next(l)) { + GFile *file; + char *data = l->data, + *uri; + + if (data == NULL) { + continue; + } + + file = g_file_new_for_commandline_arg(data); + + uri = g_file_get_uri(file); + g_free(uri); + } + } + + gtk_widget_destroy(fs); } static void