Hooked up RLVaTopLevelMenu setting so it actually works.
Changes to llviewermenu.cpp are better viewed without space changes ^Put together both RLVa Embedded and RLVa Main menus while building Advanced menu, labeling them RLVa; once the advanced menu is built and added to MenuBar, rlvMenuToggleVisible() is called. Added onChangedMenuLevel() to rlvcommon.cpp Added rlvMenuToggleVisible(), tweaked to only perform necessary operations for now, other parts left commented out for future use. Removed menu visibility handling from RlvHandler::setEnabled() NOTE: RLVa has only been updated in pertinent areas, from what I can tell we are a bit behind in other places, too.
This commit is contained in:
@@ -860,6 +860,7 @@ void init_menus()
|
||||
menu->setCanTearOff(TRUE);
|
||||
init_client_menu(menu);
|
||||
gMenuBarView->addChild( menu );
|
||||
rlvMenuToggleVisible();
|
||||
|
||||
menu = new LLMenuGL(SERVER_MENU_NAME);
|
||||
menu->setCanTearOff(TRUE);
|
||||
@@ -1064,15 +1065,13 @@ void init_client_menu(LLMenuGL* menu)
|
||||
|
||||
// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e) | Modified: RLVa-0.2.1b | OK
|
||||
#ifdef RLV_ADVANCED_MENU
|
||||
if (rlv_handler_t::isEnabled())
|
||||
{
|
||||
sub_menu = new LLMenuGL("RLVa");
|
||||
sub_menu->setCanTearOff(TRUE);
|
||||
init_debug_rlva_menu(sub_menu);
|
||||
menu->addChild(sub_menu);
|
||||
sub_menu->setVisible(rlv_handler_t::isEnabled());
|
||||
sub_menu->setEnabled(rlv_handler_t::isEnabled());
|
||||
}
|
||||
sub_menu = new LLMenuGL("RLVa Embedded");
|
||||
init_debug_rlva_menu(sub_menu);
|
||||
menu->addChild(sub_menu);
|
||||
// Top Level Menu as well
|
||||
sub_menu = new LLMenuGL("RLVa Main");
|
||||
init_debug_rlva_menu(sub_menu);
|
||||
gMenuBarView->addChild(sub_menu);
|
||||
#endif // RLV_ADVANCED_MENU
|
||||
// [/RLVa:KB]
|
||||
|
||||
@@ -1697,6 +1696,9 @@ void init_debug_avatar_menu(LLMenuGL* menu)
|
||||
// [RLVa:KB] - Checked: 2009-11-17 (RLVa-1.1.0d) | Modified: RLVa-1.1.0d | OK
|
||||
void init_debug_rlva_menu(LLMenuGL* menu)
|
||||
{
|
||||
menu->setLabel(std::string("RLVa")); // Same menu, same label
|
||||
menu->setCanTearOff(true);
|
||||
|
||||
// Debug options
|
||||
{
|
||||
LLMenuGL* pDbgMenu = new LLMenuGL("Debug");
|
||||
|
||||
@@ -129,6 +129,8 @@ void RlvSettings::initClass()
|
||||
if (gSavedSettings.controlExists(RLV_SETTING_AVATAROFFSET_Z))
|
||||
gSavedSettings.getControl(RLV_SETTING_AVATAROFFSET_Z)->getSignal()->connect(boost::bind(&onChangedAvatarOffset, _2));
|
||||
|
||||
if (gSavedSettings.controlExists(RLV_SETTING_TOPLEVELMENU))
|
||||
gSavedSettings.getControl(RLV_SETTING_TOPLEVELMENU)->getSignal()->connect(boost::bind(&onChangedMenuLevel));
|
||||
fInitialized = true;
|
||||
}
|
||||
}
|
||||
@@ -155,6 +157,14 @@ bool RlvSettings::onChangedAvatarOffset(const LLSD& sdValue)
|
||||
gAgent.sendAgentSetAppearance();
|
||||
return true;
|
||||
}
|
||||
// Checked: 2011-08-16 (RLVa-1.4.0b) | Added: RLVa-1.4.0b
|
||||
bool RlvSettings::onChangedMenuLevel()
|
||||
{
|
||||
rlvMenuToggleVisible();
|
||||
return true;
|
||||
}
|
||||
|
||||
// Checked: 2010-02-27 (RLVa-1.2.0a) | Added: RLVa-1.1.0i
|
||||
bool RlvSettings::onChangedSettingBOOL(const LLSD& sdValue, bool* pfSetting)
|
||||
{
|
||||
if (pfSetting)
|
||||
@@ -526,6 +536,36 @@ void rlvMenuToggleEnabled(void*)
|
||||
return;
|
||||
}
|
||||
|
||||
// Checked: 2011-08-16 (RLVa-1.4.0b) | Added: RLVa-1.4.0b
|
||||
void rlvMenuToggleVisible()
|
||||
{
|
||||
bool fTopLevel = rlvGetSetting(RLV_SETTING_TOPLEVELMENU, true);
|
||||
bool fRlvEnabled = rlv_handler_t::isEnabled();
|
||||
|
||||
//LLMenuGL* pRLVaMenuMain = gMenuBarView->getChildMenuByName("RLVa Main", FALSE);
|
||||
// RELEASE-RLVa: LL defines CLIENT_MENU_NAME but we can't get to it from here so we need to keep those two in sync manually
|
||||
LLMenuGL* pAdvancedMenu = gMenuBarView->getChildMenuByName("Advanced", FALSE);
|
||||
//LLMenuGL* pRLVaMenuEmbed = pAdvancedMenu->getChildMenuByName("RLVa Embedded", FALSE);
|
||||
|
||||
gMenuBarView->setItemVisible("RLVa Main", (fRlvEnabled) && (fTopLevel));
|
||||
if (!pAdvancedMenu) return;
|
||||
pAdvancedMenu->setItemVisible("RLVa Embedded", (fRlvEnabled) && (!fTopLevel));
|
||||
|
||||
/* Singu Note: In the future when we have advanced menu in xml, we will want to use this to move the menu.
|
||||
if ( (rlv_handler_t::isEnabled()) && (pRLVaMenuMain) && (pRLVaMenuEmbed) &&
|
||||
( ((fTopLevel) && (1 == pRLVaMenuMain->getItemCount())) || ((!fTopLevel) && (1 == pRLVaMenuEmbed->getItemCount())) ) )
|
||||
{
|
||||
LLMenuGL* pMenuFrom = (fTopLevel) ? pRLVaMenuEmbed : pRLVaMenuMain;
|
||||
LLMenuGL* pMenuTo = (fTopLevel) ? pRLVaMenuMain : pRLVaMenuEmbed;
|
||||
while (LLMenuItemGL* pItem = pMenuFrom->getItem(1))
|
||||
{
|
||||
pMenuFrom->removeChild(pItem);
|
||||
pMenuTo->addChild(pItem);
|
||||
pItem->updateBranchParent(pMenuTo);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
bool RlvEnableIfNot::handleEvent(LLPointer<LLEvent>, const LLSD& userdata)
|
||||
{
|
||||
bool fEnable = true;
|
||||
|
||||
@@ -198,7 +198,7 @@ typedef bool (RlvCommandHandler::*rlvCommandHandler)(const RlvCommand& rlvCmd, E
|
||||
|
||||
BOOL rlvMenuCheckEnabled(void*);
|
||||
void rlvMenuToggleEnabled(void*);
|
||||
//void rlvMenuToggleVisible(void*);
|
||||
void rlvMenuToggleVisible();
|
||||
//bool rlvMenuEnableIfNot(const LLSD& sdParam);
|
||||
class RlvEnableIfNot : public LLMemberListener<LLView>
|
||||
{
|
||||
|
||||
@@ -1054,14 +1054,6 @@ BOOL RlvHandler::setEnabled(BOOL fEnable)
|
||||
RlvUIEnabler::getInstance();
|
||||
}
|
||||
|
||||
// RELEASE-RLVa: LL defines CLIENT_MENU_NAME but we can't get to it from here so we need to keep those two in sync manually
|
||||
LLMenuGL* pClientMenu = NULL;
|
||||
if ( (gMenuBarView) && ((pClientMenu = gMenuBarView->getChildMenuByName("Advanced", FALSE)) != NULL) )
|
||||
{
|
||||
pClientMenu->setItemVisible("RLVa", m_fEnabled);
|
||||
pClientMenu->setItemEnabled("RLVa", m_fEnabled);
|
||||
}
|
||||
|
||||
return m_fEnabled; // Return enabled/disabled state
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user