diff --git a/PCLib/PCEditor.m b/PCLib/PCEditor.m index 2861efb..67de486 100644 --- a/PCLib/PCEditor.m +++ b/PCLib/PCEditor.m @@ -219,8 +219,8 @@ NSString *PCEditorDidResignKeyNotification=@"PCEditorDidResignKeyNotification"; } ret = NSRunAlertPanel(@"Edited File!", - @"Should the file be saved before closing?", - @"Yes",@"No",nil); + @"Should '%@' be saved before closing?", + @"Yes",@"No",nil,path); if( ret == YES ) { @@ -234,7 +234,7 @@ NSString *PCEditorDidResignKeyNotification=@"PCEditorDidResignKeyNotification"; } } - [window setDocumentEdited:NO]; + [self setIsEdited:NO]; } if( delegate && [delegate respondsToSelector:@selector(editorDidClose:)] ) diff --git a/PCLib/PCEditorController.m b/PCLib/PCEditorController.m index 598d599..7362ab2 100644 --- a/PCLib/PCEditorController.m +++ b/PCLib/PCEditorController.m @@ -64,6 +64,7 @@ - (void)dealloc { + [editorDict removeAllObjects]; RELEASE( editorDict ); [super dealloc]; @@ -122,7 +123,6 @@ while(( key = [enumerator nextObject] )) { editor = [editorDict objectForKey:key]; - [editor close]; [[editor editorWindow] performClose:self]; } diff --git a/PCLib/PCEditorView.m b/PCLib/PCEditorView.m index e6d68d9..46e8b19 100644 --- a/PCLib/PCEditorView.m +++ b/PCLib/PCEditorView.m @@ -404,6 +404,7 @@ static BOOL isInitialised = NO; - (void)keyDown:(NSEvent *)anEvent { + /* NSString *chars = [anEvent charactersIgnoringModifiers]; int modifiers = [anEvent modifierFlags]; @@ -412,6 +413,7 @@ static BOOL isInitialised = NO; [editor saveFile]; return; } + */ [super keyDown:anEvent]; } diff --git a/PCLib/PCProject.m b/PCLib/PCProject.m index d62ab5a..f5a3ff4 100644 --- a/PCLib/PCProject.m +++ b/PCLib/PCProject.m @@ -447,9 +447,9 @@ RELEASE(projectDict); RELEASE(projectManager); - if( projectBuilder) RELEASE(projectBuilder); + if( projectBuilder) RELEASE(projectBuilder); if( projectDebugger) RELEASE(projectDebugger); - if( projectEditor) RELEASE(projectEditor); + if( projectEditor) RELEASE(projectEditor); RELEASE(browserController); RELEASE(projectWindow); @@ -1177,10 +1177,7 @@ { id object = [aNotification object]; - if (object == buildTargetPanel) - { - } - else if (object == [self projectWindow]) + if (object == [self projectWindow]) { if ([[self projectWindow] isDocumentEdited]) { @@ -1193,7 +1190,10 @@ } [editorController closeAllEditors]; - + + // HACK to avoid crash upon close... + [self showBuildView:self]; + // The PCProjectController is our delegate! [[NSNotificationCenter defaultCenter] removeObserver:browserController]; [projectManager closeProject:self]; diff --git a/PCLib/PCProjectEditor.m b/PCLib/PCProjectEditor.m index c241557..26de022 100644 --- a/PCLib/PCProjectEditor.m +++ b/PCLib/PCProjectEditor.m @@ -89,7 +89,7 @@ - (void)dealloc { - RELEASE(componentView); + if( componentView ) RELEASE(componentView); [super dealloc]; } @@ -109,11 +109,9 @@ NSRect frame; editor = ev; - - frame = [[scrollView contentView] frame]; - [scrollView setDocumentView:editor]; + frame = [[scrollView contentView] frame]; frame.size = NSMakeSize([scrollView contentSize].width,1e7); [[editor textContainer] setContainerSize:frame.size]; diff --git a/PCLib/PCProjectManager.m b/PCLib/PCProjectManager.m index bd596c4..318f6e5 100644 --- a/PCLib/PCProjectManager.m +++ b/PCLib/PCProjectManager.m @@ -473,7 +473,7 @@ NSString *ActiveProjectDidChangeNotification = @"ActiveProjectDidChange"; { return; } - + // Remove it from the loaded projects! [loadedProjects removeObjectForKey:key]; [self setActiveProject:[[loadedProjects allValues] lastObject]];