diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 7508454f15..91d13a26fb 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -24,6 +24,17 @@ Value 0 + RestrainedLoveCanOOC + + Comment + Allows sending OOC chat when send chat restricted, or seeing OOC chat when receive chat restricted + Persist + 1 + Type + Boolean + Value + 1 + RestrainedLoveForbidGiveToRLV Comment diff --git a/indra/newview/rlvcommon.cpp b/indra/newview/rlvcommon.cpp index 58679f98ca..e4833bd08f 100644 --- a/indra/newview/rlvcommon.cpp +++ b/indra/newview/rlvcommon.cpp @@ -66,6 +66,7 @@ void RlvNotifications::onGiveToRLVConfirmation(const LLSD& notification, const L #ifdef RLV_EXPERIMENTAL_COMPOSITEFOLDERS bool RlvSettings::fCompositeFolders = false; #endif // RLV_EXPERIMENTAL_COMPOSITEFOLDERS +bool RlvSettings::fCanOOC = true; bool RlvSettings::fLegacyNaming = true; bool RlvSettings::fNoSetEnv = false; bool RlvSettings::fShowNameTags = false; @@ -86,6 +87,7 @@ void RlvSettings::initClass() if (gSavedSettings.controlExists(RLV_SETTING_ENABLELEGACYNAMING)) gSavedSettings.getControl(RLV_SETTING_ENABLELEGACYNAMING)->getSignal()->connect(boost::bind(&onChangedSettingBOOL, _2, &fLegacyNaming)); + fCanOOC = rlvGetSetting(RLV_SETTING_CANOOC, true); fNoSetEnv = rlvGetSetting(RLV_SETTING_NOSETENV, false); fShowNameTags = rlvGetSetting(RLV_SETTING_SHOWNAMETAGS, false); diff --git a/indra/newview/rlvcommon.h b/indra/newview/rlvcommon.h index 1b762971c4..a0804b856f 100644 --- a/indra/newview/rlvcommon.h +++ b/indra/newview/rlvcommon.h @@ -79,6 +79,7 @@ class RlvSettings public: static F32 getAvatarOffsetZ() { return rlvGetSetting(RLV_SETTING_AVATAROFFSET_Z, 0.0); } static bool getDebug() { return rlvGetSetting(RLV_SETTING_DEBUG, false); } + static bool getCanOOC() { return fCanOOC; } static bool getForbidGiveToRLV() { return rlvGetSetting(RLV_SETTING_FORBIDGIVETORLV, true); } static bool getNoSetEnv() { return fNoSetEnv; } @@ -110,6 +111,7 @@ protected: #ifdef RLV_EXPERIMENTAL_COMPOSITEFOLDERS static BOOL fCompositeFolders; #endif // RLV_EXPERIMENTAL_COMPOSITEFOLDERS + static bool fCanOOC; static bool fLegacyNaming; static bool fNoSetEnv; static bool fShowNameTags; diff --git a/indra/newview/rlvdefines.h b/indra/newview/rlvdefines.h index a47182b5a8..ec0c0aec12 100644 --- a/indra/newview/rlvdefines.h +++ b/indra/newview/rlvdefines.h @@ -293,6 +293,7 @@ enum ERlvAttachGroupType #define RLV_SETTING_MAIN "RestrainedLove" #define RLV_SETTING_DEBUG "RestrainedLoveDebug" #define RLV_SETTING_AVATAROFFSET_Z "RestrainedLoveOffsetAvatarZ" +#define RLV_SETTING_CANOOC "RestrainedLoveCanOOC" #define RLV_SETTING_FORBIDGIVETORLV "RestrainedLoveForbidGiveToRLV" #define RLV_SETTING_NOSETENV "RestrainedLoveNoSetEnv" #define RLV_SETTING_SHOWELLIPSIS "RestrainedLoveShowEllipsis" diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index 478fcf82d3..6ea2bac9a1 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -774,7 +774,8 @@ bool RlvHandler::filterChat(std::string& strUTF8Text, bool fFilterEmote) const { fFilter = (utf8str_strlen(strUTF8Text) > 7);// Allow as long if it's 6 characters or less } - else if ((strUTF8Text.length() < 4) || (strUTF8Text.compare(0, 2, "((")) || (strUTF8Text.compare(strUTF8Text.length() - 2, 2, "))"))) + else if ( (!RlvSettings::getCanOOC()) || + (strUTF8Text.length() < 4) || (strUTF8Text.compare(0, 2, "((")) || (strUTF8Text.compare(strUTF8Text.length() - 2, 2, "))")) ) { fFilter = true; // Regular chat (not OOC) }