diff options
| author | Ychebotarev ProductEngine <ychebotarev@productengine.com> | 2010-01-15 18:56:25 +0200 |
|---|---|---|
| committer | Ychebotarev ProductEngine <ychebotarev@productengine.com> | 2010-01-15 18:56:25 +0200 |
| commit | 91e8b4bc64ef296893b6a72cc57a3ae8a5d49d03 (patch) | |
| tree | c7a5dfbcfa87ac6b6578a057e4e4746bdd58c555 /indra/newview/llviewermessage.cpp | |
| parent | 17a72e5e51cae48c7cd6f7f3dda06c895dd482c8 (diff) | |
| parent | b21fca13e6bea9420f80a35163d25a33b929bbd1 (diff) | |
merge
--HG--
branch : product-engine
Diffstat (limited to 'indra/newview/llviewermessage.cpp')
| -rw-r--r-- | indra/newview/llviewermessage.cpp | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 4e5655274d..4999ac000e 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -711,6 +711,18 @@ protected: } }; +class LLOpenTaskGroupOffer : public LLInventoryAddedObserver +{ +protected: + /*virtual*/ void done() + { + open_inventory_offer(mAdded, "group_offer"); + mAdded.clear(); + gInventory.removeObserver(this); + delete this; + } +}; + //one global instance to bind them LLOpenTaskOffer* gNewInventoryObserver=NULL; @@ -929,9 +941,6 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f case LLAssetType::AT_ANIMATION: LLFloaterReg::showInstance("preview_anim", LLSD(item_id), take_focus); break; - case LLAssetType::AT_GESTURE: - LLFloaterReg::showInstance("preview_gesture", LLSD(item_id), take_focus); - break; case LLAssetType::AT_SCRIPT: LLFloaterReg::showInstance("preview_script", LLSD(item_id), take_focus); break; @@ -1146,6 +1155,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& } break; case IM_GROUP_NOTICE: + opener = new LLOpenTaskGroupOffer; send_auto_receive_response(); break; case IM_TASK_INVENTORY_OFFERED: @@ -5360,8 +5370,24 @@ bool handle_lure_callback(const LLSD& notification, const LLSD& response) it != notification["payload"]["ids"].endArray(); ++it) { + LLUUID target_id = it->asUUID(); + msg->nextBlockFast(_PREHASH_TargetData); - msg->addUUIDFast(_PREHASH_TargetID, it->asUUID()); + msg->addUUIDFast(_PREHASH_TargetID, target_id); + + // Record the offer. + { + std::string target_name; + gCacheName->getFullName(target_id, target_name); + LLSD args; + args["TO_NAME"] = target_name; + + LLSD payload; + payload["from_id"] = target_id; + payload["SESSION_NAME"] = target_name; + payload["SUPPRESS_TOAST"] = true; + LLNotificationsUtil::add("TeleportOfferSent", args, payload); + } } gAgent.sendReliableMessage(); } |
