diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp index 01edcc6f8a..edd2d4e91b 100644 --- a/indra/newview/llnavigationbar.cpp +++ b/indra/newview/llnavigationbar.cpp @@ -72,6 +72,7 @@ #include "llnotificationsutil.h"// #include "lluictrl.h" // Make navigation bar part of the UI +#include "rlvhandler.h" //-- LLTeleportHistoryMenuItem ----------------------------------------------- @@ -279,7 +280,8 @@ LLNavigationBar::LLNavigationBar() mNavigationPanel(NULL), mFavoritePanel(NULL), mNavPanWidth(0), - mSearchComboBox(NULL) + mSearchComboBox(NULL), + mRlvBehaviorCallbackConnection() // FIRE-11847 { // buildFromFile( "panel_navigation_bar.xml"); // Make navigation bar part of the UI @@ -292,6 +294,13 @@ LLNavigationBar::~LLNavigationBar() { mTeleportFinishConnection.disconnect(); mTeleportFailedConnection.disconnect(); + + // FIRE-11847 + if (mRlvBehaviorCallbackConnection.connected()) + { + mRlvBehaviorCallbackConnection.disconnect(); + } + // } // Make navigation bar part of the UI @@ -318,7 +327,7 @@ void LLNavigationBar::setupPanel() mView->getChild("navigation_bar_context_menu_panel")-> setRightMouseDownCallback(boost::bind(&LLNavigationBar::onRightMouseDown, this, _2, _3, _4)); - mView->getChild("Sky")->setCommitCallback(boost::bind(&LLNavigationBar::onClickedSkyBtn, this)); // FIRE-11847 + mView->getChild("PersonalLighting")->setCommitCallback(boost::bind(&LLNavigationBar::onClickedLightingBtn, this)); // FIRE-11847 // fillSearchComboBox(); @@ -371,6 +380,9 @@ void LLNavigationBar::setupPanel() // return TRUE; LLHints::getInstance()->registerHintTarget("nav_bar",mView->getHandle()); // + + // FIRE-11847 + mRlvBehaviorCallbackConnection = gRlvHandler.setBehaviourCallback(boost::bind(&LLNavigationBar::updateRlvRestrictions, this, _1, _2)); } // No size calculations in code please. XUI handles it all now with visibility_control @@ -881,8 +893,16 @@ void LLNavigationBar::onRightMouseDown(S32 x,S32 y,MASK mask) // // FIRE-11847 -void LLNavigationBar::onClickedSkyBtn() +void LLNavigationBar::onClickedLightingBtn() { - LLFloaterReg::showInstance("env_edit_sky", "edit"); + LLFloaterReg::showInstance("env_adjust_snapshot"); +} + +void LLNavigationBar::updateRlvRestrictions(ERlvBehaviour behavior, ERlvParamType type) +{ + if (behavior == RLV_BHVR_SETENV) + { + mView->getChild("PersonalLighting")->setEnabled(type != RLV_TYPE_ADD); + } } // FIRE-11847 diff --git a/indra/newview/llnavigationbar.h b/indra/newview/llnavigationbar.h index 603433378a..bf82e270bd 100755 --- a/indra/newview/llnavigationbar.h +++ b/indra/newview/llnavigationbar.h @@ -33,6 +33,7 @@ #include "llbutton.h" #include "lllayoutstack.h" #include "llinitdestroyclass.h" +#include "rlvdefines.h" class LLLocationInputCtrl; class LLMenuGL; @@ -151,7 +152,11 @@ private: void fillSearchComboBox(); - void onClickedSkyBtn(); // FIRE-11847 + // FIRE-11847 + void onClickedLightingBtn(); + boost::signals2::connection mRlvBehaviorCallbackConnection; + void updateRlvRestrictions(ERlvBehaviour behavior, ERlvParamType type); + // // Make navigation bar part of the UI // static void destroyClass() diff --git a/indra/newview/skins/default/xui/de/panel_navigation_bar.xml b/indra/newview/skins/default/xui/de/panel_navigation_bar.xml index 9be79a3f57..cf041a097d 100644 --- a/indra/newview/skins/default/xui/de/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/de/panel_navigation_bar.xml @@ -3,12 +3,12 @@ - + + function="Button.SetFloaterToggle" + parameter="about_land" /> + + width="38" /> diff --git a/indra/newview/skins/starlightcui/xui/en/panel_navigation_bar.xml b/indra/newview/skins/starlightcui/xui/en/panel_navigation_bar.xml index df48d218b2..08feada684 100644 --- a/indra/newview/skins/starlightcui/xui/en/panel_navigation_bar.xml +++ b/indra/newview/skins/starlightcui/xui/en/panel_navigation_bar.xml @@ -40,7 +40,7 @@ auto_resize="false"> + inactive parts. Will be bound to right click in code, so keep the name intact. --> - - + width="38" /> @@ -174,7 +170,7 @@ - + -