diff --git a/src/KBrowserWindowController.h b/src/KBrowserWindowController.h index 427b258..f9971a6 100644 --- a/src/KBrowserWindowController.h +++ b/src/KBrowserWindowController.h @@ -31,4 +31,5 @@ - (BOOL)openFileDirectoryAtURL:(NSURL *)absoluteURL error:(NSError **)outError; +- (BOOL)reopenDirectoryIfOpen; @end diff --git a/src/KBrowserWindowController.mm b/src/KBrowserWindowController.mm index 14f92e2..4413522 100644 --- a/src/KBrowserWindowController.mm +++ b/src/KBrowserWindowController.mm @@ -261,7 +261,6 @@ - (BOOL)validateMenuItem:(NSMenuItem *)item { return y; } - #pragma mark - #pragma mark Notifications @@ -436,4 +435,12 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(N } } +- (BOOL)reopenDirectoryIfOpen { + NSURL *absoluteURL = ((KToolbarController *)toolbarController_).directoryURL; + if (absoluteURL) { + NSError *error = nil; + return [self openFileDirectoryAtURL:absoluteURL error:&error]; + } +} + @end diff --git a/src/KDocument.mm b/src/KDocument.mm index 3c02e80..e63ee5f 100644 --- a/src/KDocument.mm +++ b/src/KDocument.mm @@ -1742,6 +1742,10 @@ - (BOOL)saveToURL:(NSURL*)absoluteURL // TODO(rsms): guess syntax/language } + // We need to reload the file tree in the sidebar, because we may have + // created a new file (if it was "saved as"). + [self.windowController reopenDirectoryIfOpen]; + // unfreeze tab if (tabWasEditable) self.isEditable = YES; diff --git a/src/KFileTreeController.mm b/src/KFileTreeController.mm index 3136b75..4e2a020 100644 --- a/src/KFileTreeController.mm +++ b/src/KFileTreeController.mm @@ -157,7 +157,6 @@ - (NSTreeNode*)treeNodeFromDirectoryAtPath:(NSString*)path }); }*/ - #pragma mark - #pragma mark NSOutlineViewDataSource methods