mirror of
https://github.com/kennethreitz-archive/gitx.git
synced 2026-06-05 23:40:18 +00:00
GitWindowController: Store multiple views
This keeps the subviews in memory, which means that switching views will be faster if a view has already been opened. This also allows you to type a commit message, switch to the history view, and then switch back to continue typing.
This commit is contained in:
@@ -9,11 +9,16 @@
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "PBGitRepository.h"
|
||||
|
||||
@class PBViewController;
|
||||
@interface PBGitWindowController : NSWindowController {
|
||||
__weak PBGitRepository* repository;
|
||||
int selectedViewIndex;
|
||||
IBOutlet NSView* contentView;
|
||||
NSViewController* viewController;
|
||||
|
||||
PBViewController *historyViewController;
|
||||
PBViewController *commitViewController;
|
||||
|
||||
PBViewController* viewController;
|
||||
}
|
||||
|
||||
@property (assign) __weak PBGitRepository *repository;
|
||||
|
||||
+13
-6
@@ -10,7 +10,6 @@
|
||||
#import "PBGitHistoryController.h"
|
||||
#import "PBGitCommitController.h"
|
||||
|
||||
|
||||
@implementation PBGitWindowController
|
||||
|
||||
|
||||
@@ -35,7 +34,11 @@
|
||||
|
||||
- (void)windowWillClose:(NSNotification *)notification
|
||||
{
|
||||
[viewController removeView];
|
||||
NSLog(@"Window will close!");
|
||||
if (historyViewController)
|
||||
[historyViewController removeView];
|
||||
if (commitViewController)
|
||||
[commitViewController removeView];
|
||||
}
|
||||
|
||||
- (void) setSelectedViewIndex: (int) i
|
||||
@@ -49,16 +52,20 @@
|
||||
{
|
||||
[self willChangeValueForKey:@"viewController"];
|
||||
|
||||
if ([viewController view] != nil)
|
||||
[(PBViewController *)viewController removeView];
|
||||
if (viewController != nil)
|
||||
[[viewController view] removeFromSuperview];
|
||||
|
||||
switch (whichViewTag)
|
||||
{
|
||||
case 0: // swap in the "CustomImageViewController - NSImageView"
|
||||
viewController = [[PBGitHistoryController alloc] initWithRepository:repository superController:self];
|
||||
if (!historyViewController)
|
||||
historyViewController = [[PBGitHistoryController alloc] initWithRepository:repository superController:self];
|
||||
viewController = historyViewController;
|
||||
break;
|
||||
case 1:
|
||||
viewController = [[PBGitCommitController alloc] initWithRepository:repository superController:self];
|
||||
if (!commitViewController)
|
||||
commitViewController = [[PBGitCommitController alloc] initWithRepository:repository superController:self];
|
||||
viewController = commitViewController;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user