[gimp/gtk3-port] libgimpwidgets: move GimpEnumStore.enum_class to private
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gtk3-port] libgimpwidgets: move GimpEnumStore.enum_class to private
- Date: Fri, 4 May 2018 08:57:46 +0000 (UTC)
commit aefbbc78f14bb543096c5ad832cb6e51c79a5bcc
Author: Michael Natterer <mitch gimp org>
Date: Fri May 4 10:57:13 2018 +0200
libgimpwidgets: move GimpEnumStore.enum_class to private
app/widgets/gimplayermodecombobox.c | 15 +++++--
app/widgets/gimpstrokeeditor.c | 9 +++-
libgimpwidgets/gimpenumstore.c | 75 +++++++++++++++++++++++------------
libgimpwidgets/gimpenumstore.h | 3 -
4 files changed, 66 insertions(+), 36 deletions(-)
---
diff --git a/app/widgets/gimplayermodecombobox.c b/app/widgets/gimplayermodecombobox.c
index b72b769..3ec4e74 100644
--- a/app/widgets/gimplayermodecombobox.c
+++ b/app/widgets/gimplayermodecombobox.c
@@ -335,6 +335,7 @@ gimp_layer_mode_combo_box_get_group (GimpLayerModeComboBox *combo)
static void
gimp_enum_store_add_value (GtkListStore *store,
+ GEnumClass *enum_class,
GEnumValue *value)
{
GtkTreeIter iter = { 0, };
@@ -342,8 +343,8 @@ gimp_enum_store_add_value (GtkListStore *store,
const gchar *abbrev;
gchar *stripped;
- desc = gimp_enum_value_get_desc (GIMP_ENUM_STORE (store)->enum_class, value);
- abbrev = gimp_enum_value_get_abbrev (GIMP_ENUM_STORE (store)->enum_class, value);
+ desc = gimp_enum_value_get_desc (enum_class, value);
+ abbrev = gimp_enum_value_get_abbrev (enum_class, value);
/* no mnemonics in combo boxes */
stripped = gimp_strip_uline (desc);
@@ -376,6 +377,7 @@ gimp_enum_store_new_from_array (GType enum_type,
GimpLayerModeContext context)
{
GtkListStore *store;
+ GEnumClass *enum_class;
GEnumValue *value;
gboolean first_item = TRUE;
gboolean prepend_separator = FALSE;
@@ -389,14 +391,15 @@ gimp_enum_store_new_from_array (GType enum_type,
"enum-type", enum_type,
NULL);
+ enum_class = g_type_class_ref (enum_type);
+
for (i = 0; i < n_values; i++)
{
if (values[i] != GIMP_LAYER_MODE_SEPARATOR)
{
if (gimp_layer_mode_get_context (values[i]) & context)
{
- value = g_enum_get_value (GIMP_ENUM_STORE (store)->enum_class,
- values[i]);
+ value = g_enum_get_value (enum_class, values[i]);
if (value)
{
@@ -407,7 +410,7 @@ gimp_enum_store_new_from_array (GType enum_type,
prepend_separator = FALSE;
}
- gimp_enum_store_add_value (store, value);
+ gimp_enum_store_add_value (store, enum_class, value);
first_item = FALSE;
}
@@ -420,6 +423,8 @@ gimp_enum_store_new_from_array (GType enum_type,
}
}
+ g_type_class_unref (enum_class);
+
return store;
}
diff --git a/app/widgets/gimpstrokeeditor.c b/app/widgets/gimpstrokeeditor.c
index aec18b0..c7421b5 100644
--- a/app/widgets/gimpstrokeeditor.c
+++ b/app/widgets/gimpstrokeeditor.c
@@ -104,6 +104,7 @@ gimp_stroke_editor_constructed (GObject *object)
GimpStrokeEditor *editor = GIMP_STROKE_EDITOR (object);
GimpStrokeOptions *options;
GimpEnumStore *store;
+ GEnumClass *enum_class;
GEnumValue *value;
GtkWidget *box;
GtkWidget *size;
@@ -217,12 +218,14 @@ gimp_stroke_editor_constructed (GObject *object)
"user-data-type", GIMP_TYPE_DASH_PATTERN,
NULL);
- for (value = store->enum_class->values; value->value_name; value++)
+ enum_class = g_type_class_ref (GIMP_TYPE_DASH_PRESET);
+
+ for (value = enum_class->values; value->value_name; value++)
{
GtkTreeIter iter = { 0, };
const gchar *desc;
- desc = gimp_enum_value_get_desc (store->enum_class, value);
+ desc = gimp_enum_value_get_desc (enum_class, value);
gtk_list_store_append (GTK_LIST_STORE (store), &iter);
gtk_list_store_set (GTK_LIST_STORE (store), &iter,
@@ -231,6 +234,8 @@ gimp_stroke_editor_constructed (GObject *object)
-1);
}
+ g_type_class_unref (enum_class);
+
box = gimp_enum_combo_box_new_with_model (store);
g_object_unref (store);
diff --git a/libgimpwidgets/gimpenumstore.c b/libgimpwidgets/gimpenumstore.c
index 4506d42..5492e2c 100644
--- a/libgimpwidgets/gimpenumstore.c
+++ b/libgimpwidgets/gimpenumstore.c
@@ -46,6 +46,14 @@ enum
};
+struct _GimpEnumStorePrivate
+{
+ GEnumClass *enum_class;
+};
+
+#define GET_PRIVATE(obj) (((GimpEnumStore *) (obj))->priv)
+
+
static void gimp_enum_store_finalize (GObject *object);
static void gimp_enum_store_set_property (GObject *object,
guint property_id,
@@ -89,20 +97,24 @@ gimp_enum_store_class_init (GimpEnumStoreClass *klass)
G_TYPE_ENUM,
G_PARAM_CONSTRUCT_ONLY |
GIMP_PARAM_READWRITE));
+
+ g_type_class_add_private (klass, sizeof (GimpEnumStorePrivate));
}
static void
gimp_enum_store_init (GimpEnumStore *store)
{
+ store->priv = G_TYPE_INSTANCE_GET_PRIVATE (store,
+ GIMP_TYPE_ENUM_STORE,
+ GimpEnumStorePrivate);
}
static void
gimp_enum_store_finalize (GObject *object)
{
- GimpEnumStore *store = GIMP_ENUM_STORE (object);
+ GimpEnumStorePrivate *priv = GET_PRIVATE (object);
- if (store->enum_class)
- g_type_class_unref (store->enum_class);
+ g_clear_pointer (&priv->enum_class, g_type_class_unref);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
@@ -113,14 +125,15 @@ gimp_enum_store_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
- GimpEnumStore *store = GIMP_ENUM_STORE (object);
+ GimpEnumStorePrivate *priv = GET_PRIVATE (object);
switch (property_id)
{
case PROP_ENUM_TYPE:
- g_return_if_fail (store->enum_class == NULL);
- store->enum_class = g_type_class_ref (g_value_get_gtype (value));
+ g_return_if_fail (priv->enum_class == NULL);
+ priv->enum_class = g_type_class_ref (g_value_get_gtype (value));
break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -133,15 +146,16 @@ gimp_enum_store_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
- GimpEnumStore *store = GIMP_ENUM_STORE (object);
+ GimpEnumStorePrivate *priv = GET_PRIVATE (object);
switch (property_id)
{
case PROP_ENUM_TYPE:
- g_value_set_gtype (value, (store->enum_class ?
- G_TYPE_FROM_CLASS (store->enum_class) :
+ g_value_set_gtype (value, (priv->enum_class ?
+ G_TYPE_FROM_CLASS (priv->enum_class) :
G_TYPE_NONE));
break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -152,13 +166,14 @@ static void
gimp_enum_store_add_value (GtkListStore *store,
GEnumValue *value)
{
- GtkTreeIter iter = { 0, };
- const gchar *desc;
- const gchar *abbrev;
- gchar *stripped;
+ GimpEnumStorePrivate *priv = GET_PRIVATE (store);
+ GtkTreeIter iter = { 0, };
+ const gchar *desc;
+ const gchar *abbrev;
+ gchar *stripped;
- desc = gimp_enum_value_get_desc (GIMP_ENUM_STORE (store)->enum_class, value);
- abbrev = gimp_enum_value_get_abbrev (GIMP_ENUM_STORE (store)->enum_class, value);
+ desc = gimp_enum_value_get_desc (priv->enum_class, value);
+ abbrev = gimp_enum_value_get_abbrev (priv->enum_class, value);
/* no mnemonics in combo boxes */
stripped = gimp_strip_uline (desc);
@@ -224,8 +239,9 @@ gimp_enum_store_new_with_range (GType enum_type,
gint minimum,
gint maximum)
{
- GtkListStore *store;
- GEnumValue *value;
+ GimpEnumStorePrivate *priv;
+ GtkListStore *store;
+ GEnumValue *value;
g_return_val_if_fail (G_TYPE_IS_ENUM (enum_type), NULL);
@@ -233,7 +249,9 @@ gimp_enum_store_new_with_range (GType enum_type,
"enum-type", enum_type,
NULL);
- for (value = GIMP_ENUM_STORE (store)->enum_class->values;
+ priv = GET_PRIVATE (store);
+
+ for (value = priv->enum_class->values;
value->value_name;
value++)
{
@@ -294,9 +312,10 @@ gimp_enum_store_new_with_values_valist (GType enum_type,
gint n_values,
va_list args)
{
- GtkListStore *store;
- GEnumValue *value;
- gint i;
+ GimpEnumStorePrivate *priv;
+ GtkListStore *store;
+ GEnumValue *value;
+ gint i;
g_return_val_if_fail (G_TYPE_IS_ENUM (enum_type), NULL);
g_return_val_if_fail (n_values > 1, NULL);
@@ -305,9 +324,11 @@ gimp_enum_store_new_with_values_valist (GType enum_type,
"enum-type", enum_type,
NULL);
+ priv = GET_PRIVATE (store);
+
for (i = 0; i < n_values; i++)
{
- value = g_enum_get_value (GIMP_ENUM_STORE (store)->enum_class,
+ value = g_enum_get_value (priv->enum_class,
va_arg (args, gint));
if (value)
@@ -333,12 +354,14 @@ void
gimp_enum_store_set_icon_prefix (GimpEnumStore *store,
const gchar *icon_prefix)
{
- GtkTreeModel *model;
- GtkTreeIter iter;
- gboolean iter_valid;
+ GimpEnumStorePrivate *priv;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ gboolean iter_valid;
g_return_if_fail (GIMP_IS_ENUM_STORE (store));
+ priv = GET_PRIVATE (store);
model = GTK_TREE_MODEL (store);
for (iter_valid = gtk_tree_model_get_iter_first (model, &iter);
@@ -356,7 +379,7 @@ gimp_enum_store_set_icon_prefix (GimpEnumStore *store,
GIMP_INT_STORE_VALUE, &value,
-1);
- enum_value = g_enum_get_value (store->enum_class, value);
+ enum_value = g_enum_get_value (priv->enum_class, value);
if (enum_value)
{
diff --git a/libgimpwidgets/gimpenumstore.h b/libgimpwidgets/gimpenumstore.h
index 856299d..a9e0993 100644
--- a/libgimpwidgets/gimpenumstore.h
+++ b/libgimpwidgets/gimpenumstore.h
@@ -47,9 +47,6 @@ struct _GimpEnumStore
GimpIntStore parent_instance;
GimpEnumStorePrivate *priv;
-
- /* FIXME MOVE TO PRIVATE */
- GEnumClass *enum_class;
};
struct _GimpEnumStoreClass
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]