SF.net SVN: geany:[3146] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Thu Oct 23 20:55:07 UTC 2008


Revision: 3146
          http://geany.svn.sourceforge.net/geany/?rev=3146&view=rev
Author:   eht16
Date:     2008-10-23 20:55:06 +0000 (Thu, 23 Oct 2008)

Log Message:
-----------
Replace Goto line text entry field in the toolbar with a spin button.
Remove dialogs_show_goto_line(), use the more generic dialogs_show_input_numeric() instead.
Increase limit of the maximum line number from 99999 to 100000000.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/geany.glade
    trunk/src/callbacks.c
    trunk/src/dialogs.c
    trunk/src/dialogs.h
    trunk/src/editor.c
    trunk/src/editor.h
    trunk/src/interface.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2008-10-23 18:44:05 UTC (rev 3145)
+++ trunk/ChangeLog	2008-10-23 20:55:06 UTC (rev 3146)
@@ -2,6 +2,12 @@
 
  * src/filetypes.c:
    Add simple auto-detection for HTML files without proper extension.
+ * geany.glade, src/callbacks.c, src/dialogs.c, src/dialogs.h,
+   src/editor.c, src/editor.h, src/interface.c:
+   Replace Goto line text entry field in the toolbar with a spin button.
+   Remove dialogs_show_goto_line(), use the more generic
+   dialogs_show_input_numeric() instead.
+   Increase limit of the maximum line number from 99999 to 100000000.
 
 
 2008-10-22  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>

Modified: trunk/geany.glade
===================================================================
--- trunk/geany.glade	2008-10-23 18:44:05 UTC (rev 3145)
+++ trunk/geany.glade	2008-10-23 20:55:06 UTC (rev 3146)
@@ -2042,18 +2042,17 @@
 	      <property name="is_important">False</property>
 
 	      <child>
-		<widget class="GtkEntry" id="toolbutton_goto_entry">
+		<widget class="GtkSpinButton" id="toolbutton_goto_entry">
 		  <property name="visible">True</property>
 		  <property name="tooltip" translatable="yes">Enter a line number and jump to it.</property>
 		  <property name="can_focus">True</property>
-		  <property name="editable">True</property>
-		  <property name="visibility">True</property>
-		  <property name="max_length">5</property>
-		  <property name="text" translatable="yes"></property>
-		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
-		  <property name="activates_default">False</property>
-		  <property name="width_chars">8</property>
+		  <property name="climb_rate">1</property>
+		  <property name="digits">0</property>
+		  <property name="numeric">True</property>
+		  <property name="update_policy">GTK_UPDATE_IF_VALID</property>
+		  <property name="snap_to_ticks">False</property>
+		  <property name="wrap">True</property>
+		  <property name="adjustment">0 1 100000000 1 10 0</property>
 		  <signal name="activate" handler="on_toolbutton_goto_entry_activate" last_modification_time="Mon, 01 Sep 2008 16:06:59 GMT"/>
 		</widget>
 	      </child>

Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c	2008-10-23 18:44:05 UTC (rev 3145)
+++ trunk/src/callbacks.c	2008-10-23 20:55:06 UTC (rev 3146)
@@ -1172,7 +1172,19 @@
 on_go_to_line_activate                 (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
-	dialogs_show_goto_line();
+	static gdouble val = 1;
+
+	if (dialogs_show_input_numeric(_("Go to Line"), _("Enter the line you want to go to:"),
+			&val, 1, 100000000, 1))
+	{
+		GeanyDocument *doc = document_get_current();
+
+		if (doc != NULL)
+		{
+			if (! editor_goto_line(doc->editor, val - 1))
+				utils_beep();
+		}
+	}
 }
 
 
@@ -1184,22 +1196,15 @@
 	if (response == GTK_RESPONSE_ACCEPT)
 	{
 		GeanyDocument *doc = document_get_current();
-		gint line = strtol(gtk_entry_get_text(GTK_ENTRY(user_data)), NULL, 10);
+		gint line = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(user_data));
 
-		if (doc != NULL && line > 0 && line <= sci_get_line_count(doc->editor->sci))
+		if (doc != NULL)
 		{
-			gint pos;
-
-			line--;	/* the user counts lines from 1, we begin at 0 so bring the user line to our one */
-			pos = sci_get_position_from_line(doc->editor->sci, line);
-			editor_goto_pos(doc->editor, pos, TRUE);
+			if (! editor_goto_line(doc->editor, line - 1))
+				utils_beep();
 		}
-		else
-		{
-			utils_beep();
-		}
 	}
-	if (dialog)
+	if (dialog != NULL)
 		gtk_widget_destroy(GTK_WIDGET(dialog));
 }
 

Modified: trunk/src/dialogs.c
===================================================================
--- trunk/src/dialogs.c	2008-10-23 18:44:05 UTC (rev 3145)
+++ trunk/src/dialogs.c	2008-10-23 20:55:06 UTC (rev 3146)
@@ -965,32 +965,6 @@
 }
 
 
-void dialogs_show_goto_line()
-{
-	GtkWidget *dialog, *label, *entry, *vbox;
-
-	dialog = gtk_dialog_new_with_buttons(_("Go to Line"), GTK_WINDOW(main_widgets.window),
-										GTK_DIALOG_DESTROY_WITH_PARENT,
-										GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-										GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
-	vbox = ui_dialog_vbox_new(GTK_DIALOG(dialog));
-	gtk_widget_set_name(dialog, "GeanyDialog");
-
-	label = gtk_label_new(_("Enter the line you want to go to:"));
-	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-	entry = gtk_entry_new();
-	gtk_entry_set_max_length(GTK_ENTRY(entry), 6);
-	gtk_entry_set_width_chars(GTK_ENTRY(entry), 30);
-
-	g_signal_connect(entry, "activate", G_CALLBACK(on_goto_line_entry_activate), dialog);
-	g_signal_connect(dialog, "response", G_CALLBACK(on_goto_line_dialog_response), entry);
-
-	gtk_container_add(GTK_CONTAINER(vbox), label);
-	gtk_container_add(GTK_CONTAINER(vbox), entry);
-	gtk_widget_show_all(dialog);
-}
-
-
 void dialogs_show_file_properties(GeanyDocument *doc)
 {
 	GtkWidget *dialog, *label, *table, *hbox, *image, *perm_table, *check, *vbox;

Modified: trunk/src/dialogs.h
===================================================================
--- trunk/src/dialogs.h	2008-10-23 18:44:05 UTC (rev 3145)
+++ trunk/src/dialogs.h	2008-10-23 20:55:06 UTC (rev 3146)
@@ -51,8 +51,6 @@
 gboolean dialogs_show_input_numeric(const gchar *title, const gchar *label_text,
 									gdouble *value, gdouble min, gdouble max, gdouble step);
 
-void dialogs_show_goto_line(void);
-
 void dialogs_show_file_properties(GeanyDocument *doc);
 
 gboolean dialogs_show_question(const gchar *text, ...) G_GNUC_PRINTF (1, 2);

Modified: trunk/src/editor.c
===================================================================
--- trunk/src/editor.c	2008-10-23 18:44:05 UTC (rev 3145)
+++ trunk/src/editor.c	2008-10-23 20:55:06 UTC (rev 3146)
@@ -3780,6 +3780,19 @@
 }
 
 
+/* Convenience function for editor_goto_pos() to pass in a line number. */
+gboolean editor_goto_line(GeanyEditor *editor, gint line)
+{
+	gint pos;
+
+	g_return_val_if_fail(editor, FALSE);
+	g_return_val_if_fail(line >= 0 && line <= sci_get_line_count(editor->sci), FALSE);
+
+	pos = sci_get_position_from_line(editor->sci, line);
+	return editor_goto_pos(editor, pos, TRUE);
+}
+
+
 /* Move to position @a pos, switching to the document if necessary,
  * setting a marker if @a mark is set. */
 gboolean editor_goto_pos(GeanyEditor *editor, gint pos, gboolean mark)

Modified: trunk/src/editor.h
===================================================================
--- trunk/src/editor.h	2008-10-23 18:44:05 UTC (rev 3145)
+++ trunk/src/editor.h	2008-10-23 20:55:06 UTC (rev 3146)
@@ -236,6 +236,8 @@
 
 gboolean editor_goto_pos(GeanyEditor *editor, gint pos, gboolean mark);
 
+gboolean editor_goto_line(GeanyEditor *editor, gint line_no);
+
 void editor_set_indentation_guides(GeanyEditor *editor);
 
 void editor_apply_update_prefs(GeanyEditor *editor);

Modified: trunk/src/interface.c
===================================================================
--- trunk/src/interface.c	2008-10-23 18:44:05 UTC (rev 3145)
+++ trunk/src/interface.c	2008-10-23 20:55:06 UTC (rev 3146)
@@ -248,6 +248,7 @@
   GtkWidget *toolbutton_search;
   GtkWidget *separatortoolitem5;
   GtkWidget *toolbutton_goto_item;
+  GtkObject *toolbutton_goto_entry_adj;
   GtkWidget *toolbutton_goto_entry;
   GtkWidget *toolbutton_goto;
   GtkWidget *separatortoolitem8;
@@ -1218,12 +1219,14 @@
   gtk_widget_show (toolbutton_goto_item);
   gtk_container_add (GTK_CONTAINER (toolbar1), toolbutton_goto_item);
 
-  toolbutton_goto_entry = gtk_entry_new ();
+  toolbutton_goto_entry_adj = gtk_adjustment_new (0, 1, 100000000, 1, 10, 0);
+  toolbutton_goto_entry = gtk_spin_button_new (GTK_ADJUSTMENT (toolbutton_goto_entry_adj), 1, 0);
   gtk_widget_show (toolbutton_goto_entry);
   gtk_container_add (GTK_CONTAINER (toolbutton_goto_item), toolbutton_goto_entry);
   gtk_tooltips_set_tip (tooltips, toolbutton_goto_entry, _("Enter a line number and jump to it."), NULL);
-  gtk_entry_set_max_length (GTK_ENTRY (toolbutton_goto_entry), 5);
-  gtk_entry_set_width_chars (GTK_ENTRY (toolbutton_goto_entry), 8);
+  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (toolbutton_goto_entry), TRUE);
+  gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (toolbutton_goto_entry), GTK_UPDATE_IF_VALID);
+  gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (toolbutton_goto_entry), TRUE);
 
   toolbutton_goto = (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-jump-to");
   gtk_widget_show (toolbutton_goto);


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