summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Borelli <pborelli@gnome.org>2009-12-29 22:04:50 +0100
committerPaolo Borelli <pborelli@gnome.org>2010-01-09 16:45:38 +0100
commitde48e0b8c91eb1504d3849b8dd3770b1d73f801d (patch)
tree27ff98a0fdf442a3ccd2ab4042fa0a2a9753ea97
parent80c3207edd0ad268cbf67661f4258a89f4e1a486 (diff)
downloadgedit-de48e0b8c91eb1504d3849b8dd3770b1d73f801d.tar.gz
Do not persist the number of printed copies, bug 546617
-rw-r--r--gedit/gedit-tab.c71
1 files changed, 41 insertions, 30 deletions
diff --git a/gedit/gedit-tab.c b/gedit/gedit-tab.c
index d4a7a354b..b642ecd19 100644
--- a/gedit/gedit-tab.c
+++ b/gedit/gedit-tab.c
@@ -2299,6 +2299,46 @@ printing_cb (GeditPrintJob *job,
}
static void
+store_print_settings (GeditTab *tab,
+ GeditPrintJob *job)
+{
+ GeditDocument *doc;
+ GtkPrintSettings *settings;
+ GtkPageSetup *page_setup;
+
+ doc = gedit_tab_get_document (tab);
+
+ settings = gedit_print_job_get_print_settings (job);
+
+ /* clear n-copies settings since we do not want to
+ * persist that one */
+ gtk_print_settings_unset (settings,
+ GTK_PRINT_SETTINGS_N_COPIES);
+
+ /* remember settings for this document */
+ g_object_set_data_full (G_OBJECT (doc),
+ GEDIT_PRINT_SETTINGS_KEY,
+ g_object_ref (settings),
+ (GDestroyNotify)g_object_unref);
+
+ /* make them the default */
+ _gedit_app_set_default_print_settings (gedit_app_get_default (),
+ settings);
+
+ page_setup = gedit_print_job_get_page_setup (job);
+
+ /* remember page setup for this document */
+ g_object_set_data_full (G_OBJECT (doc),
+ GEDIT_PAGE_SETUP_KEY,
+ g_object_ref (page_setup),
+ (GDestroyNotify)g_object_unref);
+
+ /* make it the default */
+ _gedit_app_set_default_page_setup (gedit_app_get_default (),
+ page_setup);
+}
+
+static void
done_printing_cb (GeditPrintJob *job,
GeditPrintJobResult result,
const GError *error,
@@ -2324,38 +2364,9 @@ done_printing_cb (GeditPrintJob *job,
// TODO: check status and error
- /* Save the print settings and the page setup */
if (result == GEDIT_PRINT_JOB_RESULT_OK)
{
- GeditDocument *doc;
- GtkPrintSettings *settings;
- GtkPageSetup *page_setup;
-
- doc = gedit_tab_get_document (tab);
-
- settings = gedit_print_job_get_print_settings (job);
-
- /* remember settings for this document */
- g_object_set_data_full (G_OBJECT (doc),
- GEDIT_PRINT_SETTINGS_KEY,
- g_object_ref (settings),
- (GDestroyNotify)g_object_unref);
-
- /* make them the default */
- _gedit_app_set_default_print_settings (gedit_app_get_default (),
- settings);
-
- page_setup = gedit_print_job_get_page_setup (job);
-
- /* remember page setup for this document */
- g_object_set_data_full (G_OBJECT (doc),
- GEDIT_PAGE_SETUP_KEY,
- g_object_ref (page_setup),
- (GDestroyNotify)g_object_unref);
-
- /* make it the default */
- _gedit_app_set_default_page_setup (gedit_app_get_default (),
- page_setup);
+ store_print_settings (tab, job);
}
#if 0