mirror of
https://github.com/kennethreitz-archive/gitx.git
synced 2026-06-05 23:40:18 +00:00
53d92fb73e
- make sure to remove themselves from KV and notification center observers
- add the PBWebHistoryController to PBHistoryController so it can be told to close
- replaced the -removeView methods with -closeView (-removeView was not being used)
- clear any obj-c objects set in web scripting objects
This last item seems to be the reason that the web controllers and the current commit did not get collected which then held the repository document from being collected as well.
53 lines
1.1 KiB
Objective-C
53 lines
1.1 KiB
Objective-C
//
|
|
// PBWebDiffController.m
|
|
// GitX
|
|
//
|
|
// Created by Pieter de Bie on 13-10-08.
|
|
// Copyright 2008 Pieter de Bie. All rights reserved.
|
|
//
|
|
|
|
#import "PBWebDiffController.h"
|
|
|
|
|
|
@implementation PBWebDiffController
|
|
|
|
- (void) awakeFromNib
|
|
{
|
|
startFile = @"diff";
|
|
[super awakeFromNib];
|
|
[diffController addObserver:self forKeyPath:@"diff" options:0 context:@"ChangedDiff"];
|
|
}
|
|
|
|
- (void)closeView
|
|
{
|
|
[diffController removeObserver:self forKeyPath:@"diff"];
|
|
|
|
[super closeView];
|
|
}
|
|
|
|
|
|
- (void) didLoad
|
|
{
|
|
[self showDiff:diffController.diff];
|
|
}
|
|
|
|
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
|
|
{
|
|
if ([(NSString *)context isEqualToString: @"ChangedDiff"])
|
|
[self showDiff:diffController.diff];
|
|
}
|
|
|
|
- (void) showDiff: (NSString *) diff
|
|
{
|
|
if (diff == nil || !finishedLoading)
|
|
return;
|
|
|
|
id script = [view windowScriptObject];
|
|
if ([diff length] == 0)
|
|
[script callWebScriptMethod:@"setMessage" withArguments:[NSArray arrayWithObject:@"There are no differences"]];
|
|
else
|
|
[script callWebScriptMethod:@"showDiff" withArguments:[NSArray arrayWithObject:diff]];
|
|
}
|
|
|
|
@end
|