Use a separate controller for tabs

This commit is contained in:
Pieter de Bie
2008-06-16 02:19:26 +02:00
parent bd165e7d29
commit d6a0b1bb4c
4 changed files with 80 additions and 5 deletions
-2
View File
@@ -13,7 +13,6 @@
{
IBOutlet NSWindow *window;
IBOutlet PBGitRepository* repository;
IBOutlet NSNumber* selectedTab;
NSPersistentStoreCoordinator *persistentStoreCoordinator;
NSManagedObjectModel *managedObjectModel;
@@ -27,5 +26,4 @@
- (IBAction)saveAction:sender;
@property (retain) PBGitRepository* repository;
@property (copy) NSNumber* selectedTab;
@end
+1 -3
View File
@@ -10,12 +10,10 @@
@implementation ApplicationController
@synthesize repository, selectedTab;
@synthesize repository;
- (ApplicationController*) init
{
self.selectedTab = [NSNumber numberWithInt:0];
// Find the current repository
char* a = getenv("PWD");
NSString* path;
+29
View File
@@ -0,0 +1,29 @@
//
// PBDetailController.h
// GitX
//
// Created by Pieter de Bie on 16-06-08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//
#import <Cocoa/Cocoa.h>
#import "PBGitCommit.h"
#import "PBGitTree.h"
@interface PBDetailController : NSObject {
IBOutlet NSNumber* selectedTab;
IBOutlet NSArrayController* commitController;
PBGitTree* gitTree;
PBGitCommit* webCommit;
PBGitCommit* rawCommit;
PBGitCommit* realCommit;
}
@property (copy) NSNumber* selectedTab;
@property (retain) PBGitCommit* webCommit;
@property (retain) PBGitCommit* rawCommit;
@property (retain) PBGitCommit* realCommit;
@property (retain) PBGitTree* gitTree;
@end
+50
View File
@@ -0,0 +1,50 @@
//
// PBDetailController.m
// GitX
//
// Created by Pieter de Bie on 16-06-08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//
#import "PBDetailController.h"
@implementation PBDetailController
@synthesize selectedTab, webCommit, rawCommit, realCommit, gitTree;
- init
{
self.selectedTab = [NSNumber numberWithInt:0];
[commitController bind:@"realCommit" toObject:self withKeyPath:@"selection" options:nil];
return self;
}
- (void) updateKeys
{
self.webCommit = nil;
self.rawCommit = nil;
self.gitTree = nil;
int num = [self.selectedTab intValue];
if (num == 0) // Detailed view
self.webCommit = self.realCommit;
if (num == 1)
self.rawCommit = self.realCommit;
if (num == 2)
self.gitTree = self.realCommit.tree;
}
- (void) setRealCommit: (PBGitCommit*) commit
{
realCommit = commit;
[self updateKeys];
}
- (void) setSelectedTab: (NSNumber*) number
{
selectedTab = number;
[self updateKeys];
}
@end