SF.net SVN: geany-plugins:[1105] trunk/geanylatex

frlan at users.sourceforge.net frlan at xxxxx
Sun Jan 3 21:50:42 UTC 2010


Revision: 1105
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1105&view=rev
Author:   frlan
Date:     2010-01-03 21:50:42 +0000 (Sun, 03 Jan 2010)

Log Message:
-----------
Make text for inserting a reference configurable via a hidden pref.

Modified Paths:
--------------
    trunk/geanylatex/doc/geanylatex.tex
    trunk/geanylatex/src/geanylatex.c

Modified: trunk/geanylatex/doc/geanylatex.tex
===================================================================
--- trunk/geanylatex/doc/geanylatex.tex	2010-01-02 22:53:35 UTC (rev 1104)
+++ trunk/geanylatex/doc/geanylatex.tex	2010-01-03 21:50:42 UTC (rev 1105)
@@ -572,6 +572,35 @@
 
 Please ensure, you reload the plugin once this option has been changed.
 
+\subsubsection{Customized reference strings}
+
+Geany\LaTeX{} is able to insert references to a label where its 
+using some default value. As this value is not always optimal, it 
+can be changed using a hidden preference by setting 
+\texttt{glatex\_reference\_page}, \texttt{glatex\_reference\_chapter} or 
+\texttt{glatex\_reference\_all} inside configuration file as shown inside 
+the example configuration snippet. 
+
+\begin{lstlisting} 
+[general] 
+glatex_set_koma_active=true 
+glatex_set_toolbar_active=true
+
+[reference]
+glatex_reference_page=\\textbf{\pageref{{{reference}}}}
+glatex_reference_chapter=\\textbf{\\ref{{{reference}}}}
+glatex_reference_all=\\textbf{\\ref{{{reference}}}, page \pageref{{{reference}}}}\end{lstlisting}
+
+Please take care in this case \texttt{\{\{reference\}\}} will be 
+replace by label name. 
+
+Also \texttt{\textbackslash{}t}, \texttt{\textbackslash{}r}, 
+\texttt{\textbackslash{}n} will be handled as known from C so you will 
+need to add a second \textbackslash{} in front of in such cases. Even 
+this seems to be annyoing on the first hand, it allows you to insert some 
+more complicated constructs over  here which might require a new line inside. 
+
+
 \section{Contribution to the plugin}
 If you like the plugin, there are a number of ways, how to
 contribute to the development of the plugin.

Modified: trunk/geanylatex/src/geanylatex.c
===================================================================
--- trunk/geanylatex/src/geanylatex.c	2010-01-02 22:53:35 UTC (rev 1104)
+++ trunk/geanylatex/src/geanylatex.c	2010-01-03 21:50:42 UTC (rev 1105)
@@ -54,6 +54,9 @@
 /* Options for plugin */
 static gboolean glatex_set_koma_active = FALSE;
 static gboolean glatex_deactivate_toolbaritems_with_non_latex = TRUE;
+static gchar *glatex_ref_chapter_string = NULL;
+static gchar *glatex_ref_page_string = NULL;
+static gchar *glatex_ref_all_string = NULL;
 static gboolean glatex_set_toolbar_active = FALSE;
 
 /* Function will be deactivated, when only loaded */
@@ -554,29 +557,40 @@
 	if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
 	{
 		gchar *ref_string = NULL;
-
+		GString *template_string = NULL;
+		
 		ref_string = g_strdup(gtk_combo_box_get_active_text(
 			GTK_COMBO_BOX(textbox_ref)));
 
 		if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio1)) == TRUE)
 		{
-			ref_string = g_strconcat("\\ref{", ref_string, "}", NULL);
+			template_string = g_string_new(glatex_ref_chapter_string);
 		}
 		else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio2))== TRUE)
 		{
-			ref_string = g_strconcat("\\pageref{", ref_string, "}", NULL);
+			template_string = g_string_new(glatex_ref_page_string);
 		}
 		else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio3))== TRUE)
 		{
-			ref_string = g_strconcat("\\ref{", ref_string, "}, ", _("page"),
-				" \\pageref{", ref_string, "}", NULL);
+			template_string = g_string_new(glatex_ref_all_string);
 		}
 
-		if (ref_string != NULL)
+		if (ref_string != NULL && template_string != NULL)
 		{
-			glatex_insert_string(ref_string, TRUE);
+			gchar *tmp;
+			utils_string_replace_all(template_string, "{{reference}}", ref_string);
+			tmp = g_string_free(template_string, FALSE);
+			glatex_insert_string(tmp, TRUE);
 			g_free(ref_string);
+			g_free(tmp);
 		}
+		else 
+		{
+			if (ref_string != NULL)
+				g_free(ref_string);
+			if (template_string != NULL)
+				g_free(template_string);
+		}
 	}
 
 	gtk_widget_destroy(dialog);
@@ -1321,6 +1335,13 @@
 	glatex_deactivate_toolbaritems_with_non_latex = utils_get_setting_boolean(config, "toolbar",
 		"glatex_deactivate_toolbaritems_with_non_latex", TRUE);
 
+	glatex_ref_page_string = utils_get_setting_string(config, "reference", 
+		"glatex_reference_page", _("page \\pageref{{{reference}}}"));
+	glatex_ref_chapter_string = utils_get_setting_string(config, "reference", 
+		"glatex_reference_chapter", "\\ref{{{reference}}}");
+	glatex_ref_all_string = utils_get_setting_string(config, "reference", 
+		"glatex_reference_all", _("\\ref{{{reference}}}, page \\pageref{{{reference}}}"));
+
 	main_locale_init(LOCALEDIR, GETTEXT_PACKAGE);
 
 	g_key_file_free(config);
@@ -1462,4 +1483,7 @@
 		gtk_widget_destroy(glatex_toolbar);
 
 	g_free(config_file);
+	g_free(glatex_ref_chapter_string);
+	g_free(glatex_ref_page_string);
+	g_free(glatex_ref_all_string);
 }


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



More information about the Plugins-Commits mailing list