Author: ericwa
Date: Mon Mar 24 07:38:16 2014
New Revision: 10623
URL: http://svn.gna.org/viewcvs/etoile?rev=10623&view=rev
Log:
ProjectDemo: Outliner: Pause syncing during field editor usage
Added:
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.h
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.m
Modified:
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.h
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.m
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.h
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.m
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineWindow.xib
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/ProjectDemo.xcodeproj/project.pbxproj
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.h
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.m
Modified:
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.h
URL:
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.h?rev=10623&r1=10622&r2=10623&view=diff
==============================================================================
---
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.h
(original)
+++
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.h
Mon Mar 24 07:38:16 2014
@@ -121,4 +121,6 @@
- (IBAction) moveToTrash:(id)sender;
+- (SharingSession *) sharingSession;
+
@end
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=10623&r1=10622&r2=10623&view=diff
==============================================================================
---
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.m
(original)
+++
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWDocumentWindowController.m
Mon Mar 24 07:38:16 2014
@@ -487,4 +487,9 @@
}
}
+- (SharingSession *) sharingSession
+{
+ return [[XMPPController sharedInstance] sharingSessionForBranch:
self.editingBranch];
+}
+
@end
Added: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.h
URL:
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.h?rev=10623&view=auto
==============================================================================
--- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.h
(added)
+++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.h
Mon Mar 24 07:38:16 2014
@@ -0,0 +1,14 @@
+#import <AppKit/AppKit.h>
+
+@class EWOutlineView;
+
+@protocol EWOutlineViewDelegate <NSObject>
+- (void) outlineViewDidStartFieldEditor: (EWOutlineView *)aView;
+- (void) outlineViewDidEndFieldEditor: (EWOutlineView *)aView;
+@end
+
+@interface EWOutlineView : NSOutlineView
+
+@property (readwrite, nonatomic, weak) id<EWOutlineViewDelegate> delegate;
+
+@end
Added: trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.m
URL:
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.m?rev=10623&view=auto
==============================================================================
--- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.m
(added)
+++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/EWOutlineView.m
Mon Mar 24 07:38:16 2014
@@ -0,0 +1,27 @@
+#import "EWOutlineView.h"
+
+@implementation EWOutlineView
+
+@synthesize delegate;
+
+- (void)textDidEndEditing:(NSNotification *)notification
+{
+ [super textDidEndEditing: notification];
+
+ if ([self.delegate respondsToSelector:
@selector(outlineViewDidEndFieldEditor:)])
+ {
+ [self.delegate outlineViewDidEndFieldEditor: self];
+ }
+}
+
+- (void)editColumn:(NSInteger)columnIndex row:(NSInteger)rowIndex
withEvent:(NSEvent *)theEvent select:(BOOL)flag
+{
+ if ([self.delegate respondsToSelector:
@selector(outlineViewDidStartFieldEditor:)])
+ {
+ [self.delegate outlineViewDidStartFieldEditor: self];
+ }
+
+ [super editColumn: columnIndex row: rowIndex withEvent: theEvent
select: flag];
+}
+
+@end
Modified:
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.h
URL:
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.h?rev=10623&r1=10622&r2=10623&view=diff
==============================================================================
--- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.h
(original)
+++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.h
Mon Mar 24 07:38:16 2014
@@ -3,10 +3,11 @@
#import "Document.h"
#import "SharingSession.h"
#import "EWDocumentWindowController.h"
+#import "EWOutlineView.h"
-@interface OutlineController : EWDocumentWindowController
<NSOutlineViewDelegate>
+@interface OutlineController : EWDocumentWindowController
<NSOutlineViewDelegate, EWOutlineViewDelegate>
{
- IBOutlet NSOutlineView *outlineView;
+ IBOutlet EWOutlineView *outlineView;
}
- (instancetype) initAsPrimaryWindowForPersistentRoot: (COPersistentRoot
*)aPersistentRoot
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=10623&r1=10622&r2=10623&view=diff
==============================================================================
--- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.m
(original)
+++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineController.m
Mon Mar 24 07:38:16 2014
@@ -3,6 +3,7 @@
#import "Document.h"
#import "ApplicationDelegate.h"
#import <CoreObject/COSQLiteStore+Graphviz.h>
+#import "EWOutlineView.h"
@implementation OutlineController
@@ -65,6 +66,7 @@
[outlineView setDelegate: self];
[outlineView setTarget: self];
[outlineView setDoubleAction: @selector(doubleClick:)];
+ outlineView.delegate = self;
//NSLog(@"Got rect %@ for doc %@", NSStringFromRect([doc
screenRectValue]), [doc uuid]);
@@ -724,4 +726,28 @@
}*/
}
+#pragma mark - EWOutlineViewDelegate
+
+- (void) outlineViewDidStartFieldEditor: (EWOutlineView *)aView
+{
+ NSLog(@"outlineViewDidStartFieldEditor:");
+ if ([self sharingSession] != nil)
+ {
+ [self sharingSession].paused = YES;
+ }
+}
+
+- (void) outlineViewDidEndFieldEditor: (EWOutlineView *)aView
+{
+ NSLog(@"outlineViewDidEndFieldEditor:");
+
+ SharingSession *ss = [self sharingSession];
+ if (ss != nil)
+ {
+ dispatch_async(dispatch_get_main_queue(), ^{
+ ss.paused = NO;
+ });
+ }
+}
+
@end
Modified:
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineWindow.xib
URL:
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineWindow.xib?rev=10623&r1=10622&r2=10623&view=diff
==============================================================================
--- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineWindow.xib
(original)
+++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/OutlineWindow.xib
Mon Mar 24 07:38:16 2014
@@ -1026,6 +1026,7 @@
<string
key="816.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference key="816.IBUserGuides" ref="0"/>
<boolean value="NO" key="816.showNotes"/>
+ <string
key="817.CustomClassName">EWOutlineView</string>
<string
key="817.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference key="817.IBUserGuides" ref="0"/>
<boolean value="NO" key="817.showNotes"/>
@@ -1175,6 +1176,14 @@
</object>
</object>
<object class="IBPartialClassDescription">
+ <string
key="className">EWOutlineView</string>
+ <string
key="superclassName">NSOutlineView</string>
+ <object
class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string
key="majorKey">IBProjectSource</string>
+ <string
key="minorKey">./Classes/EWOutlineView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
<string
key="className">OutlineController</string>
<string
key="superclassName">EWDocumentWindowController</string>
<dictionary class="NSMutableDictionary"
key="actions">
Modified:
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/ProjectDemo.xcodeproj/project.pbxproj
URL:
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/ProjectDemo.xcodeproj/project.pbxproj?rev=10623&r1=10622&r2=10623&view=diff
==============================================================================
---
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/ProjectDemo.xcodeproj/project.pbxproj
(original)
+++
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/ProjectDemo.xcodeproj/project.pbxproj
Mon Mar 24 07:38:16 2014
@@ -63,6 +63,7 @@
6646988717D407A400A1B767 /* AppKit.framework in Frameworks */ =
{isa = PBXBuildFile; fileRef = 6646988617D407A000A1B767 /* AppKit.framework */;
};
66488DC718D57DF9009F4C55 /* EWUndoManager.m in Sources */ =
{isa = PBXBuildFile; fileRef = 66488DC618D57DF9009F4C55 /* EWUndoManager.m */;
};
66568C6A189399A80075FD9A /* TODO.md in Resources */ = {isa =
PBXBuildFile; fileRef = 66568C69189399A80075FD9A /* TODO.md */; };
+ 665EF96318DFB89500BCF089 /* EWOutlineView.m in Sources */ =
{isa = PBXBuildFile; fileRef = 665EF96218DFB89500BCF089 /* EWOutlineView.m */;
};
66708F9C12486F0400E65F00 /* ProjectDemoMainMenu.xib in
Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /*
ProjectDemoMainMenu.xib */; };
66708F9F12486F0400E65F00 /* OutlineWindow.xib in Resources */ =
{isa = PBXBuildFile; fileRef = 66708F9412486E9D00E65F00 /* OutlineWindow.xib
*/; };
66708FAB12486F0400E65F00 /* main.m in Sources */ = {isa =
PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
@@ -344,6 +345,8 @@
66488DC518D57DF9009F4C55 /* EWUndoManager.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
EWUndoManager.h; sourceTree = "<group>"; };
66488DC618D57DF9009F4C55 /* EWUndoManager.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= EWUndoManager.m; sourceTree = "<group>"; };
66568C69189399A80075FD9A /* TODO.md */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TODO.md;
sourceTree = "<group>"; };
+ 665EF96118DFB89500BCF089 /* EWOutlineView.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
EWOutlineView.h; sourceTree = "<group>"; };
+ 665EF96218DFB89500BCF089 /* EWOutlineView.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= EWOutlineView.m; sourceTree = "<group>"; };
66708F7112486CD300E65F00 /* OutlineController.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
OutlineController.h; sourceTree = "<group>"; };
66708F7212486CD300E65F00 /* OutlineController.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= OutlineController.m; sourceTree = "<group>"; };
66708F9412486E9D00E65F00 /* OutlineWindow.xib */ = {isa =
PBXFileReference; lastKnownFileType = file.xib; path = OutlineWindow.xib;
sourceTree = "<group>"; };
@@ -849,6 +852,8 @@
66708F9412486E9D00E65F00 /* OutlineWindow.xib
*/,
66708F7112486CD300E65F00 /* OutlineController.h
*/,
66708F7212486CD300E65F00 /* OutlineController.m
*/,
+ 665EF96118DFB89500BCF089 /* EWOutlineView.h */,
+ 665EF96218DFB89500BCF089 /* EWOutlineView.m */,
);
name = "Outline Document";
sourceTree = "<group>";
@@ -1201,6 +1206,7 @@
661211D11821A568003AEC29 /*
XMPPDeprecatedPlainAuthentication.m in Sources */,
6612118F1821A482003AEC29 /*
DispatchQueueLogFormatter.m in Sources */,
66488DC718D57DF9009F4C55 /* EWUndoManager.m in
Sources */,
+ 665EF96318DFB89500BCF089 /* EWOutlineView.m in
Sources */,
79911A4C12CDAECD009D28C0 /* SKTRectangle.m in
Sources */,
661211D91821A568003AEC29 /* XMPPIQ.m in Sources
*/,
79911A4D12CDAECD009D28C0 /* SKTRenderingView.m
in Sources */,
Modified:
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.h
URL:
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.h?rev=10623&r1=10622&r2=10623&view=diff
==============================================================================
--- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.h
(original)
+++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.h
Mon Mar 24 07:38:16 2014
@@ -50,4 +50,6 @@
- (void) addClientJID: (XMPPJID *)peerJID;
+@property (nonatomic, readwrite, assign) BOOL paused;
+
@end
Modified:
trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.m
URL:
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.m?rev=10623&r1=10622&r2=10623&view=diff
==============================================================================
--- trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.m
(original)
+++ trunk/Etoile/Frameworks/CoreObject/Samples/ProjectDemo/SharingSession.m
Mon Mar 24 07:38:16 2014
@@ -169,4 +169,22 @@
return [[_xmppStream myJID] full];
}
+- (BOOL)paused
+{
+ return _isServer ? _JSONServer.paused : _JSONClient.paused;
+}
+
+- (void)setPaused:(BOOL)paused
+{
+ if (_isServer)
+ {
+ _JSONServer.paused = paused;
+ }
+ else
+ {
+ _JSONClient.paused = paused;
+ }
+}
+
@end
+
_______________________________________________
Etoile-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-cvs