Author: ericwa
Date: Tue Mar 25 17:26:33 2014
New Revision: 10635
URL: http://svn.gna.org/viewcvs/etoile?rev=10635&view=rev
Log:
ProjectDemo: fix drag & drop for document & project undo modes
Modified:
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.m
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.m
Modified:
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.m
URL:
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.m?rev=10635&r1=10634&r2=10635&view=diff
==============================================================================
---
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.m
(original)
+++
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.m
Tue Mar 25 17:26:33 2014
@@ -32,6 +32,11 @@
name: COObjectGraphContextObjectsDidChangeNotification
object: self.objectGraphContext];
+ [[NSNotificationCenter defaultCenter] addObserver: self
+
selector: @selector(defaultsChanged:)
+
name: NSUserDefaultsDidChangeNotification
+
object: nil];
+
return self;
}
@@ -59,6 +64,11 @@
name: COObjectGraphContextObjectsDidChangeNotification
object: self.objectGraphContext];
+ [[NSNotificationCenter defaultCenter] addObserver: self
+
selector: @selector(defaultsChanged:)
+
name: NSUserDefaultsDidChangeNotification
+
object: nil];
+
return self;
}
@@ -177,17 +187,23 @@
{
NSString *name = self.windowID;
- // TODO: Re-enable
-// if ([[self class] isProjectUndo])
-// {
-// name = @"org.etoile.projectdemo";
-// }
+ if ([[self class] isProjectUndo])
+ {
+ name = @"org.etoile.projectdemo";
+ }
_undoTrack = [COUndoTrack trackForName: name
withEditingContext:
self.editingContext];
_undoTrack.customRevisionMetadata = @{ @"username" :
NSFullUserName() };
}
return _undoTrack;
+}
+
+- (void) defaultsChanged: (NSNotification*)notif
+{
+ // Re-cache undo track
+ _undoTrack = nil;
+ [self undoTrack];
}
// UI Stuff
Modified:
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.m
URL:
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.m?rev=10635&r1=10634&r2=10635&view=diff
==============================================================================
--- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.m
(original)
+++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.m
Tue Mar 25 17:26:33 2014
@@ -673,8 +673,11 @@
NSUInteger oldIndex = [[oldParent contents]
indexOfObject: outlineItem];
[oldParent removeItemAtIndex: oldIndex];
}
-
- OutlineController *sourceController = (OutlineController
*)[(ApplicationDelegate *)[NSApp delegate] controllerForDocumentRootObject:
[oldParent document]];
+ Document *document = [oldParent rootObject];
+ ETAssert(document != nil);
+
+ OutlineController *sourceController = (OutlineController
*)[(ApplicationDelegate *)[NSApp delegate] controllerForDocumentRootObject:
document];
+ ETAssert(sourceController != nil);
if (![[self class] isProjectUndo])
{
@@ -684,7 +687,10 @@
else
{
// Commit both persistent roots in one commit
- [self.editingContext commitWithUndoTrack: [self
undoTrack]];
+ [self.editingContext commitWithIdentifier:
@"org.etoile.ProjectDemo.drop"
+
metadata: @{}
+
undoTrack: [self undoTrack]
+
error: NULL];
}
}
}
_______________________________________________
Etoile-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-cvs