[gtksourceview/wip/search] Search: split set_search(), and remove start/end properties
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview/wip/search] Search: split set_search(), and remove start/end properties
- Date: Mon, 17 Jun 2013 17:28:47 +0000 (UTC)
commit 85711ced2a63b5859c1040b91623b4ae08f00038
Author: Sébastien Wilmet <swilmet gnome org>
Date: Mon Jun 17 19:27:09 2013 +0200
Search: split set_search(), and remove start/end properties
The start/end properties can be done later, if an application needs it.
docs/reference/gtksourceview-3.0-sections.txt | 6 +-
gtksourceview/gtksourcebuffer.c | 267 ++++++---------------
gtksourceview/gtksourcebuffer.h | 14 +-
gtksourceview/gtksourcesearch.c | 332 ++++++-------------------
gtksourceview/gtksourcesearch.h | 23 +--
tests/test-search.c | 2 +-
6 files changed, 157 insertions(+), 487 deletions(-)
---
diff --git a/docs/reference/gtksourceview-3.0-sections.txt b/docs/reference/gtksourceview-3.0-sections.txt
index 09922f0..f87c569 100644
--- a/docs/reference/gtksourceview-3.0-sections.txt
+++ b/docs/reference/gtksourceview-3.0-sections.txt
@@ -36,8 +36,10 @@ gtk_source_buffer_iter_forward_to_context_class_toggle
gtk_source_buffer_iter_backward_to_context_class_toggle
gtk_source_buffer_get_undo_manager
gtk_source_buffer_set_undo_manager
-gtk_source_buffer_set_search
-gtk_source_buffer_clear_search
+gtk_source_buffer_set_search_text
+gtk_source_buffer_get_search_text
+gtk_source_buffer_set_search_flags
+gtk_source_buffer_get_search_flags
<SUBSECTION Standard>
GtkSourceBufferClass
GTK_SOURCE_IS_BUFFER
diff --git a/gtksourceview/gtksourcebuffer.c b/gtksourceview/gtksourcebuffer.c
index ec11372..f97d143 100644
--- a/gtksourceview/gtksourcebuffer.c
+++ b/gtksourceview/gtksourcebuffer.c
@@ -122,10 +122,8 @@ enum {
PROP_LANGUAGE,
PROP_STYLE_SCHEME,
PROP_UNDO_MANAGER,
- PROP_SEARCH_STRING,
- PROP_SEARCH_FLAGS,
- PROP_SEARCH_START,
- PROP_SEARCH_END
+ PROP_SEARCH_TEXT,
+ PROP_SEARCH_FLAGS
};
struct _GtkSourceBufferPrivate
@@ -343,17 +341,17 @@ gtk_source_buffer_class_init (GtkSourceBufferClass *klass)
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
/**
- * GtkSourceBuffer:search-string:
+ * GtkSourceBuffer:search-text:
*
- * A search string, or %NULL if the search is cleared.
+ * A search string, or %NULL if the search is disabled.
*
* Since: 3.10
*/
g_object_class_install_property (object_class,
- PROP_SEARCH_STRING,
- g_param_spec_string ("search-string",
- _("Search string"),
- _("Search string"),
+ PROP_SEARCH_TEXT,
+ g_param_spec_string ("search-text",
+ _("Search text"),
+ _("The text to search"),
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
@@ -373,36 +371,6 @@ gtk_source_buffer_class_init (GtkSourceBufferClass *klass)
GTK_TEXT_SEARCH_VISIBLE_ONLY |
GTK_TEXT_SEARCH_TEXT_ONLY,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
- /**
- * GtkSourceBuffer:search-start:
- *
- * The lower bound for the search, or %NULL for the start of the buffer.
- *
- * Since: 3.10
- */
- g_object_class_install_property (object_class,
- PROP_SEARCH_START,
- g_param_spec_object ("search-start",
- _("Search start"),
- _("Lower bound for the search"),
- GTK_TYPE_TEXT_MARK,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- /**
- * GtkSourceBuffer:search-end:
- *
- * The upper bound for the search, or %NULL for the end of the buffer.
- *
- * Since: 3.10
- */
- g_object_class_install_property (object_class,
- PROP_SEARCH_END,
- g_param_spec_object ("search-end",
- _("Search end"),
- _("Upper bound for the search"),
- GTK_TYPE_TEXT_MARK,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
param_types[0] = GTK_TYPE_TEXT_ITER | G_SIGNAL_TYPE_STATIC_SCOPE;
param_types[1] = GTK_TYPE_TEXT_ITER | G_SIGNAL_TYPE_STATIC_SCOPE;
@@ -637,28 +605,14 @@ gtk_source_buffer_set_property (GObject *object,
g_value_get_object (value));
break;
- case PROP_SEARCH_STRING:
- _gtk_source_search_set_string (source_buffer->priv->search,
- g_value_get_string (value));
- _gtk_source_search_update (source_buffer->priv->search);
+ case PROP_SEARCH_TEXT:
+ _gtk_source_search_set_text (source_buffer->priv->search,
+ g_value_get_string (value));
break;
case PROP_SEARCH_FLAGS:
_gtk_source_search_set_flags (source_buffer->priv->search,
g_value_get_flags (value));
- _gtk_source_search_update (source_buffer->priv->search);
- break;
-
- case PROP_SEARCH_START:
- _gtk_source_search_set_start (source_buffer->priv->search,
- g_value_get_object (value));
- _gtk_source_search_update (source_buffer->priv->search);
- break;
-
- case PROP_SEARCH_END:
- _gtk_source_search_set_end (source_buffer->priv->search,
- g_value_get_object (value));
- _gtk_source_search_update (source_buffer->priv->search);
break;
default:
@@ -716,22 +670,14 @@ gtk_source_buffer_get_property (GObject *object,
g_value_set_object (value, source_buffer->priv->undo_manager);
break;
- case PROP_SEARCH_STRING:
- g_value_set_string (value, _gtk_source_search_get_string
(source_buffer->priv->search));
+ case PROP_SEARCH_TEXT:
+ g_value_set_string (value, _gtk_source_search_get_text (source_buffer->priv->search));
break;
case PROP_SEARCH_FLAGS:
g_value_set_flags (value, _gtk_source_search_get_flags (source_buffer->priv->search));
break;
- case PROP_SEARCH_START:
- g_value_set_object (value, _gtk_source_search_get_start
(source_buffer->priv->search));
- break;
-
- case PROP_SEARCH_END:
- g_value_set_object (value, _gtk_source_search_get_end (source_buffer->priv->search));
- break;
-
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -2596,164 +2542,91 @@ gtk_source_buffer_get_undo_manager (GtkSourceBuffer *buffer)
}
/**
- * gtk_source_buffer_set_search:
- * @buffer: the #GtkSourceBuffer where the search occurs.
- * @str: a search string.
- * @flags: flags affecting how the search is done.
- * @start_iter: lower bound for the search, or %NULL for the start of the buffer.
- * @end_iter: upper bound for the search, or %NULL for the end of the buffer.
- *
- * Starts a new search, defined by @str and @flags, and delimited by @start and
- * @end. To search the all @buffer, set @start and @end to %NULL.
+ * gtk_source_buffer_set_search_text:
+ * @buffer: a #GtkSourceBuffer.
+ * @text: the text to search, or %NULL to disable the search.
*
- * The search matches will be highlighted. When the search is finished, call
- * gtk_source_buffer_clear_search().
+ * Sets the text to search. If @text is %NULL or is empty, the search will be
+ * disabled. A copy of @text will be made, so you can safely free @text after
+ * a call to this function.
*
* Since: 3.10
*/
void
-gtk_source_buffer_set_search (GtkSourceBuffer *buffer,
- const gchar *str,
- GtkTextSearchFlags flags,
- const GtkTextIter *start_iter,
- const GtkTextIter *end_iter)
+gtk_source_buffer_set_search_text (GtkSourceBuffer *buffer,
+ const gchar *text)
{
- const gchar *cur_str;
- GtkTextSearchFlags cur_flags;
- GtkTextMark *cur_start_mark;
- GtkTextMark *cur_end_mark;
- gboolean set_start = FALSE;
- gboolean set_end = FALSE;
+ const gchar *cur_text;
g_return_if_fail (GTK_SOURCE_IS_BUFFER (buffer));
- /* Update the string */
-
- cur_str = _gtk_source_search_get_string (buffer->priv->search);
-
- if (g_strcmp0 (cur_str, str) != 0)
- {
- _gtk_source_search_set_string (buffer->priv->search, str);
- g_object_notify (G_OBJECT (buffer), "search-string");
- }
-
- /* Update the flags */
-
- cur_flags = _gtk_source_search_get_flags (buffer->priv->search);
+ cur_text = _gtk_source_search_get_text (buffer->priv->search);
- if (cur_flags != flags)
+ if (cur_text == NULL && (text == NULL || *text == '\0'))
{
- _gtk_source_search_set_flags (buffer->priv->search, flags);
- g_object_notify (G_OBJECT (buffer), "search-flags");
- }
-
- /* Update the start */
-
- cur_start_mark = _gtk_source_search_get_start (buffer->priv->search);
-
- if (cur_start_mark != NULL)
- {
- if (start_iter == NULL)
- {
- _gtk_source_search_set_start (buffer->priv->search, NULL);
- g_object_notify (G_OBJECT (buffer), "search-start");
- }
- else
- {
- GtkTextIter cur_start_iter;
-
- gtk_text_buffer_get_iter_at_mark (GTK_TEXT_BUFFER (buffer),
- &cur_start_iter,
- cur_start_mark);
-
- if (!gtk_text_iter_equal (&cur_start_iter, start_iter))
- {
- set_start = TRUE;
- }
- }
- }
- else if (start_iter != NULL)
- {
- set_start = TRUE;
+ return;
}
- if (set_start)
- {
- GtkTextMark *start_mark;
-
- start_mark = gtk_text_buffer_create_mark (GTK_TEXT_BUFFER (buffer),
- NULL,
- start_iter,
- TRUE);
-
- _gtk_source_search_set_start (buffer->priv->search, start_mark);
- g_object_notify (G_OBJECT (buffer), "search-start");
- }
+ _gtk_source_search_set_text (buffer->priv->search, text);
+ g_object_notify (G_OBJECT (buffer), "search-text");
+}
- /* Update the end */
+/**
+ * gtk_source_buffer_get_search_text:
+ * @buffer: a #GtkSourceBuffer.
+ *
+ * Gets the text to search. The return value must not be freed.
+ *
+ * Returns: the text to search, or %NULL if the search is disabled.
+ * Since: 3.10
+ */
+const gchar *
+gtk_source_buffer_get_search_text (GtkSourceBuffer *buffer)
+{
+ g_return_val_if_fail (GTK_SOURCE_IS_BUFFER (buffer), NULL);
- cur_end_mark = _gtk_source_search_get_end (buffer->priv->search);
+ return _gtk_source_search_get_text (buffer->priv->search);
+}
- if (cur_end_mark != NULL)
- {
- if (end_iter == NULL)
- {
- _gtk_source_search_set_end (buffer->priv->search, NULL);
- g_object_notify (G_OBJECT (buffer), "search-end");
- }
- else
- {
- GtkTextIter cur_end_iter;
+/**
+ * gtk_source_buffer_set_search_flags:
+ * @buffer: a #GtkSourceBuffer.
+ * @flags: flags affecting how the search is done.
+ *
+ * Modifies how the search is done.
+ *
+ * Since: 3.10
+ */
+void
+gtk_source_buffer_set_search_flags (GtkSourceBuffer *buffer,
+ GtkTextSearchFlags flags)
+{
+ GtkTextSearchFlags cur_flags;
- gtk_text_buffer_get_iter_at_mark (GTK_TEXT_BUFFER (buffer),
- &cur_end_iter,
- cur_end_mark);
+ g_return_if_fail (GTK_SOURCE_IS_BUFFER (buffer));
- if (!gtk_text_iter_equal (&cur_end_iter, end_iter))
- {
- set_end = TRUE;
- }
- }
- }
- else if (end_iter != NULL)
- {
- set_end = TRUE;
- }
+ cur_flags = _gtk_source_search_get_flags (buffer->priv->search);
- if (set_end)
+ if (cur_flags != flags)
{
- GtkTextMark *end_mark;
-
- end_mark = gtk_text_buffer_create_mark (GTK_TEXT_BUFFER (buffer),
- NULL,
- end_iter,
- FALSE);
-
- _gtk_source_search_set_end (buffer->priv->search, end_mark);
- g_object_notify (G_OBJECT (buffer), "search-end");
+ _gtk_source_search_set_flags (buffer->priv->search, flags);
+ g_object_notify (G_OBJECT (buffer), "search-flags");
}
-
- /* Update the search */
-
- _gtk_source_search_update (buffer->priv->search);
}
/**
- * gtk_source_buffer_clear_search:
- * @buffer: the #GtkSourceBuffer where the search occurs.
+ * gtk_source_buffer_get_search_flags:
+ * @buffer: a #GtkSourceBuffer.
*
- * Clear the search matches highlighting.
+ * Gets the search flags.
*
+ * Returns: the flags affecting how the search is done.
* Since: 3.10
*/
-void
-gtk_source_buffer_clear_search (GtkSourceBuffer *buffer)
+GtkTextSearchFlags
+gtk_source_buffer_get_search_flags (GtkSourceBuffer *buffer)
{
- GtkTextSearchFlags flags;
-
- g_return_if_fail (GTK_SOURCE_IS_BUFFER (buffer));
-
- flags = _gtk_source_search_get_flags (buffer->priv->search);
+ g_return_val_if_fail (GTK_SOURCE_IS_BUFFER (buffer), 0);
- gtk_source_buffer_set_search (buffer, NULL, flags, NULL, NULL);
+ return _gtk_source_search_get_flags (buffer->priv->search);
}
diff --git a/gtksourceview/gtksourcebuffer.h b/gtksourceview/gtksourcebuffer.h
index a170862..95447d9 100644
--- a/gtksourceview/gtksourcebuffer.h
+++ b/gtksourceview/gtksourcebuffer.h
@@ -175,13 +175,15 @@ GtkSourceUndoManager *gtk_source_buffer_get_undo_manager (GtkSourceBuffer
*buffe
void gtk_source_buffer_set_undo_manager (GtkSourceBuffer *buffer,
GtkSourceUndoManager *manager);
-void gtk_source_buffer_set_search (GtkSourceBuffer *buffer,
- const gchar *str,
- GtkTextSearchFlags flags,
- const GtkTextIter *start_iter,
- const GtkTextIter *end_iter);
+void gtk_source_buffer_set_search_text (GtkSourceBuffer *buffer,
+ const gchar *text);
-void gtk_source_buffer_clear_search (GtkSourceBuffer *buffer);
+const gchar *gtk_source_buffer_get_search_text (GtkSourceBuffer *buffer);
+
+void gtk_source_buffer_set_search_flags (GtkSourceBuffer *buffer,
+ GtkTextSearchFlags flags);
+
+GtkTextSearchFlags gtk_source_buffer_get_search_flags (GtkSourceBuffer *buffer);
/* private */
void _gtk_source_buffer_update_highlight (GtkSourceBuffer *buffer,
diff --git a/gtksourceview/gtksourcesearch.c b/gtksourceview/gtksourcesearch.c
index f9bf517..2b761b2 100644
--- a/gtksourceview/gtksourcesearch.c
+++ b/gtksourceview/gtksourcesearch.c
@@ -32,11 +32,9 @@ struct _GtkSourceSearchPrivate
GtkTextBuffer *buffer;
/* State of the search */
- gchar *str;
- gint str_nb_lines;
+ gchar *text;
+ gint text_nb_lines;
GtkTextSearchFlags flags;
- GtkTextMark *start;
- GtkTextMark *end;
/* Contains the remaining region to highlight */
GtkTextRegion *region;
@@ -115,26 +113,60 @@ text_tag_set_highest_priority (GtkTextTag *tag,
}
static void
-_gtk_source_search_dispose (GObject *object)
+clear_search (GtkSourceSearch *search)
{
- GtkSourceSearch *search = GTK_SOURCE_SEARCH (object);
+ if (search->priv->region != NULL)
+ {
+ gtk_text_region_destroy (search->priv->region, TRUE);
+ search->priv->region = NULL;
+ }
- if (search->priv->start != NULL)
+ if (search->priv->found_tag != NULL)
{
- gtk_text_buffer_delete_mark (search->priv->buffer,
- search->priv->start);
+ GtkTextIter start;
+ GtkTextIter end;
+
+ gtk_text_buffer_get_bounds (search->priv->buffer, &start, &end);
- g_clear_object (&search->priv->start);
+ gtk_text_buffer_remove_tag (search->priv->buffer,
+ search->priv->found_tag,
+ &start,
+ &end);
}
+}
+
+static void
+update (GtkSourceSearch *search)
+{
+ GtkTextIter start;
+ GtkTextIter end;
+
+ g_return_if_fail (GTK_SOURCE_IS_SEARCH (search));
- if (search->priv->end != NULL)
+ if (dispose_has_run (search))
{
- gtk_text_buffer_delete_mark (search->priv->buffer,
- search->priv->end);
+ return;
+ }
- g_clear_object (&search->priv->end);
+ clear_search (search);
+
+ if (search->priv->text == NULL)
+ {
+ return;
}
+ search->priv->region = gtk_text_region_new (search->priv->buffer);
+
+ gtk_text_buffer_get_bounds (search->priv->buffer, &start, &end);
+
+ gtk_text_region_add (search->priv->region, &start, &end);
+}
+
+static void
+_gtk_source_search_dispose (GObject *object)
+{
+ GtkSourceSearch *search = GTK_SOURCE_SEARCH (object);
+
if (search->priv->region != NULL)
{
gtk_text_region_destroy (search->priv->region, TRUE);
@@ -151,7 +183,7 @@ _gtk_source_search_finalize (GObject *object)
{
GtkSourceSearch *search = GTK_SOURCE_SEARCH (object);
- g_free (search->priv->str);
+ g_free (search->priv->text);
G_OBJECT_CLASS (_gtk_source_search_parent_class)->finalize (object);
}
@@ -171,8 +203,6 @@ static void
_gtk_source_search_init (GtkSourceSearch *self)
{
self->priv = GTK_SOURCE_SEARCH_GET_PRIVATE (self);
-
- self->priv->flags = GTK_TEXT_SEARCH_VISIBLE_ONLY | GTK_TEXT_SEARCH_TEXT_ONLY;
}
GtkSourceSearch *
@@ -189,82 +219,6 @@ _gtk_source_search_new (GtkSourceBuffer *buffer)
return search;
}
-static gchar *
-unescape_search_text (const gchar *text)
-{
- GString *str;
- gint length;
- gboolean drop_prev = FALSE;
- const gchar *cur;
- const gchar *end;
- const gchar *prev;
-
- if (text == NULL)
- {
- return NULL;
- }
-
- length = strlen (text);
-
- str = g_string_new ("");
-
- cur = text;
- end = text + length;
- prev = NULL;
-
- while (cur != end)
- {
- const gchar *next;
- next = g_utf8_next_char (cur);
-
- if (prev != NULL && *prev == '\\')
- {
- switch (*cur)
- {
- case 'n':
- str = g_string_append (str, "\n");
- break;
- case 'r':
- str = g_string_append (str, "\r");
- break;
- case 't':
- str = g_string_append (str, "\t");
- break;
- case '\\':
- str = g_string_append (str, "\\");
- drop_prev = TRUE;
- break;
- default:
- str = g_string_append (str, "\\");
- str = g_string_append_len (str, cur, next - cur);
- break;
- }
- }
- else if (*cur != '\\')
- {
- str = g_string_append_len (str, cur, next - cur);
- }
- else if (next == end && *cur == '\\')
- {
- str = g_string_append (str, "\\");
- }
-
- if (!drop_prev)
- {
- prev = cur;
- }
- else
- {
- prev = NULL;
- drop_prev = FALSE;
- }
-
- cur = next;
- }
-
- return g_string_free (str, FALSE);
-}
-
static gint
compute_nb_of_lines (const gchar *text)
{
@@ -302,23 +256,34 @@ compute_nb_of_lines (const gchar *text)
}
void
-_gtk_source_search_set_string (GtkSourceSearch *search,
- const gchar *str)
+_gtk_source_search_set_text (GtkSourceSearch *search,
+ const gchar *text)
{
g_return_if_fail (GTK_SOURCE_IS_SEARCH (search));
- g_return_if_fail (str == NULL || g_utf8_validate (str, -1, NULL));
+ g_return_if_fail (text == NULL || g_utf8_validate (text, -1, NULL));
+
+ g_free (search->priv->text);
+
+ if (text == NULL || *text == '\0')
+ {
+ search->priv->text = NULL;
+ }
+ else
+ {
+ search->priv->text = g_strdup (text);
+ }
+
+ search->priv->text_nb_lines = compute_nb_of_lines (search->priv->text);
- g_free (search->priv->str);
- search->priv->str = unescape_search_text (str);
- search->priv->str_nb_lines = compute_nb_of_lines (search->priv->str);
+ update (search);
}
const gchar *
-_gtk_source_search_get_string (GtkSourceSearch *search)
+_gtk_source_search_get_text (GtkSourceSearch *search)
{
g_return_val_if_fail (GTK_SOURCE_IS_SEARCH (search), NULL);
- return search->priv->str;
+ return search->priv->text;
}
void
@@ -328,6 +293,7 @@ _gtk_source_search_set_flags (GtkSourceSearch *search,
g_return_if_fail (GTK_SOURCE_IS_SEARCH (search));
search->priv->flags = flags;
+ update (search);
}
GtkTextSearchFlags
@@ -338,157 +304,6 @@ _gtk_source_search_get_flags (GtkSourceSearch *search)
return search->priv->flags;
}
-void
-_gtk_source_search_set_start (GtkSourceSearch *search,
- GtkTextMark *start)
-{
- g_return_if_fail (GTK_SOURCE_IS_SEARCH (search));
-
- if (dispose_has_run (search))
- {
- return;
- }
-
- if (start != NULL)
- {
- g_return_if_fail (gtk_text_mark_get_buffer (start) == search->priv->buffer);
- }
-
- if (search->priv->start != NULL)
- {
- gtk_text_buffer_delete_mark (search->priv->buffer,
- search->priv->start);
-
- g_object_unref (search->priv->start);
- }
-
- search->priv->start = start;
-
- if (start != NULL)
- {
- g_object_ref (start);
- }
-}
-
-GtkTextMark *
-_gtk_source_search_get_start (GtkSourceSearch *search)
-{
- g_return_val_if_fail (GTK_SOURCE_IS_SEARCH (search), NULL);
-
- return search->priv->start;
-}
-
-void
-_gtk_source_search_set_end (GtkSourceSearch *search,
- GtkTextMark *end)
-{
- g_return_if_fail (GTK_SOURCE_IS_SEARCH (search));
-
- if (dispose_has_run (search))
- {
- return;
- }
-
- if (end != NULL)
- {
- g_return_if_fail (gtk_text_mark_get_buffer (end) == search->priv->buffer);
- }
-
- if (search->priv->end != NULL)
- {
- gtk_text_buffer_delete_mark (search->priv->buffer,
- search->priv->end);
-
- g_object_unref (search->priv->end);
- }
-
- search->priv->end = end;
-
- if (end != NULL)
- {
- g_object_ref (end);
- }
-}
-
-GtkTextMark *
-_gtk_source_search_get_end (GtkSourceSearch *search)
-{
- g_return_val_if_fail (GTK_SOURCE_IS_SEARCH (search), NULL);
-
- return search->priv->end;
-}
-
-static void
-clear_search (GtkSourceSearch *search)
-{
- if (search->priv->region != NULL)
- {
- gtk_text_region_destroy (search->priv->region, TRUE);
- search->priv->region = NULL;
- }
-
- if (search->priv->found_tag != NULL)
- {
- GtkTextIter start;
- GtkTextIter end;
-
- gtk_text_buffer_get_bounds (search->priv->buffer, &start, &end);
-
- gtk_text_buffer_remove_tag (search->priv->buffer,
- search->priv->found_tag,
- &start,
- &end);
- }
-}
-
-/* Separate update function, so we can change several search properties at once. */
-void
-_gtk_source_search_update (GtkSourceSearch *search)
-{
- GtkTextIter start;
- GtkTextIter end;
-
- g_return_if_fail (GTK_SOURCE_IS_SEARCH (search));
-
- if (dispose_has_run (search))
- {
- return;
- }
-
- clear_search (search);
-
- if (search->priv->str == NULL)
- {
- return;
- }
-
- search->priv->region = gtk_text_region_new (search->priv->buffer);
-
- if (search->priv->start != NULL)
- {
- gtk_text_buffer_get_iter_at_mark (search->priv->buffer,
- &start,
- search->priv->start);
- }
- else
- {
- gtk_text_buffer_get_start_iter (search->priv->buffer, &start);
- }
-
- if (search->priv->end != NULL)
- {
- gtk_text_buffer_get_iter_at_mark (search->priv->buffer,
- &end,
- search->priv->end);
- }
- else
- {
- gtk_text_buffer_get_end_iter (search->priv->buffer, &end);
- }
-
- gtk_text_region_add (search->priv->region, &start, &end);
-}
-
static void
highlight_subregion (GtkSourceSearch *search,
GtkTextIter *start,
@@ -507,10 +322,10 @@ highlight_subregion (GtkSourceSearch *search,
text_tag_set_highest_priority (search->priv->found_tag,
search->priv->buffer);
- g_return_if_fail (search->priv->str_nb_lines > 0);
+ g_return_if_fail (search->priv->text_nb_lines > 0);
- gtk_text_iter_backward_lines (start, search->priv->str_nb_lines);
- gtk_text_iter_forward_lines (end, search->priv->str_nb_lines);
+ gtk_text_iter_backward_lines (start, search->priv->text_nb_lines);
+ gtk_text_iter_forward_lines (end, search->priv->text_nb_lines);
if (gtk_text_iter_has_tag (start, search->priv->found_tag) &&
!gtk_text_iter_begins_tag (start, search->priv->found_tag))
@@ -534,11 +349,6 @@ highlight_subregion (GtkSourceSearch *search,
start,
end);
- if (search->priv->str[0] == '\0')
- {
- return;
- }
-
iter = *start;
do
@@ -554,7 +364,7 @@ highlight_subregion (GtkSourceSearch *search,
*/
found = gtk_text_iter_forward_search (&iter,
- search->priv->str,
+ search->priv->text,
search->priv->flags,
&match_start,
&match_end,
diff --git a/gtksourceview/gtksourcesearch.h b/gtksourceview/gtksourcesearch.h
index d50b147..4a6e45d 100644
--- a/gtksourceview/gtksourcesearch.h
+++ b/gtksourceview/gtksourcesearch.h
@@ -57,11 +57,11 @@ G_GNUC_INTERNAL
GtkSourceSearch * _gtk_source_search_new (GtkSourceBuffer *buffer);
G_GNUC_INTERNAL
-void _gtk_source_search_set_string (GtkSourceSearch *search,
- const gchar *str);
+void _gtk_source_search_set_text (GtkSourceSearch *search,
+ const gchar *text);
G_GNUC_INTERNAL
-const gchar * _gtk_source_search_get_string (GtkSourceSearch *search);
+const gchar * _gtk_source_search_get_text (GtkSourceSearch *search);
G_GNUC_INTERNAL
void _gtk_source_search_set_flags (GtkSourceSearch *search,
@@ -71,23 +71,6 @@ G_GNUC_INTERNAL
GtkTextSearchFlags _gtk_source_search_get_flags (GtkSourceSearch *search);
G_GNUC_INTERNAL
-void _gtk_source_search_set_start (GtkSourceSearch *search,
- GtkTextMark *start);
-
-G_GNUC_INTERNAL
-GtkTextMark * _gtk_source_search_get_start (GtkSourceSearch *search);
-
-G_GNUC_INTERNAL
-void _gtk_source_search_set_end (GtkSourceSearch *search,
- GtkTextMark *end);
-
-G_GNUC_INTERNAL
-GtkTextMark * _gtk_source_search_get_end (GtkSourceSearch *search);
-
-G_GNUC_INTERNAL
-void _gtk_source_search_update (GtkSourceSearch *search);
-
-G_GNUC_INTERNAL
void _gtk_source_search_update_highlight (GtkSourceSearch *search,
const GtkTextIter *start,
const GtkTextIter *end,
diff --git a/tests/test-search.c b/tests/test-search.c
index 7115889..b96dbc5 100644
--- a/tests/test-search.c
+++ b/tests/test-search.c
@@ -63,7 +63,7 @@ create_window (void)
NULL);
g_object_bind_property (search_entry, "text",
- source_buffer, "search-string",
+ source_buffer, "search-text",
G_BINDING_DEFAULT);
g_object_unref (builder);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]