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 Etoile-cvs@gna.org https://mail.gna.org/listinfo/etoile-cvs