summaryrefslogtreecommitdiff
path: root/tikzit/src/gtk/TikzDocument.m
diff options
context:
space:
mode:
authorrandomguy3 <randomguy3@7c02a99a-9b00-45e3-bf44-6f3dd7fddb64>2012-01-30 15:33:15 +0000
committerrandomguy3 <randomguy3@7c02a99a-9b00-45e3-bf44-6f3dd7fddb64>2012-01-30 15:33:15 +0000
commita7184527c392a02cf34b85f7f40f9d59348dfb26 (patch)
tree63449c8886cbadf998bbc5bcead8af645e716983 /tikzit/src/gtk/TikzDocument.m
parent31ff43125b0629b688a36c2a97c233ec878b3fbc (diff)
Undo/redo support for ordering changes
git-svn-id: https://tikzit.svn.sourceforge.net/svnroot/tikzit/trunk@404 7c02a99a-9b00-45e3-bf44-6f3dd7fddb64
Diffstat (limited to 'tikzit/src/gtk/TikzDocument.m')
-rw-r--r--tikzit/src/gtk/TikzDocument.m84
1 files changed, 48 insertions, 36 deletions
diff --git a/tikzit/src/gtk/TikzDocument.m b/tikzit/src/gtk/TikzDocument.m
index 8672266..40411d9 100644
--- a/tikzit/src/gtk/TikzDocument.m
+++ b/tikzit/src/gtk/TikzDocument.m
@@ -697,20 +697,23 @@
if (!hasNodeSelection && !hasEdgeSelection)
return;
- //[self startUndoGroup];
+ [self startUndoGroup];
+ GraphChange *nodeChange;
+ GraphChange *edgeChange;
if (hasNodeSelection) {
- /*GraphChange *change =*/
- [graph bringNodesForward:[pickSupport selectedNodes]];
- //[self registerUndoForChange:change];
+ nodeChange = [graph bringNodesForward:[pickSupport selectedNodes]];
+ [self registerUndoForChange:nodeChange];
}
if (hasEdgeSelection) {
- /*GraphChange *change =*/
- [graph bringEdgesForward:[pickSupport selectedEdges]];
- //[self registerUndoForChange:change];
+ edgeChange = [graph bringEdgesForward:[pickSupport selectedEdges]];
+ [self registerUndoForChange:edgeChange];
}
- //[self nameAndEndUndoGroup:@"Bring forward"];
+ [self nameAndEndUndoGroup:@"Bring forward"];
[self regenerateTikz];
- //[self postGraphChange:change];
+ if (hasNodeSelection)
+ [self postGraphChange:nodeChange];
+ if (hasEdgeSelection)
+ [self postGraphChange:edgeChange];
}
- (void) bringSelectionToFront {
@@ -719,20 +722,23 @@
if (!hasNodeSelection && !hasEdgeSelection)
return;
- //[self startUndoGroup];
+ [self startUndoGroup];
+ GraphChange *nodeChange;
+ GraphChange *edgeChange;
if (hasNodeSelection) {
- /*GraphChange *change =*/
- [graph bringNodesToFront:[pickSupport selectedNodes]];
- //[self registerUndoForChange:change];
+ nodeChange = [graph bringNodesToFront:[pickSupport selectedNodes]];
+ [self registerUndoForChange:nodeChange];
}
if (hasEdgeSelection) {
- /*GraphChange *change =*/
- [graph bringEdgesToFront:[pickSupport selectedEdges]];
- //[self registerUndoForChange:change];
+ edgeChange = [graph bringEdgesToFront:[pickSupport selectedEdges]];
+ [self registerUndoForChange:edgeChange];
}
- //[self nameAndEndUndoGroup:@"Bring to front"];
+ [self nameAndEndUndoGroup:@"Bring to front"];
[self regenerateTikz];
- //[self postGraphChange:change];
+ if (hasNodeSelection)
+ [self postGraphChange:nodeChange];
+ if (hasEdgeSelection)
+ [self postGraphChange:edgeChange];
}
- (void) sendSelectionBackward {
@@ -741,20 +747,23 @@
if (!hasNodeSelection && !hasEdgeSelection)
return;
- //[self startUndoGroup];
+ [self startUndoGroup];
+ GraphChange *nodeChange;
+ GraphChange *edgeChange;
if (hasNodeSelection) {
- /*GraphChange *change =*/
- [graph sendNodesBackward:[pickSupport selectedNodes]];
- //[self registerUndoForChange:change];
+ nodeChange = [graph sendNodesBackward:[pickSupport selectedNodes]];
+ [self registerUndoForChange:nodeChange];
}
if (hasEdgeSelection) {
- /*GraphChange *change =*/
- [graph sendNodesBackward:[pickSupport selectedEdges]];
- //[self registerUndoForChange:change];
+ edgeChange = [graph sendNodesBackward:[pickSupport selectedEdges]];
+ [self registerUndoForChange:edgeChange];
}
- //[self nameAndEndUndoGroup:@"Send backward"];
+ [self nameAndEndUndoGroup:@"Send backward"];
[self regenerateTikz];
- //[self postGraphChange:change];
+ if (hasNodeSelection)
+ [self postGraphChange:nodeChange];
+ if (hasEdgeSelection)
+ [self postGraphChange:edgeChange];
}
- (void) sendSelectionToBack {
@@ -763,20 +772,23 @@
if (!hasNodeSelection && !hasEdgeSelection)
return;
- //[self startUndoGroup];
+ [self startUndoGroup];
+ GraphChange *nodeChange;
+ GraphChange *edgeChange;
if (hasNodeSelection) {
- /*GraphChange *change =*/
- [graph sendNodesToBack:[pickSupport selectedNodes]];
- //[self registerUndoForChange:change];
+ nodeChange = [graph sendNodesToBack:[pickSupport selectedNodes]];
+ [self registerUndoForChange:nodeChange];
}
if (hasEdgeSelection) {
- /*GraphChange *change =*/
- [graph sendNodesToBack:[pickSupport selectedEdges]];
- //[self registerUndoForChange:change];
+ edgeChange = [graph sendNodesToBack:[pickSupport selectedEdges]];
+ [self registerUndoForChange:edgeChange];
}
- //[self nameAndEndUndoGroup:@"Send to back"];
+ [self nameAndEndUndoGroup:@"Send to back"];
[self regenerateTikz];
- //[self postGraphChange:change];
+ if (hasNodeSelection)
+ [self postGraphChange:nodeChange];
+ if (hasEdgeSelection)
+ [self postGraphChange:edgeChange];
}
- (BOOL) saveCopyToPath: (NSString*)p error: (NSError**)error {