GitWindowController: bind selected view to controller

This used to be bound to the UserDefaults, but that introduced the
bug that switching the view in one window also switched it in other
open windows.

See 2e7cd5268d
This commit is contained in:
Pieter de Bie
2008-09-26 00:35:05 +02:00
parent 188d13f2e3
commit d3f97bdfcb
3 changed files with 36 additions and 48 deletions
+26 -41
View File
@@ -2,13 +2,13 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
<data>
<int key="IBDocument.SystemTarget">1050</int>
<string key="IBDocument.SystemVersion">9E17</string>
<string key="IBDocument.SystemVersion">9F33</string>
<string key="IBDocument.InterfaceBuilderVersion">670</string>
<string key="IBDocument.AppKitVersion">949.33</string>
<string key="IBDocument.AppKitVersion">949.34</string>
<string key="IBDocument.HIToolboxVersion">352.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="47"/>
<integer value="5"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -72,10 +72,9 @@
<reference key="NSToolbarItemPaletteLabel" ref="904399424"/>
<nil key="NSToolbarItemToolTip"/>
<object class="NSSearchField" key="NSToolbarItemView" id="212418890">
<reference key="NSNextResponder"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">265</int>
<string key="NSFrame">{{0, 14}, {183, 22}}</string>
<reference key="NSSuperview"/>
<bool key="NSEnabled">YES</bool>
<object class="NSSearchFieldCell" key="NSCell" id="902542524">
<int key="NSCellFlags">343014976</int>
@@ -171,10 +170,9 @@
<string key="NSToolbarItemPaletteLabel">Branch</string>
<nil key="NSToolbarItemToolTip"/>
<object class="NSPopUpButton" key="NSToolbarItemView" id="147646927">
<reference key="NSNextResponder"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{0, 14}, {134, 26}}</string>
<reference key="NSSuperview"/>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="638300054">
<int key="NSCellFlags">-2076049856</int>
@@ -282,10 +280,9 @@
<string key="NSToolbarItemPaletteLabel">View selector</string>
<nil key="NSToolbarItemToolTip"/>
<object class="NSSegmentedControl" key="NSToolbarItemView" id="1040507102">
<reference key="NSNextResponder"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{6, 14}, {66, 23}}</string>
<reference key="NSSuperview"/>
<bool key="NSEnabled">YES</bool>
<object class="NSSegmentedCell" key="NSCell" id="989754672">
<int key="NSCellFlags">67239424</int>
@@ -821,13 +818,6 @@ ELIAAAAAAAgACAAIAAgAAQABAAEAAQ</bytes>
<bool key="NSFilterRestrictsInsertion">YES</bool>
<bool key="NSClearsFilterPredicateOnInsertion">YES</bool>
</object>
<object class="NSUserDefaultsController" id="8280882">
<object class="NSMutableArray" key="NSDeclaredKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>selectedViewIndex</string>
</object>
<bool key="NSSharedInstance">YES</bool>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
@@ -905,6 +895,22 @@ ELIAAAAAAAgACAAIAAgAAQABAAEAAQ</bytes>
</object>
<int key="connectionID">245</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">selectedIndex: selectedViewIndex</string>
<reference key="source" ref="1040507102"/>
<reference key="destination" ref="1001"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="1040507102"/>
<reference key="NSDestination" ref="1001"/>
<string key="NSLabel">selectedIndex: selectedViewIndex</string>
<string key="NSBinding">selectedIndex</string>
<string key="NSKeyPath">selectedViewIndex</string>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">275</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">predicate: searchController.filterPredicate</string>
@@ -1010,22 +1016,6 @@ ELIAAAAAAAgACAAIAAgAAQABAAEAAQ</bytes>
</object>
<int key="connectionID">292</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">selectedIndex: values.selectedViewIndex</string>
<reference key="source" ref="1040507102"/>
<reference key="destination" ref="8280882"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="1040507102"/>
<reference key="NSDestination" ref="8280882"/>
<string key="NSLabel">selectedIndex: values.selectedViewIndex</string>
<string key="NSBinding">selectedIndex</string>
<string key="NSKeyPath">values.selectedViewIndex</string>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">298</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@@ -1239,11 +1229,6 @@ ELIAAAAAAAgACAAIAAgAAQABAAEAAQ</bytes>
<reference key="parent" ref="1002"/>
<string key="objectName">BranchesController</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">296</int>
<reference key="object" ref="8280882"/>
<reference key="parent" ref="1002"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@@ -1296,9 +1281,9 @@ ELIAAAAAAAgACAAIAAgAAQABAAEAAQ</bytes>
<string>com.apple.InterfaceBuilderKit</string>
<string>com.apple.InterfaceBuilderKit</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{43, 321}, {850, 418}}</string>
<string>{{368, 321}, {850, 418}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{43, 321}, {850, 418}}</string>
<string>{{368, 321}, {850, 418}}</string>
<reference ref="9"/>
<reference ref="9"/>
<string>{{15, 196}, {850, 418}}</string>
@@ -1306,7 +1291,7 @@ ELIAAAAAAAgACAAIAAgAAQABAAEAAQ</bytes>
<reference ref="9"/>
<string>{3.40282e+38, 3.40282e+38}</string>
<string>{213, 107}</string>
<string>{{160, 512}, {616, 227}}</string>
<string>{{429, 871}, {616, 0}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{132, 614}, {616, 0}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1353,7 +1338,7 @@ ELIAAAAAAAgACAAIAAgAAQABAAEAAQ</bytes>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">298</int>
<int key="maxID">295</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
+2
View File
@@ -14,12 +14,14 @@
IBOutlet NSArrayController* searchController;
IBOutlet NSArrayController *branchesController;
PBGitRepository* repository;
int selectedViewIndex;
IBOutlet NSView* contentView;
NSViewController* viewController;
}
@property (retain) PBGitRepository *repository;
@property (readonly) NSViewController *viewController;
@property (assign) int selectedViewIndex;
@property (retain) NSArrayController *searchController;
- (id)initWithRepository:(PBGitRepository*)theRepository;
+8 -7
View File
@@ -14,7 +14,7 @@
@implementation PBGitWindowController
@synthesize repository, viewController, searchController;
@synthesize repository, viewController, searchController, selectedViewIndex;
- (id)initWithRepository:(PBGitRepository*)theRepository;
{
@@ -22,7 +22,6 @@
{
self.repository = theRepository;
[self showWindow:nil];
[[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:@"selectedViewIndex" options:0 context:NULL];
}
return self;
}
@@ -32,10 +31,11 @@
[[self window] makeFirstResponder:searchField];
}
- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context
- (void) setSelectedViewIndex: (int) i
{
if ([keyPath isEqualToString:@"selectedViewIndex"])
[self changeViewController:[[[NSUserDefaults standardUserDefaults] objectForKey:@"selectedViewIndex"] intValue]];
selectedViewIndex = i;
[[NSUserDefaults standardUserDefaults] setInteger:i forKey:@"selectedViewIndex"];
[self changeViewController: i];
}
- (void)changeViewController:(NSInteger)whichViewTag
@@ -74,8 +74,9 @@
- (void)awakeFromNib
{
// We bind this ourselves because otherwise we would lose our selection
[branchesController bind:@"selectionIndexes" toObject:repository withKeyPath:@"currentBranch" options:nil]; NSLog(@"CurrentBranch: %@", repository.currentBranch);
[self changeViewController:[[[NSUserDefaults standardUserDefaults] objectForKey:@"selectedViewIndex"] intValue]];
[branchesController bind:@"selectionIndexes" toObject:repository withKeyPath:@"currentBranch" options:nil];
self.selectedViewIndex = [[NSUserDefaults standardUserDefaults] integerForKey:@"selectedViewIndex"];
[[self window] setAutorecalculatesContentBorderThickness:NO forEdge:NSMinYEdge];
[[self window] setContentBorderThickness:35.0f forEdge:NSMinYEdge];