mirror of https://github.com/GNOME/gimp.git
app: add GimpImage::linked-items-changed signal
Add a new GimpImage::linked-items-changed signal, which is emitted whenever the set of linked items in an image changes.
This commit is contained in:
parent
fcc1c3d380
commit
7d6737fe9a
|
@ -102,6 +102,7 @@ enum
|
|||
ACTIVE_LAYER_CHANGED,
|
||||
ACTIVE_CHANNEL_CHANGED,
|
||||
ACTIVE_VECTORS_CHANGED,
|
||||
LINKED_ITEMS_CHANGED,
|
||||
COMPONENT_VISIBILITY_CHANGED,
|
||||
COMPONENT_ACTIVE_CHANGED,
|
||||
MASK_CHANGED,
|
||||
|
@ -346,6 +347,15 @@ gimp_image_class_init (GimpImageClass *klass)
|
|||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 0);
|
||||
|
||||
gimp_image_signals[LINKED_ITEMS_CHANGED] =
|
||||
g_signal_new ("linked-items-changed",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_FIRST,
|
||||
G_STRUCT_OFFSET (GimpImageClass, linked_items_changed),
|
||||
NULL, NULL,
|
||||
gimp_marshal_VOID__VOID,
|
||||
G_TYPE_NONE, 0);
|
||||
|
||||
gimp_image_signals[COMPONENT_VISIBILITY_CHANGED] =
|
||||
g_signal_new ("component-visibility-changed",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
|
@ -595,6 +605,7 @@ gimp_image_class_init (GimpImageClass *klass)
|
|||
klass->active_layer_changed = NULL;
|
||||
klass->active_channel_changed = NULL;
|
||||
klass->active_vectors_changed = NULL;
|
||||
klass->linked_items_changed = NULL;
|
||||
klass->component_visibility_changed = NULL;
|
||||
klass->component_active_changed = NULL;
|
||||
klass->mask_changed = NULL;
|
||||
|
@ -3282,6 +3293,14 @@ gimp_image_alpha_changed (GimpImage *image)
|
|||
g_signal_emit (image, gimp_image_signals[ALPHA_CHANGED], 0);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_image_linked_items_changed (GimpImage *image)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_IMAGE (image));
|
||||
|
||||
g_signal_emit (image, gimp_image_signals[LINKED_ITEMS_CHANGED], 0);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_image_invalidate (GimpImage *image,
|
||||
gint x,
|
||||
|
|
|
@ -57,6 +57,7 @@ struct _GimpImageClass
|
|||
void (* active_layer_changed) (GimpImage *image);
|
||||
void (* active_channel_changed) (GimpImage *image);
|
||||
void (* active_vectors_changed) (GimpImage *image);
|
||||
void (* linked_items_changed) (GimpImage *image);
|
||||
void (* component_visibility_changed) (GimpImage *image,
|
||||
GimpChannelType channel);
|
||||
void (* component_active_changed) (GimpImage *image,
|
||||
|
@ -248,6 +249,7 @@ GimpComponentMask gimp_image_get_visible_mask (GimpImage *image);
|
|||
void gimp_image_mode_changed (GimpImage *image);
|
||||
void gimp_image_precision_changed (GimpImage *image);
|
||||
void gimp_image_alpha_changed (GimpImage *image);
|
||||
void gimp_image_linked_items_changed (GimpImage *image);
|
||||
void gimp_image_invalidate (GimpImage *image,
|
||||
gint x,
|
||||
gint y,
|
||||
|
|
|
@ -2328,18 +2328,18 @@ gimp_item_set_linked (GimpItem *item,
|
|||
|
||||
if (gimp_item_get_linked (item) != linked)
|
||||
{
|
||||
if (push_undo && gimp_item_is_attached (item))
|
||||
{
|
||||
GimpImage *image = gimp_item_get_image (item);
|
||||
GimpImage *image = gimp_item_get_image (item);
|
||||
|
||||
if (image)
|
||||
gimp_image_undo_push_item_linked (image, NULL, item);
|
||||
}
|
||||
if (push_undo && image && gimp_item_is_attached (item))
|
||||
gimp_image_undo_push_item_linked (image, NULL, item);
|
||||
|
||||
GET_PRIVATE (item)->linked = linked;
|
||||
|
||||
g_signal_emit (item, gimp_item_signals[LINKED_CHANGED], 0);
|
||||
|
||||
if (image)
|
||||
gimp_image_linked_items_changed (image);
|
||||
|
||||
g_object_notify (G_OBJECT (item), "linked");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue