diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 7543752f888973903e99da835f365c01d7c0ac3e..ad9e9fa271f38282cd212c0c1a95b1f869da674f 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -9973,6 +9973,109 @@ class BDCheckGodStatus : public view_listener_t } }; +//BD - Tools - Scripts +// static +void script_recompile(bool mono) +{ + // [RLVa:KB] - Checked: 2010-04-19 (RLVa-1.2.0f) | Modified: RLVa-1.0.5a + // We'll allow resetting the scripts of objects on a non-attachable attach point since they wouldn't be able to circumvent anything + if ((rlv_handler_t::isEnabled()) && (gRlvAttachmentLocks.hasLockedAttachmentPoint(RLV_LOCK_REMOVE))) + { + LLObjectSelectionHandle hSel = LLSelectMgr::getInstance()->getSelection(); + RlvSelectHasLockedAttach f; + if ((hSel->isAttachment()) && (hSel->getFirstNode(&f) != NULL)) + return; + } + // [/RLVa:KB] + + std::string name = "compile_queue"; + std::string msg = "Recompile"; + std::string title = LLTrans::getString("CompileQueueTitle"); + LLUUID id; id.generate(); + + LLFloaterScriptQueue* queue = LLFloaterReg::getTypedInstance<LLFloaterScriptQueue>(name, LLSD(id)); + if (queue) + { + queue->setMono(mono); + if (queue_actions(queue, msg)) + { + queue->setTitle(title); + } + } + return; +} + +void script_reset() +{ + // [RLVa:KB] - Checked: 2010-04-19 (RLVa-1.2.0f) | Modified: RLVa-1.0.5a + // We'll allow resetting the scripts of objects on a non-attachable attach point since they wouldn't be able to circumvent anything + if ((rlv_handler_t::isEnabled()) && (gRlvAttachmentLocks.hasLockedAttachmentPoint(RLV_LOCK_REMOVE))) + { + LLObjectSelectionHandle hSel = LLSelectMgr::getInstance()->getSelection(); + RlvSelectHasLockedAttach f; + if ((hSel->isAttachment()) && (hSel->getFirstNode(&f) != NULL)) + return; + } + // [/RLVa:KB] + + bool mono = false; + std::string name = "reset_queue"; + std::string msg = "Reset"; + std::string title = LLTrans::getString("ResetQueueTitle"); + LLUUID id; id.generate(); + + LLFloaterScriptQueue* queue = LLFloaterReg::getTypedInstance<LLFloaterScriptQueue>(name, LLSD(id)); + if (queue) + { + queue->setMono(mono); + if (queue_actions(queue, msg)) + { + queue->setTitle(title); + } + } + return; +} + +void script_set_running(bool running) +{ + // [RLVa:KB] - Checked: 2010-04-19 (RLVa-1.2.0f) | Modified: RLVa-1.0.5a + // We'll allow resetting the scripts of objects on a non-attachable attach point since they wouldn't be able to circumvent anything + if ((rlv_handler_t::isEnabled()) && (gRlvAttachmentLocks.hasLockedAttachmentPoint(RLV_LOCK_REMOVE))) + { + LLObjectSelectionHandle hSel = LLSelectMgr::getInstance()->getSelection(); + RlvSelectHasLockedAttach f; + if ((hSel->isAttachment()) && (hSel->getFirstNode(&f) != NULL)) + return; + } + // [/RLVa:KB] + + std::string name, msg, title; + if (running) + { + name = "start_queue"; + msg = "SetRunning"; + title = LLTrans::getString("RunQueueTitle"); + } + else + { + name = "stop_queue"; + msg = "SetRunningNot"; + title = LLTrans::getString("NotRunQueueTitle"); + } + LLUUID id; id.generate(); + + LLFloaterScriptQueue* queue = LLFloaterReg::getTypedInstance<LLFloaterScriptQueue>(name, LLSD(id)); + if (queue) + { + queue->setMono(false); + if (queue_actions(queue, msg)) + { + queue->setTitle(title); + } + } + return; +} + void initialize_edit_menu() { @@ -10557,6 +10660,13 @@ void initialize_menus() // //BD - God/Dev check view_listener_t::addMenu(new BDCheckGodStatus(), "Dragon.EnableCheckGod"); +// //BD - Tools - Scripts + commit.add("Tools.RecompileMono", boost::bind(&script_recompile, true)); + commit.add("Tools.RecompileLSL", boost::bind(&script_recompile, false)); + commit.add("Tools.ResetScripts", boost::bind(&script_reset)); + commit.add("Tools.SetRunning", boost::bind(&script_set_running, true)); + commit.add("Tools.SetStopped", boost::bind(&script_set_running, false)); + // //BD - Functions commit.add("Dragon.CameraLock", boost::bind(&handle_camera_lock)); commit.add("Dragon.Default", boost::bind(&BDFunctions::resetToDefault, _1)); diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index 16692efcd51a715a1e2f9cf159a6e048ca54891f..ba577d112683ea2236e4ab5ef59bef2b3044179c 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -475,7 +475,7 @@ layout="topleft" left_pad="1" name="unlink_btn" - width="69"> + width="68"> <button.commit_callback function="BuildTool.UnlinkObjects"/> </button> @@ -2974,7 +2974,7 @@ the light into a projected light ) left="6" name="contents_inventory" top_pad="3" - width="278" /> + width="280" /> <button follows="left|top" height="25" @@ -2987,7 +2987,7 @@ the light into a projected light ) left="5" name="button new script" top_pad="5" - width="140" /> + width="123" /> <button follows="left|top" height="25" @@ -2998,7 +2998,22 @@ the light into a projected light ) layout="topleft" left_pad="1" name="button permissions" - width="139" /> + width="124" /> + <menu_button + follows="top|left" + menu_filename="menu_tools_scripts.xml" + menu_position="topright" + tool_tip="Show additional options" + height="25" + image_hover_unselected="Toolbar_Middle_Over" + image_overlay="OptionsMenu_Off" + image_selected="Toolbar_Middle_Selected" + image_unselected="Toolbar_Middle_Off" + layout="topleft" + left_pad="1" + name="options_gear_btn" + top_delta="0" + width="31"/> </panel> </tab_container> <panel diff --git a/indra/newview/skins/default/xui/en/menu_tools_scripts.xml b/indra/newview/skins/default/xui/en/menu_tools_scripts.xml new file mode 100644 index 0000000000000000000000000000000000000000..738aac81aa873ef0b1405aee5265afaa209c2814 --- /dev/null +++ b/indra/newview/skins/default/xui/en/menu_tools_scripts.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu + layout="topleft" + name="Scripts"> + <menu_item_call + label="Recompile Scripts (Mono)" + name="Mono"> + <menu_item_call.on_click + function="Tools.RecompileMono" /> + </menu_item_call> + <menu_item_call + label="Recompile Scripts (LSL)" + name="LSL"> + <menu_item_call.on_click + function="Tools.RecompileLSL"/> + </menu_item_call> + <menu_item_call + label="Reset Scripts" + name="Reset Scripts"> + <menu_item_call.on_click + function="Tools.ResetScripts" /> + </menu_item_call> + <menu_item_call + label="Set Scripts to Running" + name="Set Scripts to Running"> + <menu_item_call.on_click + function="Tools.SetRunning" /> + </menu_item_call> + <menu_item_call + label="Set Scripts to Not Running" + name="Set Scripts to Not Running"> + <menu_item_call.on_click + function="Tools.SetStopped" /> + </menu_item_call> +</toggleable_menu> \ No newline at end of file