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
Leyla Farazha 2010-12-07 13:39:56 -08:00
parent a30ad1ed00
commit 27d6f0e49c
9 changed files with 25 additions and 96 deletions

View File

@ -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())
{

View File

@ -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;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -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()

View File

@ -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)
{

View File

@ -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);

View File

@ -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));

View File

@ -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");

View File

@ -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"

View File

@ -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"