diff options
-rw-r--r-- | embed/ephy-encodings.c | 64 | ||||
-rw-r--r-- | embed/ephy-encodings.h | 25 |
2 files changed, 31 insertions, 58 deletions
diff --git a/embed/ephy-encodings.c b/embed/ephy-encodings.c index f6465bf4e..f4a86a50d 100644 --- a/embed/ephy-encodings.c +++ b/embed/ephy-encodings.c @@ -29,10 +29,10 @@ #include <glib/gi18n.h> -#define EPHY_ENCODINGS_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_ENCODINGS, EphyEncodingsPrivate)) - -struct _EphyEncodingsPrivate +struct _EphyEncodings { + GObject parent_instance; + GHashTable *hash; GSList *recent; }; @@ -145,10 +145,10 @@ ephy_encodings_finalize (GObject *object) { EphyEncodings *encodings = EPHY_ENCODINGS (object); - g_hash_table_destroy (encodings->priv->hash); + g_hash_table_destroy (encodings->hash); - g_slist_foreach (encodings->priv->recent, (GFunc)g_free, NULL); - g_slist_free (encodings->priv->recent); + g_slist_foreach (encodings->recent, (GFunc)g_free, NULL); + g_slist_free (encodings->recent); LOG ("EphyEncodings finalised"); @@ -175,8 +175,6 @@ ephy_encodings_class_init (EphyEncodingsClass *klass) g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_OBJECT); - - g_type_class_add_private (object_class, sizeof (EphyEncodingsPrivate)); } static EphyEncoding * @@ -190,7 +188,7 @@ add_encoding (EphyEncodings *encodings, /* Create node. */ encoding = ephy_encoding_new (code, title, groups); /* Add it. */ - g_hash_table_insert (encodings->priv->hash, g_strdup (code), encoding); + g_hash_table_insert (encodings->hash, g_strdup (code), encoding); g_signal_emit_by_name (encodings, "encoding-added", encoding); @@ -206,7 +204,7 @@ ephy_encodings_get_encoding (EphyEncodings *encodings, g_return_val_if_fail (EPHY_IS_ENCODINGS (encodings), NULL); - encoding = g_hash_table_lookup (encodings->priv->hash, code); + encoding = g_hash_table_lookup (encodings->hash, code); /* if it doesn't exist, add a node for it */ if (!EPHY_IS_ENCODING (encoding) && add_if_not_found) { @@ -251,7 +249,7 @@ ephy_encodings_get_encodings (EphyEncodings *encodings, data.list = list; data.group_mask = group_mask; - g_hash_table_foreach (encodings->priv->hash, (GHFunc)get_encodings_foreach, &data); + g_hash_table_foreach (encodings->hash, (GHFunc)get_encodings_foreach, &data); return list; } @@ -273,7 +271,7 @@ ephy_encodings_get_all (EphyEncodings *encodings) g_return_val_if_fail (EPHY_IS_ENCODINGS (encodings), NULL); - g_hash_table_foreach (encodings->priv->hash, (GHFunc)get_all_encodings, &l); + g_hash_table_foreach (encodings->hash, (GHFunc)get_all_encodings, &l); return l; } @@ -284,7 +282,6 @@ ephy_encodings_add_recent (EphyEncodings *encodings, { GSList *element, *l; GVariantBuilder builder; - EphyEncodingsPrivate *priv = encodings->priv; g_return_if_fail (EPHY_IS_ENCODINGS (encodings)); g_return_if_fail (code != NULL); @@ -293,30 +290,30 @@ ephy_encodings_add_recent (EphyEncodings *encodings, return; /* Keep the list elements unique. */ - element = g_slist_find_custom (priv->recent, code, + element = g_slist_find_custom (encodings->recent, code, (GCompareFunc)strcmp); if (element != NULL) { g_free (element->data); - priv->recent = - g_slist_remove_link (priv->recent, element); + encodings->recent = + g_slist_remove_link (encodings->recent, element); } /* Add the new code upfront. */ - priv->recent = - g_slist_prepend (priv->recent, g_strdup (code)); + encodings->recent = + g_slist_prepend (encodings->recent, g_strdup (code)); /* Truncate the list if necessary; it's at most 1 element too much. */ - if (g_slist_length (priv->recent) > RECENT_MAX) { + if (g_slist_length (encodings->recent) > RECENT_MAX) { GSList *tail; - tail = g_slist_last (priv->recent); + tail = g_slist_last (encodings->recent); g_free (tail->data); - priv->recent = - g_slist_remove_link (priv->recent, tail); + encodings->recent = + g_slist_remove_link (encodings->recent, tail); } g_variant_builder_init (&builder, G_VARIANT_TYPE_STRING_ARRAY); - for (l = priv->recent; l; l = l->next) + for (l = encodings->recent; l; l = l->next) g_variant_builder_add (&builder, "s", l->data); g_settings_set (EPHY_SETTINGS_STATE, @@ -332,7 +329,7 @@ ephy_encodings_get_recent (EphyEncodings *encodings) g_return_val_if_fail (EPHY_IS_ENCODINGS (encodings), NULL); - for (l = encodings->priv->recent; l != NULL; l = l->next) { + for (l = encodings->recent; l != NULL; l = l->next) { EphyEncoding *encoding; encoding = ephy_encodings_get_encoding (encodings, (char *)l->data, FALSE); @@ -350,13 +347,11 @@ ephy_encodings_init (EphyEncodings *encodings) char **list; int i; - encodings->priv = EPHY_ENCODINGS_GET_PRIVATE (encodings); - LOG ("EphyEncodings initialising"); - encodings->priv->hash = g_hash_table_new_full (g_str_hash, g_str_equal, - (GDestroyNotify)g_free, - (GDestroyNotify)g_object_unref); + encodings->hash = g_hash_table_new_full (g_str_hash, g_str_equal, + (GDestroyNotify)g_free, + (GDestroyNotify)g_object_unref); /* Fill the db. */ for (i = 0; i < G_N_ELEMENTS (encoding_entries); i++) { @@ -373,20 +368,19 @@ ephy_encodings_init (EphyEncodings *encodings) /* Make sure the list has no duplicates (GtkUIManager goes * crazy otherwise), and only valid entries. */ - encodings->priv->recent = NULL; + encodings->recent = NULL; for (i = 0; list[i]; i++) { char *item; item = list[i]; - if (g_slist_find (encodings->priv->recent, item) == NULL - && g_slist_length (encodings->priv->recent) < RECENT_MAX + if (g_slist_find (encodings->recent, item) == NULL + && g_slist_length (encodings->recent) < RECENT_MAX && ephy_encodings_get_encoding (encodings, item, FALSE) != NULL) { - encodings->priv->recent = g_slist_prepend (encodings->priv->recent, - g_strdup (item)); + encodings->recent = g_slist_prepend (encodings->recent, g_strdup (item)); } } - encodings->priv->recent = g_slist_reverse (encodings->priv->recent); + encodings->recent = g_slist_reverse (encodings->recent); g_strfreev (list); } diff --git a/embed/ephy-encodings.h b/embed/ephy-encodings.h index 823375697..401588b9a 100644 --- a/embed/ephy-encodings.h +++ b/embed/ephy-encodings.h @@ -33,31 +33,10 @@ G_BEGIN_DECLS -#define EPHY_TYPE_ENCODINGS (ephy_encodings_get_type ()) -#define EPHY_ENCODINGS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EPHY_TYPE_ENCODINGS, EphyEncodings)) -#define EPHY_ENCODINGS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), EPHY_TYPE_ENCODINGS, EphyEncodingsClass)) -#define EPHY_IS_ENCODINGS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EPHY_TYPE_ENCODINGS)) -#define EPHY_IS_ENCODINGS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EPHY_TYPE_ENCODINGS)) -#define EPHY_ENCODINGS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), EPHY_TYPE_ENCODINGS, EphyEncodingsClass)) +#define EPHY_TYPE_ENCODINGS (ephy_encodings_get_type ()) -typedef struct _EphyEncodings EphyEncodings; -typedef struct _EphyEncodingsPrivate EphyEncodingsPrivate; -typedef struct _EphyEncodingsClass EphyEncodingsClass; +G_DECLARE_FINAL_TYPE (EphyEncodings, ephy_encodings, EPHY, ENCODINGS, GObject) -struct _EphyEncodings -{ - GObject parent; - - /*< private >*/ - EphyEncodingsPrivate *priv; -}; - -struct _EphyEncodingsClass -{ - GObjectClass parent_class; -}; - -GType ephy_encodings_get_type (void); EphyEncodings *ephy_encodings_new (void); EphyEncoding *ephy_encodings_get_encoding (EphyEncodings *encodings, const char *code, |