summaryrefslogtreecommitdiff
path: root/indra/newview/rlvcommon.cpp
diff options
context:
space:
mode:
authorKitty Barnett <develop@catznip.com>2024-09-16 15:33:27 +0200
committerKitty Barnett <develop@catznip.com>2024-09-16 15:33:27 +0200
commitb89d7ef92ca955ef600729b54353eb235b79038c (patch)
tree921c2edabed47a54a0a0dc403b4a49c67c5d7331 /indra/newview/rlvcommon.cpp
parentdb8916454457e3e4856fddcbbafe66b3766e4ffa (diff)
Add the RLVa menu
Diffstat (limited to 'indra/newview/rlvcommon.cpp')
-rw-r--r--indra/newview/rlvcommon.cpp33
1 files changed, 31 insertions, 2 deletions
diff --git a/indra/newview/rlvcommon.cpp b/indra/newview/rlvcommon.cpp
index eda2cdedc8..abb54b5b39 100644
--- a/indra/newview/rlvcommon.cpp
+++ b/indra/newview/rlvcommon.cpp
@@ -1,15 +1,18 @@
#include "llviewerprecompiledheaders.h"
+
#include "llagent.h"
#include "llchat.h"
#include "lldbstrings.h"
#include "llversioninfo.h"
+#include "llviewermenu.h"
#include "llviewerstats.h"
#include "message.h"
+#include <boost/algorithm/string.hpp>
-#include "rlvdefines.h"
#include "rlvcommon.h"
-#include <boost/algorithm/string.hpp>
+#include "llviewercontrol.h"
+#include "rlvhandler.h"
using namespace Rlv;
@@ -48,6 +51,32 @@ std::string Strings::getVersionImplNum()
// RlvUtil
//
+void Util::menuToggleVisible()
+{
+ bool isTopLevel = gSavedSettings.getBOOL(Settings::TopLevelMenu);
+ bool isRlvEnabled = RlvHandler::isEnabled();
+
+ LLMenuGL* menuRLVaMain = gMenuBarView->findChildMenuByName("RLVa Main", false);
+ LLMenuGL* menuAdvanced = gMenuBarView->findChildMenuByName("Advanced", false);
+ LLMenuGL* menuRLVaEmbed= menuAdvanced->findChildMenuByName("RLVa Embedded", false);
+
+ gMenuBarView->setItemVisible("RLVa Main", isRlvEnabled && isTopLevel);
+ menuAdvanced->setItemVisible("RLVa Embedded", isRlvEnabled && !isTopLevel);
+
+ if ( isRlvEnabled && menuRLVaMain && menuRLVaEmbed &&
+ ( (isTopLevel && 1 == menuRLVaMain->getItemCount()) || (!isTopLevel && 1 == menuRLVaEmbed->getItemCount())) )
+ {
+ LLMenuGL* menuFrom = isTopLevel ? menuRLVaEmbed : menuRLVaMain;
+ LLMenuGL* menuTo = isTopLevel ? menuRLVaMain : menuRLVaEmbed;
+ while (LLMenuItemGL* pItem = menuFrom->getItem(1))
+ {
+ menuFrom->removeChild(pItem);
+ menuTo->addChild(pItem);
+ pItem->updateBranchParent(menuTo);
+ }
+ }
+}
+
bool Util::parseStringList(const std::string& strInput, std::vector<std::string>& optionList, std::string_view strSeparator)
{
if (!strInput.empty())