[geany/geany] 7150c6: Add Find Usage popup menu items for symbol list tags (#3608278)

Nick Treleaven git-noreply at xxxxx
Sun Mar 17 13:30:59 UTC 2013


Branch:      refs/heads/master
Author:      Nick Treleaven <nick.treleaven at btinternet.com>
Committer:   Nick Treleaven <nick.treleaven at btinternet.com>
Date:        Sun, 17 Mar 2013 13:30:59 UTC
Commit:      7150c63f224e7fdcd74870dee13a659c4472553b
             https://github.com/geany/geany/commit/7150c63f224e7fdcd74870dee13a659c4472553b

Log Message:
-----------
Add Find Usage popup menu items for symbol list tags (#3608278)


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

Modified: src/symbols.c
41 files changed, 40 insertions(+), 1 deletions(-)
===================================================================
@@ -55,6 +55,7 @@
 #include "editor.h"
 #include "sciwrappers.h"
 #include "filetypesprivate.h"
+#include "search.h"
 
 
 const guint TM_GLOBAL_TYPE_MASK =
@@ -100,8 +101,10 @@ enum	/* Geany tag files */
 	GtkWidget *collapse_all;
 	GtkWidget *sort_by_name;
 	GtkWidget *sort_by_appearance;
+	GtkWidget *find_usage;
+	GtkWidget *find_doc_usage;
 }
-symbol_menu = {NULL, NULL, NULL, NULL};
+symbol_menu;
 
 
 static void html_tags_loaded(void);
@@ -2257,6 +2260,8 @@ static void on_symbol_tree_menu_show(GtkWidget *widget,
 	gtk_widget_set_sensitive(symbol_menu.sort_by_appearance, enable);
 	gtk_widget_set_sensitive(symbol_menu.expand_all, enable);
 	gtk_widget_set_sensitive(symbol_menu.collapse_all, enable);
+	gtk_widget_set_sensitive(symbol_menu.find_usage, enable);
+	gtk_widget_set_sensitive(symbol_menu.find_doc_usage, enable);
 
 	if (! doc)
 		return;
@@ -2289,6 +2294,26 @@ static void on_expand_collapse(GtkWidget *widget, gpointer user_data)
 }
 
 
+static void on_find_usage(GtkWidget *widget, gboolean in_session)
+{
+	GtkTreeIter iter;
+	GtkTreeSelection *selection;
+	GtkTreeModel *model;
+	GeanyDocument *doc;
+	const TMTag *tag = NULL;
+
+	doc = document_get_current();
+	if (!doc)
+		return;
+
+	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(doc->priv->tag_tree));
+	if (gtk_tree_selection_get_selected(selection, &model, &iter))
+		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);
+}
+
+
 static void create_taglist_popup_menu(void)
 {
 	GtkWidget *item, *menu;
@@ -2323,6 +2348,20 @@ static void create_taglist_popup_menu(void)
 	g_signal_connect(item, "activate", G_CALLBACK(on_symbol_tree_sort_clicked),
 			GINT_TO_POINTER(SYMBOLS_SORT_BY_APPEARANCE));
 
+	item = gtk_separator_menu_item_new();
+	gtk_widget_show(item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+
+	symbol_menu.find_usage = item = ui_image_menu_item_new(GTK_STOCK_FIND, _("Find _Usage"));
+	gtk_widget_show(item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	g_signal_connect(item, "activate", G_CALLBACK(on_find_usage), GINT_TO_POINTER(TRUE));
+
+	symbol_menu.find_doc_usage = item = ui_image_menu_item_new(GTK_STOCK_FIND, _("Find _Document Usage"));
+	gtk_widget_show(item);
+	gtk_container_add(GTK_CONTAINER(menu), item);
+	g_signal_connect(item, "activate", G_CALLBACK(on_find_usage), GINT_TO_POINTER(FALSE));
+
 	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