app: GimpFontFactory doesn't force anymore unique font names.

Note that there is a `container_obsolete` too in GimpDataFactory and I don't
apply the "unique-name" property to it because I'm unsure what it is.

Furthermore, eventually we'll want all types of data to allow duplicate names
(brushes, patterns or whatnot may come from all sources and may be named the
same by different people). But for now, let's focus on fonts before breaking
other parts of the codebase which we might not look into right now.
This commit is contained in:
Jehan 2023-07-25 22:10:13 +02:00
parent 0226b3ff5e
commit 9f9c0b4ea6
2 changed files with 22 additions and 2 deletions

View File

@ -53,7 +53,8 @@ enum
PROP_WRITABLE_PROPERTY_NAME,
PROP_EXT_PROPERTY_NAME,
PROP_NEW_FUNC,
PROP_GET_STANDARD_FUNC
PROP_GET_STANDARD_FUNC,
PROP_UNIQUE_NAMES
};
@ -64,6 +65,7 @@ struct _GimpDataFactoryPrivate
GType data_type;
GimpContainer *container;
GimpContainer *container_obsolete;
gboolean unique_names;
gchar *path_property_name;
gchar *writable_property_name;
@ -178,6 +180,14 @@ gimp_data_factory_class_init (GimpDataFactoryClass *klass)
NULL, NULL,
GIMP_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (object_class, PROP_UNIQUE_NAMES,
g_param_spec_boolean ("unique-names",
NULL, NULL,
TRUE,
GIMP_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY));
}
static void
@ -200,7 +210,8 @@ gimp_data_factory_constructed (GObject *object)
gimp_assert (GIMP_DATA_FACTORY_GET_CLASS (object)->data_init != NULL);
gimp_assert (GIMP_DATA_FACTORY_GET_CLASS (object)->data_refresh != NULL);
priv->container = gimp_list_new (priv->data_type, TRUE);
/* Passing along the "unique names" property to the data container. */
priv->container = gimp_list_new (priv->data_type, priv->unique_names);
gimp_list_set_sort_func (GIMP_LIST (priv->container),
(GCompareFunc) gimp_data_compare);
@ -247,6 +258,10 @@ gimp_data_factory_set_property (GObject *object,
priv->data_get_standard_func = g_value_get_pointer (value);
break;
case PROP_UNIQUE_NAMES:
priv->unique_names = g_value_get_boolean (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@ -291,6 +306,10 @@ gimp_data_factory_get_property (GObject *object,
g_value_set_pointer (value, priv->data_get_standard_func);
break;
case PROP_UNIQUE_NAMES:
g_value_set_boolean (value, priv->unique_names);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;

View File

@ -217,6 +217,7 @@ gimp_font_factory_new (Gimp *gimp,
"data-type", GIMP_TYPE_FONT,
"path-property-name", path_property_name,
"get-standard-func", gimp_font_get_standard,
"unique-names", FALSE,
NULL);
}