17
17
18
18
19
19
#define kCommitSplitViewPositionDefault @" Commit SplitView Position"
20
+ #define kStagetSplitViewLeftPositionDefault @" StagetSplitViewLeftPositionDefault"
21
+ #define kStagetSplitViewRightPositionDefault @" StagetSplitViewRightPositionDefault"
20
22
21
23
@interface PBGitCommitController ()
22
24
- (void )refreshFinished : (NSNotification *)notification ;
@@ -28,7 +30,7 @@ - (void)commitHookFailed:(NSNotification *)notification;
28
30
- (void )amendCommit : (NSNotification *)notification ;
29
31
- (void )indexChanged : (NSNotification *)notification ;
30
32
- (void )indexOperationFailed : (NSNotification *)notification ;
31
- - (void )saveCommitSplitViewPosition ;
33
+ - (void )saveSplitViewsPositions ;
32
34
@end
33
35
34
36
@implementation PBGitCommitController
@@ -74,12 +76,12 @@ - (void)awakeFromNib
74
76
[unstagedFilesController setAutomaticallyRearrangesObjects: NO ];
75
77
76
78
[commitSplitView setHidden: YES ];
77
- [self performSelector: @selector (restoreCommitSplitViewPositiion ) withObject: nil afterDelay: 0 ];
79
+ [self performSelector: @selector (restoreSplitViewPositions ) withObject: nil afterDelay: 0 ];
78
80
}
79
81
80
82
- (void )closeView
81
83
{
82
- [self saveCommitSplitViewPosition ];
84
+ [self saveSplitViewsPositions ];
83
85
[webController closeView ];
84
86
}
85
87
@@ -278,22 +280,42 @@ - (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)old
278
280
}
279
281
280
282
// NSSplitView does not save and restore the position of the splitView correctly so do it manually
281
- - (void )saveCommitSplitViewPosition
283
+ - (void )saveSplitViewsPositions
282
284
{
285
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults ];
283
286
float position = [[[commitSplitView subviews ] objectAtIndex: 0 ] frame ].size .height ;
284
- [[NSUserDefaults standardUserDefaults ] setFloat: position forKey: kCommitSplitViewPositionDefault ];
287
+ [defaults setFloat: position forKey: kCommitSplitViewPositionDefault ];
288
+
289
+ float leftDividerPosition = CGRectGetWidth ([stageSplitView.subviews[0 ] frame ]);
290
+ [defaults setFloat: leftDividerPosition forKey: kStagetSplitViewLeftPositionDefault ];
291
+
292
+ float rightDividerPosition = CGRectGetWidth ([stageSplitView.subviews[1 ] frame ]);
293
+ [defaults setFloat: rightDividerPosition forKey: kStagetSplitViewRightPositionDefault ];
294
+
285
295
[[NSUserDefaults standardUserDefaults ] synchronize ];
286
296
}
287
297
288
298
// make sure this happens after awakeFromNib
289
- - (void )restoreCommitSplitViewPositiion
290
- {
291
- float position = [[NSUserDefaults standardUserDefaults ] floatForKey: kCommitSplitViewPositionDefault ];
299
+ - (void )restoreSplitViewPositions {
300
+
301
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults ];
302
+
303
+ float position = [defaults floatForKey: kCommitSplitViewPositionDefault ];
292
304
if (position < 1.0 )
293
305
position = [commitSplitView frame ].size .height - 225 ;
294
306
295
307
[commitSplitView setPosition: position ofDividerAtIndex: 0 ];
296
308
[commitSplitView setHidden: NO ];
309
+
310
+ float leftPosition = [defaults floatForKey: kStagetSplitViewLeftPositionDefault ];
311
+ if (leftPosition > 1.0 ) {
312
+ [stageSplitView setPosition: leftPosition ofDividerAtIndex: 0 ];
313
+ }
314
+
315
+ float rightPosition = [defaults floatForKey: kStagetSplitViewRightPositionDefault ];
316
+ if (rightPosition > 1.0 ) {
317
+ [stageSplitView setPosition: leftPosition + rightPosition ofDividerAtIndex: 1 ];
318
+ }
297
319
}
298
320
299
321
@end
0 commit comments