Improve code in LdDiagram a bit.
This commit is contained in:
parent
20c2595f2d
commit
cf5260990c
|
@ -56,7 +56,7 @@ typedef struct _ObjectActionData ObjectActionData;
|
||||||
*/
|
*/
|
||||||
struct _ObjectActionData
|
struct _ObjectActionData
|
||||||
{
|
{
|
||||||
LdDiagram *self;
|
gpointer self;
|
||||||
LdDiagramObject *object;
|
LdDiagramObject *object;
|
||||||
gint pos;
|
gint pos;
|
||||||
};
|
};
|
||||||
|
@ -803,12 +803,6 @@ ld_diagram_end_user_action (LdDiagram *self)
|
||||||
(self->priv->undo_stack, self->priv->undo_stack);
|
(self->priv->undo_stack, self->priv->undo_stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
action_finalize_notify_cb (ObjectActionData *data, LdDiagram *self)
|
|
||||||
{
|
|
||||||
data->self = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_object_action_remove (gpointer user_data)
|
on_object_action_remove (gpointer user_data)
|
||||||
{
|
{
|
||||||
|
@ -816,7 +810,8 @@ on_object_action_remove (gpointer user_data)
|
||||||
|
|
||||||
data = user_data;
|
data = user_data;
|
||||||
g_return_if_fail (data->self != NULL);
|
g_return_if_fail (data->self != NULL);
|
||||||
ld_diagram_remove_object (data->self, data->object);
|
ld_diagram_remove_object
|
||||||
|
((LdDiagram *) data->self, data->object);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -826,7 +821,8 @@ on_object_action_insert (gpointer user_data)
|
||||||
|
|
||||||
data = user_data;
|
data = user_data;
|
||||||
g_return_if_fail (data->self != NULL);
|
g_return_if_fail (data->self != NULL);
|
||||||
ld_diagram_insert_object (data->self, data->object, data->pos);
|
ld_diagram_insert_object
|
||||||
|
((LdDiagram *) data->self, data->object, data->pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -835,8 +831,8 @@ on_object_action_destroy (gpointer user_data)
|
||||||
ObjectActionData *data;
|
ObjectActionData *data;
|
||||||
|
|
||||||
data = user_data;
|
data = user_data;
|
||||||
g_object_weak_unref (G_OBJECT (data->self),
|
if (data->self)
|
||||||
(GWeakNotify) action_finalize_notify_cb, data);
|
g_object_remove_weak_pointer (G_OBJECT (data->self), &data->self);
|
||||||
g_object_unref (data->object);
|
g_object_unref (data->object);
|
||||||
g_slice_free (ObjectActionData, data);
|
g_slice_free (ObjectActionData, data);
|
||||||
}
|
}
|
||||||
|
@ -901,8 +897,7 @@ ld_diagram_insert_object (LdDiagram *self, LdDiagramObject *object, gint pos)
|
||||||
|
|
||||||
action_data = g_slice_new (ObjectActionData);
|
action_data = g_slice_new (ObjectActionData);
|
||||||
action_data->self = self;
|
action_data->self = self;
|
||||||
g_object_weak_ref (G_OBJECT (self),
|
g_object_add_weak_pointer (G_OBJECT (self), &action_data->self);
|
||||||
(GWeakNotify) action_finalize_notify_cb, action_data);
|
|
||||||
action_data->object = g_object_ref (object);
|
action_data->object = g_object_ref (object);
|
||||||
action_data->pos = pos;
|
action_data->pos = pos;
|
||||||
|
|
||||||
|
@ -950,8 +945,7 @@ ld_diagram_remove_object (LdDiagram *self, LdDiagramObject *object)
|
||||||
|
|
||||||
action_data = g_slice_new (ObjectActionData);
|
action_data = g_slice_new (ObjectActionData);
|
||||||
action_data->self = self;
|
action_data->self = self;
|
||||||
g_object_weak_ref (G_OBJECT (self),
|
g_object_add_weak_pointer (G_OBJECT (self), &action_data->self);
|
||||||
(GWeakNotify) action_finalize_notify_cb, action_data);
|
|
||||||
action_data->object = g_object_ref (object);
|
action_data->object = g_object_ref (object);
|
||||||
action_data->pos = pos;
|
action_data->pos = pos;
|
||||||
|
|
||||||
|
@ -1037,13 +1031,15 @@ ld_diagram_select (LdDiagram *self, LdDiagramObject *object)
|
||||||
void
|
void
|
||||||
ld_diagram_unselect (LdDiagram *self, LdDiagramObject *object)
|
ld_diagram_unselect (LdDiagram *self, LdDiagramObject *object)
|
||||||
{
|
{
|
||||||
|
GList *link;
|
||||||
|
|
||||||
g_return_if_fail (LD_IS_DIAGRAM (self));
|
g_return_if_fail (LD_IS_DIAGRAM (self));
|
||||||
g_return_if_fail (LD_IS_DIAGRAM_OBJECT (object));
|
g_return_if_fail (LD_IS_DIAGRAM_OBJECT (object));
|
||||||
|
|
||||||
if (!g_list_find (self->priv->selection, object))
|
if (!(link = g_list_find (self->priv->selection, object)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
self->priv->selection = g_list_remove (self->priv->selection, object);
|
self->priv->selection = g_list_delete_link (self->priv->selection, link);
|
||||||
g_object_unref (object);
|
g_object_unref (object);
|
||||||
|
|
||||||
g_signal_emit (self,
|
g_signal_emit (self,
|
||||||
|
|
Loading…
Reference in New Issue