SF.net SVN: geany: [546] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Mon Jul 10 16:46:39 UTC 2006


Revision: 546
Author:   eht16
Date:     2006-07-10 09:46:29 -0700 (Mon, 10 Jul 2006)
ViewCVS:  http://svn.sourceforge.net/geany/?rev=546&view=rev

Log Message:
-----------
Added "Replace in all open files" option in the replace dialog.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/callbacks.c
    trunk/src/dialogs.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-07-10 16:02:17 UTC (rev 545)
+++ trunk/ChangeLog	2006-07-10 16:46:29 UTC (rev 546)
@@ -1,6 +1,8 @@
 2006-07-10  Enrico Tröger  <enrico.troeger at uvena.de>
 
  * src/sci_cb.c: Autocompletion only works on blank lines.
+ * src/callbacks.c, src/dialogs.c:
+   Added "Replace in all open files" option in the replace dialog.
 
 
 2006-07-09  Enrico Tröger  <enrico.troeger at uvena.de>

Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c	2006-07-10 16:02:17 UTC (rev 545)
+++ trunk/src/callbacks.c	2006-07-10 16:46:29 UTC (rev 546)
@@ -77,6 +77,7 @@
 static gboolean search_backwards;
 static gint search_flags_re;
 static gboolean search_backwards_re;
+static gboolean search_in_all_buffers_re;
 
 // holds the current position where the mouse pointer is when the popup menu for the scintilla
 // scintilla widget is shown
@@ -1894,6 +1895,8 @@
 				lookup_widget(GTK_WIDGET(app->replace_dialog), "check_wordstart")));
 	search_backwards_re = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(
 				lookup_widget(GTK_WIDGET(app->replace_dialog), "check_back")));
+	search_in_all_buffers_re = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(
+				lookup_widget(GTK_WIDGET(app->replace_dialog), "check_all_buffers")));
 	find = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(entry_find))));
 	replace = gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(entry_replace))));
 
@@ -1911,23 +1914,37 @@
 					  (fl2 ? SCFIND_WHOLEWORD : 0) |
 					  (fl3 ? SCFIND_REGEXP : 0) |
 					  (fl4 ? SCFIND_WORDSTART : 0);
-	switch (response)
+
+	if (search_in_all_buffers_re && response == GEANY_RESPONSE_REPLACE_ALL)
 	{
-		case GEANY_RESPONSE_REPLACE:
+		gint i;
+		for (i = 0; i < GEANY_MAX_OPEN_FILES; i++)
 		{
-			document_replace_text(idx, find, replace, search_flags_re, search_backwards_re);
-			break;
+			if (! doc_list[i].is_valid) continue;
+
+			document_replace_all(i, find, replace, search_flags_re);
 		}
-		case GEANY_RESPONSE_REPLACE_ALL:
+	}
+	else
+	{
+		switch (response)
 		{
-			document_replace_all(idx, find, replace, search_flags_re);
-			break;
+			case GEANY_RESPONSE_REPLACE:
+			{
+				document_replace_text(idx, find, replace, search_flags_re, search_backwards_re);
+				break;
+			}
+			case GEANY_RESPONSE_REPLACE_ALL:
+			{
+				document_replace_all(idx, find, replace, search_flags_re);
+				break;
+			}
+			case GEANY_RESPONSE_REPLACE_SEL:
+			{
+				document_replace_sel(idx, find, replace, search_flags_re);
+				break;
+			}
 		}
-		case GEANY_RESPONSE_REPLACE_SEL:
-		{
-			document_replace_sel(idx, find, replace, search_flags_re);
-			break;
-		}
 	}
 }
 

Modified: trunk/src/dialogs.c
===================================================================
--- trunk/src/dialogs.c	2006-07-10 16:02:17 UTC (rev 545)
+++ trunk/src/dialogs.c	2006-07-10 16:46:29 UTC (rev 546)
@@ -904,7 +904,7 @@
 	if (app->replace_dialog == NULL)
 	{
 		GtkWidget *label_find, *label_replace, *entry_find, *entry_replace;
-		GtkWidget *checkbox1, *checkbox2, *checkbox3, *checkbox5, *checkbox4;
+		GtkWidget *checkbox1, *checkbox2, *checkbox3, *checkbox4, *checkbox5, *checkbox6;
 		GtkWidget *button;
 		GtkTooltips *tooltips = GTK_TOOLTIPS(lookup_widget(app->window, "tooltips"));
 
@@ -986,11 +986,19 @@
 						gtk_widget_ref(checkbox5), (GDestroyNotify)gtk_widget_unref);
 		gtk_button_set_focus_on_click(GTK_BUTTON(checkbox5), FALSE);
 
+		checkbox6 = gtk_check_button_new_with_mnemonic(_("Replace in all open files"));
+		g_object_set_data_full(G_OBJECT(app->replace_dialog), "check_all_buffers",
+						gtk_widget_ref(checkbox6), (GDestroyNotify)gtk_widget_unref);
+		gtk_tooltips_set_tip(tooltips, checkbox6,
+			_("Replaces the search text in all opened files. This option is only useful(and used) if you click on \"Replace All\"."), NULL);
+		gtk_button_set_focus_on_click(GTK_BUTTON(checkbox6), FALSE);
+
 		gtk_container_add(GTK_CONTAINER(GTK_DIALOG(app->replace_dialog)->vbox), checkbox1);
 		gtk_container_add(GTK_CONTAINER(GTK_DIALOG(app->replace_dialog)->vbox), checkbox2);
 		gtk_container_add(GTK_CONTAINER(GTK_DIALOG(app->replace_dialog)->vbox), checkbox5);
 		gtk_container_add(GTK_CONTAINER(GTK_DIALOG(app->replace_dialog)->vbox), checkbox3);
 		gtk_container_add(GTK_CONTAINER(GTK_DIALOG(app->replace_dialog)->vbox), checkbox4);
+		gtk_container_add(GTK_CONTAINER(GTK_DIALOG(app->replace_dialog)->vbox), checkbox6);
 		gtk_container_add(GTK_CONTAINER(GTK_DIALOG(app->replace_dialog)->vbox), gtk_label_new(""));
 
 		gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(app->replace_dialog)->vbox), 3);


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