[Geany-devel] [PATCH 2/3] Make it possible to fill some fields of find in files dialog by plugins
Jiří Techet
techet at xxxxx
Wed Jun 9 19:49:05 UTC 2010
This patch makes it possible for plugins to fill the values of the "search for"
and "extra options" fields of the find in files dialog.
Signed-off-by: Jiří Techet <techet at gmail.com>
---
plugins/geanyfunctions.h | 2 ++
src/plugindata.h | 1 +
src/plugins.c | 3 ++-
src/search.c | 21 +++++++++++++++++++--
src/search.h | 1 +
5 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/plugins/geanyfunctions.h b/plugins/geanyfunctions.h
index 0b0556e..d015ffd 100644
--- a/plugins/geanyfunctions.h
+++ b/plugins/geanyfunctions.h
@@ -316,6 +316,8 @@
geany_functions->p_tm->tm_workspace_remove_object
#define search_show_find_in_files_dialog \
geany_functions->p_search->search_show_find_in_files_dialog
+#define search_show_find_in_files_dialog_with_extra_opt \
+ geany_functions->p_search->search_show_find_in_files_dialog_with_extra_opt
#define highlighting_get_style \
geany_functions->p_highlighting->highlighting_get_style
#define highlighting_set_styles \
diff --git a/src/plugindata.h b/src/plugindata.h
index 5405639..aff3143 100644
--- a/src/plugindata.h
+++ b/src/plugindata.h
@@ -544,6 +544,7 @@ FiletypeFuncs;
typedef struct SearchFuncs
{
void (*search_show_find_in_files_dialog) (const gchar *dir);
+ void (*search_show_find_in_files_dialog_with_extra_opt) (const gchar *dir, const gchar *extra_opt);
}
SearchFuncs;
diff --git a/src/plugins.c b/src/plugins.c
index 8269111..db421b0 100644
--- a/src/plugins.c
+++ b/src/plugins.c
@@ -281,7 +281,8 @@ static TagManagerFuncs tagmanager_funcs = {
};
static SearchFuncs search_funcs = {
- &search_show_find_in_files_dialog
+ &search_show_find_in_files_dialog,
+ &search_show_find_in_files_dialog_with_extra_opt
};
static HighlightingFuncs highlighting_funcs = {
diff --git a/src/search.c b/src/search.c
index 3e60f62..2149629 100644
--- a/src/search.c
+++ b/src/search.c
@@ -126,9 +126,10 @@ static struct
GtkWidget *dir_combo;
GtkWidget *search_combo;
GtkWidget *encoding_combo;
+ GtkWidget *extra_opt_entry;
gint position[2]; /* x, y */
}
-fif_dlg = {NULL, NULL, NULL, NULL, {0, 0}};
+fif_dlg = {NULL, NULL, NULL, NULL, NULL, {0, 0}};
static gboolean search_read_io(GIOChannel *source, GIOCondition condition, gpointer data);
@@ -850,6 +851,7 @@ static void create_fif_dialog(void)
gtk_widget_set_sensitive(entry_extra, FALSE);
ui_widget_set_tooltip_text(entry_extra, _("Other options to pass to Grep"));
ui_hookup_widget(fif_dlg.dialog, entry_extra, "entry_extra");
+ fif_dlg.extra_opt_entry = entry_extra;
/* enable entry_extra when check_extra is checked */
g_signal_connect(check_extra, "toggled",
@@ -871,7 +873,7 @@ static void create_fif_dialog(void)
/* dir is the directory to search in (UTF-8 encoding), maybe NULL to determine it the usual way
* by using the current file's path */
-void search_show_find_in_files_dialog(const gchar *dir)
+static void search_show_find_in_files_dialog_internal(const gchar *dir, const gchar *extra_opt)
{
GtkWidget *entry; /* for child GtkEntry of a GtkComboBoxEntry */
GeanyDocument *doc = document_get_current();
@@ -930,6 +932,9 @@ void search_show_find_in_files_dialog(const gchar *dir)
g_free(cur_dir);
}
+ if (NZV(extra_opt))
+ gtk_entry_set_text(GTK_ENTRY(fif_dlg.extra_opt_entry), extra_opt);
+
/* set the encoding of the current file */
if (doc != NULL)
enc_idx = encodings_get_idx_from_charset(doc->encoding);
@@ -950,6 +955,18 @@ void search_show_find_in_files_dialog(const gchar *dir)
}
+void search_show_find_in_files_dialog(const gchar *dir)
+{
+ search_show_find_in_files_dialog_internal(dir, NULL);
+}
+
+
+void search_show_find_in_files_dialog_with_extra_opt(const gchar *dir, const gchar *extra_opt)
+{
+ search_show_find_in_files_dialog_internal(dir, extra_opt);
+}
+
+
static void
on_find_replace_checkbutton_toggled(GtkToggleButton *togglebutton, gpointer user_data)
{
diff --git a/src/search.h b/src/search.h
index 0934990..26389f6 100644
--- a/src/search.h
+++ b/src/search.h
@@ -67,6 +67,7 @@ void search_show_replace_dialog(void);
void search_show_find_in_files_dialog(const gchar *dir);
+void search_show_find_in_files_dialog_with_extra_opt(const gchar *dir, const gchar *extra_opt);
struct _ScintillaObject;
struct Sci_TextToFind;
--
1.7.0.4
More information about the Devel
mailing list