SF.net SVN: geany: [505] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Thu Jun 29 17:15:08 UTC 2006


Revision: 505
Author:   eht16
Date:     2006-06-29 10:14:52 -0700 (Thu, 29 Jun 2006)
ViewCVS:  http://svn.sourceforge.net/geany/?rev=505&view=rev

Log Message:
-----------
Implemented simple printing support.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/geany.glade
    trunk/src/callbacks.c
    trunk/src/callbacks.h
    trunk/src/dialogs.c
    trunk/src/document.c
    trunk/src/document.h
    trunk/src/geany.h
    trunk/src/interface.c
    trunk/src/keybindings.c
    trunk/src/keybindings.h
    trunk/src/keyfile.c
    trunk/src/prefs.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-06-29 17:10:17 UTC (rev 504)
+++ trunk/ChangeLog	2006-06-29 17:14:52 UTC (rev 505)
@@ -13,6 +13,10 @@
    Renamed tools settings from build_* in tools_*.
  * src/main.c:
    Ignore SIGPIPE to prevent crashes when running external programs.
+ * src/geany.h, src/dialogs.c, src/callbacks.c, src/keyfile.c,
+   src/utils.c, src/prefs.c, geany.glade, src/interface.c,
+   src/keybindings.c, src/document.c:
+   Implemented simple printing support.
 
 
 2006-06-28  Enrico Tröger  <enrico.troeger at uvena.de>

Modified: trunk/geany.glade
===================================================================
--- trunk/geany.glade	2006-06-29 17:10:17 UTC (rev 504)
+++ trunk/geany.glade	2006-06-29 17:14:52 UTC (rev 505)
@@ -57,7 +57,7 @@
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image738">
+			<widget class="GtkImage" id="image754">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-new</property>
 			  <property name="icon_size">1</property>
@@ -150,7 +150,7 @@
 		      <signal name="activate" handler="on_save_all1_activate" last_modification_time="Thu, 02 Jun 2005 14:15:30 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image739">
+			<widget class="GtkImage" id="image755">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-save</property>
 			  <property name="icon_size">1</property>
@@ -188,6 +188,22 @@
 		  </child>
 
 		  <child>
+		    <widget class="GtkSeparatorMenuItem" id="separator24">
+		      <property name="visible">True</property>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkImageMenuItem" id="print1">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Prints the current file</property>
+		      <property name="label">gtk-print</property>
+		      <property name="use_stock">True</property>
+		      <signal name="activate" handler="on_print1_activate" last_modification_time="Thu, 29 Jun 2006 12:48:54 GMT"/>
+		    </widget>
+		  </child>
+
+		  <child>
 		    <widget class="GtkSeparatorMenuItem" id="separator14">
 		      <property name="visible">True</property>
 		    </widget>
@@ -211,7 +227,7 @@
 		      <signal name="activate" handler="on_close_all1_activate" last_modification_time="Thu, 02 Jun 2005 14:15:30 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image740">
+			<widget class="GtkImage" id="image756">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-close</property>
 			  <property name="icon_size">1</property>
@@ -327,7 +343,7 @@
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image741">
+			<widget class="GtkImage" id="image757">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-add</property>
 			  <property name="icon_size">1</property>
@@ -359,7 +375,7 @@
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image742">
+			<widget class="GtkImage" id="image758">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-add</property>
 			  <property name="icon_size">1</property>
@@ -537,7 +553,7 @@
 		      <signal name="activate" handler="on_replace1_activate" last_modification_time="Sun, 23 Oct 2005 13:22:36 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image743">
+			<widget class="GtkImage" id="image759">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-find-and-replace</property>
 			  <property name="icon_size">1</property>
@@ -564,7 +580,7 @@
 		      <signal name="activate" handler="on_go_to_line1_activate" last_modification_time="Tue, 23 May 2006 17:10:49 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image744">
+			<widget class="GtkImage" id="image760">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-jump-to</property>
 			  <property name="icon_size">1</property>
@@ -599,7 +615,7 @@
 		      <signal name="activate" handler="on_change_font1_activate" last_modification_time="Fri, 22 Apr 2005 18:58:45 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image745">
+			<widget class="GtkImage" id="image761">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-select-font</property>
 			  <property name="icon_size">1</property>
@@ -621,7 +637,7 @@
 		      <signal name="activate" handler="on_show_color_chooser1_activate" last_modification_time="Wed, 22 Jun 2005 18:10:21 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image746">
+			<widget class="GtkImage" id="image762">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-select-color</property>
 			  <property name="icon_size">1</property>
@@ -3865,7 +3881,7 @@
 	      <child>
 		<widget class="GtkTable" id="table1">
 		  <property name="visible">True</property>
-		  <property name="n_rows">3</property>
+		  <property name="n_rows">4</property>
 		  <property name="n_columns">3</property>
 		  <property name="homogeneous">False</property>
 		  <property name="row_spacing">7</property>
@@ -4107,6 +4123,85 @@
 		      <property name="y_options"></property>
 		    </packing>
 		  </child>
+
+		  <child>
+		    <widget class="GtkLabel" id="label154">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Print command</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">1</property>
+		      <property name="top_attach">3</property>
+		      <property name="bottom_attach">4</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options"></property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkEntry" id="entry_print">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Path to the command for printing files(use %f for the filename).</property>
+		      <property name="can_focus">True</property>
+		      <property name="editable">True</property>
+		      <property name="visibility">True</property>
+		      <property name="max_length">0</property>
+		      <property name="text" translatable="yes"></property>
+		      <property name="has_frame">True</property>
+		      <property name="invisible_char">*</property>
+		      <property name="activates_default">False</property>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">1</property>
+		      <property name="right_attach">2</property>
+		      <property name="top_attach">3</property>
+		      <property name="bottom_attach">4</property>
+		      <property name="y_options"></property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkButton" id="button_print">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+
+		      <child>
+			<widget class="GtkImage" id="image763">
+			  <property name="visible">True</property>
+			  <property name="stock">gtk-open</property>
+			  <property name="icon_size">4</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">2</property>
+		      <property name="right_attach">3</property>
+		      <property name="top_attach">3</property>
+		      <property name="bottom_attach">4</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options"></property>
+		    </packing>
+		  </child>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>

Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c	2006-06-29 17:10:17 UTC (rev 504)
+++ trunk/src/callbacks.c	2006-06-29 17:14:52 UTC (rev 505)
@@ -2420,3 +2420,12 @@
 	utils_update_statusbar(idx, -1);
 }
 
+
+void
+on_print1_activate                     (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+	gint idx = document_get_cur_idx();
+
+	document_print(idx);
+}

Modified: trunk/src/callbacks.h
===================================================================
--- trunk/src/callbacks.h	2006-06-29 17:10:17 UTC (rev 504)
+++ trunk/src/callbacks.h	2006-06-29 17:14:52 UTC (rev 505)
@@ -582,3 +582,7 @@
 void
 on_encoding_change                     (GtkMenuItem     *menuitem,
                                         gpointer         user_data);
+
+void
+on_print1_activate                     (GtkMenuItem     *menuitem,
+                                        gpointer         user_data);

Modified: trunk/src/dialogs.c
===================================================================
--- trunk/src/dialogs.c	2006-06-29 17:10:17 UTC (rev 504)
+++ trunk/src/dialogs.c	2006-06-29 17:14:52 UTC (rev 505)
@@ -880,7 +880,7 @@
 	gchar *sel = NULL;
 
 	if (idx == -1 || ! doc_list[idx].is_valid) return;
-	
+
 	if (sci_get_lines_selected(doc_list[idx].sci) == 1)
 	{
 		sel = g_malloc(sci_get_selected_text_length(doc_list[idx].sci));
@@ -1666,7 +1666,7 @@
 			gtk_combo_box_append_text(GTK_COMBO_BOX(combo), encoding_string);
 			g_free(encoding_string);
 		}
-		
+
 #ifdef HAVE_VTE
 		if (app->have_vte)
 		{
@@ -1816,6 +1816,8 @@
 				"clicked", G_CALLBACK(on_pref_tools_button_clicked), lookup_widget(app->prefs_dialog, "entry_com_term"));
 		g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "button_browser"),
 				"clicked", G_CALLBACK(on_pref_tools_button_clicked), lookup_widget(app->prefs_dialog, "entry_browser"));
+		g_signal_connect((gpointer) lookup_widget(app->prefs_dialog, "button_print"),
+				"clicked", G_CALLBACK(on_pref_tools_button_clicked), lookup_widget(app->prefs_dialog, "entry_print"));
 
 	}
 

Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c	2006-06-29 17:10:17 UTC (rev 504)
+++ trunk/src/document.c	2006-06-29 17:14:52 UTC (rev 505)
@@ -40,6 +40,7 @@
 # include <fcntl.h>
 #endif
 #include <ctype.h>
+#include <stdlib.h>
 
 #include "document.h"
 #include "callbacks.h"
@@ -524,11 +525,11 @@
 		document_set_filetype(idx, use_ft);
 		utils_build_show_hide(idx);
 	}
-	else 
+	else
 	{
 		document_update_tag_list(idx, TRUE);
 	}
-	
+
 	document_set_text_changed(idx);
 
 	g_free(data);
@@ -613,8 +614,8 @@
 
 		// try to convert it from UTF-8 to original encoding
 		conv_file_contents = g_convert(data, -1, doc_list[idx].encoding, "UTF-8",
-													NULL, NULL, &conv_error); 
-	
+													NULL, NULL, &conv_error);
+
 		if (conv_error != NULL)
 		{
 			dialogs_show_error(
@@ -1103,10 +1104,10 @@
 	gchar *linebuf;
 
 	if (idx == -1 || ! doc_list[idx].is_valid) return;
-	
+
 	start = sci_get_position_from_line(doc_list[idx].sci, line);
 	end = sci_get_position_from_line(doc_list[idx].sci, line + 1);
-	
+
 	// skip blank lines
 	if ((start + 1) == end) return;
 
@@ -1120,10 +1121,42 @@
 	while (isspace(linebuf[i])) i++;
 	while (isspace(linebuf[len-1])) len--;
 	g_free(linebuf);
-			
+
 	current_mask = sci_get_style_at(doc_list[idx].sci, start);
 	current_mask &= INDICS_MASK;
 	current_mask |= INDIC2_MASK;
 	sci_start_styling(doc_list[idx].sci, start + i, INDIC2_MASK);
 	sci_set_styling(doc_list[idx].sci, len - i, current_mask);
 }
+
+
+/* simple file print */
+void document_print(gint idx)
+{
+	/// TODO test under Win32
+	gchar *cmdline;
+
+	if (idx == -1 || ! doc_list[idx].is_valid || doc_list[idx].file_name == NULL) return;
+
+	cmdline = g_strdup(app->tools_print_cmd);
+	cmdline = utils_str_replace(cmdline, "%f", doc_list[idx].file_name);
+
+	if (dialogs_show_question(_("The file \"%s\" will be printed with the following command:\n\n%s"),
+								doc_list[idx].file_name, cmdline))
+	{
+		gint rc;
+		// system() is not the best way, but the only one I found to get the following working:
+		// a2ps -1 --medium=A4 -o - %f | xfprint4
+		rc = system(cmdline);
+		if (rc != 0)
+		{
+			dialogs_show_error(_("Printing of \"%s\" failed(return code: %d)."),
+								doc_list[idx].file_name, rc);
+		}
+		else
+		{
+			msgwin_status_add(_("File %s printed."), doc_list[idx].file_name);
+		}
+	}
+	g_free(cmdline);
+}

Modified: trunk/src/document.h
===================================================================
--- trunk/src/document.h	2006-06-29 17:10:17 UTC (rev 504)
+++ trunk/src/document.h	2006-06-29 17:14:52 UTC (rev 505)
@@ -88,7 +88,6 @@
    be UTF-8). */
 void document_save_file (gint);
 
-
 void document_find_text(gint, const gchar*, gint, gboolean);
 
 void document_replace_text(gint, const gchar*, const gchar*, gint, gboolean);
@@ -99,13 +98,10 @@
 
 void document_find_next(gint, const gchar*, gint, gboolean, gboolean);
 
-
 void document_set_font(gint, const gchar*, gint);
 
-
 void document_update_tag_list(gint, gboolean);
 
-
 void document_set_filetype(gint, filetype*);
 
 gchar *document_get_eol_mode(gint);
@@ -120,4 +116,7 @@
 
 void document_clear_indicators(gint idx);
 
+/* simple file print */
+void document_print(gint idx);
+
 #endif

Modified: trunk/src/geany.h
===================================================================
--- trunk/src/geany.h	2006-06-29 17:10:17 UTC (rev 504)
+++ trunk/src/geany.h	2006-06-29 17:14:52 UTC (rev 505)
@@ -205,7 +205,7 @@
 	GtkWidget			*redo_items[2];
 	GtkWidget			*undo_items[2];
 	GtkWidget			*save_buttons[2];
-	GtkWidget			*sensitive_buttons[32];
+	GtkWidget			*sensitive_buttons[33];
 	GtkWidget			*open_colorsel;
 	GtkWidget			*open_fontsel;
 	GtkWidget			*open_filesel;

Modified: trunk/src/interface.c
===================================================================
--- trunk/src/interface.c	2006-06-29 17:10:17 UTC (rev 504)
+++ trunk/src/interface.c	2006-06-29 17:14:52 UTC (rev 505)
@@ -37,7 +37,7 @@
   GtkWidget *menuitem1_menu;
   GtkWidget *menu_new1;
   GtkWidget *menu_new_with_template1;
-  GtkWidget *image738;
+  GtkWidget *image754;
   GtkWidget *menu_new_with_template1_menu;
   GtkWidget *invisible2;
   GtkWidget *separator12;
@@ -49,14 +49,16 @@
   GtkWidget *menu_save1;
   GtkWidget *menu_save_as1;
   GtkWidget *menu_save_all1;
-  GtkWidget *image739;
+  GtkWidget *image755;
   GtkWidget *revert1;
   GtkWidget *separator21;
   GtkWidget *preferences2;
+  GtkWidget *separator24;
+  GtkWidget *print1;
   GtkWidget *separator14;
   GtkWidget *menu_close1;
   GtkWidget *menu_close_all1;
-  GtkWidget *image740;
+  GtkWidget *image756;
   GtkWidget *menu_separatormenuitem1;
   GtkWidget *menu_quit1;
   GtkWidget *edit1;
@@ -70,11 +72,11 @@
   GtkWidget *menu_delete1;
   GtkWidget *menu_seperator2;
   GtkWidget *insert_include2;
-  GtkWidget *image741;
+  GtkWidget *image757;
   GtkWidget *insert_include2_menu;
   GtkWidget *invisible4;
   GtkWidget *add_comments1;
-  GtkWidget *image742;
+  GtkWidget *image758;
   GtkWidget *add_comments1_menu;
   GtkWidget *menu_add_changelog_entry1;
   GtkWidget *insert_file_header1;
@@ -95,16 +97,16 @@
   GtkWidget *find_next1;
   GtkWidget *find_previous1;
   GtkWidget *replace1;
-  GtkWidget *image743;
+  GtkWidget *image759;
   GtkWidget *separator11;
   GtkWidget *go_to_line1;
-  GtkWidget *image744;
+  GtkWidget *image760;
   GtkWidget *menuitem3;
   GtkWidget *menuitem3_menu;
   GtkWidget *menu_change_font1;
-  GtkWidget *image745;
+  GtkWidget *image761;
   GtkWidget *menu_choose_color1;
-  GtkWidget *image746;
+  GtkWidget *image762;
   GtkWidget *menu_separator4;
   GtkWidget *menu_fullscreen1;
   GtkWidget *menu_show_messages_window1;
@@ -235,9 +237,9 @@
   gtk_widget_show (menu_new_with_template1);
   gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_new_with_template1);
 
-  image738 = gtk_image_new_from_stock ("gtk-new", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image738);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_new_with_template1), image738);
+  image754 = gtk_image_new_from_stock ("gtk-new", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image754);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_new_with_template1), image754);
 
   menu_new_with_template1_menu = gtk_menu_new ();
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_new_with_template1), menu_new_with_template1_menu);
@@ -282,9 +284,9 @@
   gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_save_all1);
   gtk_tooltips_set_tip (tooltips, menu_save_all1, _("Saves all open files"), NULL);
 
-  image739 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image739);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_save_all1), image739);
+  image755 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image755);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_save_all1), image755);
 
   revert1 = gtk_image_menu_item_new_from_stock ("gtk-revert-to-saved", accel_group);
   gtk_widget_show (revert1);
@@ -299,6 +301,16 @@
   gtk_widget_show (preferences2);
   gtk_container_add (GTK_CONTAINER (menuitem1_menu), preferences2);
 
+  separator24 = gtk_separator_menu_item_new ();
+  gtk_widget_show (separator24);
+  gtk_container_add (GTK_CONTAINER (menuitem1_menu), separator24);
+  gtk_widget_set_sensitive (separator24, FALSE);
+
+  print1 = gtk_image_menu_item_new_from_stock ("gtk-print", accel_group);
+  gtk_widget_show (print1);
+  gtk_container_add (GTK_CONTAINER (menuitem1_menu), print1);
+  gtk_tooltips_set_tip (tooltips, print1, _("Prints the current file"), NULL);
+
   separator14 = gtk_separator_menu_item_new ();
   gtk_widget_show (separator14);
   gtk_container_add (GTK_CONTAINER (menuitem1_menu), separator14);
@@ -313,9 +325,9 @@
   gtk_container_add (GTK_CONTAINER (menuitem1_menu), menu_close_all1);
   gtk_tooltips_set_tip (tooltips, menu_close_all1, _("Closes all open files"), NULL);
 
-  image740 = gtk_image_new_from_stock ("gtk-close", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image740);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_close_all1), image740);
+  image756 = gtk_image_new_from_stock ("gtk-close", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image756);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_close_all1), image756);
 
   menu_separatormenuitem1 = gtk_separator_menu_item_new ();
   gtk_widget_show (menu_separatormenuitem1);
@@ -372,9 +384,9 @@
   gtk_widget_show (insert_include2);
   gtk_container_add (GTK_CONTAINER (edit1_menu), insert_include2);
 
-  image741 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image741);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (insert_include2), image741);
+  image757 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image757);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (insert_include2), image757);
 
   insert_include2_menu = gtk_menu_new ();
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (insert_include2), insert_include2_menu);
@@ -386,9 +398,9 @@
   gtk_widget_show (add_comments1);
   gtk_container_add (GTK_CONTAINER (edit1_menu), add_comments1);
 
-  image742 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image742);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_comments1), image742);
+  image758 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image758);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (add_comments1), image758);
 
   add_comments1_menu = gtk_menu_new ();
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (add_comments1), add_comments1_menu);
@@ -475,9 +487,9 @@
   gtk_widget_show (replace1);
   gtk_container_add (GTK_CONTAINER (search1_menu), replace1);
 
-  image743 = gtk_image_new_from_stock ("gtk-find-and-replace", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image743);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (replace1), image743);
+  image759 = gtk_image_new_from_stock ("gtk-find-and-replace", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image759);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (replace1), image759);
 
   separator11 = gtk_separator_menu_item_new ();
   gtk_widget_show (separator11);
@@ -488,9 +500,9 @@
   gtk_widget_show (go_to_line1);
   gtk_container_add (GTK_CONTAINER (search1_menu), go_to_line1);
 
-  image744 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image744);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (go_to_line1), image744);
+  image760 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image760);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (go_to_line1), image760);
 
   menuitem3 = gtk_menu_item_new_with_mnemonic (_("_View"));
   gtk_widget_show (menuitem3);
@@ -504,18 +516,18 @@
   gtk_container_add (GTK_CONTAINER (menuitem3_menu), menu_change_font1);
   gtk_tooltips_set_tip (tooltips, menu_change_font1, _("Change the default font"), NULL);
 
-  image745 = gtk_image_new_from_stock ("gtk-select-font", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image745);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_change_font1), image745);
+  image761 = gtk_image_new_from_stock ("gtk-select-font", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image761);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_change_font1), image761);
 
   menu_choose_color1 = gtk_image_menu_item_new_with_mnemonic (_("Show _Colour Chooser"));
   gtk_widget_show (menu_choose_color1);
   gtk_container_add (GTK_CONTAINER (menuitem3_menu), menu_choose_color1);
   gtk_tooltips_set_tip (tooltips, menu_choose_color1, _("Open a color chooser dialog, to interactively pick colors from a palette."), NULL);
 
-  image746 = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image746);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_choose_color1), image746);
+  image762 = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image762);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_choose_color1), image762);
 
   menu_separator4 = gtk_separator_menu_item_new ();
   gtk_widget_show (menu_separator4);
@@ -980,6 +992,9 @@
   g_signal_connect ((gpointer) preferences2, "activate",
                     G_CALLBACK (on_file_properties_activate),
                     NULL);
+  g_signal_connect ((gpointer) print1, "activate",
+                    G_CALLBACK (on_print1_activate),
+                    NULL);
   g_signal_connect ((gpointer) menu_close1, "activate",
                     G_CALLBACK (on_close1_activate),
                     NULL);
@@ -1197,7 +1212,7 @@
   GLADE_HOOKUP_OBJECT (window1, menuitem1_menu, "menuitem1_menu");
   GLADE_HOOKUP_OBJECT (window1, menu_new1, "menu_new1");
   GLADE_HOOKUP_OBJECT (window1, menu_new_with_template1, "menu_new_with_template1");
-  GLADE_HOOKUP_OBJECT (window1, image738, "image738");
+  GLADE_HOOKUP_OBJECT (window1, image754, "image754");
   GLADE_HOOKUP_OBJECT (window1, menu_new_with_template1_menu, "menu_new_with_template1_menu");
   GLADE_HOOKUP_OBJECT (window1, invisible2, "invisible2");
   GLADE_HOOKUP_OBJECT (window1, separator12, "separator12");
@@ -1209,14 +1224,16 @@
   GLADE_HOOKUP_OBJECT (window1, menu_save1, "menu_save1");
   GLADE_HOOKUP_OBJECT (window1, menu_save_as1, "menu_save_as1");
   GLADE_HOOKUP_OBJECT (window1, menu_save_all1, "menu_save_all1");
-  GLADE_HOOKUP_OBJECT (window1, image739, "image739");
+  GLADE_HOOKUP_OBJECT (window1, image755, "image755");
   GLADE_HOOKUP_OBJECT (window1, revert1, "revert1");
   GLADE_HOOKUP_OBJECT (window1, separator21, "separator21");
   GLADE_HOOKUP_OBJECT (window1, preferences2, "preferences2");
+  GLADE_HOOKUP_OBJECT (window1, separator24, "separator24");
+  GLADE_HOOKUP_OBJECT (window1, print1, "print1");
   GLADE_HOOKUP_OBJECT (window1, separator14, "separator14");
   GLADE_HOOKUP_OBJECT (window1, menu_close1, "menu_close1");
   GLADE_HOOKUP_OBJECT (window1, menu_close_all1, "menu_close_all1");
-  GLADE_HOOKUP_OBJECT (window1, image740, "image740");
+  GLADE_HOOKUP_OBJECT (window1, image756, "image756");
   GLADE_HOOKUP_OBJECT (window1, menu_separatormenuitem1, "menu_separatormenuitem1");
   GLADE_HOOKUP_OBJECT (window1, menu_quit1, "menu_quit1");
   GLADE_HOOKUP_OBJECT (window1, edit1, "edit1");
@@ -1230,11 +1247,11 @@
   GLADE_HOOKUP_OBJECT (window1, menu_delete1, "menu_delete1");
   GLADE_HOOKUP_OBJECT (window1, menu_seperator2, "menu_seperator2");
   GLADE_HOOKUP_OBJECT (window1, insert_include2, "insert_include2");
-  GLADE_HOOKUP_OBJECT (window1, image741, "image741");
+  GLADE_HOOKUP_OBJECT (window1, image757, "image757");
   GLADE_HOOKUP_OBJECT (window1, insert_include2_menu, "insert_include2_menu");
   GLADE_HOOKUP_OBJECT (window1, invisible4, "invisible4");
   GLADE_HOOKUP_OBJECT (window1, add_comments1, "add_comments1");
-  GLADE_HOOKUP_OBJECT (window1, image742, "image742");
+  GLADE_HOOKUP_OBJECT (window1, image758, "image758");
   GLADE_HOOKUP_OBJECT (window1, add_comments1_menu, "add_comments1_menu");
   GLADE_HOOKUP_OBJECT (window1, menu_add_changelog_entry1, "menu_add_changelog_entry1");
   GLADE_HOOKUP_OBJECT (window1, insert_file_header1, "insert_file_header1");
@@ -1255,16 +1272,16 @@
   GLADE_HOOKUP_OBJECT (window1, find_next1, "find_next1");
   GLADE_HOOKUP_OBJECT (window1, find_previous1, "find_previous1");
   GLADE_HOOKUP_OBJECT (window1, replace1, "replace1");
-  GLADE_HOOKUP_OBJECT (window1, image743, "image743");
+  GLADE_HOOKUP_OBJECT (window1, image759, "image759");
   GLADE_HOOKUP_OBJECT (window1, separator11, "separator11");
   GLADE_HOOKUP_OBJECT (window1, go_to_line1, "go_to_line1");
-  GLADE_HOOKUP_OBJECT (window1, image744, "image744");
+  GLADE_HOOKUP_OBJECT (window1, image760, "image760");
   GLADE_HOOKUP_OBJECT (window1, menuitem3, "menuitem3");
   GLADE_HOOKUP_OBJECT (window1, menuitem3_menu, "menuitem3_menu");
   GLADE_HOOKUP_OBJECT (window1, menu_change_font1, "menu_change_font1");
-  GLADE_HOOKUP_OBJECT (window1, image745, "image745");
+  GLADE_HOOKUP_OBJECT (window1, image761, "image761");
   GLADE_HOOKUP_OBJECT (window1, menu_choose_color1, "menu_choose_color1");
-  GLADE_HOOKUP_OBJECT (window1, image746, "image746");
+  GLADE_HOOKUP_OBJECT (window1, image762, "image762");
   GLADE_HOOKUP_OBJECT (window1, menu_separator4, "menu_separator4");
   GLADE_HOOKUP_OBJECT (window1, menu_fullscreen1, "menu_fullscreen1");
   GLADE_HOOKUP_OBJECT (window1, menu_show_messages_window1, "menu_show_messages_window1");
@@ -1882,6 +1899,10 @@
   GtkWidget *image286;
   GtkWidget *button_browser;
   GtkWidget *image287;
+  GtkWidget *label154;
+  GtkWidget *entry_print;
+  GtkWidget *button_print;
+  GtkWidget *image763;
   GtkWidget *label96;
   GtkWidget *vbox9;
   GtkWidget *label120;
@@ -2399,7 +2420,7 @@
   gtk_box_pack_start (GTK_BOX (vbox2), label17, FALSE, FALSE, 0);
   gtk_misc_set_padding (GTK_MISC (label17), 0, 6);
 
-  table1 = gtk_table_new (3, 3, FALSE);
+  table1 = gtk_table_new (4, 3, FALSE);
   gtk_widget_show (table1);
   gtk_box_pack_start (GTK_BOX (vbox2), table1, TRUE, TRUE, 0);
   gtk_table_set_row_spacings (GTK_TABLE (table1), 7);
@@ -2477,6 +2498,30 @@
   gtk_widget_show (image287);
   gtk_container_add (GTK_CONTAINER (button_browser), image287);
 
+  label154 = gtk_label_new (_("Print command"));
+  gtk_widget_show (label154);
+  gtk_table_attach (GTK_TABLE (table1), label154, 0, 1, 3, 4,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_misc_set_alignment (GTK_MISC (label154), 0, 0.5);
+
+  entry_print = gtk_entry_new ();
+  gtk_widget_show (entry_print);
+  gtk_table_attach (GTK_TABLE (table1), entry_print, 1, 2, 3, 4,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_tooltips_set_tip (tooltips, entry_print, _("Path to the command for printing files(use %f for the filename)."), NULL);
+
+  button_print = gtk_button_new ();
+  gtk_widget_show (button_print);
+  gtk_table_attach (GTK_TABLE (table1), button_print, 2, 3, 3, 4,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+
+  image763 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_BUTTON);
+  gtk_widget_show (image763);
+  gtk_container_add (GTK_CONTAINER (button_print), image763);
+
   label96 = gtk_label_new (_("Tools"));
   gtk_widget_show (label96);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 2), label96);
@@ -2724,6 +2769,10 @@
   GLADE_HOOKUP_OBJECT (prefs_dialog, image286, "image286");
   GLADE_HOOKUP_OBJECT (prefs_dialog, button_browser, "button_browser");
   GLADE_HOOKUP_OBJECT (prefs_dialog, image287, "image287");
+  GLADE_HOOKUP_OBJECT (prefs_dialog, label154, "label154");
+  GLADE_HOOKUP_OBJECT (prefs_dialog, entry_print, "entry_print");
+  GLADE_HOOKUP_OBJECT (prefs_dialog, button_print, "button_print");
+  GLADE_HOOKUP_OBJECT (prefs_dialog, image763, "image763");
   GLADE_HOOKUP_OBJECT (prefs_dialog, label96, "label96");
   GLADE_HOOKUP_OBJECT (prefs_dialog, vbox9, "vbox9");
   GLADE_HOOKUP_OBJECT (prefs_dialog, label120, "label120");

Modified: trunk/src/keybindings.c
===================================================================
--- trunk/src/keybindings.c	2006-06-29 17:10:17 UTC (rev 504)
+++ trunk/src/keybindings.c	2006-06-29 17:14:52 UTC (rev 505)
@@ -47,6 +47,7 @@
 static void cb_func_menu_open(void);
 static void cb_func_menu_save(void);
 static void cb_func_menu_saveall(void);
+static void cb_func_menu_print(void);
 static void cb_func_menu_close(void);
 static void cb_func_menu_closeall(void);
 static void cb_func_menu_reloadfile(void);
@@ -111,6 +112,8 @@
 		GDK_s, GDK_CONTROL_MASK, "menu_save", _("Save"));
 	keys[GEANY_KEYS_MENU_SAVEALL] = fill(cb_func_menu_saveall,
 		GDK_S, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "menu_saveall", _("Save all"));
+	keys[GEANY_KEYS_MENU_PRINT] = fill(cb_func_menu_print,
+		GDK_p, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "menu_print", _("Print"));
 	keys[GEANY_KEYS_MENU_CLOSE] = fill(cb_func_menu_close,
 		GDK_w, GDK_CONTROL_MASK, "menu_close", _("Close"));
 	keys[GEANY_KEYS_MENU_CLOSEALL] = fill(cb_func_menu_closeall,
@@ -237,6 +240,7 @@
 
 	// apply the settings
 	GEANY_ADD_ACCEL(GEANY_KEYS_MENU_SAVEALL, menu_save_all1);
+	GEANY_ADD_ACCEL(GEANY_KEYS_MENU_PRINT, print1);
 	GEANY_ADD_ACCEL(GEANY_KEYS_MENU_CLOSE, menu_close1);
 	GEANY_ADD_ACCEL(GEANY_KEYS_MENU_CLOSEALL, menu_close_all1);
 	GEANY_ADD_ACCEL(GEANY_KEYS_MENU_RELOADFILE, revert1);
@@ -463,21 +467,21 @@
 static void cb_func_menu_foldall(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	document_fold_all(idx);
 }
 
 static void cb_func_menu_unfoldall(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	document_unfold_all(idx);
 }
 
 static void cb_func_build_compile(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	if (doc_list[idx].file_type->menu_items->can_compile && doc_list[idx].file_name != NULL)
 		on_build_compile_activate(NULL, NULL);
 }
@@ -485,7 +489,7 @@
 static void cb_func_build_link(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	if (doc_list[idx].file_type->menu_items->can_link && doc_list[idx].file_name != NULL)
 		on_build_build_activate(NULL, NULL);
 }
@@ -493,7 +497,7 @@
 static void cb_func_build_make(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	if (doc_list[idx].file_name != NULL)
 		on_build_make_activate(NULL, GINT_TO_POINTER(0));
 }
@@ -501,7 +505,7 @@
 static void cb_func_build_makeowntarget(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	if (doc_list[idx].file_name != NULL)
 		on_build_make_activate(NULL, GINT_TO_POINTER(1));
 }
@@ -509,7 +513,7 @@
 static void cb_func_build_run(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	if (doc_list[idx].file_type->menu_items->can_exec && doc_list[idx].file_name != NULL)
 		on_build_execute_activate(NULL, GINT_TO_POINTER(0));
 }
@@ -517,7 +521,7 @@
 static void cb_func_build_run2(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	if (doc_list[idx].file_type->menu_items->can_exec && doc_list[idx].file_name != NULL)
 		on_build_execute_activate(NULL, GINT_TO_POINTER(1));
 }
@@ -525,7 +529,7 @@
 static void cb_func_build_options(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	if ((doc_list[idx].file_type->menu_items->can_compile ||
 		doc_list[idx].file_type->menu_items->can_link ||
 		doc_list[idx].file_type->menu_items->can_exec) &&
@@ -536,7 +540,7 @@
 static void cb_func_reloadtaglist(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	document_update_tag_list(idx, TRUE);
 }
 
@@ -565,7 +569,7 @@
 	gint pos;
 
 	if (idx == -1 || ! doc_list[idx].is_valid) return;
-	
+
 	pos = sci_get_current_position(doc_list[idx].sci);
 
 	utils_find_current_word(doc_list[idx].sci, pos,
@@ -594,7 +598,7 @@
 static void cb_func_switch_editor(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	gtk_widget_grab_focus(GTK_WIDGET(doc_list[idx].sci));
 }
 
@@ -627,7 +631,7 @@
 	static gboolean symbol = FALSE;
 	static gboolean openfiles = FALSE;
 	static gboolean is_visible = FALSE;
-	static gint active_page = -1; 
+	static gint active_page = -1;
 
 	/* this code is a bit confusing, but I want to keep the settings in the preferences dialog
 	 * synchronous with the real status of the sidebar, so we have to store the previous state when
@@ -656,7 +660,7 @@
 static void cb_func_edit_duplicateline(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	if (sci_can_copy(doc_list[idx].sci))
 		sci_selection_duplicate(doc_list[idx].sci);
 	else
@@ -666,35 +670,35 @@
 static void cb_func_edit_commentline(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	sci_cb_do_comment(idx);
 }
 
 static void cb_func_edit_autocomplete(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	sci_cb_start_auto_complete(doc_list[idx].sci, sci_get_current_position(doc_list[idx].sci));
 }
 
 static void cb_func_edit_calltip(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	sci_cb_show_calltip(doc_list[idx].sci, -1);
 }
 
 static void cb_func_edit_macrolist(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	sci_cb_show_macro_list(doc_list[idx].sci);
 }
 
 static void cb_func_edit_suppresscompletion(void)
 {
 	gint idx = document_get_cur_idx();
-	if (idx == -1 || ! doc_list[idx].is_valid) return;	
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
 	sci_add_text(doc_list[idx].sci, " ");
 }
 
@@ -702,3 +706,10 @@
 {
 	on_replace_tabs_activate(NULL, NULL);
 }
+
+static void cb_func_menu_print(void)
+{
+	gint idx = document_get_cur_idx();
+	if (idx == -1 || ! doc_list[idx].is_valid) return;
+	document_print(idx);
+}

Modified: trunk/src/keybindings.h
===================================================================
--- trunk/src/keybindings.h	2006-06-29 17:10:17 UTC (rev 504)
+++ trunk/src/keybindings.h	2006-06-29 17:14:52 UTC (rev 505)
@@ -45,6 +45,7 @@
 	GEANY_KEYS_MENU_OPEN,
 	GEANY_KEYS_MENU_SAVE,
 	GEANY_KEYS_MENU_SAVEALL,
+	GEANY_KEYS_MENU_PRINT,
 	GEANY_KEYS_MENU_CLOSE,
 	GEANY_KEYS_MENU_CLOSEALL,
 	GEANY_KEYS_MENU_RELOADFILE,

Modified: trunk/src/keyfile.c
===================================================================
--- trunk/src/keyfile.c	2006-06-29 17:10:17 UTC (rev 504)
+++ trunk/src/keyfile.c	2006-06-29 17:14:52 UTC (rev 505)
@@ -134,6 +134,7 @@
 	g_key_file_set_string(config, "tools", "make_cmd", app->tools_make_cmd ? app->tools_make_cmd : "");
 	g_key_file_set_string(config, "tools", "terminal_cmd", app->tools_term_cmd ? app->tools_term_cmd : "");
 	g_key_file_set_string(config, "tools", "browser_cmd", app->tools_browser_cmd ? app->tools_browser_cmd : "");
+	g_key_file_set_string(config, "tools", "print_cmd", app->tools_print_cmd ? app->tools_print_cmd : "");
 
 	for (i = 0; i < app->mru_length; i++)
 	{
@@ -285,17 +286,23 @@
 	app->pref_editor_trail_space = utils_get_setting_boolean(config, PACKAGE, "pref_editor_trail_space", TRUE);
 
 	tmp_string = g_find_program_in_path("make");
-	app->tools_make_cmd = utils_get_setting_string(config, "tools", "tools_make_cmd", tmp_string);
+	app->tools_make_cmd = utils_get_setting_string(config, "tools", "make_cmd", tmp_string);
 	g_free(tmp_string);
 
 	tmp_string = g_find_program_in_path("xterm");
-	app->tools_term_cmd = utils_get_setting_string(config, "tools", "tools_term_cmd", tmp_string);
+	app->tools_term_cmd = utils_get_setting_string(config, "tools", "term_cmd", tmp_string);
 	g_free(tmp_string);
 
 	tmp_string = g_find_program_in_path("mozilla");
-	app->tools_browser_cmd = utils_get_setting_string(config, "tools", "tools_browser_cmd", tmp_string);
+	app->tools_browser_cmd = utils_get_setting_string(config, "tools", "browser_cmd", tmp_string);
 	g_free(tmp_string);
 
+	tmp_string2 = g_find_program_in_path("lpr");
+	tmp_string = g_strconcat(tmp_string2, " %f", NULL);
+	app->tools_print_cmd = utils_get_setting_string(config, "tools", "print_cmd", tmp_string);
+	g_free(tmp_string);
+	g_free(tmp_string2);
+
 	recent_files = g_key_file_get_string_list(config, "files", "recent_files", &len, NULL);
 	if (recent_files != NULL)
 	{

Modified: trunk/src/prefs.c
===================================================================
--- trunk/src/prefs.c	2006-06-29 17:10:17 UTC (rev 504)
+++ trunk/src/prefs.c	2006-06-29 17:14:52 UTC (rev 505)
@@ -185,7 +185,10 @@
 	if (app->tools_browser_cmd)
 		gtk_entry_set_text(GTK_ENTRY(lookup_widget(app->prefs_dialog, "entry_browser")), app->tools_browser_cmd);
 
+	if (app->tools_browser_cmd)
+		gtk_entry_set_text(GTK_ENTRY(lookup_widget(app->prefs_dialog, "entry_print")), app->tools_print_cmd);
 
+
 	// Template settings
 	widget = lookup_widget(app->prefs_dialog, "entry_template_developer");
 	gtk_entry_set_text(GTK_ENTRY(widget), app->pref_template_developer);
@@ -381,6 +384,10 @@
 		g_free(app->tools_browser_cmd);
 		app->tools_browser_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
 
+		widget = lookup_widget(app->prefs_dialog, "entry_print");
+		g_free(app->tools_print_cmd);
+		app->tools_print_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
+
 		// Template settings
 		widget = lookup_widget(app->prefs_dialog, "entry_template_developer");
 		g_free(app->pref_template_developer);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Commits mailing list