From ab29c73ff5bc048e2728372007bd8837d4aaa398 Mon Sep 17 00:00:00 2001 From: Melanie Date: Tue, 16 Apr 2013 12:35:02 +0200 Subject: [PATCH 1/3] Hide the export check boxes when on SL. --- indra/newview/llfloaterperms.cpp | 4 ++++ indra/newview/llfloaterproperties.cpp | 2 ++ indra/newview/llpanelpermissions.cpp | 2 ++ 3 files changed, 8 insertions(+) diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp index 02d1fa465..ec5a46377 100644 --- a/indra/newview/llfloaterperms.cpp +++ b/indra/newview/llfloaterperms.cpp @@ -41,6 +41,7 @@ #include "llviewerwindow.h" #include "lluictrlfactory.h" #include "llpermissions.h" +#include "hippogridmanager.h" namespace { @@ -82,6 +83,9 @@ BOOL LLFloaterPerms::postBuild() bool export_support = LFSimFeatureHandler::instance().simSupportsExport(); const U32 next_owner_perms = getNextOwnerPerms(); childSetEnabled("everyone_export", export_support && (next_owner_perms & PERM_ITEM_UNRESTRICTED) == PERM_ITEM_UNRESTRICTED); + if (!gHippoGridManager->getCurrentGrid()->isSecondLife()) + childSetVisible("everyone_export", false); + if (!next_owner_perms & PERM_COPY) childSetEnabled("next_owner_transfer", false); else if (export_support) diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp index e9227dde5..cbd42ac0b 100644 --- a/indra/newview/llfloaterproperties.cpp +++ b/indra/newview/llfloaterproperties.cpp @@ -448,6 +448,8 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item) bool supports_export = LFSimFeatureHandler::instance().simSupportsExport(); childSetEnabled("CheckOwnerExport",false); childSetValue("CheckOwnerExport", supports_export && owner_mask & PERM_EXPORT); + if (!gHippoGridManager->getCurrentGrid()->isSecondLife()) + childSetVisible("CheckOwnerExport", false); /////////////////////// // DEBUG PERMISSIONS // diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp index d41fa36d0..019bf507f 100644 --- a/indra/newview/llpanelpermissions.cpp +++ b/indra/newview/llpanelpermissions.cpp @@ -772,6 +772,8 @@ void LLPanelPermissions::refresh() else { childSetEnabled("checkbox allow export", false); + if (!gHippoGridManager->getCurrentGrid()->isSecondLife()) + childSetVisible("checkbox allow export", false); } if (has_change_sale_ability && (owner_mask_on & PERM_TRANSFER)) From ab2f06d64ef35355003f82e20fad429942fa3e87 Mon Sep 17 00:00:00 2001 From: Melanie Date: Tue, 16 Apr 2013 12:50:22 +0200 Subject: [PATCH 2/3] Add some much needed parens --- indra/newview/llfloaterperms.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp index ec5a46377..9a094ad58 100644 --- a/indra/newview/llfloaterperms.cpp +++ b/indra/newview/llfloaterperms.cpp @@ -86,8 +86,10 @@ BOOL LLFloaterPerms::postBuild() if (!gHippoGridManager->getCurrentGrid()->isSecondLife()) childSetVisible("everyone_export", false); - if (!next_owner_perms & PERM_COPY) + if (!(next_owner_perms & PERM_COPY)) + { childSetEnabled("next_owner_transfer", false); + } else if (export_support) { bool export_off = !gSavedPerAccountSettings.getBOOL("EveryoneExport"); From a2f7bee56849adcb7ccbc375666101bfd52b1ddd Mon Sep 17 00:00:00 2001 From: Melanie Date: Tue, 16 Apr 2013 13:20:24 +0200 Subject: [PATCH 3/3] Extend the octopus to allow avatar pickers to be used. --- indra/newview/hippofloaterxml.cpp | 43 +++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/indra/newview/hippofloaterxml.cpp b/indra/newview/hippofloaterxml.cpp index d8af038a6..1d132a0eb 100644 --- a/indra/newview/hippofloaterxml.cpp +++ b/indra/newview/hippofloaterxml.cpp @@ -40,6 +40,8 @@ #include #include +#include "llavatarnamecache.h" +#include "llfloateravatarpicker.h" #include "llviewerwindow.h" @@ -58,7 +60,7 @@ class HippoFloaterXmlImpl : public LLFloater BOOL postBuild(); void onClose(bool quitting); - static bool execute(LLUICtrl *ctrl, + static bool execute(LLFloater *floater, LLUICtrl *ctrl, const std::string &cmds, std::string::size_type &offset, std::string &response); @@ -218,7 +220,7 @@ void HippoFloaterXml::execute(const std::string &cmds) if (token == "{") { if (floater) { std::string response; - if (!floater->execute(floater, cmds, offset, response)) + if (!floater->execute(floater, floater, cmds, offset, response)) break; if (!response.empty()) send_chat_from_viewer(response, CHAT_TYPE_WHISPER, CHANNEL); @@ -275,6 +277,30 @@ static void notifyCallback(void *c) send_chat_from_viewer(msg, CHAT_TYPE_WHISPER, CHANNEL); } +void callbackAvatarPick(void *c, const uuid_vec_t& ids, const std::vector& names) +{ + LLUICtrl *ctrl = (LLUICtrl *)c; + + LLUUID id = ids[0]; + + std::string msg = "PICKER:"; + msg += ctrl->getName(); + msg += ':'; + msg += id.asString(); + msg += ':'; + msg += names[0].getCompleteName(); + send_chat_from_viewer(msg, CHAT_TYPE_WHISPER, CHANNEL); +} + +static void pickerCallback(void *c, void *f) +{ + LLUICtrl *ctrl = (LLUICtrl *)c; + HippoFloaterXmlImpl* floaterp = (HippoFloaterXmlImpl*)f; + + floaterp->addDependentFloater(LLFloaterAvatarPicker::show(boost::bind(&callbackAvatarPick, ctrl, _1, _2), FALSE, TRUE)); + //send_chat_from_viewer(msg, CHAT_TYPE_WHISPER, CHANNEL); +} + void HippoFloaterXmlImpl::onClose(bool quitting) { if (mIsNotifyOnClose) @@ -283,11 +309,10 @@ void HippoFloaterXmlImpl::onClose(bool quitting) LLFloater::onClose(quitting); } - // ******************************************************************** // execute commands on instance -bool HippoFloaterXmlImpl::execute(LLUICtrl *ctrl, +bool HippoFloaterXmlImpl::execute(LLFloater *floater, LLUICtrl *ctrl, const std::string &cmds, std::string::size_type &offset, std::string &response) { @@ -313,7 +338,7 @@ bool HippoFloaterXmlImpl::execute(LLUICtrl *ctrl, if (!child) return false; if (!cmdGetToken(cmds, offset, token)) return false; if (token != "{") return false; - if (!execute(child, cmds, offset, response)) + if (!execute(floater, child, cmds, offset, response)) return false; } else if (key == "setValue") { ctrl->setValue(value); @@ -331,6 +356,14 @@ bool HippoFloaterXmlImpl::execute(LLUICtrl *ctrl, else ctrl->setCommitCallback(0); } + } else if (key == "picker") { + bool set = (value != "0"); + if (!dynamic_cast(ctrl)) { + if (set) + ctrl->setCommitCallback(boost::bind(&pickerCallback, _1, floater), ctrl); + else + ctrl->setCommitCallback(0); + } } } }