[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