[anjuta/gsettings-migration] sourceview: Moved print preferences to print dialog
- From: Johannes Schmid <jhs src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [anjuta/gsettings-migration] sourceview: Moved print preferences to print dialog
- Date: Tue, 19 Oct 2010 13:51:48 +0000 (UTC)
commit 34f13278b994edd91b9a49afb547d091e3f04ee0
Author: Johannes Schmid <jhs gnome org>
Date: Tue Oct 19 15:05:23 2010 +0200
sourceview: Moved print preferences to print dialog
plugins/sourceview/anjuta-editor-sourceview.ui | 158 ++---------------------
plugins/sourceview/sourceview-prefs.c | 13 ++-
plugins/sourceview/sourceview-print.c | 125 +++++++++++++------
plugins/sourceview/sourceview.gschema-part.xml | 15 +++
4 files changed, 124 insertions(+), 187 deletions(-)
---
diff --git a/plugins/sourceview/anjuta-editor-sourceview.ui b/plugins/sourceview/anjuta-editor-sourceview.ui
index 6fae4ec..62e28e7 100644
--- a/plugins/sourceview/anjuta-editor-sourceview.ui
+++ b/plugins/sourceview/anjuta-editor-sourceview.ui
@@ -1,20 +1,7 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy toplevel-contextual -->
- <object class="GtkAdjustment" id="adjustment1">
- <property name="lower">1</property>
- <property name="upper">100</property>
- <property name="value">4</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
- </object>
- <object class="GtkAdjustment" id="adjustment2">
- <property name="upper">200</property>
- <property name="value">80</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
- </object>
<object class="GtkWindow" id="preferences_dialog">
<property name="title">window1</property>
<child>
@@ -36,7 +23,6 @@
<child>
<object class="GtkVBox" id="vbox1111">
<property name="visible">True</property>
- <property name="orientation">vertical</property>
<child>
<object class="GtkTable" id="table15">
<property name="visible">True</property>
@@ -172,7 +158,6 @@
<object class="GtkVBox" id="vbox1120">
<property name="visible">True</property>
<property name="border_width">5</property>
- <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="preferences_toggle:bool:1:0:sourceview-syntax-highlight">
@@ -265,7 +250,6 @@
<child>
<object class="GtkVBox" id="vbox32">
<property name="visible">True</property>
- <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkFrame" id="frame2">
@@ -277,7 +261,6 @@
<object class="GtkVBox" id="vbox2">
<property name="visible">True</property>
<property name="border_width">5</property>
- <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="preferences_toggle:bool:0:0:sourceview-currentline-highlight">
@@ -515,7 +498,6 @@
<object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="border_width">5</property>
- <property name="orientation">vertical</property>
<child>
<object class="GtkComboBox" id="combo_styles">
<property name="visible">True</property>
@@ -567,132 +549,20 @@
<property name="tab_fill">False</property>
</packing>
</child>
- <child>
- <object class="GtkFrame" id="page3">
- <property name="visible">True</property>
- <property name="border_width">5</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkTable" id="table17">
- <property name="visible">True</property>
- <property name="border_width">10</property>
- <property name="n_rows">6</property>
- <property name="column_spacing">5</property>
- <property name="row_spacing">5</property>
- <child>
- <object class="GtkCheckButton" id="preferences_toggle:bool:1:0:print-header">
- <property name="label" translatable="yes">Print page header</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="preferences_toggle:bool:1:0:print-footer">
- <property name="label" translatable="yes">Print page footer</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="preferences_toggle:bool:1:0:print-linenumbers">
- <property name="label" translatable="yes">Print line numbers</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="preferences_toggle:bool:1:0:print-highlight">
- <property name="label" translatable="yes">Highlight syntax</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="preferences_toggle:bool:1:0:print-linewrap">
- <property name="label" translatable="yes">Wrap long lines to fit on paper</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label129">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
- <property name="label" translatable="yes">Print options</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="label12352">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
- <property name="label" translatable="yes">Printing</property>
- </object>
- <packing>
- <property name="position">2</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
</object>
</child>
</object>
+ <object class="GtkAdjustment" id="adjustment2">
+ <property name="upper">200</property>
+ <property name="value">80</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="adjustment1">
+ <property name="lower">1</property>
+ <property name="upper">100</property>
+ <property name="value">4</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
</interface>
diff --git a/plugins/sourceview/sourceview-prefs.c b/plugins/sourceview/sourceview-prefs.c
index 5aa168f..b9e5ade 100644
--- a/plugins/sourceview/sourceview-prefs.c
+++ b/plugins/sourceview/sourceview-prefs.c
@@ -337,7 +337,14 @@ sourceview_prefs_init(Sourceview* sv)
void sourceview_prefs_destroy(Sourceview* sv)
{
- g_object_unref (sv->priv->settings);
- g_object_unref (sv->priv->msgman_settings);
- g_object_unref (sv->priv->docman_settings);
+ if (sv->priv->settings)
+ g_object_unref (sv->priv->settings);
+ if (sv->priv->msgman_settings)
+ g_object_unref (sv->priv->msgman_settings);
+ if (sv->priv->docman_settings)
+ g_object_unref (sv->priv->docman_settings);
+
+ sv->priv->settings = NULL;
+ sv->priv->msgman_settings = NULL;
+ sv->priv->docman_settings = NULL;
}
diff --git a/plugins/sourceview/sourceview-print.c b/plugins/sourceview/sourceview-print.c
index f429584..f55a118 100644
--- a/plugins/sourceview/sourceview-print.c
+++ b/plugins/sourceview/sourceview-print.c
@@ -19,11 +19,11 @@
#include <gtksourceview/gtksourceprintcompositor.h>
#include <libanjuta/interfaces/ianjuta-document.h>
-#define PRINT_LINEWRAP "print.linewrap"
-#define PRINT_HEADER "print.header"
-#define PRINT_FOOTER "print.footer"
-#define PRINT_HIGHLIGHT "print.highlight"
-#define PRINT_LINENUMBERS "print.linenumbers"
+#define PRINT_LINEWRAP "sourceview-print-linewrap"
+#define PRINT_HEADER "sourceview-print-header"
+#define PRINT_FOOTER "sourceview-print-footer"
+#define PRINT_HIGHLIGHT "sourceview-print-highlight"
+#define PRINT_LINENUMBERS "sourceview-print-linenumbers"
typedef struct _SourceviewPrinting SourceviewPrinting;
@@ -73,11 +73,78 @@ end_print (GtkPrintOperation *operation,
g_slice_free (SourceviewPrinting, printing);
}
+static void
+custom_widget_apply (GtkPrintOperation* operation,
+ GtkWidget* widget,
+ SourceviewPrinting* printing)
+{
+ if (g_settings_get_boolean (printing->sv->priv->settings, PRINT_LINEWRAP))
+ {
+ gtk_source_print_compositor_set_wrap_mode (printing->compositor,
+ GTK_WRAP_WORD_CHAR);
+ }
+ else
+ gtk_source_print_compositor_set_wrap_mode (printing->compositor,
+ GTK_WRAP_NONE);
+
+ gtk_source_print_compositor_set_print_line_numbers (printing->compositor,
+ g_settings_get_boolean (printing->sv->priv->settings,
+ PRINT_LINENUMBERS));
+
+ gtk_source_print_compositor_set_print_header (printing->compositor,
+ g_settings_get_boolean (printing->sv->priv->settings,
+ PRINT_HEADER));
+ gtk_source_print_compositor_set_print_footer (printing->compositor,
+ g_settings_get_boolean (printing->sv->priv->settings,
+ PRINT_FOOTER));
+
+ gtk_source_print_compositor_set_highlight_syntax (printing->compositor,
+ g_settings_get_boolean (printing->sv->priv->settings,
+ PRINT_HIGHLIGHT));
+}
+
+static GObject*
+create_custom_widget (GtkPrintOperation* operation,
+ Sourceview* sv)
+{
+ GtkWidget* toggle_linewrap =
+ gtk_check_button_new_with_label (_("Wrap lines"));
+ GtkWidget* toggle_linenumbers =
+ gtk_check_button_new_with_label (_("Line numbers"));
+ GtkWidget* toggle_header =
+ gtk_check_button_new_with_label (_("Header"));
+ GtkWidget* toggle_footer =
+ gtk_check_button_new_with_label (_("Footer"));
+ GtkWidget* toggle_highlight =
+ gtk_check_button_new_with_label (_("Highlight source code"));
+ GtkWidget* vbox = gtk_vbox_new (TRUE, 5);
+
+ g_settings_bind (sv->priv->settings, PRINT_LINEWRAP,
+ toggle_linewrap, "active", G_SETTINGS_BIND_DEFAULT);
+ g_settings_bind (sv->priv->settings, PRINT_LINENUMBERS,
+ toggle_linenumbers, "active", G_SETTINGS_BIND_DEFAULT);
+ g_settings_bind (sv->priv->settings, PRINT_HEADER,
+ toggle_header, "active", G_SETTINGS_BIND_DEFAULT);
+ g_settings_bind (sv->priv->settings, PRINT_FOOTER,
+ toggle_footer, "active", G_SETTINGS_BIND_DEFAULT);
+ g_settings_bind (sv->priv->settings, PRINT_HIGHLIGHT,
+ toggle_highlight, "active", G_SETTINGS_BIND_DEFAULT);
+
+ gtk_box_pack_start (GTK_BOX (vbox), toggle_linewrap, FALSE, FALSE, 5);
+ gtk_box_pack_start (GTK_BOX (vbox), toggle_linenumbers, FALSE, FALSE, 5);
+ gtk_box_pack_start (GTK_BOX (vbox), toggle_header, FALSE, FALSE, 5);
+ gtk_box_pack_start (GTK_BOX (vbox), toggle_footer, FALSE, FALSE, 5);
+ gtk_box_pack_start (GTK_BOX (vbox), toggle_highlight, FALSE, FALSE, 5);
+
+ gtk_widget_show_all (vbox);
+
+ return G_OBJECT (vbox);
+}
+
static GtkPrintOperation*
print_setup (Sourceview* sv)
{
- /* FIXME */
-#if 0
+
GtkSourceView *view = GTK_SOURCE_VIEW (sv->priv->view);
GtkSourcePrintCompositor *compositor;
GtkPrintOperation *operation;
@@ -90,19 +157,6 @@ print_setup (Sourceview* sv)
compositor = gtk_source_print_compositor_new_from_view (view);
- if (g_settings_get_int (sv->priv->settings, PRINT_LINEWRAP))
- {
- gtk_source_print_compositor_set_wrap_mode (compositor,
- GTK_WRAP_WORD_CHAR);
- }
- else
- gtk_source_print_compositor_set_wrap_mode (compositor,
- GTK_WRAP_NONE);
-
- gtk_source_print_compositor_set_print_line_numbers (compositor,
- anjuta_preferences_get_bool (sv->priv->prefs,
- PRINT_LINENUMBERS));
-
gtk_source_print_compositor_set_header_format (compositor,
TRUE,
"%x",
@@ -114,25 +168,13 @@ print_setup (Sourceview* sv)
"%T",
basename,
"Page %N/%Q");
-
- gtk_source_print_compositor_set_print_header (compositor,
- anjuta_preferences_get_bool (sv->priv->prefs,
- PRINT_HEADER));
- gtk_source_print_compositor_set_print_footer (compositor,
- anjuta_preferences_get_bool (sv->priv->prefs,
- PRINT_FOOTER));
-
-
- gtk_source_print_compositor_set_highlight_syntax (compositor,
- anjuta_preferences_get_bool (sv->priv->prefs,
- PRINT_HIGHLIGHT)),
-
+
operation = gtk_print_operation_new ();
gtk_print_operation_set_job_name (operation, basename);
gtk_print_operation_set_show_progress (operation, TRUE);
-
+
printing->compositor = compositor;
printing->sv = sv;
printing->status = anjuta_shell_get_status (sv->priv->plugin->shell, NULL);
@@ -143,30 +185,33 @@ print_setup (Sourceview* sv)
G_CALLBACK (draw_page), printing);
g_signal_connect (G_OBJECT (operation), "end-print",
G_CALLBACK (end_print), printing);
+ g_signal_connect (G_OBJECT (operation), "create-custom-widget",
+ G_CALLBACK (create_custom_widget), sv);
+ g_signal_connect (G_OBJECT (operation), "custom-widget-apply",
+ G_CALLBACK (custom_widget_apply), printing);
anjuta_status_progress_reset (printing->status);
anjuta_status_progress_add_ticks (printing->status, 100);
g_free (basename);
return operation;
-#endif
- return NULL;
}
void
sourceview_print(Sourceview* sv)
{
GtkPrintOperation* operation = print_setup (sv);
+
gtk_print_operation_run (operation,
- GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
- NULL, NULL);
- g_object_unref (operation);
+ GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
+ NULL, NULL);
+ g_object_unref (operation);
}
void
sourceview_print_preview(Sourceview* sv)
-{
+{
GtkPrintOperation* operation = print_setup (sv);
gtk_print_operation_run (operation,
GTK_PRINT_OPERATION_ACTION_PREVIEW,
diff --git a/plugins/sourceview/sourceview.gschema-part.xml b/plugins/sourceview/sourceview.gschema-part.xml
index 72bca56..3ad2bd3 100644
--- a/plugins/sourceview/sourceview.gschema-part.xml
+++ b/plugins/sourceview/sourceview.gschema-part.xml
@@ -1,3 +1,18 @@
<key name="sourceview-style" type="s">
<default>"tango"</default>
</key>
+<key name="sourceview-print-linewrap" type="b">
+ <default>true</default>
+</key>
+<key name="sourceview-print-header" type="b">
+ <default>false</default>
+</key>
+<key name="sourceview-print-footer" type="b">
+ <default>false</default>
+</key>
+<key name="sourceview-print-highlight" type="b">
+ <default>true</default>
+</key>
+<key name="sourceview-print-linenumbers" type="b">
+ <default>false</default>
+</key>
\ No newline at end of file
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]