diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 605c6fc722..ebbb1fb9c0 100755 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -1023,6 +1023,8 @@ void settings_setup_listeners() gSavedSettings.getControl("FSTrimLegacyNames")->getCommitSignal()->connect(boost::bind(&handleLegacyTrimOptionChanged, _2)); gSavedSettings.getControl("FSUseAzertyKeyboardLayout")->getCommitSignal()->connect(boost::bind(&handleKeyboardLayoutChanged, _2)); + + gSavedSettings.getControl(RLV_SETTING_MAIN)->getSignal()->connect(boost::bind(&RlvSettings::onChangedSettingMain, _2)); } #if TEST_CACHED_CONTROL diff --git a/indra/newview/rlvcommon.cpp b/indra/newview/rlvcommon.cpp index 13d592f47c..779b050543 100644 --- a/indra/newview/rlvcommon.cpp +++ b/indra/newview/rlvcommon.cpp @@ -82,7 +82,8 @@ void RlvSettings::initClass() static bool fInitialized = false; if (!fInitialized) { - gSavedSettings.getControl(RLV_SETTING_MAIN)->getSignal()->connect(boost::bind(&onChangedSettingMain, _2)); + // Ansariel: Wired up in LLViewerControl because of FIRE-16601 + //gSavedSettings.getControl(RLV_SETTING_MAIN)->getSignal()->connect(boost::bind(&onChangedSettingMain, _2)); #ifdef RLV_EXPERIMENTAL_COMPOSITEFOLDERS fCompositeFolders = rlvGetSetting(RLV_SETTING_ENABLECOMPOSITES, false); @@ -211,7 +212,7 @@ void RlvStrings::loadFromFile(const std::string& strFilePath, bool fUserOverride const LLSD& sdStrings = sdFileData["strings"]; for (LLSD::map_const_iterator itString = sdStrings.beginMap(); itString != sdStrings.endMap(); ++itString) { - if ( (!itString->second.has("value")) || ((fUserOverride) && (!hasString(itString->first))) ) + if ((!itString->second.has("value")) || ((fUserOverride) && (!hasString(itString->first)))) continue; std::list& listValues = m_StringMap[itString->first]; @@ -276,6 +277,7 @@ const std::string& RlvStrings::getAnonym(const std::string& strName) const std::string& RlvStrings::getString(const std::string& strStringName) { static const std::string strMissing = "(Missing RLVa string)"; + initClass(); // Ansariel: Make sure RlvStrings gets initialized before accessing it string_map_t::const_iterator itString = m_StringMap.find(strStringName); return (itString != m_StringMap.end()) ? itString->second.back() : strMissing; } diff --git a/indra/newview/rlvcommon.h b/indra/newview/rlvcommon.h index 3207a29e9a..97f92e55ba 100644 --- a/indra/newview/rlvcommon.h +++ b/indra/newview/rlvcommon.h @@ -105,10 +105,10 @@ public: #endif // RLV_EXTENSION_STARTLOCATION static void initClass(); + static void onChangedSettingMain(const LLSD& sdValue); protected: static bool onChangedMenuLevel(); static bool onChangedSettingBOOL(const LLSD& sdValue, bool* pfSetting); - static void onChangedSettingMain(const LLSD& sdValue); #ifdef RLV_EXPERIMENTAL_COMPOSITEFOLDERS static BOOL fCompositeFolders;