diff options
| author | Rider Linden <rider@lindenlab.com> | 2026-08-13 09:03:27 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-13 09:03:27 -0700 |
| commit | c8730531ee1a030c4e71f2b7ddb7d3394c9af7b7 (patch) | |
| tree | bfbdb7e46233b91581db5b8ead7b4ac9a9c4e111 /indra/newview/llviewermenu.cpp | |
| parent | 21bb60fc65e7fa6c3cf472a29cda220f653af1d8 (diff) | |
| parent | 222f568123c0ac9b6e4ed7be0dae020c8cb3f832 (diff) | |
Merge pull request #6104 from secondlife/rider/explore_selection
Rider/explore selection
Diffstat (limited to 'indra/newview/llviewermenu.cpp')
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index dc509479c4..eaaa923b59 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -5136,6 +5136,31 @@ static void derez_objects(EDeRezDestination dest, const LLUUID& dest_id) derez_objects(dest, dest_id, first_region, error, NULL); } +bool save_object_back_to_contents(LLViewerObject* object, const LLUUID& source_task_id) +{ + if (!object || source_task_id.isNull()) + { + return false; + } + + LLViewerRegion* first_region = object->getRegion(); + if (!first_region) + { + return false; + } + + std::vector<LLViewerObjectPtr> objects; + objects.push_back(object); + + std::string error; + derez_objects(DRD_SAVE_INTO_TASK_INVENTORY, source_task_id, first_region, error, &objects); + if (!error.empty()) + { + return false; + } + return true; +} + static void derez_objects_separate(EDeRezDestination dest, const LLUUID &dest_id) { std::vector<LLViewerObjectPtr> derez_object_list; @@ -5710,10 +5735,13 @@ class LLToolsSaveToObjectInventory : public view_listener_t bool handleEvent(const LLSD& userdata) { LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode(); - if(node && (node->mValid) && (!node->mFromTaskID.isNull())) + if (node && node->mValid && !node->mFromTaskID.isNull()) { - // *TODO: check to see if the fromtaskid object exists. - derez_objects(DRD_SAVE_INTO_TASK_INVENTORY, node->mFromTaskID); + LLViewerObject* object = node->getObject(); + if (object) + { + save_object_back_to_contents(object, node->mFromTaskID); + } } return true; } |
