Repository navigation
fix(panel-extension): prevent nested converter settings from resetting - #1367
lucobellic wants to merge 4 commits into
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. WalkthroughThe panel extension adapter now accepts an optional updater for topic settings. The 3D renderer uses it to save topic changes immediately. The debounced save skips a configuration already saved immediately. ChangesNested topic settings
Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix Sequence Diagram(s)sequenceDiagram
participant PanelExtensionAdapter
participant ThreeDeeRender
participant SaveConfig
PanelExtensionAdapter->>ThreeDeeRender: Pass topic settings updater
ThreeDeeRender->>ThreeDeeRender: Apply settings through renderer.updateConfig
ThreeDeeRender->>SaveConfig: Save when topics reference changes
Suggested reviewers: Merge Risk:
|
d16f07f to
75d4bc5
Compare
|
Hi, CodeRabbit has suggested @ctw-joao-luis as a reviewer, but @rodrigo-p-rodrigues started reviewing the previous branch. This branch is no longer under active development, and CodeRabbit has already reviewed the latest commit (75d4bc5). Please let me know if any further changes are needed. Thanks! |
Direct layout saves can leave panel config stale and lose nested edits. Add an optional updater to updatePanelSettingsEditor so panels can apply converter edits to their own config. Keep the existing save fallback.
Prevent later camera or panel saves from resetting nested converter edits. Provide a settings updater that applies edits through renderer.updateConfig and immediately saves the resulting config to keep both copies in sync. Detect topic changes across both the scene and converter handlers so direct field edits are saved immediately, keeping displayed values in sync with the renderer config.
75d4bc5 to
d90096a
Compare
|
Branch rebased on develop to get the CI npm audit fix on Ubuntu to pass |
|



User-Facing Changes
Converter settings defined under
SettingsTreeNode.childrencan reset after camera movement or a later panel save.Description
lichtblick-settings-reset.mp4
From #1363 (comment):
The root cause is that converter edits update the saved layout but leave the 3D panel’s local config and
renderer.configstale.Any later panel save can therefore overwrite those edits.
Camera movement exposes this because it updates
cameraStatein the local config, then uses the panel’s shared save mechanism, which persists the full configuration.This fix routes converter edits through
renderer.updateConfig, which also synchronizes the panel’s local state throughconfigChange.That follows the renderer’s existing update flow and ensures subsequent panel saves preserve the edits, regardless of what triggers the save.
So this addresses the underlying state divergence, rather than adding a camera specific workaround for the symptom.
version: 1.29.1
Fix
Add an optional updater to
updatePanelSettingsEditor.The 3D panel uses it to apply edits through
renderer.updateConfigand immediately save the updated config.Other panels keep the existing save behavior.
Testing
Regression tests cover nested settings and persistence after a later save.
Example
Example of extension configuration
From the recording, add a cube with bottom and top texts
Let me know if you’d prefer that I open an issue so you can address the fix yourself.
Checklist
Summary by CodeRabbit