[gedit] Persist page-setup when using the embedded page setup.



commit b4bf42322868c63fe332cd4d26314cabb122d2d0
Author: Marek Kašík <mkasik redhat com>
Date:   Mon Aug 24 21:40:23 2009 +0200

    Persist page-setup when using the embedded page setup.

 gedit/gedit-print-job.c |    7 +++++++
 gedit/gedit-print-job.h |   14 +++++++-------
 gedit/gedit-tab.c       |   17 +++++++++++++++--
 3 files changed, 29 insertions(+), 9 deletions(-)
---
diff --git a/gedit/gedit-print-job.c b/gedit/gedit-print-job.c
index 3e26c42..00acba2 100644
--- a/gedit/gedit-print-job.c
+++ b/gedit/gedit-print-job.c
@@ -856,3 +856,10 @@ gedit_print_job_get_print_settings (GeditPrintJob *job)
 	return gtk_print_operation_get_print_settings (job->priv->operation);
 }
 
+GtkPageSetup *
+gedit_print_job_get_page_setup (GeditPrintJob *job)
+{
+	g_return_val_if_fail (GEDIT_IS_PRINT_JOB (job), NULL);
+
+	return gtk_print_operation_get_default_page_setup (job->priv->operation);
+}
diff --git a/gedit/gedit-print-job.h b/gedit/gedit-print-job.h
index 261be96..956dc73 100644
--- a/gedit/gedit-print-job.h
+++ b/gedit/gedit-print-job.h
@@ -110,7 +110,7 @@ GeditPrintJob		*gedit_print_job_new			(GeditView                *view);
 
 void			 gedit_print_job_set_export_filename	(GeditPrintJob            *job,
 								 const gchar              *filename);
-								 
+
 GtkPrintOperationResult	 gedit_print_job_print			(GeditPrintJob            *job,
 								 GtkPrintOperationAction   action,
 								 GtkPageSetup             *page_setup,
@@ -118,15 +118,15 @@ GtkPrintOperationResult	 gedit_print_job_print			(GeditPrintJob            *job,
 								 GtkWindow                *parent,
 								 GError                  **error);
 
-void			 gedit_print_job_cancel                 (GeditPrintJob            *job);
+void			 gedit_print_job_cancel			(GeditPrintJob            *job);
+
+const gchar		*gedit_print_job_get_status_string	(GeditPrintJob            *job);
 
-// GeditView		*gedit_print_job_get_view		(GeditPrintJob            *job);
-								 
-const gchar		*gedit_print_job_get_status_string      (GeditPrintJob            *job);
+gdouble			 gedit_print_job_get_progress		(GeditPrintJob            *job);
 
-gdouble                  gedit_print_job_get_progress           (GeditPrintJob            *job);
+GtkPrintSettings	*gedit_print_job_get_print_settings	(GeditPrintJob            *job);
 
-GtkPrintSettings        *gedit_print_job_get_print_settings     (GeditPrintJob            *job);
+GtkPageSetup		*gedit_print_job_get_page_setup		(GeditPrintJob            *job);
 
 G_END_DECLS
 
diff --git a/gedit/gedit-tab.c b/gedit/gedit-tab.c
index 476f3fd..fa0c65e 100644
--- a/gedit/gedit-tab.c
+++ b/gedit/gedit-tab.c
@@ -2321,17 +2321,18 @@ done_printing_cb (GeditPrintJob       *job,
 
 	// TODO: check status and error
 
-	/* Save the print settings */ 
+	/* 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 them for this document */
+		/* remember settings for this document */
 		g_object_set_data_full (G_OBJECT (doc),
 					GEDIT_PRINT_SETTINGS_KEY,
 					g_object_ref (settings),
@@ -2340,6 +2341,18 @@ done_printing_cb (GeditPrintJob       *job,
 		/* 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);
 	}
 
 #if 0



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]