[geany/geany] 4fcce9: Add symbol list Find in Files popup menu item

Nick Treleaven git-noreply at xxxxx
Mon Mar 25 15:57:56 UTC 2013


Branch:      refs/heads/master
Author:      Nick Treleaven <nick.treleaven at btinternet.com>
Committer:   Nick Treleaven <nick.treleaven at btinternet.com>
Date:        Mon, 25 Mar 2013 15:57:56 UTC
Commit:      4fcce9cc003816b78d6d3ad21edecd8e4961536e
             https://github.com/geany/geany/commit/4fcce9cc003816b78d6d3ad21edecd8e4961536e

Log Message:
-----------
Add symbol list Find in Files popup menu item


Modified Paths:
--------------
    src/search.c
    src/search.h
    src/symbols.c

Modified: src/search.c
22 files changed, 16 insertions(+), 6 deletions(-)
===================================================================
@@ -1021,6 +1021,12 @@ static void create_fif_dialog(void)
  * by using the current file's path */
 void search_show_find_in_files_dialog(const gchar *dir)
 {
+	search_show_find_in_files_dialog_full(NULL, dir);
+}
+
+
+void search_show_find_in_files_dialog_full(const gchar *text, const gchar *dir)
+{
 	GtkWidget *entry; /* for child GtkEntry of a GtkComboBoxEntry */
 	GeanyDocument *doc = document_get_current();
 	gchar *sel = NULL;
@@ -1031,18 +1037,22 @@ void search_show_find_in_files_dialog(const gchar *dir)
 	{
 		create_fif_dialog();
 		gtk_widget_show_all(fif_dlg.dialog);
-		if (doc)
+		if (doc && !text)
 			sel = editor_get_default_selection(doc->editor, search_prefs.use_current_word, NULL);
 	}
 	stash_group_display(fif_prefs, fif_dlg.dialog);
 
-	/* only set selection if the dialog is not already visible, or has just been created */
-	if (doc && ! sel && ! gtk_widget_get_visible(fif_dlg.dialog))
-		sel = editor_get_default_selection(doc->editor, search_prefs.use_current_word, NULL);
+	if (!text)
+	{
+		/* only set selection if the dialog is not already visible, or has just been created */
+		if (doc && ! sel && ! gtk_widget_get_visible(fif_dlg.dialog))
+			sel = editor_get_default_selection(doc->editor, search_prefs.use_current_word, NULL);
 
+		text = sel;
+	}
 	entry = gtk_bin_get_child(GTK_BIN(fif_dlg.search_combo));
-	if (sel)
-		gtk_entry_set_text(GTK_ENTRY(entry), sel);
+	if (text)
+		gtk_entry_set_text(GTK_ENTRY(entry), text);
 	g_free(sel);
 
 	/* add project's base path directory to the dir list, we do this here once


Modified: src/search.h
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -78,6 +78,8 @@ enum GeanyFindSelOptions
 
 void search_show_find_in_files_dialog(const gchar *dir);
 
+void search_show_find_in_files_dialog_full(const gchar *text, const gchar *dir);
+
 
 struct _ScintillaObject;
 struct Sci_TextToFind;


Modified: src/symbols.c
12 files changed, 11 insertions(+), 1 deletions(-)
===================================================================
@@ -103,6 +103,7 @@ enum	/* Geany tag files */
 	GtkWidget *sort_by_appearance;
 	GtkWidget *find_usage;
 	GtkWidget *find_doc_usage;
+	GtkWidget *find_in_files;
 }
 symbol_menu;
 
@@ -2312,7 +2313,11 @@ static void on_find_usage(GtkWidget *widget, gboolean in_session)
 		gtk_tree_model_get(model, &iter, SYMBOLS_COLUMN_TAG, &tag, -1);
 	if (tag)
 	{
-		search_find_usage(tag->name, tag->name, SCFIND_WHOLEWORD | SCFIND_MATCHCASE, in_session);
+		if (widget == symbol_menu.find_in_files)
+			search_show_find_in_files_dialog_full(tag->name, NULL);
+		else
+			search_find_usage(tag->name, tag->name, SCFIND_WHOLEWORD | SCFIND_MATCHCASE, in_session);
+
 		tm_tag_unref(tag);
 	}
 }
@@ -2366,6 +2371,11 @@ static void create_taglist_popup_menu(void)
 	gtk_container_add(GTK_CONTAINER(menu), item);
 	g_signal_connect(item, "activate", G_CALLBACK(on_find_usage), GINT_TO_POINTER(FALSE));
 
+	symbol_menu.find_in_files = item = ui_image_menu_item_new(GTK_STOCK_FIND, _("Find in F_iles"));
+	gtk_widget_show(item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	g_signal_connect(item, "activate", G_CALLBACK(on_find_usage), NULL);
+
 	g_signal_connect(menu, "show", G_CALLBACK(on_symbol_tree_menu_show), NULL);
 
 	sidebar_add_common_menu_items(GTK_MENU(menu));



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list