From dc34d5c9d9e56e25331a8a186ecc660077148b0c Mon Sep 17 00:00:00 2001 From: Josh Goebel Date: Fri, 2 Nov 2012 00:00:48 -0400 Subject: [PATCH] Allow disabling document status in file browser Disabling this is achieved by setting `fileBrowserDocumentStatus` to `false` in `.tm_properties`. Disabling it should remove potential delays after opening, closing, and saving files when file browser is showing a lot of files. It is meant as a temporary workaround until the performance issues are addressed. --- Frameworks/OakFileBrowser/src/OakFileBrowser.mm | 6 ++++++ Frameworks/settings/src/keys.cc | 1 + Frameworks/settings/src/keys.h | 1 + 3 files changed, 8 insertions(+) diff --git a/Frameworks/OakFileBrowser/src/OakFileBrowser.mm b/Frameworks/OakFileBrowser/src/OakFileBrowser.mm index b1fd5e6a..77e24671 100644 --- a/Frameworks/OakFileBrowser/src/OakFileBrowser.mm +++ b/Frameworks/OakFileBrowser/src/OakFileBrowser.mm @@ -203,6 +203,9 @@ static bool is_binary (std::string const& path) - (void)setOpenURLs:(NSArray*)newOpenURLs { + if(!settings_for_path(NULL_STR, "", [self.location UTF8String]).get(kSettingsFileBrowserDocumentStatusKey, true)) + return; + if([outlineViewDelegate.openURLs isEqualToArray:newOpenURLs]) return; @@ -217,6 +220,9 @@ static bool is_binary (std::string const& path) - (void)setModifiedURLs:(NSArray*)newModifiedURLs { + if(!settings_for_path(NULL_STR, "", [self.location UTF8String]).get(kSettingsFileBrowserDocumentStatusKey, true)) + return; + if([outlineViewDelegate.modifiedURLs isEqualToArray:newModifiedURLs]) return; diff --git a/Frameworks/settings/src/keys.cc b/Frameworks/settings/src/keys.cc index b48c99b1..77cebee2 100644 --- a/Frameworks/settings/src/keys.cc +++ b/Frameworks/settings/src/keys.cc @@ -18,6 +18,7 @@ std::string const kSettingsShowInvisiblesKey = "showInvisibles"; std::string const kSettingsProjectDirectoryKey = "projectDirectory"; std::string const kSettingsSCMStatusKey = "scmStatus"; +std::string const kSettingsFileBrowserDocumentStatusKey = "fileBrowserDocumentStatus"; std::string const kSettingsWindowTitleKey = "windowTitle"; std::string const kSettingsScopeAttributesKey = "scopeAttributes"; diff --git a/Frameworks/settings/src/keys.h b/Frameworks/settings/src/keys.h index 427c6402..e8b9e40d 100644 --- a/Frameworks/settings/src/keys.h +++ b/Frameworks/settings/src/keys.h @@ -21,6 +21,7 @@ PUBLIC extern std::string const kSettingsShowInvisiblesKey; PUBLIC extern std::string const kSettingsProjectDirectoryKey; PUBLIC extern std::string const kSettingsSCMStatusKey; +PUBLIC extern std::string const kSettingsFileBrowserDocumentStatusKey; PUBLIC extern std::string const kSettingsWindowTitleKey; PUBLIC extern std::string const kSettingsScopeAttributesKey;