diff options
| author | Rider Linden <rider@lindenlab.com> | 2026-07-22 17:41:55 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-07-22 17:41:55 -0700 |
| commit | a6a2f98070cd55fcaadafc237bd0ffba9d466655 (patch) | |
| tree | 82f5444312786242e062de65ce6891213b032051 /indra/newview/llfloaterscripting.cpp | |
| parent | 8a22869dfad731f8cd9f4164a7a2b57cd70af51c (diff) | |
Publish object inventories to external editor. (#5834)
* Adding tight integration flag for vscode and open code through a URL.
* [WIP] Publish objects and their contents from the viewer into VS code.
* [WIP] Still very much a work in progress, supports most of the core operations publish, get, write, delete, and create. Still quite a few bugs to work out.
* [WIP] Object publishing checkpoint.
* [checkpoint] Script tight integration with vscode, object publishing.
* Number of fixed issue.
* A few redundancy and performance fixes.
* Some cosmetics.
* I like "Explore" better than "Publish"
* Object renaming, luau inventory icon, runstate, restart.
* Some clean up around permissions and possible nullptr deref.
* Code review feedback.
Diffstat (limited to 'indra/newview/llfloaterscripting.cpp')
| -rw-r--r-- | indra/newview/llfloaterscripting.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/indra/newview/llfloaterscripting.cpp b/indra/newview/llfloaterscripting.cpp index 0719ced58d..959d4eaeb4 100644 --- a/indra/newview/llfloaterscripting.cpp +++ b/indra/newview/llfloaterscripting.cpp @@ -42,6 +42,7 @@ #include "lleventcoro.h" #include "llviewermenufile.h" #include "llappviewer.h" +#include "llscripteditorws.h" namespace { @@ -82,10 +83,35 @@ LLFloaterScripting::LLFloaterScripting(const LLSD& seed) bool LLFloaterScripting::postBuild() { - refresh(); + // Subscribe to tight integration changes + mTightIntegrationConnection = gSavedSettings.getControl("ExternalEditorTightIntegration")->getSignal()->connect( + boost::bind(&LLFloaterScripting::onTightIntegrationChanged, this)); + + // Apply initial state + onTightIntegrationChanged(); + return true; } +LLFloaterScripting::~LLFloaterScripting() +{ + mTightIntegrationConnection.disconnect(); +} + +void LLFloaterScripting::onTightIntegrationChanged() +{ + bool tight = gSavedSettings.getBOOL("ExternalEditorTightIntegration"); + + // Force websocket on when tight integration is enabled + if (LLScriptEditorWSServer::isTightIntegration()) + { + gSavedSettings.setBOOL("ExternalWebsocketSyncEnable", true); + } + + // Disable websocket checkbox when tight integration is on + getChild<LLCheckBoxCtrl>("websocket_sync_enable")->setEnabled(!tight); +} + void LLFloaterScripting::onClickClose() { closeFloater(); |
