r21723 - gnucash/trunk/src/html - Make sure to ask for an export-to-PDF output folder every time.

Christian Stimming cstim at code.gnucash.org
Mon Dec 12 17:03:45 EST 2011


Author: cstim
Date: 2011-12-12 17:03:45 -0500 (Mon, 12 Dec 2011)
New Revision: 21723
Trac: http://svn.gnucash.org/trac/changeset/21723

Modified:
   gnucash/trunk/src/html/gnc-html-webkit.c
Log:
Make sure to ask for an export-to-PDF output folder every time.

Modified: gnucash/trunk/src/html/gnc-html-webkit.c
===================================================================
--- gnucash/trunk/src/html/gnc-html-webkit.c	2011-12-12 21:53:14 UTC (rev 21722)
+++ gnucash/trunk/src/html/gnc-html-webkit.c	2011-12-12 22:03:45 UTC (rev 21723)
@@ -1113,48 +1113,46 @@
     // normal print dialog
     if (export_pdf)
     {
-        gboolean have_outputdir = gtk_print_settings_has_key(print_settings, GNC_GTK_PRINT_SETTINGS_EXPORT_DIR);
-        if (have_outputdir)
+        GtkWidget *dialog;
+        gint result;
+        dialog = gtk_file_chooser_dialog_new (_("Save PDF File"),
+                                              NULL,
+                                              GTK_FILE_CHOOSER_ACTION_SAVE,
+                                              GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                                              GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+                                              NULL);
+        gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
+        gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER(dialog), export_filename);
+
+        if (gtk_print_settings_has_key(print_settings, GNC_GTK_PRINT_SETTINGS_EXPORT_DIR))
         {
-            gchar *tmp = g_build_filename(gtk_print_settings_get(print_settings, GNC_GTK_PRINT_SETTINGS_EXPORT_DIR),
-                                          export_filename, NULL);
+            gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog),
+                                                gtk_print_settings_get(print_settings,
+                                                        GNC_GTK_PRINT_SETTINGS_EXPORT_DIR));
+        }
+
+        result = gtk_dialog_run (GTK_DIALOG (dialog));
+
+        if (result == GTK_RESPONSE_ACCEPT)
+        {
+            gchar *dirname;
+            char *tmp = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
             g_free(export_filename);
             export_filename = tmp;
+
+            // Store the directory for later
+            dirname = g_path_get_dirname(export_filename);
+            gtk_print_settings_set(print_settings, GNC_GTK_PRINT_SETTINGS_EXPORT_DIR, dirname);
+            g_free(dirname);
         }
-        else
-        {
-            GtkWidget *dialog;
-            gint result;
-            dialog = gtk_file_chooser_dialog_new (_("Save PDF File"),
-                                                  NULL,
-                                                  GTK_FILE_CHOOSER_ACTION_SAVE,
-                                                  GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                                  GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
-                                                  NULL);
-            gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
-            gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER(dialog), export_filename);
-            result = gtk_dialog_run (GTK_DIALOG (dialog));
-            if (result == GTK_RESPONSE_ACCEPT)
-            {
-                gchar *dirname;
-                char *tmp = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
-                g_free(export_filename);
-                export_filename = tmp;
+        gtk_widget_destroy (dialog);
 
-                // Store the directory for later
-                dirname = g_path_get_dirname(export_filename);
-                gtk_print_settings_set(print_settings, GNC_GTK_PRINT_SETTINGS_EXPORT_DIR, dirname);
-                g_free(dirname);
-            }
-            gtk_widget_destroy (dialog);
-
-            if (result != GTK_RESPONSE_ACCEPT)
-            {
-                // User pressed cancel - no saving here.
-                g_free(export_filename);
-                g_object_unref( op );
-                return;
-            }
+        if (result != GTK_RESPONSE_ACCEPT)
+        {
+            // User pressed cancel - no saving here.
+            g_free(export_filename);
+            g_object_unref( op );
+            return;
         }
 
         // This function expects the full filename including (absolute?) path
@@ -1172,8 +1170,8 @@
             const gchar *olduri = gtk_print_settings_get(print_settings, GTK_PRINT_SETTINGS_OUTPUT_URI);
             gchar *dirname = g_path_get_dirname(olduri);
             gchar *newuri = (g_strcmp0(dirname, ".") == 0)
-                    ? g_strdup(export_filename)
-                    : g_build_filename(dirname, export_filename, NULL);
+                            ? g_strdup(export_filename)
+                            : g_build_filename(dirname, export_filename, NULL);
             //g_warning("olduri=%s newuri=%s", olduri, newuri);
 
             // This function expects the full filename including protocol, path, and name



More information about the gnucash-changes mailing list