mirror of https://github.com/GNOME/gimp.git
libgimpwidgets: add "short-format" and "long-format" properties
which have the are format strings for gimp_unit_format_string(). The formatted strings are kept in the respective new model columns.
This commit is contained in:
parent
71de3d7bdf
commit
e821cd4881
|
@ -35,7 +35,9 @@ enum
|
|||
PROP_0,
|
||||
PROP_NUM_VALUES,
|
||||
PROP_HAS_PIXELS,
|
||||
PROP_HAS_PERCENT
|
||||
PROP_HAS_PERCENT,
|
||||
PROP_SHORT_FORMAT,
|
||||
PROP_LONG_FORMAT
|
||||
};
|
||||
|
||||
typedef struct
|
||||
|
@ -44,6 +46,9 @@ typedef struct
|
|||
gboolean has_pixels;
|
||||
gboolean has_percent;
|
||||
|
||||
gchar *short_format;
|
||||
gchar *long_format;
|
||||
|
||||
gdouble *values;
|
||||
gdouble *resolutions;
|
||||
} GimpUnitStorePrivate;
|
||||
|
@ -112,6 +117,8 @@ static GType column_types[GIMP_UNIT_STORE_UNIT_COLUMNS] =
|
|||
G_TYPE_STRING,
|
||||
G_TYPE_STRING,
|
||||
G_TYPE_STRING,
|
||||
G_TYPE_STRING,
|
||||
G_TYPE_STRING,
|
||||
G_TYPE_STRING
|
||||
};
|
||||
|
||||
|
@ -146,6 +153,18 @@ gimp_unit_store_class_init (GimpUnitStoreClass *klass)
|
|||
FALSE,
|
||||
GIMP_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property (object_class, PROP_SHORT_FORMAT,
|
||||
g_param_spec_string ("short-format",
|
||||
NULL, NULL,
|
||||
"%a",
|
||||
GIMP_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property (object_class, PROP_LONG_FORMAT,
|
||||
g_param_spec_string ("long-format",
|
||||
NULL, NULL,
|
||||
"%p",
|
||||
GIMP_PARAM_READWRITE));
|
||||
|
||||
g_type_class_add_private (object_class, sizeof (GimpUnitStorePrivate));
|
||||
}
|
||||
|
||||
|
@ -156,6 +175,8 @@ gimp_unit_store_init (GimpUnitStore *store)
|
|||
|
||||
private->has_pixels = TRUE;
|
||||
private->has_percent = FALSE;
|
||||
private->short_format = g_strdup ("%a");
|
||||
private->long_format = g_strdup ("%p");
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -180,6 +201,18 @@ gimp_unit_store_finalize (GObject *object)
|
|||
{
|
||||
GimpUnitStorePrivate *private = GET_PRIVATE (object);
|
||||
|
||||
if (private->short_format)
|
||||
{
|
||||
g_free (private->short_format);
|
||||
private->short_format = NULL;
|
||||
}
|
||||
|
||||
if (private->long_format)
|
||||
{
|
||||
g_free (private->long_format);
|
||||
private->long_format = NULL;
|
||||
}
|
||||
|
||||
if (private->num_values > 0)
|
||||
{
|
||||
g_free (private->values);
|
||||
|
@ -217,6 +250,18 @@ gimp_unit_store_set_property (GObject *object,
|
|||
gimp_unit_store_set_has_percent (GIMP_UNIT_STORE (object),
|
||||
g_value_get_boolean (value));
|
||||
break;
|
||||
case PROP_SHORT_FORMAT:
|
||||
g_free (private->short_format);
|
||||
private->short_format = g_value_dup_string (value);
|
||||
if (! private->short_format)
|
||||
private->short_format = g_strdup ("%a");
|
||||
break;
|
||||
case PROP_LONG_FORMAT:
|
||||
g_free (private->long_format);
|
||||
private->long_format = g_value_dup_string (value);
|
||||
if (! private->long_format)
|
||||
private->long_format = g_strdup ("%a");
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
|
@ -243,6 +288,12 @@ gimp_unit_store_get_property (GObject *object,
|
|||
case PROP_HAS_PERCENT:
|
||||
g_value_set_boolean (value, private->has_percent);
|
||||
break;
|
||||
case PROP_SHORT_FORMAT:
|
||||
g_value_set_string (value, private->short_format);
|
||||
break;
|
||||
case PROP_LONG_FORMAT:
|
||||
g_value_set_string (value, private->long_format);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
|
@ -407,6 +458,16 @@ gimp_unit_store_tree_model_get_value (GtkTreeModel *tree_model,
|
|||
case GIMP_UNIT_STORE_UNIT_PLURAL:
|
||||
g_value_set_static_string (value, gimp_unit_get_plural (unit));
|
||||
break;
|
||||
case GIMP_UNIT_STORE_UNIT_SHORT_FORMAT:
|
||||
g_value_take_string (value,
|
||||
gimp_unit_format_string (private->short_format,
|
||||
unit));
|
||||
break;
|
||||
case GIMP_UNIT_STORE_UNIT_LONG_FORMAT:
|
||||
g_value_take_string (value,
|
||||
gimp_unit_format_string (private->long_format,
|
||||
unit));
|
||||
break;
|
||||
|
||||
default:
|
||||
column -= GIMP_UNIT_STORE_UNIT_COLUMNS;
|
||||
|
|
|
@ -33,6 +33,8 @@ enum
|
|||
GIMP_UNIT_STORE_UNIT_ABBREVIATION,
|
||||
GIMP_UNIT_STORE_UNIT_SINGULAR,
|
||||
GIMP_UNIT_STORE_UNIT_PLURAL,
|
||||
GIMP_UNIT_STORE_UNIT_SHORT_FORMAT,
|
||||
GIMP_UNIT_STORE_UNIT_LONG_FORMAT,
|
||||
GIMP_UNIT_STORE_UNIT_COLUMNS,
|
||||
GIMP_UNIT_STORE_FIRST_VALUE = GIMP_UNIT_STORE_UNIT_COLUMNS
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue