mirror of https://github.com/GNOME/gimp.git
app: setting color tags actions now multi-item aware.
This commit is contained in:
parent
036ba77415
commit
545b794b72
|
@ -526,14 +526,13 @@ channels_color_tag_cmd_callback (GimpAction *action,
|
|||
gpointer data)
|
||||
{
|
||||
GimpImage *image;
|
||||
GimpChannel *channel;
|
||||
GList *channels;
|
||||
GimpColorTag color_tag;
|
||||
return_if_no_channel (image, channel, data);
|
||||
return_if_no_channels (image, channels, data);
|
||||
|
||||
color_tag = (GimpColorTag) g_variant_get_int32 (value);
|
||||
|
||||
items_color_tag_cmd_callback (action, image, GIMP_ITEM (channel),
|
||||
color_tag);
|
||||
items_color_tag_cmd_callback (action, image, channels, color_tag);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -220,23 +220,37 @@ items_lock_position_cmd_callback (GimpAction *action,
|
|||
void
|
||||
items_color_tag_cmd_callback (GimpAction *action,
|
||||
GimpImage *image,
|
||||
GimpItem *item,
|
||||
GList *items,
|
||||
GimpColorTag color_tag)
|
||||
{
|
||||
if (color_tag != gimp_item_get_color_tag (item))
|
||||
{
|
||||
GimpUndo *undo;
|
||||
gboolean push_undo = TRUE;
|
||||
GimpUndo *undo;
|
||||
gboolean push_undo = TRUE;
|
||||
GList *iter;
|
||||
|
||||
if (g_list_length (items) == 1)
|
||||
{
|
||||
undo = gimp_image_undo_can_compress (image, GIMP_TYPE_ITEM_UNDO,
|
||||
GIMP_UNDO_ITEM_COLOR_TAG);
|
||||
|
||||
if (undo && GIMP_ITEM_UNDO (undo)->item == item)
|
||||
if (undo && GIMP_ITEM_UNDO (undo)->item == GIMP_ITEM (items->data))
|
||||
push_undo = FALSE;
|
||||
|
||||
gimp_item_set_color_tag (item, color_tag, push_undo);
|
||||
gimp_image_flush (image);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* TODO: undo groups cannot be compressed so far. */
|
||||
gimp_image_undo_group_start (image,
|
||||
GIMP_UNDO_GROUP_ITEM_PROPERTIES,
|
||||
"Item color tag");
|
||||
}
|
||||
|
||||
for (iter = items; iter; iter = iter->next)
|
||||
if (color_tag != gimp_item_get_color_tag (iter->data))
|
||||
gimp_item_set_color_tag (iter->data, color_tag, push_undo);
|
||||
|
||||
if (g_list_length (items) == 1)
|
||||
gimp_image_undo_group_end (image);
|
||||
|
||||
gimp_image_flush (image);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -34,7 +34,7 @@ void items_lock_position_cmd_callback (GimpAction *action,
|
|||
|
||||
void items_color_tag_cmd_callback (GimpAction *action,
|
||||
GimpImage *image,
|
||||
GimpItem *item,
|
||||
GList *items,
|
||||
GimpColorTag color_tag);
|
||||
|
||||
void items_fill_cmd_callback (GimpAction *action,
|
||||
|
|
|
@ -2105,15 +2105,12 @@ layers_color_tag_cmd_callback (GimpAction *action,
|
|||
{
|
||||
GimpImage *image;
|
||||
GList *layers;
|
||||
GList *iter;
|
||||
GimpColorTag color_tag;
|
||||
return_if_no_layers (image, layers, data);
|
||||
|
||||
color_tag = (GimpColorTag) g_variant_get_int32 (value);
|
||||
|
||||
for (iter = layers; iter; iter = iter->next)
|
||||
items_color_tag_cmd_callback (action, image, GIMP_ITEM (iter->data),
|
||||
color_tag);
|
||||
items_color_tag_cmd_callback (action, image, layers, color_tag);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -758,14 +758,13 @@ vectors_color_tag_cmd_callback (GimpAction *action,
|
|||
gpointer data)
|
||||
{
|
||||
GimpImage *image;
|
||||
GimpVectors *vectors;
|
||||
GList *vectors;
|
||||
GimpColorTag color_tag;
|
||||
return_if_no_vectors (image, vectors, data);
|
||||
return_if_no_vectors_list (image, vectors, data);
|
||||
|
||||
color_tag = (GimpColorTag) g_variant_get_int32 (value);
|
||||
|
||||
items_color_tag_cmd_callback (action, image, GIMP_ITEM (vectors),
|
||||
color_tag);
|
||||
items_color_tag_cmd_callback (action, image, vectors, color_tag);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue