From 3361b63c157384a1b8206503aa7ec2e3e43c9f49 Mon Sep 17 00:00:00 2001 From: Kitty Barnett <develop@catznip.com> Date: Sun, 27 Nov 2016 18:23:57 +0100 Subject: [PATCH] [FIXED] RLVa can be enabled from the command prompt (bypassing user consent) -> if detected force RLVa to disabled and inform the user --HG-- branch : RLVa --- indra/llxml/llcontrol.h | 3 +++ indra/newview/llappviewer.cpp | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/indra/llxml/llcontrol.h b/indra/llxml/llcontrol.h index 77065dcf8d3..0d805e72d25 100644 --- a/indra/llxml/llcontrol.h +++ b/indra/llxml/llcontrol.h @@ -134,6 +134,9 @@ class LLControlVariable : public LLRefCount commit_signal_t* getCommitSignal() { return &mCommitSignal; } validate_signal_t* getValidateSignal() { return &mValidateSignal; } +// [RLVa:KB] - Patch: RLVa-2.1.0 + bool hasUnsavedValue() { return mValues.size() >= 2; } +// [/RLVa:KB] bool isDefault() { return (mValues.size() == 1); } bool shouldSave(bool nondefault_only); bool isPersisted() { return mPersist != PERSIST_NO; } diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 9efd13d6678..972d44b5334 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2848,6 +2848,21 @@ bool LLAppViewer::initConfiguration() LLEventPumps::instance().obtain("LLControlGroup").post(LLSDMap("init", *ki)); } +// [RLVa:KB] - Patch: RLVa-2.1.0 + if (LLControlVariable* pControl = gSavedSettings.getControl(RLV_SETTING_MAIN)) + { + if ( (pControl->getValue().asBoolean()) && (pControl->hasUnsavedValue()) ) + { + pControl->resetToDefault(); + pControl->setValue(false); + + std::ostringstream msg; + msg << LLTrans::getString("RLVaToggleMessageLogin", LLSD().with("[STATE]", LLTrans::getString("RLVaToggleDisabled"))); + OSMessageBox(msg.str(), LLStringUtil::null, OSMB_OK); + } + } +// [/RLVa:KB] + return true; // Config was successful. } -- GitLab