- added : "Show Top-level RLVa Menu" option to toggle between a top-level RLVa menu and an Advanced embedded one

--HG--
branch : RLVa
meow-7.2.2
Kitty Barnett 2011-08-16 22:44:46 +02:00
parent 4e485ea079
commit d3e8295c2b
6 changed files with 186 additions and 123 deletions

View File

@ -189,6 +189,17 @@
<key>Value</key>
<integer>0</integer>
</map>
<key>RLVaTopLevelMenu</key>
<map>
<key>Comment</key>
<string>Show the RLVa specific menu as a top level menu</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>RLVaWearReplaceUnlocked</key>
<map>
<key>Comment</key>

View File

@ -5236,14 +5236,9 @@ void show_debug_menus()
gMenuBarView->setItemVisible("Advanced", debug);
// gMenuBarView->setItemEnabled("Advanced", debug); // Don't disable Advanced keyboard shortcuts when hidden
// [RLVa:KB] - Checked: 2010-03-09 (RLVa-1.2.0a) | Added: RLVa-1.2.0a
// [RLVa:KB] - Checked: 2011-08-16 (RLVa-1.4.0b) | Modified: RLVa-1.4.0b
// NOTE: this is supposed to execute whether RLVa is enabled or not
LLMenuGL* pAdvancedMenu = gMenuBarView->findChildMenuByName("Advanced", FALSE);
if (pAdvancedMenu)
{
pAdvancedMenu->setItemVisible("RLVa", rlv_handler_t::isEnabled());
pAdvancedMenu->setItemEnabled("RLVa", rlv_handler_t::isEnabled());
}
rlvMenuToggleVisible();
// [/RLVa:KB]
gMenuBarView->setItemVisible("Debug", qamode);

View File

@ -23,6 +23,7 @@
#include "lluictrlfactory.h"
#include "llversionviewer.h"
#include "llviewerparcelmgr.h"
#include "llviewermenu.h"
#include "llviewerregion.h"
#include "llviewerstats.h"
#include "llworld.h"
@ -103,6 +104,9 @@ 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;
}
}
@ -130,6 +134,13 @@ bool RlvSettings::onChangedAvatarOffset(const LLSD& sdValue)
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)
{
@ -455,6 +466,33 @@ bool rlvMenuToggleEnabled()
return true;
}
// 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->findChildMenuByName("RLVa Main", FALSE);
LLMenuGL* pAdvancedMenu = gMenuBarView->findChildMenuByName("Advanced", FALSE);
LLMenuGL* pRLVaMenuEmbed = pAdvancedMenu->findChildMenuByName("RLVa Embedded", FALSE);
gMenuBarView->setItemVisible("RLVa Main", (fRlvEnabled) && (fTopLevel));
pAdvancedMenu->setItemVisible("RLVa Embedded", (fRlvEnabled) && (!fTopLevel));
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);
}
}
}
// Checked: 2010-04-23 (RLVa-1.2.0g) | Modified: RLVa-1.2.0g
bool rlvMenuEnableIfNot(const LLSD& sdParam)
{

View File

@ -106,6 +106,7 @@ public:
static void initClass();
protected:
static bool onChangedAvatarOffset(const LLSD& sdValue);
static bool onChangedMenuLevel();
static bool onChangedSettingBOOL(const LLSD& sdValue, bool* pfSetting);
#ifdef RLV_EXPERIMENTAL_COMPOSITEFOLDERS
@ -193,6 +194,7 @@ typedef bool (RlvCommandHandler::*rlvCommandHandler)(const RlvCommand& rlvCmd, E
bool rlvMenuCheckEnabled();
bool rlvMenuToggleEnabled();
void rlvMenuToggleVisible();
bool rlvMenuEnableIfNot(const LLSD& sdParam);
// ============================================================================

View File

@ -310,6 +310,7 @@ enum ERlvAttachGroupType
#define RLV_SETTING_LOGINLASTLOCATION "RLVaLoginLastLocation"
#define RLV_SETTING_SHAREDINVAUTORENAME "RLVaSharedInvAutoRename"
#define RLV_SETTING_SHOWNAMETAGS "RLVaShowNameTags"
#define RLV_SETTING_TOPLEVELMENU "RLVaTopLevelMenu"
#define RLV_SETTING_WEARREPLACEUNLOCKED "RLVaWearReplaceUnlocked"
#define RLV_SETTING_FIRSTUSE_PREFIX "FirstRLV"

View File

@ -1066,6 +1066,133 @@
parameter="sl_about" />
</menu_item_call>
</menu>
<menu
create_jump_keys="true"
label="RLVa"
name="RLVa Main"
tear_off="true"
visible="true">
<menu
label="Debug"
name="Debug"
tear_off="true">
<menu_item_check
label="Show Debug Messages"
name="Show Debug Messages">
<menu_item_check.on_check
function="CheckControl"
parameter="RestrainedLoveDebug" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RestrainedLoveDebug" />
</menu_item_check>
<menu_item_check
label="Show RLVa Menu Top-level"
name="Show RLVa Menu Top-level">
<menu_item_check.on_check
function="CheckControl"
parameter="RLVaTopLevelMenu" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RLVaTopLevelMenu" />
</menu_item_check>
<menu_item_separator/>
<menu_item_check
label="Enable Legacy Naming"
name="Enable Legacy Naming">
<menu_item_check.on_check
function="CheckControl"
parameter="RLVaEnableLegacyNaming" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RLVaEnableLegacyNaming" />
</menu_item_check>
<menu_item_check
label="Enable Shared Wear"
name="Enable Shared Wear">
<menu_item_check.on_check
function="CheckControl"
parameter="RLVaEnableSharedWear" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RLVaEnableSharedWear" />
</menu_item_check>
<menu_item_check
label="Rename Shared Items on Wear"
name="Rename Shared Items on Wear">
<menu_item_check.on_check
function="CheckControl"
parameter="RLVaSharedInvAutoRename" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RLVaSharedInvAutoRename" />
</menu_item_check>
<menu_item_separator/>
<menu_item_check
label="Locks..."
name="Locks">
<menu_item_check.on_check
function="Floater.Visible"
parameter="rlv_locks" />
<menu_item_check.on_click
function="Floater.Toggle"
parameter="rlv_locks" />
</menu_item_check>
</menu>
<menu_item_separator/>
<menu_item_check
label="Hide Locked Layers"
name="Hide Locked Layers">
<menu_item_check.on_check
function="CheckControl"
parameter="RLVaHideLockedLayers" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RLVaHideLockedLayers" />
</menu_item_check>
<menu_item_check
label="Hide Locked Attachments"
name="Hide Locked Attachments">
<menu_item_check.on_check
function="CheckControl"
parameter="RLVaHideLockedAttachments" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RLVaHideLockedAttachments" />
</menu_item_check>
<menu_item_separator/>
<menu_item_check
label="Forbid Give to #RLV"
name="Forbid Give to #RLV">
<menu_item_check.on_check
function="CheckControl"
parameter="RestrainedLoveForbidGiveToRLV" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RestrainedLoveForbidGiveToRLV" />
</menu_item_check>
<menu_item_check
label="Show Name Tags"
name="Show Name Tags">
<menu_item_check.on_check
function="CheckControl"
parameter="RLVaShowNameTags" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RLVaShowNameTags" />
</menu_item_check>
<menu_item_separator />
<menu_item_check
label="Restrictions..."
name="Restrictions">
<menu_item_check.on_check
function="Floater.Visible"
parameter="rlv_behaviours" />
<menu_item_check.on_click
function="Floater.Toggle"
parameter="rlv_behaviours" />
</menu_item_check>
</menu>
<menu
create_jump_keys="true"
label="Advanced"
@ -1535,122 +1662,11 @@
parameter="flexible" />
</menu_item_check>
</menu>
<menu
label="RLVa"
name="RLVa"
tear_off="true"
visible="false">
<menu
label="Debug"
name="Debug"
tear_off="true">
<menu_item_check
label="Show Debug Messages"
name="Show Debug Messages">
<menu_item_check.on_check
function="CheckControl"
parameter="RestrainedLoveDebug" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RestrainedLoveDebug" />
</menu_item_check>
<menu_item_separator/>
<menu_item_check
label="Enable Legacy Naming"
name="Enable Legacy Naming">
<menu_item_check.on_check
function="CheckControl"
parameter="RLVaEnableLegacyNaming" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RLVaEnableLegacyNaming" />
</menu_item_check>
<menu_item_check
label="Enable Shared Wear"
name="Enable Shared Wear">
<menu_item_check.on_check
function="CheckControl"
parameter="RLVaEnableSharedWear" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RLVaEnableSharedWear" />
</menu_item_check>
<menu_item_check
label="Rename Shared Items on Wear"
name="Rename Shared Items on Wear">
<menu_item_check.on_check
function="CheckControl"
parameter="RLVaSharedInvAutoRename" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RLVaSharedInvAutoRename" />
</menu_item_check>
<menu_item_separator/>
<menu_item_check
label="Locks..."
name="Locks">
<menu_item_check.on_check
function="Floater.Visible"
parameter="rlv_locks" />
<menu_item_check.on_click
function="Floater.Toggle"
parameter="rlv_locks" />
</menu_item_check>
</menu>
<menu_item_separator/>
<menu_item_check
label="Hide Locked Layers"
name="Hide Locked Layers">
<menu_item_check.on_check
function="CheckControl"
parameter="RLVaHideLockedLayers" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RLVaHideLockedLayers" />
</menu_item_check>
<menu_item_check
label="Hide Locked Attachments"
name="Hide Locked Attachments">
<menu_item_check.on_check
function="CheckControl"
parameter="RLVaHideLockedAttachments" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RLVaHideLockedAttachments" />
</menu_item_check>
<menu_item_separator/>
<menu_item_check
label="Forbid Give to #RLV"
name="Forbid Give to #RLV">
<menu_item_check.on_check
function="CheckControl"
parameter="RestrainedLoveForbidGiveToRLV" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RestrainedLoveForbidGiveToRLV" />
</menu_item_check>
<menu_item_check
label="Show Name Tags"
name="Show Name Tags">
<menu_item_check.on_check
function="CheckControl"
parameter="RLVaShowNameTags" />
<menu_item_check.on_click
function="ToggleControl"
parameter="RLVaShowNameTags" />
</menu_item_check>
<menu_item_separator/>
<menu_item_check
label="Restrictions..."
name="Restrictions">
<menu_item_check.on_check
function="Floater.Visible"
parameter="rlv_behaviours" />
<menu_item_check.on_click
function="Floater.Toggle"
parameter="rlv_behaviours" />
</menu_item_check>
</menu>
<menu
label="RLVa"
name="RLVa Embedded"
tear_off="true"
visible="true" />
<menu_item_check
label="Use Plugin Read Thread"
name="Use Plugin Read Thread">