EXT-3265 Gear menu on_visible params are broken - not setting visibility of menu items
EXT-2923 [BSI] My own inspector lists "Stand Up" as an option in gear menu, while I'm standing
parent
a30ad1ed00
commit
27d6f0e49c
|
|
@ -761,7 +761,7 @@ void LLMenuItemCallGL::initFromParams(const Params& p)
|
|||
{
|
||||
if (p.on_visible.isProvided())
|
||||
{
|
||||
mVisibleSignal.connect(initVisibleCallback(p.on_visible));
|
||||
mVisibleSignal.connect(initEnableCallback(p.on_visible));
|
||||
}
|
||||
if (p.on_enable.isProvided())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -175,9 +175,7 @@ protected:
|
|||
// This function appends the character string representation of
|
||||
// the current accelerator key and mask to the provided string.
|
||||
void appendAcceleratorString( std::string& st ) const;
|
||||
|
||||
void initMenuEnableCallback(const EnableCallbackParam& cb, enable_signal_t& sig);
|
||||
|
||||
|
||||
protected:
|
||||
KEY mAcceleratorKey;
|
||||
MASK mAcceleratorMask;
|
||||
|
|
@ -249,7 +247,7 @@ public:
|
|||
{
|
||||
Optional<EnableCallbackParam > on_enable;
|
||||
Optional<CommitCallbackParam > on_click;
|
||||
Optional<VisibleCallbackParam > on_visible;
|
||||
Optional<EnableCallbackParam > on_visible;
|
||||
Params()
|
||||
: on_enable("on_enable"),
|
||||
on_click("on_click"),
|
||||
|
|
@ -284,15 +282,10 @@ public:
|
|||
{
|
||||
return mEnableSignal.connect(cb);
|
||||
}
|
||||
|
||||
boost::signals2::connection setVisibleCallback( const visible_signal_t::slot_type& cb )
|
||||
{
|
||||
return mVisibleSignal.connect(cb);
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
enable_signal_t mEnableSignal;
|
||||
visible_signal_t mVisibleSignal;
|
||||
enable_signal_t mVisibleSignal;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
|
|||
|
|
@ -249,7 +249,6 @@ protected:
|
|||
LLCallbackMap::map_t mFactoryMap;
|
||||
CommitCallbackRegistry::ScopedRegistrar mCommitCallbackRegistrar;
|
||||
EnableCallbackRegistry::ScopedRegistrar mEnableCallbackRegistrar;
|
||||
VisibleCallbackRegistry::ScopedRegistrar mVisibleCallbackRegistrar;
|
||||
|
||||
commit_signal_t* mVisibleSignal; // Called when visibility changes, passes new visibility as LLSD()
|
||||
|
||||
|
|
|
|||
|
|
@ -232,11 +232,6 @@ bool default_enable_handler(LLUICtrl* ctrl, const LLSD& param)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool default_visible_handler(LLUICtrl* ctrl, const LLSD& param)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
LLUICtrl::commit_signal_t::slot_type LLUICtrl::initCommitCallback(const CommitCallbackParam& cb)
|
||||
{
|
||||
|
|
@ -290,30 +285,6 @@ LLUICtrl::enable_signal_t::slot_type LLUICtrl::initEnableCallback(const EnableCa
|
|||
return default_enable_handler;
|
||||
}
|
||||
|
||||
LLUICtrl::visible_signal_t::slot_type LLUICtrl::initVisibleCallback(const VisibleCallbackParam& cb)
|
||||
{
|
||||
// Set the callback function
|
||||
if (cb.function.isProvided())
|
||||
{
|
||||
if (cb.parameter.isProvided())
|
||||
return boost::bind(cb.function(), this, cb.parameter);
|
||||
else
|
||||
return cb.function();
|
||||
}
|
||||
else
|
||||
{
|
||||
visible_callback_t* func = (VisibleCallbackRegistry::getValue(cb.function_name));
|
||||
if (func)
|
||||
{
|
||||
if (cb.parameter.isProvided())
|
||||
return boost::bind((*func), this, cb.parameter);
|
||||
else
|
||||
return visible_signal_t::slot_type(*func);
|
||||
}
|
||||
}
|
||||
return default_visible_handler;
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLUICtrl::onMouseEnter(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -63,9 +63,6 @@ public:
|
|||
typedef boost::function<bool (LLUICtrl* ctrl, const LLSD& param)> enable_callback_t;
|
||||
typedef boost::signals2::signal<bool (LLUICtrl* ctrl, const LLSD& param), boost_boolean_combiner> enable_signal_t;
|
||||
|
||||
typedef boost::function<bool (LLUICtrl* ctrl, const LLSD& param)> visible_callback_t;
|
||||
typedef boost::signals2::signal<bool (LLUICtrl* ctrl, const LLSD& param), boost_boolean_combiner> visible_signal_t;
|
||||
|
||||
struct CallbackParam : public LLInitParam::Block<CallbackParam>
|
||||
{
|
||||
Ignored name;
|
||||
|
|
@ -87,12 +84,7 @@ public:
|
|||
{
|
||||
Optional<enable_callback_t> function;
|
||||
};
|
||||
|
||||
struct VisibleCallbackParam : public LLInitParam::Block<VisibleCallbackParam, CallbackParam >
|
||||
{
|
||||
Optional<visible_callback_t> function;
|
||||
};
|
||||
|
||||
|
||||
struct EnableControls : public LLInitParam::Choice<EnableControls>
|
||||
{
|
||||
Alternative<std::string> enabled;
|
||||
|
|
@ -148,7 +140,6 @@ protected:
|
|||
|
||||
commit_signal_t::slot_type initCommitCallback(const CommitCallbackParam& cb);
|
||||
enable_signal_t::slot_type initEnableCallback(const EnableCallbackParam& cb);
|
||||
visible_signal_t::slot_type initVisibleCallback(const VisibleCallbackParam& cb);
|
||||
|
||||
// We need this virtual so we can override it with derived versions
|
||||
virtual LLViewModel* getViewModel() const;
|
||||
|
|
@ -270,9 +261,7 @@ public:
|
|||
|
||||
class CommitCallbackRegistry : public CallbackRegistry<commit_callback_t, CommitCallbackRegistry>{};
|
||||
class EnableCallbackRegistry : public CallbackRegistry<enable_callback_t, EnableCallbackRegistry>{};
|
||||
class VisibleCallbackRegistry : public CallbackRegistry<visible_callback_t, VisibleCallbackRegistry>{};
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
static bool controlListener(const LLSD& newvalue, LLHandle<LLUICtrl> handle, std::string type);
|
||||
|
|
|
|||
|
|
@ -205,10 +205,10 @@ LLInspectAvatar::LLInspectAvatar(const LLSD& sd)
|
|||
mCommitCallbackRegistrar.add("InspectAvatar.Report", boost::bind(&LLInspectAvatar::onClickReport, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.FindOnMap", boost::bind(&LLInspectAvatar::onClickFindOnMap, this));
|
||||
mCommitCallbackRegistrar.add("InspectAvatar.ZoomIn", boost::bind(&LLInspectAvatar::onClickZoomIn, this));
|
||||
mVisibleCallbackRegistrar.add("InspectAvatar.VisibleFindOnMap", boost::bind(&LLInspectAvatar::onVisibleFindOnMap, this));
|
||||
mVisibleCallbackRegistrar.add("InspectAvatar.VisibleFreezeEject",
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.VisibleFindOnMap", boost::bind(&LLInspectAvatar::onVisibleFindOnMap, this));
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.VisibleFreezeEject",
|
||||
boost::bind(&LLInspectAvatar::onVisibleFreezeEject, this));
|
||||
mVisibleCallbackRegistrar.add("InspectAvatar.VisibleZoomIn",
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.VisibleZoomIn",
|
||||
boost::bind(&LLInspectAvatar::onVisibleZoomIn, this));
|
||||
mEnableCallbackRegistrar.add("InspectAvatar.Gear.Enable", boost::bind(&LLInspectAvatar::isNotFriend, this));
|
||||
|
||||
|
|
|
|||
|
|
@ -7562,12 +7562,11 @@ void initialize_menus()
|
|||
|
||||
LLUICtrl::EnableCallbackRegistry::Registrar& enable = LLUICtrl::EnableCallbackRegistry::currentRegistrar();
|
||||
LLUICtrl::CommitCallbackRegistry::Registrar& commit = LLUICtrl::CommitCallbackRegistry::currentRegistrar();
|
||||
LLUICtrl::VisibleCallbackRegistry::Registrar& visible = LLUICtrl::VisibleCallbackRegistry::currentRegistrar();
|
||||
|
||||
// Generic enable and visible
|
||||
// Don't prepend MenuName.Foo because these can be used in any menu.
|
||||
enable.add("IsGodCustomerService", boost::bind(&is_god_customer_service));
|
||||
visible.add("IsGodCustomerService", boost::bind(&is_god_customer_service));
|
||||
enable.add("IsGodCustomerService", boost::bind(&is_god_customer_service));
|
||||
|
||||
// Agent
|
||||
commit.add("Agent.toggleFlying", boost::bind(&LLAgent::toggleFlying));
|
||||
|
|
@ -7674,7 +7673,6 @@ void initialize_menus()
|
|||
view_listener_t::addMenu(new LLToolsEnableLink(), "Tools.EnableLink");
|
||||
view_listener_t::addMenu(new LLToolsEnableUnlink(), "Tools.EnableUnlink");
|
||||
view_listener_t::addMenu(new LLToolsEnableBuyOrTake(), "Tools.EnableBuyOrTake");
|
||||
visible.add("Tools.VisibleTakeCopy", boost::bind(&enable_object_take_copy));
|
||||
enable.add("Tools.EnableTakeCopy", boost::bind(&enable_object_take_copy));
|
||||
view_listener_t::addMenu(new LLToolsEnableSaveToInventory(), "Tools.EnableSaveToInventory");
|
||||
view_listener_t::addMenu(new LLToolsEnableSaveToObjectInventory(), "Tools.EnableSaveToObjectInventory");
|
||||
|
|
@ -7850,7 +7848,6 @@ void initialize_menus()
|
|||
view_listener_t::addMenu(new LLSelfStandUp(), "Self.StandUp");
|
||||
view_listener_t::addMenu(new LLSelfRemoveAllAttachments(), "Self.RemoveAllAttachments");
|
||||
|
||||
visible.add("Self.VisibleStandUp", boost::bind(&enable_standup_self));
|
||||
enable.add("Self.EnableStandUp", boost::bind(&enable_standup_self));
|
||||
view_listener_t::addMenu(new LLSelfEnableRemoveAllAttachments(), "Self.EnableRemoveAllAttachments");
|
||||
|
||||
|
|
@ -7873,59 +7870,42 @@ void initialize_menus()
|
|||
|
||||
view_listener_t::addMenu(new LLAvatarEnableAddFriend(), "Avatar.EnableAddFriend");
|
||||
enable.add("Avatar.EnableFreezeEject", boost::bind(&enable_freeze_eject, _2));
|
||||
visible.add("Avatar.EnableFreezeEject", boost::bind(&enable_freeze_eject, _2));
|
||||
enable.add("Avatar.EnableFreezeEject", boost::bind(&enable_freeze_eject, _2));
|
||||
|
||||
// Object pie menu
|
||||
view_listener_t::addMenu(new LLObjectBuild(), "Object.Build");
|
||||
commit.add("Object.Touch", boost::bind(&handle_object_touch));
|
||||
commit.add("Object.SitOrStand", boost::bind(&handle_object_sit_or_stand));
|
||||
visible.add("Object.EnableSit", boost::bind(&enable_sit_object));
|
||||
enable.add("Object.EnableSit", boost::bind(&enable_sit_object));
|
||||
commit.add("Object.Delete", boost::bind(&handle_object_delete));
|
||||
view_listener_t::addMenu(new LLObjectAttachToAvatar(), "Object.AttachToAvatar");
|
||||
view_listener_t::addMenu(new LLObjectReturn(), "Object.Return");
|
||||
view_listener_t::addMenu(new LLObjectReportAbuse(), "Object.ReportAbuse");
|
||||
view_listener_t::addMenu(new LLObjectMute(), "Object.Mute");
|
||||
|
||||
visible.add("Object.VisibleTake", boost::bind(&visible_take_object));
|
||||
visible.add("Object.VisibleBuy", boost::bind(&visible_buy_object));
|
||||
enable.add("Object.VisibleTake", boost::bind(&visible_take_object));
|
||||
enable.add("Object.VisibleBuy", boost::bind(&visible_buy_object));
|
||||
|
||||
commit.add("Object.Buy", boost::bind(&handle_buy));
|
||||
commit.add("Object.Edit", boost::bind(&handle_object_edit));
|
||||
commit.add("Object.Inspect", boost::bind(&handle_object_inspect));
|
||||
commit.add("Object.Open", boost::bind(&handle_object_open));
|
||||
|
||||
commit.add("Object.Take", boost::bind(&handle_take));
|
||||
|
||||
enable.add("Object.EnableOpen", boost::bind(&enable_object_open));
|
||||
visible.add("Object.VisibleOpen", boost::bind(&enable_object_open));
|
||||
|
||||
enable.add("Object.EnableTouch", boost::bind(&enable_object_touch));
|
||||
visible.add("Object.VisibleTouch", boost::bind(&enable_object_touch));
|
||||
|
||||
view_listener_t::addMenu(new LLObjectEnableTouch(), "Object.EnableTouch");
|
||||
view_listener_t::addMenu(new LLObjectEnableSitOrStand(), "Object.EnableSitOrStand");
|
||||
|
||||
enable.add("Object.EnableDelete", boost::bind(&enable_object_delete));
|
||||
visible.add("Object.VisibleDelete", boost::bind(&enable_object_delete));
|
||||
|
||||
enable.add("Object.EnableWear", boost::bind(&object_selected_and_point_valid));
|
||||
visible.add("Object.VisibleWear", boost::bind(&object_selected_and_point_valid));
|
||||
|
||||
view_listener_t::addMenu(new LLObjectEnableReturn(), "Object.EnableReturn");
|
||||
view_listener_t::addMenu(new LLObjectEnableReportAbuse(), "Object.EnableReportAbuse");
|
||||
|
||||
enable.add("Avatar.EnableMute", boost::bind(&enable_object_mute));
|
||||
enable.add("Object.EnableMute", boost::bind(&enable_object_mute));
|
||||
visible.add("Object.VisibleMute", boost::bind(&enable_object_mute));
|
||||
|
||||
enable.add("Object.EnableBuy", boost::bind(&enable_buy_object));
|
||||
|
||||
/*view_listener_t::addMenu(new LLObjectVisibleTouch(), "Object.VisibleTouch");
|
||||
view_listener_t::addMenu(new LLObjectVisibleCustomTouch(), "Object.VisibleCustomTouch");
|
||||
view_listener_t::addMenu(new LLObjectVisibleStandUp(), "Object.VisibleStandUp");
|
||||
view_listener_t::addMenu(new LLObjectVisibleSitHere(), "Object.VisibleSitHere");
|
||||
view_listener_t::addMenu(new LLObjectVisibleCustomSit(), "Object.VisibleCustomSit");*/
|
||||
|
||||
// Attachment pie menu
|
||||
enable.add("Attachment.Label", boost::bind(&onEnableAttachmentLabel, _1, _2));
|
||||
view_listener_t::addMenu(new LLAttachmentDrop(), "Attachment.Drop");
|
||||
|
|
@ -7953,12 +7933,9 @@ void initialize_menus()
|
|||
commit.add("PayObject", boost::bind(&handle_give_money_dialog));
|
||||
|
||||
enable.add("EnablePayObject", boost::bind(&enable_pay_object));
|
||||
visible.add("VisiblePayObject", boost::bind(&enable_pay_object));
|
||||
enable.add("EnablePayAvatar", boost::bind(&enable_pay_avatar));
|
||||
enable.add("EnableEdit", boost::bind(&enable_object_edit));
|
||||
visible.add("VisibleBuild", boost::bind(&enable_object_build));
|
||||
visible.add("VisibleEdit", boost::bind(&enable_object_edit));
|
||||
visible.add("Object.VisibleEdit", boost::bind(&enable_object_edit));
|
||||
enable.add("VisibleBuild", boost::bind(&enable_object_build));
|
||||
|
||||
view_listener_t::addMenu(new LLFloaterVisible(), "FloaterVisible");
|
||||
view_listener_t::addMenu(new LLShowSidetrayPanel(), "ShowSidetrayPanel");
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<menu_item_call.on_click
|
||||
function="InspectObject.Touch"/>
|
||||
<menu_item_call.on_visible
|
||||
function="Object.VisibleTouch" />
|
||||
function="Object.EnableTouch" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Sit"
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
<menu_item_call.on_click
|
||||
function="InspectObject.Pay"/>
|
||||
<menu_item_call.on_visible
|
||||
function="VisiblePayObject" />
|
||||
function="EnablePayObject" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Buy"
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
<menu_item_call.on_click
|
||||
function="InspectObject.TakeFreeCopy"/>
|
||||
<menu_item_call.on_visible
|
||||
function="Tools.VisibleTakeCopy"/>
|
||||
function="Tools.EnableTakeCopy"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Open"
|
||||
|
|
@ -68,7 +68,7 @@
|
|||
<menu_item_call.on_click
|
||||
function="InspectObject.Open"/>
|
||||
<menu_item_call.on_visible
|
||||
function="Object.VisibleOpen" />
|
||||
function="Object.EnableOpen" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Edit"
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<menu_item_call.on_click
|
||||
function="Object.Edit" />
|
||||
<menu_item_call.on_enable
|
||||
function="Object.VisibleEdit"/>
|
||||
function="EnableEdit"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Wear"
|
||||
|
|
@ -86,7 +86,7 @@
|
|||
<menu_item_call.on_click
|
||||
function="Object.AttachToAvatar" />
|
||||
<menu_item_call.on_visible
|
||||
function="Object.VisibleWear" />
|
||||
function="Object.EnableWear" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Report"
|
||||
|
|
@ -102,7 +102,7 @@
|
|||
<menu_item_call.on_click
|
||||
function="Object.Mute" />
|
||||
<menu_item_call.on_visible
|
||||
function="Object.VisibleMute" />
|
||||
function="Object.EnableMute" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Zoom In"
|
||||
|
|
@ -118,7 +118,7 @@
|
|||
<menu_item_call.on_click
|
||||
function="Object.Delete" />
|
||||
<menu_item_call.on_visible
|
||||
function="Object.VisibleDelete" />
|
||||
function="Object.EnableDelete" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="More Info"
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
function="Self.StandUp"
|
||||
parameter="" />
|
||||
<menu_item_call.on_visible
|
||||
function="Self.VisibleStandUp" />
|
||||
function="Self.EnableStandUp" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="My Appearance"
|
||||
|
|
|
|||
Loading…
Reference in New Issue