mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Make sure to ask for an export-to-PDF output folder every time.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@21723 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
c5b86dd183
commit
7b08c8f345
@ -1113,48 +1113,46 @@ impl_webkit_print( GncHtml* self, const gchar* jobname, gboolean export_pdf )
|
|||||||
// normal print dialog
|
// normal print dialog
|
||||||
if (export_pdf)
|
if (export_pdf)
|
||||||
{
|
{
|
||||||
gboolean have_outputdir = gtk_print_settings_has_key(print_settings, GNC_GTK_PRINT_SETTINGS_EXPORT_DIR);
|
GtkWidget *dialog;
|
||||||
if (have_outputdir)
|
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),
|
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog),
|
||||||
export_filename, NULL);
|
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);
|
g_free(export_filename);
|
||||||
export_filename = tmp;
|
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
|
gtk_widget_destroy (dialog);
|
||||||
|
|
||||||
|
if (result != GTK_RESPONSE_ACCEPT)
|
||||||
{
|
{
|
||||||
GtkWidget *dialog;
|
// User pressed cancel - no saving here.
|
||||||
gint result;
|
g_free(export_filename);
|
||||||
dialog = gtk_file_chooser_dialog_new (_("Save PDF File"),
|
g_object_unref( op );
|
||||||
NULL,
|
return;
|
||||||
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;
|
|
||||||
|
|
||||||
// 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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This function expects the full filename including (absolute?) path
|
// This function expects the full filename including (absolute?) path
|
||||||
@ -1172,8 +1170,8 @@ impl_webkit_print( GncHtml* self, const gchar* jobname, gboolean export_pdf )
|
|||||||
const gchar *olduri = gtk_print_settings_get(print_settings, GTK_PRINT_SETTINGS_OUTPUT_URI);
|
const gchar *olduri = gtk_print_settings_get(print_settings, GTK_PRINT_SETTINGS_OUTPUT_URI);
|
||||||
gchar *dirname = g_path_get_dirname(olduri);
|
gchar *dirname = g_path_get_dirname(olduri);
|
||||||
gchar *newuri = (g_strcmp0(dirname, ".") == 0)
|
gchar *newuri = (g_strcmp0(dirname, ".") == 0)
|
||||||
? g_strdup(export_filename)
|
? g_strdup(export_filename)
|
||||||
: g_build_filename(dirname, export_filename, NULL);
|
: g_build_filename(dirname, export_filename, NULL);
|
||||||
//g_warning("olduri=%s newuri=%s", olduri, newuri);
|
//g_warning("olduri=%s newuri=%s", olduri, newuri);
|
||||||
|
|
||||||
// This function expects the full filename including protocol, path, and name
|
// This function expects the full filename including protocol, path, and name
|
||||||
|
Loading…
Reference in New Issue
Block a user