Branch: refs/heads/master Author: Nick Treleaven nick.treleaven@btinternet.com Committer: Nick Treleaven nick.treleaven@btinternet.com Date: Sun, 17 Mar 2013 13:30:59 UTC Commit: 7150c63f224e7fdcd74870dee13a659c4472553b https://github.com/geany/geany/commit/7150c63f224e7fdcd74870dee13a659c447255...
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).