[anjuta] document-manager: Allow to search starting from the current position
- From: Sebastien Granjoux <sgranjoux src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [anjuta] document-manager: Allow to search starting from the current position
- Date: Sat, 23 Feb 2013 17:45:32 +0000 (UTC)
commit b2fb9bd306bda429cf9c15e9dbbb2360fd057d5a
Author: Sébastien Granjoux <seb sfo free fr>
Date: Fri Feb 22 22:53:17 2013 +0100
document-manager: Allow to search starting from the current position
This is useful when the search function is called on a change of the search
entry. In this case you want to search the new text starting from the current
position and not go to the next match.
plugins/document-manager/action-callbacks.c | 4 ++--
plugins/document-manager/search-box.c | 14 ++++++++------
plugins/document-manager/search-box.h | 4 +++-
plugins/document-manager/search-files.c | 2 +-
4 files changed, 14 insertions(+), 10 deletions(-)
---
diff --git a/plugins/document-manager/action-callbacks.c b/plugins/document-manager/action-callbacks.c
index ce00180..ad5002b 100644
--- a/plugins/document-manager/action-callbacks.c
+++ b/plugins/document-manager/action-callbacks.c
@@ -790,7 +790,7 @@ on_repeat_quicksearch (GtkAction *action, gpointer user_data)
search_box = plugin->search_box;
gtk_widget_show (search_box);
- search_box_incremental_search (SEARCH_BOX (search_box), TRUE, TRUE);
+ search_box_incremental_search (SEARCH_BOX (search_box), TRUE, TRUE, TRUE);
}
void
@@ -804,7 +804,7 @@ on_search_previous (GtkAction *action, gpointer user_data)
search_box = plugin->search_box;
gtk_widget_show (search_box);
- search_box_incremental_search (SEARCH_BOX (search_box), FALSE, TRUE);
+ search_box_incremental_search (SEARCH_BOX (search_box), FALSE, TRUE, TRUE);
}
void
diff --git a/plugins/document-manager/search-box.c b/plugins/document-manager/search-box.c
index 24ee19b..037f8a2 100644
--- a/plugins/document-manager/search-box.c
+++ b/plugins/document-manager/search-box.c
@@ -393,7 +393,9 @@ editor_search (IAnjutaEditor *editor,
}
gboolean
-search_box_incremental_search (SearchBox* search_box, gboolean search_forward,
+search_box_incremental_search (SearchBox* search_box,
+ gboolean search_forward,
+ gboolean search_next,
gboolean wrap)
{
IAnjutaIterable* real_start;
@@ -451,7 +453,7 @@ search_box_incremental_search (SearchBox* search_box, gboolean search_forward,
* selection starts with a match, look for next match.
*/
if (ianjuta_editor_selection_has_selection (selection,
- NULL))
+ NULL) && search_next)
{
gchar* selected_text =
ianjuta_editor_selection_get (selection, NULL);
@@ -709,7 +711,7 @@ on_search_box_entry_changed (GtkWidget * widget, SearchBox * search_box)
{
GtkEntryBuffer* buffer = gtk_entry_get_buffer (GTK_ENTRY(widget));
if (gtk_entry_buffer_get_length (buffer))
- search_box_incremental_search (search_box, TRUE, TRUE);
+ search_box_incremental_search (search_box, TRUE, FALSE, TRUE);
else
{
/* clear selection */
@@ -729,13 +731,13 @@ on_search_box_entry_changed (GtkWidget * widget, SearchBox * search_box)
static void
search_box_forward_search (SearchBox * search_box, GtkWidget* widget)
{
- search_box_incremental_search (search_box, TRUE, TRUE);
+ search_box_incremental_search (search_box, TRUE, TRUE, TRUE);
}
static void
on_search_box_backward_search (GtkWidget * widget, SearchBox * search_box)
{
- search_box_incremental_search (search_box, FALSE, TRUE);
+ search_box_incremental_search (search_box, FALSE, TRUE, TRUE);
}
static gboolean
@@ -886,7 +888,7 @@ on_replace_all_activated (GtkWidget* widget, SearchBox* search_box)
/* Replace all instances of search_entry with replace_entry text */
ianjuta_document_begin_undo_action (IANJUTA_DOCUMENT (search_box->priv->current_editor), NULL);
- while (search_box_incremental_search (search_box, TRUE, FALSE))
+ while (search_box_incremental_search (search_box, TRUE, TRUE, FALSE))
{
search_box_replace (search_box, widget, FALSE);
}
diff --git a/plugins/document-manager/search-box.h b/plugins/document-manager/search-box.h
index 30a539a..ae8ec7b 100644
--- a/plugins/document-manager/search-box.h
+++ b/plugins/document-manager/search-box.h
@@ -60,7 +60,9 @@ void search_box_fill_search_focus (SearchBox* search_box, gboolean on_replace);
void search_box_grab_line_focus (SearchBox* search_box);
void search_box_hide (SearchBox* search_box);
void search_box_set_replace (SearchBox* object, gboolean replace);
-gboolean search_box_incremental_search (SearchBox* search_box, gboolean search_forward,
+gboolean search_box_incremental_search (SearchBox* search_box,
+ gboolean search_forward,
+ gboolean search_next,
gboolean wrap);
void search_box_highlight_all (SearchBox * search_box);
diff --git a/plugins/document-manager/search-files.c b/plugins/document-manager/search-files.c
index bff7467..a03363f 100644
--- a/plugins/document-manager/search-files.c
+++ b/plugins/document-manager/search-files.c
@@ -537,7 +537,7 @@ search_files_editor_loaded (SearchFiles* sf, IAnjutaEditor* editor)
search_box_toggle_regex(sf->priv->search_box,
sf->priv->regex);
search_box_highlight_all(sf->priv->search_box);
- search_box_incremental_search(sf->priv->search_box, TRUE, FALSE);
+ search_box_incremental_search(sf->priv->search_box, TRUE, TRUE, FALSE);
gtk_widget_show (GTK_WIDGET(sf->priv->search_box));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]