[gtksourceview/wip/regex-search: 4/5] Search: move properties from Buffer to SearchContext
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview/wip/regex-search: 4/5] Search: move properties from Buffer to SearchContext
- Date: Sun, 28 Jul 2013 19:06:22 +0000 (UTC)
commit db9dc1dbf28e6293cc4876e2c03474dce243662f
Author: Sébastien Wilmet <swilmet gnome org>
Date: Sat Jul 27 21:30:24 2013 +0200
Search: move properties from Buffer to SearchContext
gtksourceview/gtksourcebuffer.c | 204 +--------------------------
gtksourceview/gtksourcesearchcontext.c | 249 ++++++++++++++++++++++++++++++++
2 files changed, 251 insertions(+), 202 deletions(-)
---
diff --git a/gtksourceview/gtksourcebuffer.c b/gtksourceview/gtksourcebuffer.c
index 343f131..b47e52a 100644
--- a/gtksourceview/gtksourcebuffer.c
+++ b/gtksourceview/gtksourcebuffer.c
@@ -142,6 +142,7 @@
#define PROFILE(x)
#endif
+/* For bracket matching */
#define MAX_CHARS_BEFORE_FINDING_A_MATCH 10000
#define TAG_CONTEXT_CLASS_NAME "GtkSourceViewTagContextClassName"
@@ -163,18 +164,10 @@ enum {
PROP_CAN_REDO,
PROP_HIGHLIGHT_SYNTAX,
PROP_HIGHLIGHT_MATCHING_BRACKETS,
- PROP_HIGHLIGHT_SEARCH,
PROP_MAX_UNDO_LEVELS,
PROP_LANGUAGE,
PROP_STYLE_SCHEME,
- PROP_UNDO_MANAGER,
- PROP_SEARCH_TEXT,
- PROP_SEARCH_OCCURRENCES_COUNT,
- PROP_CASE_SENSITIVE_SEARCH,
- PROP_SEARCH_AT_WORD_BOUNDARIES,
- PROP_SEARCH_WRAP_AROUND,
- PROP_REGEX_SEARCH,
- PROP_REGEX_SEARCH_ERROR
+ PROP_UNDO_MANAGER
};
struct _GtkSourceBufferPrivate
@@ -325,19 +318,6 @@ gtk_source_buffer_class_init (GtkSourceBufferClass *klass)
G_PARAM_READWRITE));
/**
- * GtkSourceBuffer:highlight-search:
- *
- * Whether to highlight search occurrences in the buffer.
- */
- g_object_class_install_property (object_class,
- PROP_HIGHLIGHT_SEARCH,
- g_param_spec_boolean ("highlight-search",
- _("Highlight Search"),
- _("Whether to highlight search occurrences"),
- TRUE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- /**
* GtkSourceBuffer:max-undo-levels:
*
* Number of undo levels for the buffer. -1 means no limit. This property
@@ -404,124 +384,6 @@ gtk_source_buffer_class_init (GtkSourceBufferClass *klass)
GTK_SOURCE_TYPE_UNDO_MANAGER,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
- /**
- * GtkSourceBuffer:search-text:
- *
- * A search string, or %NULL if the search is disabled. If the regular
- * expression search is enabled, #GtkSourceBuffer:search-text is the
- * pattern.
- *
- * Since: 3.10
- */
- g_object_class_install_property (object_class,
- PROP_SEARCH_TEXT,
- g_param_spec_string ("search-text",
- _("Search text"),
- _("The text to search"),
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- /**
- * GtkSourceBuffer:search-occurrences-count:
- *
- * The total number of search occurrences. If the search is disabled,
- * the value is 0. If the buffer is not already fully scanned, the value
- * is -1.
- *
- * Since: 3.10
- */
- g_object_class_install_property (object_class,
- PROP_SEARCH_OCCURRENCES_COUNT,
- g_param_spec_int ("search-occurrences-count",
- _("Search occurrences count"),
- _("Total number of search occurrences"),
- -1,
- G_MAXINT,
- 0,
- G_PARAM_READABLE));
-
- /**
- * GtkSourceBuffer:case-sensitive-search:
- *
- * Whether the search is case sensitive.
- *
- * Since: 3.10
- */
- g_object_class_install_property (object_class,
- PROP_CASE_SENSITIVE_SEARCH,
- g_param_spec_boolean ("case-sensitive-search",
- _("Case sensitive search"),
- _("Case sensitive search"),
- FALSE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- /**
- * GtkSourceBuffer:search-at-word-boundaries:
- *
- * If %TRUE, a search match must start and end a word. The match can
- * span multiple words.
- *
- * Since: 3.10
- */
- g_object_class_install_property (object_class,
- PROP_SEARCH_AT_WORD_BOUNDARIES,
- g_param_spec_boolean ("search-at-word-boundaries",
- _("Search at word boundaries"),
- _("Search at word boundaries"),
- FALSE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- /**
- * GtkSourceBuffer:search-wrap-around:
- *
- * For a forward search, continue at the beginning of the buffer if no
- * search occurrence is found. For a backward search, continue at the
- * end of the buffer.
- *
- * Since: 3.10
- */
- g_object_class_install_property (object_class,
- PROP_SEARCH_WRAP_AROUND,
- g_param_spec_boolean ("search-wrap-around",
- _("Search: wrap around"),
- _("Search: wrap around"),
- TRUE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- /**
- * GtkSourceBuffer:regex-search:
- *
- * Search by regular expressions with #GtkSourceBuffer:search-text as
- * the pattern.
- *
- * Since: 3.10
- */
- g_object_class_install_property (object_class,
- PROP_REGEX_SEARCH,
- g_param_spec_boolean ("regex-search",
- _("Regex search"),
- _("Search by regular expression"),
- FALSE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- /**
- * GtkSourceBuffer:regex-search-error:
- *
- * If the regex search pattern doesn't follow all the rules,
- * #GtkSourceBuffer:regex-search-error will be set. If the pattern
- * is valid, #GtkSourceBuffer:regex-search-error is %NULL.
- *
- * Free with g_error_free().
- *
- * Since: 3.10
- */
- g_object_class_install_property (object_class,
- PROP_REGEX_SEARCH_ERROR,
- g_param_spec_pointer ("regex-search-error",
- _("Regex search error"),
- _("Regular expression search error"),
- G_PARAM_READABLE));
-
param_types[0] = GTK_TYPE_TEXT_ITER | G_SIGNAL_TYPE_STATIC_SCOPE;
param_types[1] = GTK_TYPE_TEXT_ITER | G_SIGNAL_TYPE_STATIC_SCOPE;
@@ -731,11 +593,6 @@ gtk_source_buffer_set_property (GObject *object,
g_value_get_boolean (value));
break;
- case PROP_HIGHLIGHT_SEARCH:
- gtk_source_search_context_set_highlight (source_buffer->priv->search,
- g_value_get_boolean (value));
- break;
-
case PROP_MAX_UNDO_LEVELS:
gtk_source_buffer_set_max_undo_levels (source_buffer,
g_value_get_int (value));
@@ -756,31 +613,6 @@ gtk_source_buffer_set_property (GObject *object,
g_value_get_object (value));
break;
- case PROP_SEARCH_TEXT:
- gtk_source_search_context_set_text (source_buffer->priv->search,
- g_value_get_string (value));
- break;
-
- case PROP_CASE_SENSITIVE_SEARCH:
- gtk_source_search_context_set_case_sensitive (source_buffer->priv->search,
- g_value_get_boolean (value));
- break;
-
- case PROP_SEARCH_AT_WORD_BOUNDARIES:
- gtk_source_search_context_set_at_word_boundaries (source_buffer->priv->search,
- g_value_get_boolean (value));
- break;
-
- case PROP_SEARCH_WRAP_AROUND:
- gtk_source_search_context_set_wrap_around (source_buffer->priv->search,
- g_value_get_boolean (value));
- break;
-
- case PROP_REGEX_SEARCH:
- gtk_source_search_context_set_regex_enabled (source_buffer->priv->search,
- g_value_get_boolean (value));
- break;
-
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -811,10 +643,6 @@ gtk_source_buffer_get_property (GObject *object,
source_buffer->priv->highlight_brackets);
break;
- case PROP_HIGHLIGHT_SEARCH:
- g_value_set_boolean (value, gtk_source_search_context_get_highlight
(source_buffer->priv->search));
- break;
-
case PROP_MAX_UNDO_LEVELS:
g_value_set_int (value,
source_buffer->priv->max_undo_levels);
@@ -840,34 +668,6 @@ gtk_source_buffer_get_property (GObject *object,
g_value_set_object (value, source_buffer->priv->undo_manager);
break;
- case PROP_SEARCH_TEXT:
- g_value_set_string (value, gtk_source_search_context_get_text
(source_buffer->priv->search));
- break;
-
- case PROP_SEARCH_OCCURRENCES_COUNT:
- g_value_set_int (value, gtk_source_search_context_get_occurrences_count
(source_buffer->priv->search));
- break;
-
- case PROP_CASE_SENSITIVE_SEARCH:
- g_value_set_boolean (value, gtk_source_search_context_get_case_sensitive
(source_buffer->priv->search));
- break;
-
- case PROP_SEARCH_AT_WORD_BOUNDARIES:
- g_value_set_boolean (value, gtk_source_search_context_get_at_word_boundaries
(source_buffer->priv->search));
- break;
-
- case PROP_SEARCH_WRAP_AROUND:
- g_value_set_boolean (value, gtk_source_search_context_get_wrap_around
(source_buffer->priv->search));
- break;
-
- case PROP_REGEX_SEARCH:
- g_value_set_boolean (value, gtk_source_search_context_get_regex_enabled
(source_buffer->priv->search));
- break;
-
- case PROP_REGEX_SEARCH_ERROR:
- g_value_set_pointer (value, gtk_source_search_context_get_regex_error
(source_buffer->priv->search));
- break;
-
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
diff --git a/gtksourceview/gtksourcesearchcontext.c b/gtksourceview/gtksourcesearchcontext.c
index 2544399..fffaa4c 100644
--- a/gtksourceview/gtksourcesearchcontext.c
+++ b/gtksourceview/gtksourcesearchcontext.c
@@ -183,6 +183,19 @@
*/
#define SCAN_BATCH_SIZE 100
+enum
+{
+ PROP_0,
+ PROP_HIGHLIGHT,
+ PROP_SEARCH_TEXT,
+ PROP_OCCURRENCES_COUNT,
+ PROP_CASE_SENSITIVE,
+ PROP_AT_WORD_BOUNDARIES,
+ PROP_WRAP_AROUND,
+ PROP_REGEX,
+ PROP_REGEX_ERROR
+};
+
struct _GtkSourceSearchContextPrivate
{
GtkTextBuffer *buffer;
@@ -2405,12 +2418,248 @@ gtk_source_search_context_finalize (GObject *object)
}
static void
+gtk_source_search_context_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GtkSourceSearchContext *search;
+
+ g_return_if_fail (GTK_SOURCE_IS_SEARCH_CONTEXT (object));
+
+ search = GTK_SOURCE_SEARCH_CONTEXT (object);
+
+ switch (prop_id)
+ {
+ case PROP_HIGHLIGHT:
+ g_value_set_boolean (value, gtk_source_search_context_get_highlight
(source_buffer->priv->search));
+ break;
+
+ case PROP_SEARCH_TEXT:
+ g_value_set_string (value, gtk_source_search_context_get_text
(source_buffer->priv->search));
+ break;
+
+ case PROP_OCCURRENCES_COUNT:
+ g_value_set_int (value, gtk_source_search_context_get_occurrences_count
(source_buffer->priv->search));
+ break;
+
+ case PROP_CASE_SENSITIVE:
+ g_value_set_boolean (value, gtk_source_search_context_get_case_sensitive
(source_buffer->priv->search));
+ break;
+
+ case PROP_AT_WORD_BOUNDARIES:
+ g_value_set_boolean (value, gtk_source_search_context_get_at_word_boundaries
(source_buffer->priv->search));
+ break;
+
+ case PROP_WRAP_AROUND:
+ g_value_set_boolean (value, gtk_source_search_context_get_wrap_around
(source_buffer->priv->search));
+ break;
+
+ case PROP_REGEX:
+ g_value_set_boolean (value, gtk_source_search_context_get_regex_enabled
(source_buffer->priv->search));
+ break;
+
+ case PROP_REGEX_ERROR:
+ g_value_set_pointer (value, gtk_source_search_context_get_regex_error
(source_buffer->priv->search));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gtk_source_search_context_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GtkSourceSearchContext *search;
+
+ g_return_if_fail (GTK_SOURCE_IS_SEARCH_CONTEXT (object));
+
+ search = GTK_SOURCE_SEARCH_CONTEXT (object);
+
+ switch (prop_id)
+ {
+ case PROP_HIGHLIGHT:
+ gtk_source_search_context_set_highlight (source_buffer->priv->search,
+ g_value_get_boolean (value));
+ break;
+
+ case PROP_SEARCH_TEXT:
+ gtk_source_search_context_set_text (source_buffer->priv->search,
+ g_value_get_string (value));
+ break;
+
+ case PROP_CASE_SENSITIVE:
+ gtk_source_search_context_set_case_sensitive (source_buffer->priv->search,
+ g_value_get_boolean (value));
+ break;
+
+ case PROP_AT_WORD_BOUNDARIES:
+ gtk_source_search_context_set_at_word_boundaries (source_buffer->priv->search,
+ g_value_get_boolean (value));
+ break;
+
+ case PROP_WRAP_AROUND:
+ gtk_source_search_context_set_wrap_around (source_buffer->priv->search,
+ g_value_get_boolean (value));
+ break;
+
+ case PROP_REGEX:
+ gtk_source_search_context_set_regex_enabled (source_buffer->priv->search,
+ g_value_get_boolean (value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
gtk_source_search_context_class_init (GtkSourceSearchContextClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->dispose = gtk_source_search_context_dispose;
object_class->finalize = gtk_source_search_context_finalize;
+ object_class->get_property = gtk_source_search_context_get_property;
+ object_class->set_property = gtk_source_search_context_set_property;
+
+ /**
+ * GtkSourceSearchContext:highlight:
+ *
+ * Whether to highlight search occurrences in the buffer.
+ *
+ * Since: 3.10
+ */
+ g_object_class_install_property (object_class,
+ PROP_HIGHLIGHT,
+ g_param_spec_boolean ("highlight",
+ _("Highlight"),
+ _("Whether to highlight search occurrences"),
+ TRUE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ /**
+ * GtkSourceSearchContext:search-text:
+ *
+ * A search string, or %NULL if the search is disabled. If the regular
+ * expression search is enabled, #GtkSourceSearchContext:search-text is
+ * the pattern.
+ *
+ * Since: 3.10
+ */
+ g_object_class_install_property (object_class,
+ PROP_SEARCH_TEXT,
+ g_param_spec_string ("search-text",
+ _("Search text"),
+ _("The text to search"),
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ /**
+ * GtkSourceSearchContext:occurrences-count:
+ *
+ * The total number of search occurrences. If the search is disabled,
+ * the value is 0. If the buffer is not already fully scanned, the value
+ * is -1.
+ *
+ * Since: 3.10
+ */
+ g_object_class_install_property (object_class,
+ PROP_OCCURRENCES_COUNT,
+ g_param_spec_int ("occurrences-count",
+ _("Occurrences count"),
+ _("Total number of search occurrences"),
+ -1,
+ G_MAXINT,
+ 0,
+ G_PARAM_READABLE));
+
+ /**
+ * GtkSourceSearchContext:case-sensitive:
+ *
+ * Whether the search is case sensitive.
+ *
+ * Since: 3.10
+ */
+ g_object_class_install_property (object_class,
+ PROP_CASE_SENSITIVE,
+ g_param_spec_boolean ("case-sensitive",
+ _("Case sensitive"),
+ _("Case sensitive"),
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ /**
+ * GtkSourceSearchContext:at-word-boundaries:
+ *
+ * If %TRUE, a search match must start and end a word. The match can
+ * span multiple words.
+ *
+ * Since: 3.10
+ */
+ g_object_class_install_property (object_class,
+ PROP_AT_WORD_BOUNDARIES,
+ g_param_spec_boolean ("at-word-boundaries",
+ _("At word boundaries"),
+ _("Search at word boundaries"),
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ /**
+ * GtkSourceSearchContext:wrap-around:
+ *
+ * For a forward search, continue at the beginning of the buffer if no
+ * search occurrence is found. For a backward search, continue at the
+ * end of the buffer.
+ *
+ * Since: 3.10
+ */
+ g_object_class_install_property (object_class,
+ PROP_WRAP_AROUND,
+ g_param_spec_boolean ("wrap-around",
+ _("Wrap around"),
+ _("Wrap around"),
+ TRUE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ /**
+ * GtkSourceSearchContext:regex:
+ *
+ * Search by regular expressions with
+ * #GtkSourceSearchContext:search-text as the pattern.
+ *
+ * Since: 3.10
+ */
+ g_object_class_install_property (object_class,
+ PROP_REGEX,
+ g_param_spec_boolean ("regex",
+ _("Regex"),
+ _("Search by regular expression"),
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ /**
+ * GtkSourceSearchContext:regex-error:
+ *
+ * If the regex search pattern doesn't follow all the rules, this
+ * property will be set. If the pattern is valid, the value is %NULL.
+ *
+ * Free with g_error_free().
+ *
+ * Since: 3.10
+ */
+ g_object_class_install_property (object_class,
+ PROP_REGEX_ERROR,
+ g_param_spec_pointer ("regex-error",
+ _("Regex error"),
+ _("Regular expression error"),
+ G_PARAM_READABLE));
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]