[gedit/wip/spell-checking] spell-checker: use a Private struct
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit/wip/spell-checking] spell-checker: use a Private struct
- Date: Fri, 24 Jul 2015 06:51:22 +0000 (UTC)
commit 39e8a4a1307da9c7a7baa52204595b54aba9ae98
Author: Sébastien Wilmet <swilmet gnome org>
Date: Fri Jul 24 08:45:19 2015 +0200
spell-checker: use a Private struct
And use the name 'checker' as the self variable, instead of 'spell'.
'checker' is more specific so it's better.
plugins/spell/gedit-spell-checker.c | 184 ++++++++++++++++++++++-------------
plugins/spell/gedit-spell-checker.h | 26 +++---
2 files changed, 128 insertions(+), 82 deletions(-)
---
diff --git a/plugins/spell/gedit-spell-checker.c b/plugins/spell/gedit-spell-checker.c
index abe13b6..99bd564 100644
--- a/plugins/spell/gedit-spell-checker.c
+++ b/plugins/spell/gedit-spell-checker.c
@@ -31,10 +31,15 @@
#include "gedit-spell-osx.h"
#endif
+typedef struct _GeditSpellCheckerPrivate GeditSpellCheckerPrivate;
+
struct _GeditSpellChecker
{
GObject parent_instance;
+};
+struct _GeditSpellCheckerPrivate
+{
EnchantBroker *broker;
EnchantDict *dict;
const GeditSpellCheckerLanguage *active_lang;
@@ -56,7 +61,7 @@ enum
static guint signals[LAST_SIGNAL] = { 0 };
-G_DEFINE_TYPE (GeditSpellChecker, gedit_spell_checker, G_TYPE_OBJECT)
+G_DEFINE_TYPE_WITH_PRIVATE (GeditSpellChecker, gedit_spell_checker, G_TYPE_OBJECT)
static void
gedit_spell_checker_set_property (GObject *object,
@@ -64,12 +69,12 @@ gedit_spell_checker_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
- GeditSpellChecker *spell = GEDIT_SPELL_CHECKER (object);
+ GeditSpellChecker *checker = GEDIT_SPELL_CHECKER (object);
switch (prop_id)
{
case PROP_LANGUAGE:
- gedit_spell_checker_set_language (spell, g_value_get_pointer (value));
+ gedit_spell_checker_set_language (checker, g_value_get_pointer (value));
break;
default:
@@ -84,12 +89,14 @@ gedit_spell_checker_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
- GeditSpellChecker *spell = GEDIT_SPELL_CHECKER (object);
+ GeditSpellCheckerPrivate *priv;
+
+ priv = gedit_spell_checker_get_instance_private (GEDIT_SPELL_CHECKER (object));
switch (prop_id)
{
case PROP_LANGUAGE:
- g_value_set_pointer (value, (gpointer)spell->active_lang);
+ g_value_set_pointer (value, (gpointer)priv->active_lang);
break;
default:
@@ -101,16 +108,18 @@ gedit_spell_checker_get_property (GObject *object,
static void
gedit_spell_checker_finalize (GObject *object)
{
- GeditSpellChecker *spell_checker = GEDIT_SPELL_CHECKER (object);
+ GeditSpellCheckerPrivate *priv;
+
+ priv = gedit_spell_checker_get_instance_private (GEDIT_SPELL_CHECKER (object));
- if (spell_checker->dict != NULL)
+ if (priv->dict != NULL)
{
- enchant_broker_free_dict (spell_checker->broker, spell_checker->dict);
+ enchant_broker_free_dict (priv->broker, priv->dict);
}
- if (spell_checker->broker != NULL)
+ if (priv->broker != NULL)
{
- enchant_broker_free (spell_checker->broker);
+ enchant_broker_free (priv->broker);
}
G_OBJECT_CLASS (gedit_spell_checker_parent_class)->finalize (object);
@@ -163,11 +172,15 @@ gedit_spell_checker_class_init (GeditSpellCheckerClass *klass)
}
static void
-gedit_spell_checker_init (GeditSpellChecker *spell_checker)
+gedit_spell_checker_init (GeditSpellChecker *checker)
{
- spell_checker->broker = enchant_broker_init ();
- spell_checker->dict = NULL;
- spell_checker->active_lang = NULL;
+ GeditSpellCheckerPrivate *priv;
+
+ priv = gedit_spell_checker_get_instance_private (checker);
+
+ priv->broker = enchant_broker_init ();
+ priv->dict = NULL;
+ priv->active_lang = NULL;
}
GeditSpellChecker *
@@ -229,30 +242,34 @@ get_default_language (void)
}
static gboolean
-lazy_init (GeditSpellChecker *spell,
+lazy_init (GeditSpellChecker *checker,
const GeditSpellCheckerLanguage *language)
{
- if (spell->dict != NULL)
+ GeditSpellCheckerPrivate *priv;
+
+ priv = gedit_spell_checker_get_instance_private (checker);
+
+ if (priv->dict != NULL)
{
return TRUE;
}
- g_return_val_if_fail (spell->broker != NULL, FALSE);
+ g_return_val_if_fail (priv->broker != NULL, FALSE);
- spell->active_lang = language != NULL ? language : get_default_language ();
+ priv->active_lang = language != NULL ? language : get_default_language ();
- if (spell->active_lang != NULL)
+ if (priv->active_lang != NULL)
{
const gchar *key;
- key = gedit_spell_checker_language_to_key (spell->active_lang);
+ key = gedit_spell_checker_language_to_key (priv->active_lang);
- spell->dict = enchant_broker_request_dict (spell->broker, key);
+ priv->dict = enchant_broker_request_dict (priv->broker, key);
}
- if (spell->dict == NULL)
+ if (priv->dict == NULL)
{
- spell->active_lang = NULL;
+ priv->active_lang = NULL;
if (language != NULL)
{
@@ -266,20 +283,23 @@ lazy_init (GeditSpellChecker *spell,
}
gboolean
-gedit_spell_checker_set_language (GeditSpellChecker *spell,
+gedit_spell_checker_set_language (GeditSpellChecker *checker,
const GeditSpellCheckerLanguage *language)
{
+ GeditSpellCheckerPrivate *priv;
gboolean ret;
- g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (spell), FALSE);
+ g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), FALSE);
- if (spell->dict != NULL)
+ priv = gedit_spell_checker_get_instance_private (checker);
+
+ if (priv->dict != NULL)
{
- enchant_broker_free_dict (spell->broker, spell->dict);
- spell->dict = NULL;
+ enchant_broker_free_dict (priv->broker, priv->dict);
+ priv->dict = NULL;
}
- ret = lazy_init (spell, language);
+ ret = lazy_init (checker, language);
if (!ret)
{
@@ -287,35 +307,42 @@ gedit_spell_checker_set_language (GeditSpellChecker *spell,
gedit_spell_checker_language_to_string (language));
}
- g_object_notify (G_OBJECT (spell), "language");
+ g_object_notify (G_OBJECT (checker), "language");
return ret;
}
const GeditSpellCheckerLanguage *
-gedit_spell_checker_get_language (GeditSpellChecker *spell)
+gedit_spell_checker_get_language (GeditSpellChecker *checker)
{
- g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (spell), NULL);
+ GeditSpellCheckerPrivate *priv;
+
+ g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), NULL);
- if (!lazy_init (spell, spell->active_lang))
+ priv = gedit_spell_checker_get_instance_private (checker);
+
+ if (!lazy_init (checker, priv->active_lang))
{
return NULL;
}
- return spell->active_lang;
+ return priv->active_lang;
}
gboolean
-gedit_spell_checker_check_word (GeditSpellChecker *spell,
+gedit_spell_checker_check_word (GeditSpellChecker *checker,
const gchar *word)
{
+ GeditSpellCheckerPrivate *priv;
gint enchant_result;
gboolean res = FALSE;
- g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (spell), FALSE);
+ g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), FALSE);
g_return_val_if_fail (word != NULL, FALSE);
- if (!lazy_init (spell, spell->active_lang))
+ priv = gedit_spell_checker_get_instance_private (checker);
+
+ if (!lazy_init (checker, priv->active_lang))
{
return FALSE;
}
@@ -330,8 +357,8 @@ gedit_spell_checker_check_word (GeditSpellChecker *spell,
return TRUE;
}
- g_return_val_if_fail (spell->dict != NULL, FALSE);
- enchant_result = enchant_dict_check (spell->dict, word, -1);
+ g_return_val_if_fail (priv->dict != NULL, FALSE);
+ enchant_result = enchant_dict_check (priv->dict, word, -1);
switch (enchant_result)
{
@@ -340,7 +367,7 @@ gedit_spell_checker_check_word (GeditSpellChecker *spell,
res = FALSE;
g_warning ("Spell checker plugin: error checking word '%s' (%s).",
- word, enchant_dict_get_error (spell->dict));
+ word, enchant_dict_get_error (priv->dict));
break;
@@ -363,24 +390,27 @@ gedit_spell_checker_check_word (GeditSpellChecker *spell,
/* return NULL on error or if no suggestions are found */
GSList *
-gedit_spell_checker_get_suggestions (GeditSpellChecker *spell,
+gedit_spell_checker_get_suggestions (GeditSpellChecker *checker,
const gchar *word)
{
+ GeditSpellCheckerPrivate *priv;
gchar **suggestions;
GSList *suggestions_list = NULL;
gint i;
- g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (spell), NULL);
+ g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), NULL);
g_return_val_if_fail (word != NULL, NULL);
- if (!lazy_init (spell, spell->active_lang))
+ priv = gedit_spell_checker_get_instance_private (checker);
+
+ if (!lazy_init (checker, priv->active_lang))
{
return NULL;
}
- g_return_val_if_fail (spell->dict != NULL, NULL);
+ g_return_val_if_fail (priv->dict != NULL, NULL);
- suggestions = enchant_dict_suggest (spell->dict, word, -1, NULL);
+ suggestions = enchant_dict_suggest (priv->dict, word, -1, NULL);
if (suggestions == NULL)
{
@@ -399,87 +429,103 @@ gedit_spell_checker_get_suggestions (GeditSpellChecker *spell,
}
gboolean
-gedit_spell_checker_add_word_to_personal (GeditSpellChecker *spell,
+gedit_spell_checker_add_word_to_personal (GeditSpellChecker *checker,
const gchar *word)
{
- g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (spell), FALSE);
+ GeditSpellCheckerPrivate *priv;
+
+ g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), FALSE);
g_return_val_if_fail (word != NULL, FALSE);
- if (!lazy_init (spell, spell->active_lang))
+ priv = gedit_spell_checker_get_instance_private (checker);
+
+ if (!lazy_init (checker, priv->active_lang))
{
return FALSE;
}
- g_return_val_if_fail (spell->dict != NULL, FALSE);
+ g_return_val_if_fail (priv->dict != NULL, FALSE);
- enchant_dict_add (spell->dict, word, -1);
+ enchant_dict_add (priv->dict, word, -1);
- g_signal_emit (G_OBJECT (spell), signals[SIGNAL_ADD_WORD_TO_PERSONAL], 0, word);
+ g_signal_emit (G_OBJECT (checker), signals[SIGNAL_ADD_WORD_TO_PERSONAL], 0, word);
return TRUE;
}
gboolean
-gedit_spell_checker_add_word_to_session (GeditSpellChecker *spell,
+gedit_spell_checker_add_word_to_session (GeditSpellChecker *checker,
const gchar *word)
{
- g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (spell), FALSE);
+ GeditSpellCheckerPrivate *priv;
+
+ g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), FALSE);
g_return_val_if_fail (word != NULL, FALSE);
- if (!lazy_init (spell, spell->active_lang))
+ priv = gedit_spell_checker_get_instance_private (checker);
+
+ if (!lazy_init (checker, priv->active_lang))
{
return FALSE;
}
- g_return_val_if_fail (spell->dict != NULL, FALSE);
+ g_return_val_if_fail (priv->dict != NULL, FALSE);
- enchant_dict_add_to_session (spell->dict, word, -1);
+ enchant_dict_add_to_session (priv->dict, word, -1);
- g_signal_emit (G_OBJECT (spell), signals[SIGNAL_ADD_WORD_TO_SESSION], 0, word);
+ g_signal_emit (G_OBJECT (checker), signals[SIGNAL_ADD_WORD_TO_SESSION], 0, word);
return TRUE;
}
gboolean
-gedit_spell_checker_clear_session (GeditSpellChecker *spell)
+gedit_spell_checker_clear_session (GeditSpellChecker *checker)
{
- g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (spell), FALSE);
+ GeditSpellCheckerPrivate *priv;
+
+ g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), FALSE);
+
+ priv = gedit_spell_checker_get_instance_private (checker);
/* free and re-request dictionary */
- if (spell->dict != NULL)
+ if (priv->dict != NULL)
{
- enchant_broker_free_dict (spell->broker, spell->dict);
- spell->dict = NULL;
+ enchant_broker_free_dict (priv->broker, priv->dict);
+ priv->dict = NULL;
}
- if (!lazy_init (spell, spell->active_lang))
+ if (!lazy_init (checker, priv->active_lang))
{
return FALSE;
}
- g_signal_emit (G_OBJECT (spell), signals[SIGNAL_CLEAR_SESSION], 0);
+ g_signal_emit (G_OBJECT (checker), signals[SIGNAL_CLEAR_SESSION], 0);
return TRUE;
}
/* Informs dictionary, that @word will be replaced/corrected by @replacement. */
gboolean
-gedit_spell_checker_set_correction (GeditSpellChecker *spell,
+gedit_spell_checker_set_correction (GeditSpellChecker *checker,
const gchar *word,
const gchar *replacement)
{
- g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (spell), FALSE);
+ GeditSpellCheckerPrivate *priv;
+
+ g_return_val_if_fail (GEDIT_IS_SPELL_CHECKER (checker), FALSE);
g_return_val_if_fail (word != NULL, FALSE);
g_return_val_if_fail (replacement != NULL, FALSE);
- if (!lazy_init (spell, spell->active_lang))
+ priv = gedit_spell_checker_get_instance_private (checker);
+
+ if (!lazy_init (checker, priv->active_lang))
{
return FALSE;
}
- g_return_val_if_fail (spell->dict != NULL, FALSE);
+ g_return_val_if_fail (priv->dict != NULL, FALSE);
- enchant_dict_store_replacement (spell->dict,
+ enchant_dict_store_replacement (priv->dict,
word, -1,
replacement, -1);
diff --git a/plugins/spell/gedit-spell-checker.h b/plugins/spell/gedit-spell-checker.h
index 572dfe3..f582fc2 100644
--- a/plugins/spell/gedit-spell-checker.h
+++ b/plugins/spell/gedit-spell-checker.h
@@ -41,41 +41,41 @@ struct _GeditSpellCheckerClass
GObjectClass parent_class;
/* Signals */
- void (*add_word_to_personal) (GeditSpellChecker *spell,
- const gchar *word);
+ void (* add_word_to_personal) (GeditSpellChecker *checker,
+ const gchar *word);
- void (*add_word_to_session) (GeditSpellChecker *spell,
- const gchar *word);
+ void (* add_word_to_session) (GeditSpellChecker *checker,
+ const gchar *word);
- void (*clear_session) (GeditSpellChecker *spell);
+ void (* clear_session) (GeditSpellChecker *checker);
};
GType gedit_spell_checker_get_type (void) G_GNUC_CONST;
GeditSpellChecker *gedit_spell_checker_new (void);
-gboolean gedit_spell_checker_set_language (GeditSpellChecker *spell,
+gboolean gedit_spell_checker_set_language (GeditSpellChecker *checker,
const GeditSpellCheckerLanguage *lang);
const GeditSpellCheckerLanguage
- *gedit_spell_checker_get_language (GeditSpellChecker *spell);
+ *gedit_spell_checker_get_language (GeditSpellChecker *checker);
-gboolean gedit_spell_checker_check_word (GeditSpellChecker *spell,
+gboolean gedit_spell_checker_check_word (GeditSpellChecker *checker,
const gchar *word);
-GSList *gedit_spell_checker_get_suggestions (GeditSpellChecker
*spell,
+GSList *gedit_spell_checker_get_suggestions (GeditSpellChecker
*checker,
const gchar *word);
gboolean gedit_spell_checker_add_word_to_personal
- (GeditSpellChecker *spell,
+ (GeditSpellChecker *checker,
const gchar *word);
gboolean gedit_spell_checker_add_word_to_session
- (GeditSpellChecker *spell,
+ (GeditSpellChecker *checker,
const gchar *word);
-gboolean gedit_spell_checker_clear_session (GeditSpellChecker *spell);
+gboolean gedit_spell_checker_clear_session (GeditSpellChecker *checker);
-gboolean gedit_spell_checker_set_correction (GeditSpellChecker *spell,
+gboolean gedit_spell_checker_set_correction (GeditSpellChecker *checker,
const gchar *word,
const gchar
*replacement);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]