diff options
author | Oz Linden <oz@lindenlab.com> | 2011-01-28 11:36:46 -0500 |
---|---|---|
committer | Oz Linden <oz@lindenlab.com> | 2011-01-28 11:36:46 -0500 |
commit | 98140b3cdcd505aabe31fcd23db7a2603c8deed3 (patch) | |
tree | b94c39ef7afbc4a091b1e4f2f7b4b2de599831a8 /indra/newview/lldirpicker.cpp | |
parent | 106c9124741afd50c3aaa5671743d5a939f1ad48 (diff) | |
parent | 4b354802c10e6e947a0ce0f023158e22fcd5bc4b (diff) |
merge changes for storm-634
Diffstat (limited to 'indra/newview/lldirpicker.cpp')
-rw-r--r-- | indra/newview/lldirpicker.cpp | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/indra/newview/lldirpicker.cpp b/indra/newview/lldirpicker.cpp index 53101f0ce2..dd243397a1 100644 --- a/indra/newview/lldirpicker.cpp +++ b/indra/newview/lldirpicker.cpp @@ -35,6 +35,7 @@ #include "llframetimer.h" #include "lltrans.h" #include "llwindow.h" // beforeDialog() +#include "llviewercontrol.h" #if LL_LINUX || LL_SOLARIS # include "llfilepicker.h" @@ -53,6 +54,23 @@ LLDirPicker LLDirPicker::sInstance; // // Implementation // + +// utility function to check if access to local file system via file browser +// is enabled and if not, tidy up and indicate we're not allowed to do this. +bool LLDirPicker::check_local_file_access_enabled() +{ + // if local file browsing is turned off, return without opening dialog + bool local_file_system_browsing_enabled = gSavedSettings.getBOOL("LocalFileSystemBrowsingEnabled"); + if ( ! local_file_system_browsing_enabled ) + { + mDir.clear(); // Windows + mFileName = NULL; // Mac/Linux + return false; + } + + return true; +} + #if LL_WINDOWS LLDirPicker::LLDirPicker() : @@ -72,6 +90,13 @@ BOOL LLDirPicker::getDir(std::string* filename) { return FALSE; } + + // if local file browsing is turned off, return without opening dialog + if ( check_local_file_access_enabled() == false ) + { + return FALSE; + } + BOOL success = FALSE; // Modal, so pause agent @@ -231,7 +256,13 @@ BOOL LLDirPicker::getDir(std::string* filename) if( mLocked ) return FALSE; BOOL success = FALSE; OSStatus error = noErr; - + + // if local file browsing is turned off, return without opening dialog + if ( check_local_file_access_enabled() == false ) + { + return FALSE; + } + mFileName = filename; // mNavOptions.saveFileName @@ -289,6 +320,13 @@ void LLDirPicker::reset() BOOL LLDirPicker::getDir(std::string* filename) { reset(); + + // if local file browsing is turned off, return without opening dialog + if ( check_local_file_access_enabled() == false ) + { + return FALSE; + } + if (mFilePicker) { GtkWindow* picker = mFilePicker->buildFilePicker(false, true, |