[dia/zbrown/object-change: 1/16] change: move DiaChange to lib
- From: Zander Brown <zbrown src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dia/zbrown/object-change: 1/16] change: move DiaChange to lib
- Date: Sat, 10 Oct 2020 22:05:55 +0000 (UTC)
commit b0b09bc152177e1ee50afd1d158c8e521127c01b
Author: Zander Brown <zbrown gnome org>
Date: Wed Sep 30 21:19:20 2020 +0100
change: move DiaChange to lib
The plan here is to rationalise undo information a bit and avoid things
like DiaObjectChangeChange
app/commands.c | 12 +-
app/connectionpoint_ops.c | 2 +-
app/create_object.c | 2 +-
app/diagram.c | 16 +-
app/disp_callbacks.c | 4 +-
app/layer-editor/dia-layer-widget.c | 2 +-
app/layer-editor/layer_dialog.c | 53 ++--
app/meson.build | 2 -
app/modify_tool.c | 2 +-
app/object_ops.c | 2 +-
app/undo.c | 497 ++++++++++++++++++++----------------
docs/dia-app/dia-app-docs.xml | 1 -
docs/dia/dia-docs.xml | 1 +
{app => lib}/dia-change.c | 22 +-
{app => lib}/dia-change.h | 38 +--
lib/meson.build | 2 +
lib/object.c | 4 +-
lib/prop_pixbuf.c | 2 +
18 files changed, 361 insertions(+), 303 deletions(-)
---
diff --git a/app/commands.c b/app/commands.c
index 4a96de2f1..9136bc131 100644
--- a/app/commands.c
+++ b/app/commands.c
@@ -662,7 +662,7 @@ edit_cut_callback (GtkAction *action)
cnp_store_objects (object_copy_list (cut_list), 0);
change = dia_delete_objects_change_new_with_children (ddisp->diagram, cut_list);
- dia_change_apply (change, ddisp->diagram);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (ddisp->diagram));
ddisplay_do_update_menu_sensitivity (ddisp);
diagram_flush (ddisp->diagram);
@@ -720,7 +720,7 @@ edit_paste_callback (GtkAction *action)
}
change = dia_insert_objects_change_new (ddisp->diagram, paste_list, 0);
- dia_change_apply (change, ddisp->diagram);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (ddisp->diagram));
diagram_modified (ddisp->diagram);
undo_set_transactionpoint (ddisp->diagram->undo);
@@ -763,7 +763,7 @@ edit_duplicate_callback (GtkAction *action)
object_list_move_delta (duplicate_list, &delta);
change = dia_insert_objects_change_new (ddisp->diagram, duplicate_list, 0);
- dia_change_apply (change, ddisp->diagram);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (ddisp->diagram));
diagram_modified (ddisp->diagram);
undo_set_transactionpoint (ddisp->diagram->undo);
@@ -790,7 +790,7 @@ objects_move_up_layer (GtkAction *action)
change = dia_move_object_to_layer_change_new (ddisp->diagram, selected_list, TRUE);
- dia_change_apply (change, ddisp->diagram);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (ddisp->diagram));
diagram_modified (ddisp->diagram);
undo_set_transactionpoint (ddisp->diagram->undo);
@@ -816,7 +816,7 @@ objects_move_down_layer (GtkAction *action)
change = dia_move_object_to_layer_change_new (ddisp->diagram, selected_list, FALSE);
- dia_change_apply (change, ddisp->diagram);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (ddisp->diagram));
diagram_modified (ddisp->diagram);
undo_set_transactionpoint (ddisp->diagram->undo);
@@ -969,7 +969,7 @@ edit_delete_callback (GtkAction *action)
delete_list = diagram_get_sorted_selected (ddisp->diagram);
change = dia_delete_objects_change_new_with_children (ddisp->diagram, delete_list);
g_list_free (delete_list);
- dia_change_apply (change, ddisp->diagram);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (ddisp->diagram));
}
diagram_modified (ddisp->diagram);
diagram_update_extents (ddisp->diagram);
diff --git a/app/connectionpoint_ops.c b/app/connectionpoint_ops.c
index 35286ed4c..fa406cd39 100644
--- a/app/connectionpoint_ops.c
+++ b/app/connectionpoint_ops.c
@@ -218,7 +218,7 @@ diagram_unconnect_selected(Diagram *dia)
/* don't do this if type is HANDLE_CONNECTABLE_BREAK */
if (!diagram_is_selected(dia, handle->connected_to->object)) {
DiaChange *change = dia_unconnect_change_new (dia, selected_obj, handle);
- dia_change_apply (change, dia);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (dia));
}
}
}
diff --git a/app/create_object.c b/app/create_object.c
index 5974ef948..1738d2069 100644
--- a/app/create_object.c
+++ b/app/create_object.c
@@ -159,7 +159,7 @@ create_object_button_release(CreateObjectTool *tool, GdkEventButton *event,
if (obj != parent_obj
&& object_within_parent (obj, parent_obj)) {
DiaChange *change = dia_parenting_change_new (ddisp->diagram, parent_obj, obj, TRUE);
- dia_change_apply (change, ddisp->diagram);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (ddisp->diagram));
break;
/*
obj->parent = parent_obj;
diff --git a/app/diagram.c b/app/diagram.c
index 5e0e294aa..9eba776a2 100644
--- a/app/diagram.c
+++ b/app/diagram.c
@@ -795,7 +795,7 @@ diagram_selected_break_external (Diagram *dia)
if (g_list_find (dia->data->selected, other_obj) == NULL) {
/* other_obj is not selected, break connection */
DiaChange *change = dia_unconnect_change_new (dia, obj, obj->handles[i]);
- dia_change_apply (change, dia);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (dia));
object_add_updates (obj, dia);
}
}
@@ -819,7 +819,7 @@ diagram_selected_break_external (Diagram *dia)
DiaChange *change;
connected_list = g_list_previous (connected_list);
change = dia_unconnect_change_new (dia, other_obj, other_obj->handles[j]);
- dia_change_apply (change, dia);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (dia));
if (connected_list == NULL)
connected_list = obj->connections[i]->connected;
}
@@ -1162,7 +1162,7 @@ strip_connections(DiaObject *obj, GList *not_strip_list, Diagram *dia)
if ((handle->connected_to != NULL) &&
(g_list_find(not_strip_list, handle->connected_to->object)==NULL)) {
change = dia_unconnect_change_new (dia, obj, handle);
- dia_change_apply (change, dia);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (dia));
}
}
}
@@ -1227,7 +1227,7 @@ void diagram_parent_selected(Diagram *dia)
{
DiaChange *change;
change = dia_parenting_change_new (dia, oe2->object, oe1->object, TRUE);
- dia_change_apply (change, dia);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (dia));
any_parented = TRUE;
/*
oe1->object->parent = oe2->object;
@@ -1262,7 +1262,7 @@ void diagram_unparent_selected(Diagram *dia)
continue;
change = dia_parenting_change_new (dia, parent, obj, FALSE);
- dia_change_apply (change, dia);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (dia));
any_unparented = TRUE;
/*
parent->children = g_list_remove(parent->children, obj);
@@ -1298,7 +1298,7 @@ void diagram_unparent_children_selected(Diagram *dia)
child = (DiaObject *) obj->children->data;
change = dia_parenting_change_new (dia, obj, child, FALSE);
/* This will remove one item from the list, so the while terminates. */
- dia_change_apply (change, dia);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (dia));
}
if (obj->children != NULL)
printf("Obj still has %d children\n",
@@ -1357,7 +1357,7 @@ diagram_group_selected (Diagram *dia)
group = group_create (group_list);
change = dia_group_objects_change_new (dia, group_list, group, orig_list);
- dia_change_apply (change, dia);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (dia));
/* Select the created group */
diagram_select (dia, group);
@@ -1397,7 +1397,7 @@ void diagram_ungroup_selected(Diagram *dia)
group_index = dia_layer_object_get_index (dia_diagram_data_get_active_layer (DIA_DIAGRAM_DATA (dia)),
group);
change = dia_ungroup_objects_change_new (dia, group_list, group, group_index);
- dia_change_apply (change, dia);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (dia));
diagram_select_list(dia, group_list);
any_groups = 1;
diff --git a/app/disp_callbacks.c b/app/disp_callbacks.c
index ff273b61f..945179c19 100644
--- a/app/disp_callbacks.c
+++ b/app/disp_callbacks.c
@@ -241,7 +241,7 @@ _combine_to_path_callback (GtkAction *action, gpointer data)
if (obj) {
/* remove the objects just combined */
DiaChange *change = dia_delete_objects_change_new_with_children (dia, cut_list);
- dia_change_apply (change, dia);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (dia));
/* add the new object with undo */
dia_insert_objects_change_new (dia, g_list_prepend (NULL, obj), 1);
diagram_add_object (dia, obj);
@@ -251,7 +251,7 @@ _combine_to_path_callback (GtkAction *action, gpointer data)
} else {
/* path combination result is empty, this is just a delete */
DiaChange *change = dia_delete_objects_change_new_with_children (ddisp->diagram, cut_list);
- dia_change_apply (change, ddisp->diagram);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (ddisp->diagram));
undo_set_transactionpoint (ddisp->diagram->undo);
}
ddisplay_do_update_menu_sensitivity(ddisp);
diff --git a/app/layer-editor/dia-layer-widget.c b/app/layer-editor/dia-layer-widget.c
index cebaec2e3..53f13f1c9 100644
--- a/app/layer-editor/dia-layer-widget.c
+++ b/app/layer-editor/dia-layer-widget.c
@@ -507,7 +507,7 @@ visible_toggled (GtkToggleButton *widget,
Diagram *dia = DIA_DIAGRAM (dia_layer_get_parent_diagram (priv->layer));
change = dia_layer_visibility_change_new (dia, priv->layer, priv->shifted);
/** This apply kills 'lw', thus we have to hold onto 'lw->dia' */
- dia_change_apply (change, dia);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (dia));
undo_set_transactionpoint (dia->undo);
}
}
diff --git a/app/layer-editor/layer_dialog.c b/app/layer-editor/layer_dialog.c
index dcd811827..17854c42d 100644
--- a/app/layer-editor/layer_dialog.c
+++ b/app/layer-editor/layer_dialog.c
@@ -153,55 +153,55 @@ DIA_DEFINE_CHANGE (DiaLayerChange, dia_layer_change)
static void
-dia_layer_change_apply (DiaChange *self, Diagram *dia)
+dia_layer_change_apply (DiaChange *self, DiagramData *dia)
{
DiaLayerChange *change = DIA_LAYER_CHANGE (self);
change->applied = 1;
switch (change->type) {
case TYPE_DELETE_LAYER:
- data_remove_layer (dia->data, change->layer);
+ data_remove_layer (dia, change->layer);
break;
case TYPE_ADD_LAYER:
- data_add_layer_at (dia->data, change->layer, change->index);
+ data_add_layer_at (dia, change->layer, change->index);
break;
case TYPE_RAISE_LAYER:
- data_raise_layer (dia->data, change->layer);
+ data_raise_layer (dia, change->layer);
break;
case TYPE_LOWER_LAYER:
- data_lower_layer (dia->data, change->layer);
+ data_lower_layer (dia, change->layer);
break;
default:
g_return_if_reached ();
}
- diagram_add_update_all(dia);
+ diagram_add_update_all (DIA_DIAGRAM (dia));
}
static void
-dia_layer_change_revert (DiaChange *self, Diagram *dia)
+dia_layer_change_revert (DiaChange *self, DiagramData *dia)
{
DiaLayerChange *change = DIA_LAYER_CHANGE (self);
switch (change->type) {
case TYPE_DELETE_LAYER:
- data_add_layer_at (dia->data, change->layer, change->index);
+ data_add_layer_at (dia, change->layer, change->index);
break;
case TYPE_ADD_LAYER:
- data_remove_layer (dia->data, change->layer);
+ data_remove_layer (dia, change->layer);
break;
case TYPE_RAISE_LAYER:
- data_lower_layer (dia->data, change->layer);
+ data_lower_layer (dia, change->layer);
break;
case TYPE_LOWER_LAYER:
- data_raise_layer (dia->data, change->layer);
+ data_raise_layer (dia, change->layer);
break;
default:
g_return_if_reached ();
}
- diagram_add_update_all(dia);
+ diagram_add_update_all (DIA_DIAGRAM (dia));
change->applied = 0;
}
@@ -217,7 +217,10 @@ dia_layer_change_free (DiaChange *self)
DiaChange *
-dia_layer_change_new (Diagram *dia, DiaLayer *layer, enum LayerChangeType type, int index)
+dia_layer_change_new (Diagram *dia,
+ DiaLayer *layer,
+ enum LayerChangeType type,
+ int index)
{
DiaLayerChange *change = dia_change_new (DIA_TYPE_LAYER_CHANGE);
@@ -246,8 +249,8 @@ DIA_DEFINE_CHANGE (DiaLayerVisibilityChange, dia_layer_visibility_change)
void
-dia_layer_visibility_change_apply (DiaChange *self,
- Diagram *dia)
+dia_layer_visibility_change_apply (DiaChange *self,
+ DiagramData *dia)
{
DiaLayerVisibilityChange *change = DIA_LAYER_VISIBILITY_CHANGE (self);
DiaLayer *layer = change->layer;
@@ -256,14 +259,14 @@ dia_layer_visibility_change_apply (DiaChange *self,
if (change->is_exclusive) {
/* First determine if _any_ other layer widgets are set to visible.
* If there is, exclusive switching turns all off. */
- DIA_FOR_LAYER_IN_DIAGRAM (DIA_DIAGRAM_DATA (dia), temp_layer, i, {
+ DIA_FOR_LAYER_IN_DIAGRAM (dia, temp_layer, i, {
if (temp_layer != layer) {
visible |= dia_layer_is_visible (temp_layer);
}
});
/* Now, toggle the visibility for all layers except the specified one */
- DIA_FOR_LAYER_IN_DIAGRAM (DIA_DIAGRAM_DATA (dia), temp_layer, i, {
+ DIA_FOR_LAYER_IN_DIAGRAM (dia, temp_layer, i, {
if (temp_layer == layer) {
dia_layer_set_visible (temp_layer, TRUE);
} else {
@@ -274,7 +277,7 @@ dia_layer_visibility_change_apply (DiaChange *self,
dia_layer_set_visible (layer, !dia_layer_is_visible (layer));
}
- diagram_add_update_all (dia);
+ diagram_add_update_all (DIA_DIAGRAM (dia));
}
@@ -282,25 +285,25 @@ dia_layer_visibility_change_apply (DiaChange *self,
* Revert to the visibility before this change was applied.
*/
static void
-dia_layer_visibility_change_revert (DiaChange *self,
- Diagram *dia)
+dia_layer_visibility_change_revert (DiaChange *self,
+ DiagramData *dia)
{
DiaLayerVisibilityChange *change = DIA_LAYER_VISIBILITY_CHANGE (self);
GList *vis = change->original_visibility;
int i;
- for (i = 0; vis != NULL && i < data_layer_count (DIA_DIAGRAM_DATA (dia)); vis = g_list_next (vis), i++) {
- DiaLayer *layer = data_layer_get_nth (DIA_DIAGRAM_DATA (dia), i);
+ for (i = 0; vis != NULL && i < data_layer_count (dia); vis = g_list_next (vis), i++) {
+ DiaLayer *layer = data_layer_get_nth (dia, i);
dia_layer_set_visible (layer, GPOINTER_TO_INT (vis->data));
}
- if (vis != NULL || i < data_layer_count (DIA_DIAGRAM_DATA (dia))) {
+ if (vis != NULL || i < data_layer_count (dia)) {
g_critical ("Internal error: visibility undo has %d visibilities, but %d layers\n",
g_list_length (change->original_visibility),
- data_layer_count (DIA_DIAGRAM_DATA (dia)));
+ data_layer_count (dia));
}
- diagram_add_update_all(dia);
+ diagram_add_update_all (DIA_DIAGRAM (dia));
}
diff --git a/app/meson.build b/app/meson.build
index 625616430..694bc6425 100644
--- a/app/meson.build
+++ b/app/meson.build
@@ -7,8 +7,6 @@ dia_sources = [
'properties-dialog.c',
'defaults.c',
'undo.c',
- 'dia-change.c',
- 'dia-change.h',
'object_ops.c',
'dia-builder.c',
diff --git a/app/modify_tool.c b/app/modify_tool.c
index 5d1dfd250..6a32c1a5d 100644
--- a/app/modify_tool.c
+++ b/app/modify_tool.c
@@ -611,7 +611,7 @@ modify_motion (ModifyTool *tool,
tool->object,
tool->handle);
- dia_change_apply (change, ddisp->diagram);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (ddisp->diagram));
}
}
diff --git a/app/object_ops.c b/app/object_ops.c
index 897f73fcd..8826f240d 100644
--- a/app/object_ops.c
+++ b/app/object_ops.c
@@ -141,7 +141,7 @@ object_connect_display(DDisplay *ddisp, DiaObject *obj, Handle *handle,
obj,
handle,
connectionpoint);
- dia_change_apply (change, ddisp->diagram);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (ddisp->diagram));
}
}
}
diff --git a/app/undo.c b/app/undo.c
index 10780bb5c..d70273b8e 100644
--- a/app/undo.c
+++ b/app/undo.c
@@ -46,13 +46,13 @@ DIA_DEFINE_CHANGE (DiaTransactionPointChange, dia_transaction_point_change)
static void
-dia_transaction_point_change_apply (DiaChange *self, Diagram *dia)
+dia_transaction_point_change_apply (DiaChange *self, DiagramData *dia)
{
}
static void
-dia_transaction_point_change_revert (DiaChange *self, Diagram *dia)
+dia_transaction_point_change_revert (DiaChange *self, DiagramData *dia)
{
}
@@ -71,13 +71,13 @@ dia_transaction_point_change_new (void)
UndoStack *
-new_undo_stack(Diagram *dia)
+new_undo_stack (Diagram *dia)
{
UndoStack *stack;
DiaChange *transaction;
- stack = g_new(UndoStack, 1);
- if (stack!=NULL){
+ stack = g_new (UndoStack, 1);
+ if (stack != NULL){
stack->dia = dia;
transaction = dia_transaction_point_change_new ();
transaction->next = transaction->prev = NULL;
@@ -91,16 +91,16 @@ new_undo_stack(Diagram *dia)
void
-undo_destroy(UndoStack *stack)
+undo_destroy (UndoStack *stack)
{
- undo_clear(stack);
+ undo_clear (stack);
g_free (stack);
}
static void
-undo_remove_redo_info(UndoStack *stack)
+undo_remove_redo_info (UndoStack *stack)
{
DiaChange *change;
DiaChange *next_change;
@@ -116,14 +116,16 @@ undo_remove_redo_info(UndoStack *stack)
dia_change_unref (change);
change = next_change;
}
- undo_update_menus(stack);
+ undo_update_menus (stack);
}
+
void
undo_push_change (UndoStack *stack, DiaChange *change)
{
- if (stack->current_change != stack->last_change)
+ if (stack->current_change != stack->last_change) {
undo_remove_redo_info (stack);
+ }
g_debug ("Push %s at %d", DIA_CHANGE_TYPE_NAME (change), stack->depth);
@@ -137,8 +139,9 @@ undo_push_change (UndoStack *stack, DiaChange *change)
undo_update_menus (stack);
}
+
static void
-undo_delete_lowest_transaction(UndoStack *stack)
+undo_delete_lowest_transaction (UndoStack *stack)
{
DiaChange *change;
DiaChange *next_change;
@@ -154,8 +157,9 @@ undo_delete_lowest_transaction(UndoStack *stack)
* Stop if we reach current_change or NULL.
*/
do {
- if ( (change == NULL) || (change == stack->current_change))
+ if ((change == NULL) || (change == stack->current_change)) {
break;
+ }
next_change = change->next;
g_debug ("freeing one change from the bottom.");
@@ -167,80 +171,91 @@ undo_delete_lowest_transaction(UndoStack *stack)
stack->depth--;
g_debug ("Decreasing stack depth to: %d", stack->depth);
}
- if (change) /* play safe */
+
+ if (change) {
+ /* play safe */
change->prev = NULL;
+ }
}
+
void
-undo_set_transactionpoint(UndoStack *stack)
+undo_set_transactionpoint (UndoStack *stack)
{
DiaChange *transaction;
- if (DIA_IS_TRANSACTION_POINT_CHANGE(stack->current_change))
+ if (DIA_IS_TRANSACTION_POINT_CHANGE (stack->current_change)) {
return;
+ }
transaction = dia_transaction_point_change_new ();
- undo_push_change(stack, transaction);
+ undo_push_change (stack, transaction);
stack->depth++;
g_debug ("Increasing stack depth to: %d", stack->depth);
if (prefs.undo_depth > 0) {
- while (stack->depth > prefs.undo_depth){
- undo_delete_lowest_transaction(stack);
+ while (stack->depth > prefs.undo_depth) {
+ undo_delete_lowest_transaction (stack);
}
}
}
+
void
-undo_revert_to_last_tp(UndoStack *stack)
+undo_revert_to_last_tp (UndoStack *stack)
{
DiaChange *change;
DiaChange *prev_change;
- if (stack->current_change->prev == NULL)
+ if (stack->current_change->prev == NULL) {
return; /* Can't revert first transactionpoint */
+ }
change = stack->current_change;
do {
prev_change = change->prev;
- dia_change_revert (change, stack->dia);
+ dia_change_revert (change, DIA_DIAGRAM_DATA (stack->dia));
change = prev_change;
- } while (!DIA_IS_TRANSACTION_POINT_CHANGE(change));
+ } while (!DIA_IS_TRANSACTION_POINT_CHANGE (change));
stack->current_change = change;
stack->depth--;
- undo_update_menus(stack);
+ undo_update_menus (stack);
g_debug ("Decreasing stack depth to: %d", stack->depth);
}
+
void
-undo_apply_to_next_tp(UndoStack *stack)
+undo_apply_to_next_tp (UndoStack *stack)
{
DiaChange *change;
DiaChange *next_change;
change = stack->current_change;
- if (change->next == NULL)
+ if (change->next == NULL) {
return /* Already at top. */;
+ }
do {
next_change = change->next;
- dia_change_apply (change, stack->dia);
+ dia_change_apply (change, DIA_DIAGRAM_DATA (stack->dia));
change = next_change;
- } while ( (change != NULL) &&
- (!DIA_IS_TRANSACTION_POINT_CHANGE(change)) );
- if (change == NULL)
+ } while ((change != NULL) && (!DIA_IS_TRANSACTION_POINT_CHANGE (change)));
+
+ if (change == NULL) {
change = stack->last_change;
+ }
+
stack->current_change = change;
stack->depth++;
- undo_update_menus(stack);
+ undo_update_menus (stack);
g_debug ("Increasing stack depth to: %d", stack->depth);
}
void
-undo_clear(UndoStack *stack)
+undo_clear (UndoStack *stack)
{
DiaChange *change;
@@ -254,8 +269,8 @@ undo_clear(UndoStack *stack)
stack->current_change = change;
stack->depth = 0;
- undo_remove_redo_info(stack);
- undo_update_menus(stack);
+ undo_remove_redo_info (stack);
+ undo_update_menus (stack);
}
@@ -326,6 +341,7 @@ undo_available (UndoStack *stack, gboolean undo)
}
}
+
/**
* undo_remove_to:
* @stack: The undo stack to remove items from.
@@ -340,11 +356,13 @@ undo_available (UndoStack *stack, gboolean undo)
* or %NULL otherwise. In the latter case, the undo stack will be empty.
*/
DiaChange *
-undo_remove_to(UndoStack *stack, GType type)
+undo_remove_to (UndoStack *stack, GType type)
{
DiaChange *current_change = stack->current_change;
- if (current_change == NULL)
+
+ if (current_change == NULL) {
return NULL;
+ }
while (current_change &&
!g_type_is_a (DIA_CHANGE_TYPE (current_change), type)) {
@@ -353,10 +371,10 @@ undo_remove_to(UndoStack *stack, GType type)
if (current_change != NULL) {
stack->current_change = current_change;
- undo_remove_redo_info(stack);
+ undo_remove_redo_info (stack);
return current_change;
} else {
- undo_clear(stack);
+ undo_clear (stack);
return NULL;
}
}
@@ -384,68 +402,70 @@ DIA_DEFINE_CHANGE (DiaMoveObjectsChange, dia_move_objects_change)
static void
-dia_move_objects_change_apply (DiaChange *self, Diagram *dia)
+dia_move_objects_change_apply (DiaChange *self, DiagramData *dia)
{
DiaMoveObjectsChange *change = DIA_MOVE_OBJECTS_CHANGE (self);
GList *list;
int i;
DiaObject *obj;
- object_add_updates_list(change->obj_list, dia);
+ object_add_updates_list (change->obj_list, DIA_DIAGRAM (dia));
list = change->obj_list;
- i=0;
+ i = 0;
while (list != NULL) {
- obj = (DiaObject *) list->data;
+ obj = DIA_OBJECT (list->data);
dia_object_move (obj, &change->dest_pos[i]);
- list = g_list_next(list); i++;
+ list = g_list_next (list);
+ i++;
}
list = change->obj_list;
- while (list!=NULL) {
- obj = (DiaObject *) list->data;
+ while (list != NULL) {
+ obj = DIA_OBJECT (list->data);
- diagram_update_connections_object(dia, obj, TRUE);
+ diagram_update_connections_object (DIA_DIAGRAM (dia), obj, TRUE);
- list = g_list_next(list);
+ list = g_list_next (list);
}
- object_add_updates_list(change->obj_list, dia);
+ object_add_updates_list (change->obj_list, DIA_DIAGRAM (dia));
}
static void
-dia_move_objects_change_revert (DiaChange *self, Diagram *dia)
+dia_move_objects_change_revert (DiaChange *self, DiagramData *dia)
{
DiaMoveObjectsChange *change = DIA_MOVE_OBJECTS_CHANGE (self);
GList *list;
int i;
DiaObject *obj;
- object_add_updates_list(change->obj_list, dia);
+ object_add_updates_list (change->obj_list, DIA_DIAGRAM (dia));
list = change->obj_list;
- i=0;
+ i = 0;
while (list != NULL) {
- obj = (DiaObject *) list->data;
+ obj = DIA_OBJECT (list->data);
- dia_object_move(obj, &change->orig_pos[i]);
+ dia_object_move (obj, &change->orig_pos[i]);
- list = g_list_next(list); i++;
+ list = g_list_next (list);
+ i++;
}
list = change->obj_list;
- while (list!=NULL) {
- obj = (DiaObject *) list->data;
+ while (list != NULL) {
+ obj = DIA_OBJECT (list->data);
- diagram_update_connections_object(dia, obj, TRUE);
+ diagram_update_connections_object (DIA_DIAGRAM (dia), obj, TRUE);
- list = g_list_next(list);
+ list = g_list_next (list);
}
- object_add_updates_list(change->obj_list, dia);
+ object_add_updates_list (change->obj_list, DIA_DIAGRAM (dia));
}
@@ -496,33 +516,39 @@ DIA_DEFINE_CHANGE (DiaMoveHandleChange, dia_move_handle_change)
static void
-dia_move_handle_change_apply (DiaChange *self, Diagram *dia)
+dia_move_handle_change_apply (DiaChange *self, DiagramData *dia)
{
DiaMoveHandleChange *change = DIA_MOVE_HANDLE_CHANGE (self);
- object_add_updates (change->obj, dia);
+ object_add_updates (change->obj, DIA_DIAGRAM (dia));
dia_object_move_handle (change->obj,
change->handle,
- &change->dest_pos, NULL,
- HANDLE_MOVE_USER_FINAL, change->modifiers);
- object_add_updates(change->obj, dia);
- diagram_update_connections_object(dia, change->obj, TRUE);
+ &change->dest_pos,
+ NULL,
+ HANDLE_MOVE_USER_FINAL,
+ change->modifiers);
+ object_add_updates (change->obj, DIA_DIAGRAM (dia));
+ diagram_update_connections_object (DIA_DIAGRAM (dia), change->obj, TRUE);
}
+
static void
-dia_move_handle_change_revert (DiaChange *self, Diagram *dia)
+dia_move_handle_change_revert (DiaChange *self, DiagramData *dia)
{
DiaMoveHandleChange *change = DIA_MOVE_HANDLE_CHANGE (self);
- object_add_updates (change->obj, dia);
+ object_add_updates (change->obj, DIA_DIAGRAM (dia));
dia_object_move_handle (change->obj,
change->handle,
- &change->orig_pos, NULL,
- HANDLE_MOVE_USER_FINAL, change->modifiers);
- object_add_updates(change->obj, dia);
- diagram_update_connections_object(dia, change->obj, TRUE);
+ &change->orig_pos,
+ NULL,
+ HANDLE_MOVE_USER_FINAL,
+ change->modifiers);
+ object_add_updates (change->obj, DIA_DIAGRAM (dia));
+ diagram_update_connections_object (DIA_DIAGRAM (dia), change->obj, TRUE);
}
+
static void
dia_move_handle_change_free (DiaChange *self)
{
@@ -566,37 +592,40 @@ DIA_DEFINE_CHANGE (DiaConnectChange, dia_connect_change)
static void
-dia_connect_change_apply (DiaChange *self, Diagram *dia)
+dia_connect_change_apply (DiaChange *self, DiagramData *dia)
{
DiaConnectChange *change = DIA_CONNECT_CHANGE (self);
- object_connect(change->obj, change->handle, change->connectionpoint);
+ object_connect (change->obj, change->handle, change->connectionpoint);
- object_add_updates (change->obj, dia);
+ object_add_updates (change->obj, DIA_DIAGRAM (dia));
dia_object_move_handle (change->obj,
change->handle,
- &change->connectionpoint->pos,
- change->connectionpoint,
- HANDLE_MOVE_CONNECTED, 0);
+ &change->connectionpoint->pos,
+ change->connectionpoint,
+ HANDLE_MOVE_CONNECTED,
+ 0);
- object_add_updates(change->obj, dia);
+ object_add_updates (change->obj, DIA_DIAGRAM (dia));
}
static void
-dia_connect_change_revert (DiaChange *self, Diagram *dia)
+dia_connect_change_revert (DiaChange *self, DiagramData *dia)
{
DiaConnectChange *change = DIA_CONNECT_CHANGE (self);
- object_unconnect(change->obj, change->handle);
+ object_unconnect (change->obj, change->handle);
- object_add_updates (change->obj, dia);
+ object_add_updates (change->obj, DIA_DIAGRAM (dia));
dia_object_move_handle (change->obj,
change->handle,
- &change->handle_pos, NULL,
- HANDLE_MOVE_CONNECTED, 0);
+ &change->handle_pos,
+ NULL,
+ HANDLE_MOVE_CONNECTED,
+ 0);
- object_add_updates(change->obj, dia);
+ object_add_updates (change->obj, DIA_DIAGRAM (dia));
}
@@ -640,24 +669,24 @@ DIA_DEFINE_CHANGE (DiaUnconnectChange, dia_unconnect_change)
static void
-dia_unconnect_change_apply (DiaChange *self, Diagram *dia)
+dia_unconnect_change_apply (DiaChange *self, DiagramData *dia)
{
DiaUnconnectChange *change = DIA_UNCONNECT_CHANGE (self);
- object_unconnect(change->obj, change->handle);
+ object_unconnect (change->obj, change->handle);
- object_add_updates(change->obj, dia);
+ object_add_updates (change->obj, DIA_DIAGRAM (dia));
}
static void
-dia_unconnect_change_revert (DiaChange *self, Diagram *dia)
+dia_unconnect_change_revert (DiaChange *self, DiagramData *dia)
{
DiaUnconnectChange *change = DIA_UNCONNECT_CHANGE (self);
- object_connect(change->obj, change->handle, change->connectionpoint);
+ object_connect (change->obj, change->handle, change->connectionpoint);
- object_add_updates(change->obj, dia);
+ object_add_updates (change->obj, DIA_DIAGRAM (dia));
}
@@ -698,34 +727,37 @@ DIA_DEFINE_CHANGE (DiaDeleteObjectsChange, dia_delete_objects_change)
static void
-dia_delete_objects_change_apply (DiaChange *self, Diagram *dia)
+dia_delete_objects_change_apply (DiaChange *self, DiagramData *dia)
{
DiaDeleteObjectsChange *change = DIA_DELETE_OBJECTS_CHANGE (self);
GList *list;
g_debug ("delete_objects_apply()");
change->applied = 1;
- diagram_unselect_objects (dia, change->obj_list);
+ diagram_unselect_objects (DIA_DIAGRAM (dia), change->obj_list);
dia_layer_remove_objects (change->layer, change->obj_list);
- object_add_updates_list (change->obj_list, dia);
+ object_add_updates_list (change->obj_list, DIA_DIAGRAM (dia));
list = change->obj_list;
while (list != NULL) {
- DiaObject *obj = (DiaObject *)list->data;
+ DiaObject *obj = DIA_OBJECT (list->data);
- /* Have to hide any open properties dialog
- if it contains some object in cut_list */
- properties_hide_if_shown(dia, obj);
+ /* Have to hide any open properties dialog
+ if it contains some object in cut_list */
+ properties_hide_if_shown (DIA_DIAGRAM (dia), obj);
- if (obj->parent) /* Lose references to deleted object */
- obj->parent->children = g_list_remove(obj->parent->children, obj);
+ if (obj->parent) {
+ /* Lose references to deleted object */
+ obj->parent->children = g_list_remove (obj->parent->children, obj);
+ }
- list = g_list_next(list);
+ list = g_list_next (list);
}
}
+
static void
-dia_delete_objects_change_revert (DiaChange *self, Diagram *dia)
+dia_delete_objects_change_revert (DiaChange *self, DiagramData *dia)
{
DiaDeleteObjectsChange *change = DIA_DELETE_OBJECTS_CHANGE (self);
GList *list;
@@ -734,15 +766,18 @@ dia_delete_objects_change_revert (DiaChange *self, Diagram *dia)
change->applied = 0;
dia_layer_set_object_list (change->layer,
g_list_copy (change->original_objects));
- object_add_updates_list (change->obj_list, dia);
+ object_add_updates_list (change->obj_list, DIA_DIAGRAM (dia));
list = change->obj_list;
while (list) {
- DiaObject *obj = (DiaObject *) list->data;
- if (obj->parent) /* Restore child references */
- obj->parent->children = g_list_append(obj->parent->children, obj);
+ DiaObject *obj = DIA_OBJECT (list->data);
+ if (obj->parent) {
+
+ /* Restore child references */
+ obj->parent->children = g_list_append (obj->parent->children, obj);
+ }
/* no need to emit object_add signal, already done by layer_set_object_list */
- list = g_list_next(list);
+ list = g_list_next (list);
}
}
@@ -753,11 +788,12 @@ dia_delete_objects_change_free (DiaChange *self)
DiaDeleteObjectsChange *change = DIA_DELETE_OBJECTS_CHANGE (self);
g_debug ("delete_objects_free()");
- if (change->applied)
- destroy_object_list(change->obj_list);
- else
- g_list_free(change->obj_list);
- g_list_free(change->original_objects);
+ if (change->applied) {
+ destroy_object_list (change->obj_list);
+ } else {
+ g_list_free (change->obj_list);
+ }
+ g_list_free (change->original_objects);
}
@@ -804,50 +840,53 @@ DIA_DEFINE_CHANGE (DiaInsertObjectsChange, dia_insert_objects_change)
static void
-dia_insert_objects_change_apply (DiaChange *self, Diagram *dia)
+dia_insert_objects_change_apply (DiaChange *self, DiagramData *dia)
{
DiaInsertObjectsChange *change = DIA_INSERT_OBJECTS_CHANGE (self);
g_debug ("insert_objects_apply()");
change->applied = 1;
dia_layer_add_objects (change->layer, g_list_copy (change->obj_list));
- object_add_updates_list (change->obj_list, dia);
+ object_add_updates_list (change->obj_list, DIA_DIAGRAM (dia));
}
+
static void
-dia_insert_objects_change_revert (DiaChange *self, Diagram *dia)
+dia_insert_objects_change_revert (DiaChange *self, DiagramData *dia)
{
DiaInsertObjectsChange *change = DIA_INSERT_OBJECTS_CHANGE (self);
GList *list;
g_debug ("insert_objects_revert()");
change->applied = 0;
- diagram_unselect_objects (dia, change->obj_list);
+ diagram_unselect_objects (DIA_DIAGRAM (dia), change->obj_list);
dia_layer_remove_objects (change->layer, change->obj_list);
- object_add_updates_list (change->obj_list, dia);
+ object_add_updates_list (change->obj_list, DIA_DIAGRAM (dia));
list = change->obj_list;
while (list != NULL) {
- DiaObject *obj = (DiaObject *)list->data;
+ DiaObject *obj = DIA_OBJECT (list->data);
- /* Have to hide any open properties dialog
- if it contains some object in cut_list */
- properties_hide_if_shown(dia, obj);
+ /* Have to hide any open properties dialog
+ if it contains some object in cut_list */
+ properties_hide_if_shown (DIA_DIAGRAM (dia), obj);
- list = g_list_next(list);
+ list = g_list_next (list);
}
}
+
static void
dia_insert_objects_change_free (DiaChange *self)
{
DiaInsertObjectsChange *change = DIA_INSERT_OBJECTS_CHANGE (self);
g_debug ("insert_objects_free()");
- if (!change->applied)
- destroy_object_list(change->obj_list);
- else
- g_list_free(change->obj_list);
+ if (!change->applied) {
+ destroy_object_list (change->obj_list);
+ } else {
+ g_list_free (change->obj_list);
+ }
}
@@ -882,26 +921,26 @@ DIA_DEFINE_CHANGE (DiaReorderObjectsChange, dia_reorder_objects_change)
static void
-dia_reorder_objects_change_apply (DiaChange *self, Diagram *dia)
+dia_reorder_objects_change_apply (DiaChange *self, DiagramData *dia)
{
DiaReorderObjectsChange *change = DIA_REORDER_OBJECTS_CHANGE (self);
g_debug ("reorder_objects_apply()");
dia_layer_set_object_list (change->layer,
g_list_copy (change->reordered_objects));
- object_add_updates_list (change->changed_list, dia);
+ object_add_updates_list (change->changed_list, DIA_DIAGRAM (dia));
}
static void
-dia_reorder_objects_change_revert (DiaChange *self, Diagram *dia)
+dia_reorder_objects_change_revert (DiaChange *self, DiagramData *dia)
{
DiaReorderObjectsChange *change = DIA_REORDER_OBJECTS_CHANGE (self);
g_debug ("reorder_objects_revert()");
dia_layer_set_object_list (change->layer,
- g_list_copy(change->original_objects));
- object_add_updates_list (change->changed_list, dia);
+ g_list_copy (change->original_objects));
+ object_add_updates_list (change->changed_list, DIA_DIAGRAM (dia));
}
@@ -911,9 +950,9 @@ dia_reorder_objects_change_free (DiaChange *self)
DiaReorderObjectsChange *change = DIA_REORDER_OBJECTS_CHANGE (self);
g_debug ("reorder_objects_free()");
- g_list_free(change->changed_list);
- g_list_free(change->original_objects);
- g_list_free(change->reordered_objects);
+ g_list_free (change->changed_list);
+ g_list_free (change->original_objects);
+ g_list_free (change->reordered_objects);
}
@@ -950,61 +989,67 @@ static void
_connections_update_func (gpointer data, gpointer user_data)
{
DiaObject *obj = data;
- Diagram *dia = (Diagram *)user_data;
+ DiagramData *dia = DIA_DIAGRAM_DATA (user_data);
- diagram_update_connections_object(dia, obj, TRUE);
+ diagram_update_connections_object (DIA_DIAGRAM (dia), obj, TRUE);
}
static void
-dia_object_change_change_apply (DiaChange *self,
- Diagram *dia)
+dia_object_change_change_apply (DiaChange *self,
+ DiagramData *dia)
{
DiaObjectChangeChange *change = DIA_OBJECT_CHANGE_CHANGE (self);
- if (change->obj)
- object_add_updates(change->obj, dia);
+ if (change->obj) {
+ object_add_updates (change->obj, DIA_DIAGRAM (dia));
+ }
- change->obj_change->apply(change->obj_change, change->obj);
+ change->obj_change->apply (change->obj_change, change->obj);
if (change->obj) {
/* Make sure object updates its data: */
Point p = change->obj->position;
dia_object_move (change->obj, &p);
- object_add_updates(change->obj, dia);
- diagram_update_connections_object(dia, change->obj, TRUE);
- properties_update_if_shown(dia, change->obj);
+ object_add_updates (change->obj, DIA_DIAGRAM (dia));
+ diagram_update_connections_object (DIA_DIAGRAM (dia), change->obj, TRUE);
+ properties_update_if_shown (DIA_DIAGRAM (dia), change->obj);
} else {
/* pretty big hammer - update all connections */
- data_foreach_object (DIA_DIAGRAM_DATA (dia), _connections_update_func, dia);
- diagram_add_update_all(dia);
+ data_foreach_object (DIA_DIAGRAM_DATA (dia),
+ _connections_update_func,
+ DIA_DIAGRAM (dia));
+ diagram_add_update_all (DIA_DIAGRAM (dia));
}
}
static void
-dia_object_change_change_revert (DiaChange *self,
- Diagram *dia)
+dia_object_change_change_revert (DiaChange *self,
+ DiagramData *dia)
{
DiaObjectChangeChange *change = DIA_OBJECT_CHANGE_CHANGE (self);
- if (change->obj)
- object_add_updates(change->obj, dia);
+ if (change->obj) {
+ object_add_updates (change->obj, DIA_DIAGRAM (dia));
+ }
- change->obj_change->revert(change->obj_change, change->obj);
+ change->obj_change->revert (change->obj_change, change->obj);
if (change->obj) {
/* Make sure object updates its data: */
Point p = change->obj->position;
dia_object_move (change->obj, &p);
- object_add_updates(change->obj, dia);
- diagram_update_connections_object(dia, change->obj, TRUE);
- properties_update_if_shown(dia, change->obj);
+ object_add_updates(change->obj, DIA_DIAGRAM (dia));
+ diagram_update_connections_object (DIA_DIAGRAM (dia), change->obj, TRUE);
+ properties_update_if_shown (DIA_DIAGRAM (dia), change->obj);
} else {
- data_foreach_object (DIA_DIAGRAM_DATA (dia), _connections_update_func, dia);
- diagram_add_update_all(dia);
+ data_foreach_object (DIA_DIAGRAM_DATA (dia),
+ _connections_update_func,
+ DIA_DIAGRAM (dia));
+ diagram_add_update_all (DIA_DIAGRAM (dia));
}
}
@@ -1066,7 +1111,7 @@ DIA_DEFINE_CHANGE (DiaGroupObjectsChange, dia_group_objects_change)
static void
-dia_group_objects_change_apply (DiaChange *self, Diagram *dia)
+dia_group_objects_change_apply (DiaChange *self, DiagramData *dia)
{
DiaGroupObjectsChange *change = DIA_GROUP_OBJECTS_CHANGE (self);
@@ -1076,42 +1121,42 @@ dia_group_objects_change_apply (DiaChange *self, Diagram *dia)
change->applied = 1;
- diagram_unselect_objects (dia, change->obj_list);
+ diagram_unselect_objects (DIA_DIAGRAM (dia), change->obj_list);
dia_layer_remove_objects (change->layer, change->obj_list);
dia_layer_add_object (change->layer, change->group);
- object_add_updates (change->group, dia);
+ object_add_updates (change->group, DIA_DIAGRAM (dia));
list = change->obj_list;
while (list != NULL) {
- DiaObject *obj = (DiaObject *)list->data;
+ DiaObject *obj = DIA_OBJECT (list->data);
- /* Have to hide any open properties dialog
- if it contains some object in cut_list */
- properties_hide_if_shown(dia, obj);
+ /* Have to hide any open properties dialog
+ if it contains some object in cut_list */
+ properties_hide_if_shown (DIA_DIAGRAM (dia), obj);
- object_add_updates(obj, dia);
+ object_add_updates (obj, DIA_DIAGRAM (dia));
- list = g_list_next(list);
+ list = g_list_next (list);
}
}
static void
-dia_group_objects_change_revert (DiaChange *self, Diagram *dia)
+dia_group_objects_change_revert (DiaChange *self, DiagramData *dia)
{
DiaGroupObjectsChange *change = DIA_GROUP_OBJECTS_CHANGE (self);
g_debug ("group_objects_revert()");
change->applied = 0;
- diagram_unselect_object (dia, change->group);
- object_add_updates (change->group, dia);
+ diagram_unselect_object (DIA_DIAGRAM (dia), change->group);
+ object_add_updates (change->group, DIA_DIAGRAM (dia));
dia_layer_set_object_list (change->layer, g_list_copy (change->orig_list));
- object_add_updates_list (change->obj_list, dia);
+ object_add_updates_list (change->obj_list, DIA_DIAGRAM (dia));
- properties_hide_if_shown (dia, change->group);
+ properties_hide_if_shown (DIA_DIAGRAM (dia), change->group);
}
@@ -1122,12 +1167,12 @@ dia_group_objects_change_free (DiaChange *self)
g_debug ("group_objects_free()");
if (!change->applied) {
- group_destroy_shallow(change->group);
+ group_destroy_shallow (change->group);
change->group = NULL;
change->obj_list = NULL;
/** Leak here? */
}
- g_list_free(change->orig_list);
+ g_list_free (change->orig_list);
}
@@ -1167,7 +1212,7 @@ DIA_DEFINE_CHANGE (DiaUngroupObjectsChange, dia_ungroup_objects_change)
static void
-dia_ungroup_objects_change_apply (DiaChange *self, Diagram *dia)
+dia_ungroup_objects_change_apply (DiaChange *self, DiagramData *dia)
{
DiaUngroupObjectsChange *change = DIA_UNGROUP_OBJECTS_CHANGE (self);
@@ -1175,19 +1220,19 @@ dia_ungroup_objects_change_apply (DiaChange *self, Diagram *dia)
change->applied = 1;
- diagram_unselect_object (dia, change->group);
- object_add_updates (change->group, dia);
+ diagram_unselect_object (DIA_DIAGRAM (dia), change->group);
+ object_add_updates (change->group, DIA_DIAGRAM (dia));
dia_layer_replace_object_with_list (change->layer,
change->group,
- g_list_copy(change->obj_list));
- object_add_updates_list (change->obj_list, dia);
+ g_list_copy (change->obj_list));
+ object_add_updates_list (change->obj_list, DIA_DIAGRAM (dia));
- properties_hide_if_shown (dia, change->group);
+ properties_hide_if_shown (DIA_DIAGRAM (dia), change->group);
}
static void
-dia_ungroup_objects_change_revert (DiaChange *self, Diagram *dia)
+dia_ungroup_objects_change_revert (DiaChange *self, DiagramData *dia)
{
DiaUngroupObjectsChange *change = DIA_UNGROUP_OBJECTS_CHANGE (self);
GList *list;
@@ -1196,20 +1241,20 @@ dia_ungroup_objects_change_revert (DiaChange *self, Diagram *dia)
change->applied = 0;
- diagram_unselect_objects( dia, change->obj_list);
+ diagram_unselect_objects (DIA_DIAGRAM (dia), change->obj_list);
dia_layer_remove_objects (change->layer, change->obj_list);
dia_layer_add_object_at (change->layer, change->group, change->group_index);
- object_add_updates (change->group, dia);
+ object_add_updates (change->group, DIA_DIAGRAM (dia));
list = change->obj_list;
while (list != NULL) {
- DiaObject *obj = (DiaObject *)list->data;
+ DiaObject *obj = DIA_OBJECT (list->data);
- /* Have to hide any open properties dialog
- if it contains some object in cut_list */
- properties_hide_if_shown(dia, obj);
+ /* Have to hide any open properties dialog
+ if it contains some object in cut_list */
+ properties_hide_if_shown (DIA_DIAGRAM (dia), obj);
- list = g_list_next(list);
+ list = g_list_next (list);
}
}
@@ -1222,7 +1267,7 @@ dia_ungroup_objects_change_free (DiaChange *self)
g_debug ("ungroup_objects_free()");
if (change->applied) {
- group_destroy_shallow(change->group);
+ group_destroy_shallow (change->group);
change->group = NULL;
change->obj_list = NULL;
}
@@ -1265,26 +1310,26 @@ DIA_DEFINE_CHANGE (DiaParentingChange, dia_parenting_change)
/** Performs the actual parenting of a child to a parent.
* Since no display changes arise from this, we need call no update. */
static void
-parent_object(Diagram *dia, DiaObject *parent, DiaObject *child)
+parent_object (DiagramData *dia, DiaObject *parent, DiaObject *child)
{
child->parent = parent;
- parent->children = g_list_prepend(parent->children, child);
+ parent->children = g_list_prepend (parent->children, child);
}
/** Performs the actual removal of a child from a parent.
* Since no display changes arise from this, we need call no update. */
static void
-unparent_object(Diagram *dia, DiaObject *parent, DiaObject *child)
+unparent_object (DiagramData *dia, DiaObject *parent, DiaObject *child)
{
child->parent = NULL;
- parent->children = g_list_remove(parent->children, child);
+ parent->children = g_list_remove (parent->children, child);
}
/** Applies the given ParentChange */
static void
-dia_parenting_change_apply (DiaChange *change, Diagram *dia)
+dia_parenting_change_apply (DiaChange *change, DiagramData *dia)
{
DiaParentingChange *parentchange = DIA_PARENTING_CHANGE (change);
@@ -1298,7 +1343,7 @@ dia_parenting_change_apply (DiaChange *change, Diagram *dia)
/** Reverts the given ParentChange */
static void
-dia_parenting_change_revert (DiaChange *change, Diagram *dia)
+dia_parenting_change_revert (DiaChange *change, DiagramData *dia)
{
DiaParentingChange *parentchange = DIA_PARENTING_CHANGE (change);
@@ -1368,31 +1413,31 @@ DIA_DEFINE_CHANGE (DiaMoveObjectToLayerChange, dia_move_object_to_layer_change)
* better make it listen to object-add signal?
*/
static void
-move_object_layer_relative (Diagram *dia, GList *objects, gint dist)
+move_object_layer_relative (DiagramData *dia, GList *objects, gint dist)
{
/* from the active layer to above or below */
DiaLayer *active, *target;
guint pos;
- g_return_if_fail (data_layer_count (DIA_DIAGRAM_DATA (dia)) != 0);
+ g_return_if_fail (data_layer_count (dia) != 0);
- active = dia_diagram_data_get_active_layer (DIA_DIAGRAM_DATA (dia));
+ active = dia_diagram_data_get_active_layer (dia);
g_return_if_fail (active);
- pos = data_layer_get_index (DIA_DIAGRAM_DATA (dia), active);
+ pos = data_layer_get_index (dia, active);
- pos = (pos + data_layer_count (DIA_DIAGRAM_DATA (dia)) + dist) % data_layer_count (DIA_DIAGRAM_DATA (dia));
- target = data_layer_get_nth (DIA_DIAGRAM_DATA (dia), pos);
- object_add_updates_list (objects, dia);
+ pos = (pos + data_layer_count (dia) + dist) % data_layer_count (dia);
+ target = data_layer_get_nth (dia, pos);
+ object_add_updates_list (objects, DIA_DIAGRAM (dia));
dia_layer_remove_objects (active, objects);
dia_layer_add_objects (target, g_list_copy (objects));
- data_set_active_layer (dia->data, target);
+ data_set_active_layer (dia, target);
}
static void
-dia_move_object_to_layer_change_apply (DiaChange *self, Diagram *dia)
+dia_move_object_to_layer_change_apply (DiaChange *self, DiagramData *dia)
{
DiaMoveObjectToLayerChange *change = DIA_MOVE_OBJECT_TO_LAYER_CHANGE (self);
@@ -1405,18 +1450,18 @@ dia_move_object_to_layer_change_apply (DiaChange *self, Diagram *dia)
static void
-dia_move_object_to_layer_change_revert (DiaChange *self, Diagram *dia)
+dia_move_object_to_layer_change_revert (DiaChange *self, DiagramData *dia)
{
DiaMoveObjectToLayerChange *change = DIA_MOVE_OBJECT_TO_LAYER_CHANGE (self);
if (change->moving_up) {
move_object_layer_relative (dia, change->objects, -1);
} else {
- diagram_unselect_objects (dia, change->objects);
+ diagram_unselect_objects (DIA_DIAGRAM (dia), change->objects);
move_object_layer_relative (dia, change->objects, 1);
/* overwriting the 'unsorted' list of objects to the order it had before */
dia_layer_set_object_list (change->orig_layer, g_list_copy (change->orig_list));
- object_add_updates_list (change->orig_list, dia);
+ object_add_updates_list (change->orig_list, DIA_DIAGRAM (dia));
}
}
@@ -1465,50 +1510,56 @@ DIA_DEFINE_CHANGE (DiaImportChange, dia_import_change)
static void
-dia_import_change_apply (DiaChange *self,
- Diagram *dia)
+dia_import_change_apply (DiaChange *self,
+ DiagramData *dia)
{
DiaImportChange *change = DIA_IMPORT_CHANGE (self);
GList *list;
- DiaLayer *layer = dia_diagram_data_get_active_layer (DIA_DIAGRAM_DATA (dia));
+ DiaLayer *layer = dia_diagram_data_get_active_layer (dia);
/* add all objects and layers added from the diagram */
for (list = change->layers; list != NULL; list = list->next) {
layer = DIA_LAYER (list->data);
data_add_layer (DIA_DIAGRAM_DATA (change->dia), layer);
}
+
for (list = change->objects; list != NULL; list = list->next) {
- DiaObject *obj = (DiaObject *)list->data;
- /* ToDo: layer assignment wont be triggered for removed objects.
- * Maybe we need to store all the layers with the objects ourself?
- */
- if (dia_object_get_parent_layer (obj))
+ DiaObject *obj = DIA_OBJECT (list->data);
+ /* TODO: layer assignment wont be triggered for removed objects.
+ * Maybe we need to store all the layers with the objects ourself?
+ */
+ if (dia_object_get_parent_layer (obj)) {
layer = dia_object_get_parent_layer (obj);
+ }
+
dia_layer_add_object (layer, obj);
}
- diagram_update_extents (change->dia);
+
+ diagram_update_extents (DIA_DIAGRAM (change->dia));
}
static void
-dia_import_change_revert (DiaChange *self,
- Diagram *diagram)
+dia_import_change_revert (DiaChange *self,
+ DiagramData *diagram)
{
DiaImportChange *change = DIA_IMPORT_CHANGE (self);
GList *list;
/* otherwise we might end up with an empty selection */
- diagram_unselect_objects (change->dia, change->objects);
+ diagram_unselect_objects (DIA_DIAGRAM (change->dia), change->objects);
/* remove all objects and layers added from the diagram */
for (list = change->objects; list != NULL; list = list->next) {
DiaObject *obj = DIA_OBJECT (list->data);
DiaLayer *layer = dia_object_get_parent_layer (obj);
dia_layer_remove_object (layer, obj);
}
+
for (list = change->layers; list != NULL; list = list->next) {
DiaLayer *layer = DIA_LAYER (list->data);
data_remove_layer (DIA_DIAGRAM_DATA (change->dia), layer);
}
+
diagram_update_extents (change->dia);
}
@@ -1593,6 +1644,7 @@ dia_import_change_done (Diagram *dia, DiaChange *chg)
undo_push_change (dia->undo, chg);
return TRUE;
}
+
return FALSE;
}
@@ -1610,7 +1662,7 @@ DIA_DEFINE_CHANGE (DiaMemSwapChange, dia_mem_swap_change)
static void
-_swap_mem (DiaMemSwapChange *change, Diagram *dia)
+_swap_mem (DiaMemSwapChange *change, DiagramData *dia)
{
gsize i;
@@ -1619,22 +1671,23 @@ _swap_mem (DiaMemSwapChange *change, Diagram *dia)
change->mem[i] = change->dest[i];
change->dest[i] = tmp;
}
- diagram_add_update_all (dia);
- diagram_flush (dia);
+
+ diagram_add_update_all (DIA_DIAGRAM (dia));
+ diagram_flush (DIA_DIAGRAM (dia));
}
static void
-dia_mem_swap_change_apply (DiaChange *change,
- Diagram *diagram)
+dia_mem_swap_change_apply (DiaChange *change,
+ DiagramData *diagram)
{
_swap_mem (DIA_MEM_SWAP_CHANGE (change), diagram);
}
static void
-dia_mem_swap_change_revert (DiaChange *change,
- Diagram *diagram)
+dia_mem_swap_change_revert (DiaChange *change,
+ DiagramData *diagram)
{
_swap_mem (DIA_MEM_SWAP_CHANGE (change), diagram);
}
diff --git a/docs/dia-app/dia-app-docs.xml b/docs/dia-app/dia-app-docs.xml
index 550c38f26..335213947 100644
--- a/docs/dia-app/dia-app-docs.xml
+++ b/docs/dia-app/dia-app-docs.xml
@@ -96,7 +96,6 @@
<chapter id="undo-api">
<title>Undo</title>
- <xi:include href="xml/dia-change.xml" />
<xi:include href="xml/undo.xml" />
</chapter>
</part>
diff --git a/docs/dia/dia-docs.xml b/docs/dia/dia-docs.xml
index 9872afa82..7c89ac316 100644
--- a/docs/dia/dia-docs.xml
+++ b/docs/dia/dia-docs.xml
@@ -70,6 +70,7 @@
<xi:include href="xml/connpoint_line.xml"/>
<xi:include href="xml/dia_svg.xml"/>
<xi:include href="xml/objchange.xml"/>
+ <xi:include href="xml/dia-change.xml" />
<xi:include href="xml/object-alias.xml"/>
<xi:include href="xml/create.xml"/>
<xi:include href="xml/diatransform.xml"/>
diff --git a/app/dia-change.c b/lib/dia-change.c
similarity index 93%
rename from app/dia-change.c
rename to lib/dia-change.c
index 3b523204f..b216a7074 100644
--- a/app/dia-change.c
+++ b/lib/dia-change.c
@@ -24,19 +24,19 @@
#include <gobject/gvaluecollector.h>
#include "dia-change.h"
-#include "diagram.h"
+#include "diagramdata.h"
static void
-dia_change_real_apply (DiaChange *self,
- Diagram *diagram)
+dia_change_real_apply (DiaChange *self,
+ DiagramData *diagram)
{
g_critical ("%s doesn't implement apply", DIA_CHANGE_TYPE_NAME (self));
}
static void
-dia_change_real_revert (DiaChange *self,
- Diagram *diagram)
+dia_change_real_revert (DiaChange *self,
+ DiagramData *diagram)
{
g_critical ("%s doesn't implement revert", DIA_CHANGE_TYPE_NAME (self));
}
@@ -267,22 +267,22 @@ dia_change_new (GType type)
void
-dia_change_apply (DiaChange *self,
- Diagram *diagram)
+dia_change_apply (DiaChange *self,
+ DiagramData *diagram)
{
g_return_if_fail (self && DIA_IS_CHANGE (self));
- g_return_if_fail (diagram && DIA_IS_DIAGRAM (diagram));
+ g_return_if_fail (diagram && DIA_IS_DIAGRAM_DATA (diagram));
DIA_CHANGE_GET_CLASS (self)->apply (self, diagram);
}
void
-dia_change_revert (DiaChange *self,
- Diagram *diagram)
+dia_change_revert (DiaChange *self,
+ DiagramData *diagram)
{
g_return_if_fail (self && DIA_IS_CHANGE (self));
- g_return_if_fail (diagram && DIA_IS_DIAGRAM (diagram));
+ g_return_if_fail (diagram && DIA_IS_DIAGRAM_DATA (diagram));
DIA_CHANGE_GET_CLASS (self)->revert (self, diagram);
}
diff --git a/app/dia-change.h b/lib/dia-change.h
similarity index 83%
rename from app/dia-change.h
rename to lib/dia-change.h
index 3646a1fff..fa8c6f494 100644
--- a/app/dia-change.h
+++ b/lib/dia-change.h
@@ -26,7 +26,7 @@
#ifndef __GTK_DOC_IGNORE__
// TODO: Fix the diagram.h cycle
-typedef struct _Diagram Diagram;
+typedef struct _DiagramData DiagramData;
#endif
G_BEGIN_DECLS
@@ -63,14 +63,14 @@ typedef struct _DiaChangeClass DiaChangeClass;
* DIA_DEFINE_CHANGE (SomeChange, some_change)
*
* static void
- * some_change_apply (DiaChange *change,
- * Diagram *diagram)
+ * some_change_apply (DiaChange *change,
+ * DiagramData *diagram)
* {
* }
*
* static void
- * some_change_revert (DiaChange *change,
- * Diagram *diagram)
+ * some_change_revert (DiaChange *change,
+ * DiagramData *diagram)
* {
* }
*
@@ -86,9 +86,9 @@ typedef struct _DiaChangeClass DiaChangeClass;
G_DEFINE_TYPE (TypeName, type_name, DIA_TYPE_CHANGE) \
\
static void type_name##_apply (DiaChange *change, \
- Diagram *diagram); \
+ DiagramData *diagram); \
static void type_name##_revert (DiaChange *change, \
- Diagram *diagram); \
+ DiagramData *diagram); \
static void type_name##_free (DiaChange *change); \
\
static void \
@@ -118,20 +118,20 @@ struct _DiaChange {
struct _DiaChangeClass {
GTypeClass parent;
- void (*apply) (DiaChange *change,
- Diagram *dia);
- void (*revert) (DiaChange *change,
- Diagram *dia);
- void (*free) (DiaChange *change);
+ void (*apply) (DiaChange *change,
+ DiagramData *dia);
+ void (*revert) (DiaChange *change,
+ DiagramData *dia);
+ void (*free) (DiaChange *change);
};
-void dia_change_unref (gpointer self);
-gpointer dia_change_ref (gpointer self);
-gpointer dia_change_new (GType type);
-void dia_change_apply (DiaChange *self,
- Diagram *diagram);
-void dia_change_revert (DiaChange *self,
- Diagram *diagram);
+void dia_change_unref (gpointer self);
+gpointer dia_change_ref (gpointer self);
+gpointer dia_change_new (GType type);
+void dia_change_apply (DiaChange *self,
+ DiagramData *diagram);
+void dia_change_revert (DiaChange *self,
+ DiagramData *diagram);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DiaChange, dia_change_unref)
diff --git a/lib/meson.build b/lib/meson.build
index 66148aaef..1aa23e788 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -89,6 +89,8 @@ libdia_sources = stdprop_sources + [
'beziershape.h',
'objchange.c',
'objchange.h',
+ 'dia-change.c',
+ 'dia-change.h',
'dialogs.c',
'dialogs.h',
'widgets.c',
diff --git a/lib/object.c b/lib/object.c
index 8db4b3f61..f8a037949 100644
--- a/lib/object.c
+++ b/lib/object.c
@@ -1587,7 +1587,7 @@ dia_object_get_editor (DiaObject *self,
* The widget parameter is the one created by
* the get_properties function.
*
- * Returns: a #Change that can be used for undo/redo, The returned change is
+ * Returns: a #ObjectChange that can be used for undo/redo, The returned change is
* already applied.
*
* Stability: Stable
@@ -1719,7 +1719,7 @@ dia_object_set_properties (DiaObject *self,
* is different from SetPropsFunc since this is used to implement
* undo/redo.
*
- * Returns: a #Change for undo/redo
+ * Returns: a #ObjectChange for undo/redo
*
* Stability: Stable
*
diff --git a/lib/prop_pixbuf.c b/lib/prop_pixbuf.c
index ee8fd1d82..5ddd865ce 100644
--- a/lib/prop_pixbuf.c
+++ b/lib/prop_pixbuf.c
@@ -220,6 +220,8 @@ _make_pixbuf_type_name (const char *p)
/**
* pixbuf_encode_base64:
+ * @pixbuf: the #GdkPixbuf to encode
+ * @prefix: mime type
*
* Reusable variant of pixbuf to base64 string conversion
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]