Layer Editor Unification#4653
Open
deboisj wants to merge 273 commits into
Open
Conversation
Tasks 7-9 of the USD Layer Editor migration plan: stand up the Maya-side plumbing for the shared lib/usdUfe/usd-layer-editor/ test suite so the same DCC-agnostic UsdLayerEditorTest runs in Maya the way it does in 3dsmax. - lib/usdUfe/usd-layer-editor/test/mayaLayerEditorTestSetup.py: binds the five DCC hooks (_createStage, _resetScene, _undo, _redo, _openStageLayerEditor) to Maya equivalents using mayaUsd_createStageWithNewLayer / mayaUsdProxyShape + cmds.mayaUsdLayerEditorWindow. Mirrors max_layer_editor_test_setup.py. - lib/usdUfe/usd-layer-editor/test/testMayaUsdSharedLayerEditor.py: thin ctest wrapper. Prepends its own directory to sys.path so layer_editor_test and mayaLayerEditorTestSetup resolve, calls setup(), and re-exports UsdLayerEditorTest so unittest discovery picks up every test_* method. - test/lib/CMakeLists.txt: registers the wrapper under BUILD_NEW_LAYER_EDITOR as an interactive Maya test, with WORKING_DIRECTORY and PYTHONPATH pointing at the shared component's test directory (the script lives outside test/lib). Verified end-to-end: configure (exit 0), build (exit 0), and ctest -R SharedLayerEditor discovers and launches Maya which loads mayaLayerEditorTestSetup successfully. The shared layer_editor_test.py currently fails on `import UsdLayerEditor` because the shared component's python bindings (lib/usdUfe/usd-layer-editor/python/) are not yet wired into the build — that gap is migration content tracked separately. eComponents, kToExportTheStageSaveComponents Resolves all ~32 needs-port-file rows and all 10 component-creator pending rows in MIGRATION.md. f0 (Add banner for EF), 32d2d8d (UX color), c985a4f (EMSUSD-3687 moved comments), 60cf0f2 (EMSUSD-3687 fix layer-editor-crash), 7f4b4cf (want echo), plus merge commits 93f72d1 and d29de84. itorWidget)
Hooks lib/usdUfe/usd-layer-editor/python/ into the build under BUILD_NEW_LAYER_EDITOR. The Python module installs alongside usdUfe's bindings so 'import UsdLayerEditor' resolves from Maya's PYTHONPATH. Setup.py: binds the five DCC hooks (_createStage, _resetScene, _undo, _redo, _openStageLayerEditor) to Maya equivalents using mayaUsd_createStageWithNewLayer / mayaUsdProxyShape + cmds.mayaUsdLayerEditorWindow. Mirrors max_layer_editor_test_setup.py. - lib/usdUfe/usd-layer-editor/test/testMayaUsdSharedLayerEditor.py: thin ctest wrapper. Prepends its own directory to sys.path so layer_editor_test and mayaLayerEditorTestSetup resolve, calls setup(), and re-exports UsdLayerEditorTest so unittest discovery picks up every test_* method. - test/lib/CMakeLists.txt: registers the wrapper under BUILD_NEW_LAYER_EDITOR as an interactive Maya test, with WORKING_DIRECTORY and PYTHONPATH pointing at the shared component's test directory (the script lives outside test/lib). Verified end-to-end: configure (exit 0), build (exit 0), and ctest -R SharedLayerEditor discovers and launches Maya which loads mayaLayerEditorTestSetup successfully. The shared layer_editor_test.py currently fails on `import UsdLayerEditor` because the shared component's python bindings (lib/usdUfe/usd-layer-editor/python/) are not yet wired into the build — that gap is migration content tracked separately. eComponents, kToExportTheStageSaveComponents Resolves all ~32 needs-port-file rows and all 10 component-creator pending rows in MIGRATION.md. f0 (Add banner for EF), 32d2d8d (UX color), c985a4f (EMSUSD-3687 moved comments), 60cf0f2 (EMSUSD-3687 fix layer-editor-crash), 7f4b4cf (want echo), plus merge commits 93f72d1 and d29de84. itorWidget) k.h
unittest.main() parses sys.argv which Maya populates with the giant '-c "python(...)"' wrapper string, causing unittest to try loading the entire script as a test name. Switch to fixturesUtils.runTests(globals()) which matches the pattern used by every other Maya unittest in this repo — loads tests from the module namespace, runs via TextTestRunner, flushes streams, and propagates a proper exit code. ape + cmds.mayaUsdLayerEditorWindow. Mirrors max_layer_editor_test_setup.py. - lib/usdUfe/usd-layer-editor/test/testMayaUsdSharedLayerEditor.py: thin ctest wrapper. Prepends its own directory to sys.path so layer_editor_test and mayaLayerEditorTestSetup resolve, calls setup(), and re-exports UsdLayerEditorTest so unittest discovery picks up every test_* method. - test/lib/CMakeLists.txt: registers the wrapper under BUILD_NEW_LAYER_EDITOR as an interactive Maya test, with WORKING_DIRECTORY and PYTHONPATH pointing at the shared component's test directory (the script lives outside test/lib). Verified end-to-end: configure (exit 0), build (exit 0), and ctest -R SharedLayerEditor discovers and launches Maya which loads mayaLayerEditorTestSetup successfully. The shared layer_editor_test.py currently fails on `import UsdLayerEditor` because the shared component's python bindings (lib/usdUfe/usd-layer-editor/python/) are not yet wired into the build — that gap is migration content tracked separately. eComponents, kToExportTheStageSaveComponents Resolves all ~32 needs-port-file rows and all 10 component-creator pending rows in MIGRATION.md. f0 (Add banner for EF), 32d2d8d (UX color), c985a4f (EMSUSD-3687 moved comments), 60cf0f2 (EMSUSD-3687 fix layer-editor-crash), 7f4b4cf (want echo), plus merge commits 93f72d1 and d29de84. itorWidget)
The shared layer_editor_test.py used ufe.UndoableCommandMgr.executeCmd() throughout. That works in 3dsmax (pybind11) but fails in Maya because UsdLayerEditor's commands are bound with boost.python while UFE is pybind11, and the two systems do not share class hierarchies. - layer_editor_test.py: declare a new _executeCmd staticmethod on UsdLayerEditorTest (must be set by the DCC setup). Replace all 111 call sites of mgr.executeCmd(...) with UsdLayerEditorTest._executeCmd(...). - mayaLayerEditorTestSetup.py: provide a Maya implementation that wraps cmd.execute() in an MEL undo chunk. (3dsmax's setup should delegate to ufe.UndoableCommandMgr.instance().executeCmd; that change lives in the 3dsmax repo.) With this in place the shared test suite runs 32 tests in ~15s from Maya. The remaining failures are real behavior gaps — most around undo because cmd.execute() in Maya does not register with the MEL undo stack the same way a UFE-managed command would. cript lives outside test/lib). Verified end-to-end: configure (exit 0), build (exit 0), and ctest -R SharedLayerEditor discovers and launches Maya which loads mayaLayerEditorTestSetup successfully. The shared layer_editor_test.py currently fails on `import UsdLayerEditor` because the shared component's python bindings (lib/usdUfe/usd-layer-editor/python/) are not yet wired into the build — that gap is migration content tracked separately. eComponents, kToExportTheStageSaveComponents Resolves all ~32 needs-port-file rows and all 10 component-creator pending rows in MIGRATION.md. f0 (Add banner for EF), 32d2d8d (UX color), c985a4f (EMSUSD-3687 moved comments), 60cf0f2 (EMSUSD-3687 fix layer-editor-crash), 7f4b4cf (want echo), plus merge commits 93f72d1 and d29de84. itorWidget)
Most of the shared layer_editor_test.py suite relies on ufe.UndoableCommandMgr.executeCmd() which crosses the boost.python <-> pybind11 boundary. The Maya-side _executeCmd hook bypasses UFE's undo manager (calls cmd.execute() directly), so undo-driven tests fail. Gate the registration on a new ENABLE_SHARED_LAYER_EDITOR_TESTS option (default OFF) so the wrapper stays in tree and can be re-enabled once the binding story is resolved (e.g. pybind11 conversion of UsdLayerEditor commands). ation that wraps cmd.execute() in an MEL undo chunk. (3dsmax's setup should delegate to ufe.UndoableCommandMgr.instance().executeCmd; that change lives in the 3dsmax repo.) With this in place the shared test suite runs 32 tests in ~15s from Maya. The remaining failures are real behavior gaps — most around undo because cmd.execute() in Maya does not register with the MEL undo stack the same way a UFE-managed command would. cript lives outside test/lib). Verified end-to-end: configure (exit 0), build (exit 0), and ctest -R SharedLayerEditor discovers and launches Maya which loads mayaLayerEditorTestSetup successfully. The shared layer_editor_test.py currently fails on `import UsdLayerEditor` because the shared component's python bindings (lib/usdUfe/usd-layer-editor/python/) are not yet wired into the build — that gap is migration content tracked separately. eComponents, kToExportTheStageSaveComponents Resolves all ~32 needs-port-file rows and all 10 component-creator pending rows in MIGRATION.md. f0 (Add banner for EF), 32d2d8d (UX color), c985a4f (EMSUSD-3687 moved comments), 60cf0f2 (EMSUSD-3687 fix layer-editor-crash), 7f4b4cf (want echo), plus merge commits 93f72d1 and d29de84. itorWidget)
Restores layer reorder via drag-and-drop in the shared usd-layer-editor:
- LayerTreeModel::flags() now returns ItemIsDragEnabled / ItemIsDropEnabled
based on LayerTreeItem::isMovable() rather than unconditionally stripping
drag/drop flags. The TODO LE-EXTRACT placeholder is removed.
- LayerTreeModel::supportedDropActions() returns Qt::MoveAction instead of
Qt::IgnoreAction so InternalMove drag operations can complete and
dropMimeData() -> commandHook()->moveSubLayerPath() actually runs.
Also fixes a latent typo in two places where the save-confirmation guard
called Options::optionVarExists() twice instead of evaluating the int
value. Without this fix, the second clause was always non-zero whenever
the option var existed, so the confirmation dialog could fire even when
the user had disabled it.
Files: layerTreeModel.cpp (flags/supportedDropActions/saveStage),
layerTreeItem.cpp (saveEdits).
d-By: Claude Sonnet 4.6 <noreply@anthropic.com>
cript lives outside test/lib).
Verified end-to-end: configure (exit 0), build (exit 0), and ctest -R
SharedLayerEditor discovers and launches Maya which loads
mayaLayerEditorTestSetup successfully. The shared layer_editor_test.py
currently fails on `import UsdLayerEditor` because the shared component's
python bindings (lib/usdUfe/usd-layer-editor/python/) are not yet wired
into the build — that gap is migration content tracked separately.
eComponents,
kToExportTheStageSaveComponents
Resolves all ~32 needs-port-file rows and all 10 component-creator
pending rows in MIGRATION.md.
f0 (Add banner for EF), 32d2d8d (UX color), c985a4f
(EMSUSD-3687 moved comments), 60cf0f2 (EMSUSD-3687 fix
layer-editor-crash), 7f4b4cf (want echo), plus merge commits
93f72d1 and d29de84.
itorWidget)
Brings LayerEditorWindow::buildContextMenu into alignment with mayaUsdMenu_layerEditorContextMenu (the MEL-based Maya context menu): - Add session-layer guard: Save/SaveAs not shown for session layer - Add anonymous-layer locked check to Save enable condition - Add "Add Parent Layer" item (was a TODO) - Add "Lock Layer and Sublayers" item (was a TODO) - Add "Select Prims with Spec" item (function existed but wasn't wired) - Add protected virtual addDCCContextMenuItems() hook for DCC-specific items such as "Select Incoming Node" in Maya - Reorder items to match Maya: Save/Reload | sep | AddSublayer/ AddParentLayer/LoadSublayers/Stitch/Merge | sep | Mute/Lock/ LockSubs/Print | sep | SelectPrimsWithSpec/[DCC] | sep | Remove/Clear - Fix AddSublayer enable: remove singleSelect requirement (matches Maya) - Fix StitchLayers enable: use !isLocked instead of !appearsLocked - Add proper separators between groups - Add QMenu include to .cpp and forward declaration to header test/lib). Verified end-to-end: configure (exit 0), build (exit 0), and ctest -R SharedLayerEditor discovers and launches Maya which loads mayaLayerEditorTestSetup successfully. The shared layer_editor_test.py currently fails on `import UsdLayerEditor` because the shared component's python bindings (lib/usdUfe/usd-layer-editor/python/) are not yet wired into the build — that gap is migration content tracked separately. eComponents, kToExportTheStageSaveComponents Resolves all ~32 needs-port-file rows and all 10 component-creator pending rows in MIGRATION.md. f0 (Add banner for EF), 32d2d8d (UX color), c985a4f (EMSUSD-3687 moved comments), 60cf0f2 (EMSUSD-3687 fix layer-editor-crash), 7f4b4cf (want echo), plus merge commits 93f72d1 and d29de84. itorWidget) egate.h
The MEL layerEditorContextMenu used getMayaUsdString("kMenuStitchLayers")
for the multi-select Stitch Layers item but the key was never added to
mayaUSDRegisterStrings.py, causing Maya to throw a resource-lookup error
each time the context menu opened with multiple layers selected.
was a TODO)
- Add "Select Prims with Spec" item (function existed but wasn't wired)
- Add protected virtual addDCCContextMenuItems() hook for DCC-specific
items such as "Select Incoming Node" in Maya
- Reorder items to match Maya: Save/Reload | sep | AddSublayer/
AddParentLayer/LoadSublayers/Stitch/Merge | sep | Mute/Lock/
LockSubs/Print | sep | SelectPrimsWithSpec/[DCC] | sep | Remove/Clear
- Fix AddSublayer enable: remove singleSelect requirement (matches Maya)
- Fix StitchLayers enable: use !isLocked instead of !appearsLocked
- Add proper separators between groups
- Add QMenu include to .cpp and forward declaration to header
test/lib).
Verified end-to-end: configure (exit 0), build (exit 0), and ctest -R
SharedLayerEditor discovers and launches Maya which loads
mayaLayerEditorTestSetup successfully. The shared layer_editor_test.py
currently fails on `import UsdLayerEditor` because the shared component's
python bindings (lib/usdUfe/usd-layer-editor/python/) are not yet wired
into the build — that gap is migration content tracked separately.
eComponents,
kToExportTheStageSaveComponents
Resolves all ~32 needs-port-file rows and all 10 component-creator
pending rows in MIGRATION.md.
f0 (Add banner for EF), 32d2d8d (UX color), c985a4f
(EMSUSD-3687 moved comments), 60cf0f2 (EMSUSD-3687 fix
layer-editor-crash), 7f4b4cf (want echo), plus merge commits
93f72d1 and d29de84.
itorWidget)
The shared component's drag-and-drop layer reorder (LayerTreeModel:: dropMimeData) calls moveSubLayerPath, but UfeCommandHook had only a TODO stub — so every drop silently did nothing. Implement it as a RemoveSubPathCmd on the old parent followed by an InsertSubPathCmd on the new parent at the target index. Both commands are appended via AppendOrExecuteCommand, which adds them to the open composite from the UndoContext in dropMimeData, making the whole move a single undoable operation. ms to match Maya: Save/Reload | sep | AddSublayer/ AddParentLayer/LoadSublayers/Stitch/Merge | sep | Mute/Lock/ LockSubs/Print | sep | SelectPrimsWithSpec/[DCC] | sep | Remove/Clear - Fix AddSublayer enable: remove singleSelect requirement (matches Maya) - Fix StitchLayers enable: use !isLocked instead of !appearsLocked - Add proper separators between groups - Add QMenu include to .cpp and forward declaration to header test/lib). Verified end-to-end: configure (exit 0), build (exit 0), and ctest -R SharedLayerEditor discovers and launches Maya which loads mayaLayerEditorTestSetup successfully. The shared layer_editor_test.py currently fails on `import UsdLayerEditor` because the shared component's python bindings (lib/usdUfe/usd-layer-editor/python/) are not yet wired into the build — that gap is migration content tracked separately. eComponents, kToExportTheStageSaveComponents Resolves all ~32 needs-port-file rows and all 10 component-creator pending rows in MIGRATION.md. f0 (Add banner for EF), 32d2d8d (UX color), c985a4f (EMSUSD-3687 moved comments), 60cf0f2 (EMSUSD-3687 fix layer-editor-crash), 7f4b4cf (want echo), plus merge commits 93f72d1 and d29de84. itorWidget) pp egate.h
Spec covers dual-target (old + new editor) GTest+QTest approach, stub design, fixture, and 23 test cases across buttons, context menu, drag-drop reorder, and window menus/stage selector. he old parent followed by an InsertSubPathCmd on the new parent at the target index. Both commands are appended via AppendOrExecuteCommand, which adds them to the open composite from the UndoContext in dropMimeData, making the whole move a single undoable operation. ms to match Maya: Save/Reload | sep | AddSublayer/ AddParentLayer/LoadSublayers/Stitch/Merge | sep | Mute/Lock/ LockSubs/Print | sep | SelectPrimsWithSpec/[DCC] | sep | Remove/Clear - Fix AddSublayer enable: remove singleSelect requirement (matches Maya) - Fix StitchLayers enable: use !isLocked instead of !appearsLocked - Add proper separators between groups - Add QMenu include to .cpp and forward declaration to header test/lib). Verified end-to-end: configure (exit 0), build (exit 0), and ctest -R SharedLayerEditor discovers and launches Maya which loads mayaLayerEditorTestSetup successfully. The shared layer_editor_test.py currently fails on `import UsdLayerEditor` because the shared component's python bindings (lib/usdUfe/usd-layer-editor/python/) are not yet wired into the build — that gap is migration content tracked separately. eComponents, kToExportTheStageSaveComponents Resolves all ~32 needs-port-file rows and all 10 component-creator pending rows in MIGRATION.md. f0 (Add banner for EF), 32d2d8d (UX color), c985a4f (EMSUSD-3687 moved comments), 60cf0f2 (EMSUSD-3687 fix layer-editor-crash), 7f4b4cf (want echo), plus merge commits 93f72d1 and d29de84. itorWidget)
Creates CMake infrastructure for UsdLayerEditorOldTests and UsdLayerEditorNewTests with empty source placeholders. stage selector. he old parent followed by an InsertSubPathCmd on the new parent at the target index. Both commands are appended via AppendOrExecuteCommand, which adds them to the open composite from the UndoContext in dropMimeData, making the whole move a single undoable operation. ms to match Maya: Save/Reload | sep | AddSublayer/ AddParentLayer/LoadSublayers/Stitch/Merge | sep | Mute/Lock/ LockSubs/Print | sep | SelectPrimsWithSpec/[DCC] | sep | Remove/Clear - Fix AddSublayer enable: remove singleSelect requirement (matches Maya) - Fix StitchLayers enable: use !isLocked instead of !appearsLocked - Add proper separators between groups - Add QMenu include to .cpp and forward declaration to header test/lib). Verified end-to-end: configure (exit 0), build (exit 0), and ctest -R SharedLayerEditor discovers and launches Maya which loads mayaLayerEditorTestSetup successfully. The shared layer_editor_test.py currently fails on `import UsdLayerEditor` because the shared component's python bindings (lib/usdUfe/usd-layer-editor/python/) are not yet wired into the build — that gap is migration content tracked separately. eComponents, kToExportTheStageSaveComponents Resolves all ~32 needs-port-file rows and all 10 component-creator pending rows in MIGRATION.md. f0 (Add banner for EF), 32d2d8d (UX color), c985a4f (EMSUSD-3687 moved comments), 60cf0f2 (EMSUSD-3687 fix layer-editor-crash), 7f4b4cf (want echo), plus merge commits 93f72d1 and d29de84. itorWidget)
ent followed by an InsertSubPathCmd on the new parent at the target index. Both commands are appended via AppendOrExecuteCommand, which adds them to the open composite from the UndoContext in dropMimeData, making the whole move a single undoable operation. ms to match Maya: Save/Reload | sep | AddSublayer/ AddParentLayer/LoadSublayers/Stitch/Merge | sep | Mute/Lock/ LockSubs/Print | sep | SelectPrimsWithSpec/[DCC] | sep | Remove/Clear - Fix AddSublayer enable: remove singleSelect requirement (matches Maya) - Fix StitchLayers enable: use !isLocked instead of !appearsLocked - Add proper separators between groups - Add QMenu include to .cpp and forward declaration to header test/lib). Verified end-to-end: configure (exit 0), build (exit 0), and ctest -R SharedLayerEditor discovers and launches Maya which loads mayaLayerEditorTestSetup successfully. The shared layer_editor_test.py currently fails on `import UsdLayerEditor` because the shared component's python bindings (lib/usdUfe/usd-layer-editor/python/) are not yet wired into the build — that gap is migration content tracked separately. eComponents, kToExportTheStageSaveComponents Resolves all ~32 needs-port-file rows and all 10 component-creator pending rows in MIGRATION.md. f0 (Add banner for EF), 32d2d8d (UX color), c985a4f (EMSUSD-3687 moved comments), 60cf0f2 (EMSUSD-3687 fix layer-editor-crash), 7f4b4cf (want echo), plus merge commits 93f72d1 and d29de84. itorWidget) pp egate.h
hropic.com> com>
Binary compiles and runs 4 placeholder tests.
- StubCommandHook: use MayaUsd::LayerLockType (not bare LayerLockType), fix lockLayer body to call MayaUsd::lockLayer, add missing pure virtuals isProxyShapeStageIncoming / isProxyShapeSharedStage - StubCommandHook: fix include path (mayaUsd/utils/layerLocking.h) - StubSessionState: remove non-existent overrides (selectedStages, refreshCurrentStageEntry, refreshStageEntry not in SessionState base), fix _dccObjectPath -> _proxyShapePath in makeEntry
Both UsdLayerEditorOldTests and UsdLayerEditorNewTests share the same stub files but compile against different AbstractCommandHook bases: - Old: MayaUsd::LayerLockType, isProxyShape* pure virtuals - New: UsdLayerEditor::LayerLockType, refreshCurrentStageEntry / selectedStages pure virtuals, _dccObjectPath in StageEntry Use include-guard ifdefs (USDLAYEREDITOR_ABSTRACTCOMMANDHOOK_H / USDLAYEREDITOR_SESSIONSTATE_H) to resolve the incompatible APIs. Remove explicit <mayaUsd/utils/layerLocking.h> include from stub — the lockLayer body no longer mutates lock state (records call only).
- Add MAYA_INCLUDE_DIRS to UsdLayerEditorOldTests so that the include chain through old abstractCommandHook.h → mayaUsd/utils/layerLocking.h → mayaUsd/nodes/proxyShapeBase.h → maya/MBoundingBox.h resolves correctly. - Remove Qt::Test from both targets; no QTest:: API is used, only QApplication::processEvents() which is part of Qt::Widgets. the incompatible APIs. Remove explicit <mayaUsd/utils/layerLocking.h> include from stub — the lockLayer body no longer mutates lock state (records call only).
stringResources.cpp (from the old layer editor) uses MStringResourceId, MStringResource, MString, and MQtUtil which are provided by Foundation, OpenMaya, and OpenMayaUI. Add those libraries to UsdLayerEditorOldTests so it links cleanly without needing the full mayaUsdUI library. which is part of Qt::Widgets. the incompatible APIs. Remove explicit <mayaUsd/utils/layerLocking.h> include from stub — the lockLayer body no longer mutates lock state (records call only).
The old layer editor sources (lib/usd/ui/layerEditor/) are tightly coupled to mayaUsdUI — they depend on MayaUsdOptionVars, ComponentUtils, UsdMayaUtilFileSystem, UsdMayaUtil, and more. These can't be linked without pulling in essentially all of mayaUsdUI, defeating the goal of a standalone test. UsdLayerEditorLib is the DCC-agnostic component designed for standalone testing. Keep only UsdLayerEditorNewTests (gated on BUILD_NEW_LAYER_EDITOR) and remove the old target entirely. es lock state (records call only).
UsdLayerEditorOldTests is gone; only NewTests remains. Drop all #ifdef USDLAYEREDITOR_ABSTRACTCOMMANDHOOK_H / USDLAYEREDITOR_SESSIONSTATE_H guards — use the new-component API unconditionally (LayerLockType, _dccObjectPath, selectedStages/refreshCurrentStageEntry/refreshStageEntry with override). igned for standalone testing. Keep only UsdLayerEditorNewTests (gated on BUILD_NEW_LAYER_EDITOR) and remove the old target entirely. es lock state (records call only).
DPIScale() dereferences the QtUtils singleton (getQtUtils()), which was null because initializeQtUtils() was never called in the test harness. In production the plugin loader calls it; tests must do it explicitly. Also add autoObserveUfeSelection()->false in StubSessionState and isDccObjectSharedStage()->false in StubCommandHook to avoid UFE initialization and unnecessary layer-iteration in updateButtons(). tirely. es lock state (records call only).
Replaces all placeholder TEST_F bodies with real test logic across four files (testButtons, testContextMenu, testReorder, testMenusAndStage). Adds StubLayerEditorWindow to wrap LayerEditorWidget and expose the action methods (addAnonymousSublayer, muteLayer, lockLayer, etc.) needed for direct invocation without going through QMenu::exec(). Updates testFixture to use StubLayerEditorWindow, adds selectRow() helper, and corrects sessionLayerIndex / firstSublayerIndex to reflect the actual tree structure. All 23 tests pass. By: Claude Sonnet 4.6 <noreply@anthropic.com>
File-by-file audit of old in-tree layer editor to produce GTests verifying the new shareable implementation (UsdLayerEditorNewTests) reproduces every significant behavior. Covers 12 test files, ~172 new tests across state queries, model rebuild, drag-drop, memento, dialogs, locking, and muting. . Updates testFixture to use StubLayerEditorWindow, adds selectRow() helper, and corrects sessionLayerIndex / firstSublayerIndex to reflect the actual tree structure. All 23 tests pass. By: Claude Sonnet 4.6 <noreply@anthropic.com>
Phase 1: generate all tests and build. Phase 2: triage every failing test (old code excerpt + new code excerpt + assessment) and present to user before making any changes to new-editor code or test code. , locking, and muting. . Updates testFixture to use StubLayerEditorWindow, adds selectRow() helper, and corrects sessionLayerIndex / firstSublayerIndex to reflect the actual tree structure. All 23 tests pass. By: Claude Sonnet 4.6 <noreply@anthropic.com>
ith triage gate Phase 1: generate all tests and build. Phase 2: triage every failing test (old code excerpt + new code excerpt + assessment) and present to user before making any changes to new-editor code or test code. , locking, and muting. . Updates testFixture to use StubLayerEditorWindow, adds selectRow() helper, and corrects sessionLayerIndex / firstSublayerIndex to reflect the actual tree structure. All 23 tests pass. By: Claude Sonnet 4.6 <noreply@anthropic.com>
New test files: - testUtils.h: shared inline helpers (makeStageWithSublayer, makeDirty, lockLayerDirect, dismissNextModal) - testLayerTreeItem.cpp: 30 state query tests (mute, lock, systemlock, movable, dirty, etc.) - testLayerTreeModel.cpp: 20 tests (flags, MIME, rebuild, filtering, setEditTarget guards) - testLayerTreeView.cpp: 17 tests (memento, double-click, mute/lock dispatch, delegate geometry) - testLayerContentsWidget.cpp: 7 tests (setLayer, isEmpty, exportPseudoLayer) - testSaveLayersDialog.cpp: 11 tests (construction, buttons, checkbox, exec) - testLoadLayersDialog.cpp: 8 tests (construction, line edits, buttons, scroll area) - testLayerLocking.cpp: 13 tests (lock/unlock/systemlock transitions, forget) - testLayerMuting.cpp: 8 tests (mute/unmute, retained-layer list) Expanded test files: - testReorder.cpp: +9 canDropMimeData/drop ordering tests - testButtons.cpp: +8 new/save/load button enable-disable matrix tests - testContextMenu.cpp: +11 clearLayer/merge/discard/setEditTarget guard tests - testMenusAndStage.cpp: +5 stage count/add/content-toggle tests CMakeLists.txt: all new files wired into UsdLayerEditorNewTests target
…e PXR_NS:: prefix; replace protected method calls with public equivalents irty, lockLayerDirect, dismissNextModal) - testLayerTreeItem.cpp: 30 state query tests (mute, lock, systemlock, movable, dirty, etc.) - testLayerTreeModel.cpp: 20 tests (flags, MIME, rebuild, filtering, setEditTarget guards) - testLayerTreeView.cpp: 17 tests (memento, double-click, mute/lock dispatch, delegate geometry) - testLayerContentsWidget.cpp: 7 tests (setLayer, isEmpty, exportPseudoLayer) - testSaveLayersDialog.cpp: 11 tests (construction, buttons, checkbox, exec) - testLoadLayersDialog.cpp: 8 tests (construction, line edits, buttons, scroll area) - testLayerLocking.cpp: 13 tests (lock/unlock/systemlock transitions, forget) - testLayerMuting.cpp: 8 tests (mute/unmute, retained-layer list) Expanded test files: - testReorder.cpp: +9 canDropMimeData/drop ordering tests - testButtons.cpp: +8 new/save/load button enable-disable matrix tests - testContextMenu.cpp: +11 clearLayer/merge/discard/setEditTarget guard tests - testMenusAndStage.cpp: +5 stage count/add/content-toggle tests CMakeLists.txt: all new files wired into UsdLayerEditorNewTests target
…vate exportPseudoLayer tests otected method calls with public equivalents irty, lockLayerDirect, dismissNextModal) - testLayerTreeItem.cpp: 30 state query tests (mute, lock, systemlock, movable, dirty, etc.) - testLayerTreeModel.cpp: 20 tests (flags, MIME, rebuild, filtering, setEditTarget guards) - testLayerTreeView.cpp: 17 tests (memento, double-click, mute/lock dispatch, delegate geometry) - testLayerContentsWidget.cpp: 7 tests (setLayer, isEmpty, exportPseudoLayer) - testSaveLayersDialog.cpp: 11 tests (construction, buttons, checkbox, exec) - testLoadLayersDialog.cpp: 8 tests (construction, line edits, buttons, scroll area) - testLayerLocking.cpp: 13 tests (lock/unlock/systemlock transitions, forget) - testLayerMuting.cpp: 8 tests (mute/unmute, retained-layer list) Expanded test files: - testReorder.cpp: +9 canDropMimeData/drop ordering tests - testButtons.cpp: +8 new/save/load button enable-disable matrix tests - testContextMenu.cpp: +11 clearLayer/merge/discard/setEditTarget guard tests - testMenusAndStage.cpp: +5 stage count/add/content-toggle tests CMakeLists.txt: all new files wired into UsdLayerEditorNewTests target
876036 -0400 Merge remote-tracking branch 'upstream/dev' into deboisj/unify_layer_editor_review kQACksGu6ycD7dV7/lRp4Guvvj KVCsT9UwEthfdkPDMfa7G3i+9GSacK733THUcJppZK+4DM2m8PbSiP0pj/dSaElf iaICFZ7H2KJ6tTashv3bQPy6Z7mn4slht5L+66l+D4rWifT8QB1CXj2z2cgZ+2NX oc1LH6nKO6HKmq8crOB63Yb8O81jLOWCJoYt40nrlxy1SWqIJpMNnV2mj+1xAnUI 9n1h3qJb4+Jauu4zH+JPds/dewJ+3sLwKSF5q8BdLb8XmHckHG2ajvXmpZAJg6Rk vtkQDip8Viem0NpWOsVRVuQxOeqLs1UXhZt5e3bZ5txHR5L5PiHeb0rrphZ7b57w 50zBFPlKnP/+noIbMBtPBSUkw9B0lQFNVvxjamQic2Zga23J5+dcJ1Qf9J1tVbf+ hDOY1r3vxFU1PnDPvJjTgsA0ATH+P33Z1wQ4lYNaENo2iT+nbccq/fOusSNzsBdl iK2auWyxHX4P21ZpsZlICRgSkUn68Ncn0dJIUA6grewUAGxoBGkGHQ17FTTxWtXe XaZ3WpikFeNcRS89DayGpcjnj9UzSco2L0ZrudCLh/ltNDrxlk4tpQQrMep+0aI+ B/oIBncZS8y4IZAKdDm5pqJtGaYulqwYHAXL41QyAv/QEg+sA20KLSRKVIaQz7CK kq12Y3YgiDpN7fbCmJx/ =2NPd -----END PGP SIGNATURE----- Merge pull request #4651 from Autodesk/barbalt/dev/EMSUSD-3311-remove-opinion EMSUSD-3311 - Add remove opinion + undoENEITEM_HAS_METADATA is no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> hropic.com>
om shared LE 876036 -0400 Merge remote-tracking branch 'upstream/dev' into deboisj/unify_layer_editor_review kQACksGu6ycD7dV7/lRp4Guvvj KVCsT9UwEthfdkPDMfa7G3i+9GSacK733THUcJppZK+4DM2m8PbSiP0pj/dSaElf iaICFZ7H2KJ6tTashv3bQPy6Z7mn4slht5L+66l+D4rWifT8QB1CXj2z2cgZ+2NX oc1LH6nKO6HKmq8crOB63Yb8O81jLOWCJoYt40nrlxy1SWqIJpMNnV2mj+1xAnUI 9n1h3qJb4+Jauu4zH+JPds/dewJ+3sLwKSF5q8BdLb8XmHckHG2ajvXmpZAJg6Rk vtkQDip8Viem0NpWOsVRVuQxOeqLs1UXhZt5e3bZ5txHR5L5PiHeb0rrphZ7b57w 50zBFPlKnP/+noIbMBtPBSUkw9B0lQFNVvxjamQic2Zga23J5+dcJ1Qf9J1tVbf+ hDOY1r3vxFU1PnDPvJjTgsA0ATH+P33Z1wQ4lYNaENo2iT+nbccq/fOusSNzsBdl iK2auWyxHX4P21ZpsZlICRgSkUn68Ncn0dJIUA6grewUAGxoBGkGHQ17FTTxWtXe XaZ3WpikFeNcRS89DayGpcjnj9UzSco2L0ZrudCLh/ltNDrxlk4tpQQrMep+0aI+ B/oIBncZS8y4IZAKdDm5pqJtGaYulqwYHAXL41QyAv/QEg+sA20KLSRKVIaQz7CK kq12Y3YgiDpN7fbCmJx/ =2NPd -----END PGP SIGNATURE----- Merge pull request #4651 from Autodesk/barbalt/dev/EMSUSD-3311-remove-opinion EMSUSD-3311 - Add remove opinion + undoENEITEM_HAS_METADATA is no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> hropic.com>
sts om shared LE 876036 -0400 Merge remote-tracking branch 'upstream/dev' into deboisj/unify_layer_editor_review kQACksGu6ycD7dV7/lRp4Guvvj KVCsT9UwEthfdkPDMfa7G3i+9GSacK733THUcJppZK+4DM2m8PbSiP0pj/dSaElf iaICFZ7H2KJ6tTashv3bQPy6Z7mn4slht5L+66l+D4rWifT8QB1CXj2z2cgZ+2NX oc1LH6nKO6HKmq8crOB63Yb8O81jLOWCJoYt40nrlxy1SWqIJpMNnV2mj+1xAnUI 9n1h3qJb4+Jauu4zH+JPds/dewJ+3sLwKSF5q8BdLb8XmHckHG2ajvXmpZAJg6Rk vtkQDip8Viem0NpWOsVRVuQxOeqLs1UXhZt5e3bZ5txHR5L5PiHeb0rrphZ7b57w 50zBFPlKnP/+noIbMBtPBSUkw9B0lQFNVvxjamQic2Zga23J5+dcJ1Qf9J1tVbf+ hDOY1r3vxFU1PnDPvJjTgsA0ATH+P33Z1wQ4lYNaENo2iT+nbccq/fOusSNzsBdl iK2auWyxHX4P21ZpsZlICRgSkUn68Ncn0dJIUA6grewUAGxoBGkGHQ17FTTxWtXe XaZ3WpikFeNcRS89DayGpcjnj9UzSco2L0ZrudCLh/ltNDrxlk4tpQQrMep+0aI+ B/oIBncZS8y4IZAKdDm5pqJtGaYulqwYHAXL41QyAv/QEg+sA20KLSRKVIaQz7CK kq12Y3YgiDpN7fbCmJx/ =2NPd -----END PGP SIGNATURE----- Merge pull request #4651 from Autodesk/barbalt/dev/EMSUSD-3311-remove-opinion EMSUSD-3311 - Add remove opinion + undoENEITEM_HAS_METADATA is no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> hropic.com>
…rage Apply the LOW_VALUE_TEST_REVIEW decisions (drop/strengthen/merge crash-only and tautological tests), then restore the coverage those removals dropped: - Restore testLayerTreeViewMouseLogic.cpp and testStageSelectorWidgetLogic.cpp (strengthened) and re-add them to CMakeLists. - Add strengthened LayerTreeView tests (mute/lock button-push, key Delete/R, add-parent, expand-children) and LayerEditorWidget tests (splitter/lazy-update/ save-stage button, GeneratedIconButton paint states). - Add SaveLayersDialog all-as-relative tests and an unguarded EF toggle-button test covering the runtime-gated edit-forwarding setup. - Export GeneratedIconButton (LayerEditorAPI) so its paint paths are testable. UsdLayerEditorNewTests: 438 tests, 437 pass, 1 expected skip. Lib coverage ~70%. TURE----- Merge pull request #4651 from Autodesk/barbalt/dev/EMSUSD-3311-remove-opinion EMSUSD-3311 - Add remove opinion + undoENEITEM_HAS_METADATA is no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> hropic.com>
The layer contents widget was only refreshed on Qt selection changed signal. The layer model optimization broke the refresh because it now avoid rebuilding the model if the layer tree has not changed. Before this optimization , any change to data in the layer, for example moving a prim, would trigger a full tree model rebuild, which indirectly emitted a selection change signal. Fix: - Add a specific signal when data change. - Now, when the model receives a layer data change signal, it tells the model-rebuild function that it is being called due to internal layer data change. - The model rebuilding emit the new signal. - This reuse the on-idle behavior to limit signal traffic, avoiding emitting the signal constantly. - Make the layer editor widget listen to this signal and update the contents. E----- Merge pull request #4654 from Autodesk/derlerk/EMSUSD-3762 EMSUSD-3762 - RenderSetup undo/redof `ExportChaser` and `ImportChaser` pluginsis no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> <noreply@anthropic.com> opic.com>
…ugins Automatic loading of `ExportChaser` and `ImportChaser` pluginsis no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> ic for import and export chasers, triggering chaser plugin loading just before chasers are created. o CMakeLists. - Add strengthened LayerTreeView tests (mute/lock button-push, key Delete/R, add-parent, expand-children) and LayerEditorWidget tests (splitter/lazy-update/ save-stage button, GeneratedIconButton paint states). - Add SaveLayersDialog all-as-relative tests and an unguarded EF toggle-button test covering the runtime-gated edit-forwarding setup. - Export GeneratedIconButton (LayerEditorAPI) so its paint paths are testable. UsdLayerEditorNewTests: 438 tests, 437 pass, 1 expected skip. Lib coverage ~70%. TURE----- Merge pull request #4651 from Autodesk/barbalt/dev/EMSUSD-3311-remove-opinion EMSUSD-3311 - Add remove opinion + undoENEITEM_HAS_METADATA is no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> eply@anthropic.com> hropic.com>
rcase. filenames Fix member names Refactor UndoChunkUtils RE----- wsFcBAABCAAQBQJqOT8CCRC1aQ7uu5UhlAAAXSsQAJD+nu5KEYM182GvaoREF2T3 VXGtpZyOxsyDXDmeokiiAGY+vo08ZKnMAtRKoCSB4J5fe95bI5iQG3VXjWG7oSpk mvzWMP7/r/OHpPmW7J0UA2yYOLX+MMvF5KdiuCiHJqqc0G/tpZnswNy4cz52AP6W +PXcGY58HYgwZ50RCSHRrRg9F44zqCfEJt40aqTC48jDtXSL+2O5Dx/ZIV6J12T/ AIyBMzJKp2Omccp/mO7A8H0NCT749XPmFzsUzplWjAG/+Yf19OpaSbGgxksKnBZK SsNh70+PQpM9OVwT4sQkopjrJJzpPG+hA1YpfiahF3ZnO7+k2NqF6/4wIKMuW8rR itMMjK73Lx4Ev4kG8sKEaEY7IvjYyXZqkx9BQCAMC2QhgdRzaI1raR1YUSS7yfhj 20KDoWxj65qZ25RVg0PVlBTTZAjculPoKLHc+ApePQGpeVRRzN8BdXsRrfAy/8oq U1ajtTlclBk3XBkFGQBBuTZjl9nW/MXRVI21l7RMtKFFMzuCBYM4b0bQna+PlKcj V4MEDStii3SwcpxAXXPCj8SJYodYNsXUX1ulmHb/uxehFtTXCn7libbuRnLV3Wtp N+rk7B0BoJDDcnxpjqiGeNX0kbSmfywuyX+BGB+F/zxUeGGgU/snt2AO9sw8mr7g kmByzCDMP5fFwAqaOste =oVJ2 -----END PGP SIGNATURE----- Merge pull request #4642 from jufrantz/automatic_loading_of_chaser_plugins Automatic loading of `ExportChaser` and `ImportChaser` pluginsis no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> opic.com>
++ tests: remove low-value tests, recover coverage Apply the LOW_VALUE_TEST_REVIEW decisions (drop/strengthen/merge crash-only and tautological tests), then restore the coverage those removals dropped: - Restore testLayerTreeViewMouseLogic.cpp and testStageSelectorWidgetLogic.cpp (strengthened) and re-add them to CMakeLists. - Add strengthened LayerTreeView tests (mute/lock button-push, key Delete/R, add-parent, expand-children) and LayerEditorWidget tests (splitter/lazy-update/ save-stage button, GeneratedIconButton paint states). - Add SaveLayersDialog all-as-relative tests and an unguarded EF toggle-button test covering the runtime-gated edit-forwarding setup. - Export GeneratedIconButton (LayerEditorAPI) so its paint paths are testable. UsdLayerEditorNewTests: 438 tests, 437 pass, 1 expected skip. Lib coverage ~70%. TURE----- Merge pull request #4651 from Autodesk/barbalt/dev/EMSUSD-3311-remove-opinion EMSUSD-3311 - Add remove opinion + undoENEITEM_HAS_METADATA is no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> hropic.com>
EMSUSD-3762 - RenderSetup undo/redof `ExportChaser` and `ImportChaser` pluginsis no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> 7oSpk mvzWMP7/r/OHpPmW7J0UA2yYOLX+MMvF5KdiuCiHJqqc0G/tpZnswNy4cz52AP6W +PXcGY58HYgwZ50RCSHRrRg9F44zqCfEJt40aqTC48jDtXSL+2O5Dx/ZIV6J12T/ AIyBMzJKp2Omccp/mO7A8H0NCT749XPmFzsUzplWjAG/+Yf19OpaSbGgxksKnBZK SsNh70+PQpM9OVwT4sQkopjrJJzpPG+hA1YpfiahF3ZnO7+k2NqF6/4wIKMuW8rR itMMjK73Lx4Ev4kG8sKEaEY7IvjYyXZqkx9BQCAMC2QhgdRzaI1raR1YUSS7yfhj 20KDoWxj65qZ25RVg0PVlBTTZAjculPoKLHc+ApePQGpeVRRzN8BdXsRrfAy/8oq U1ajtTlclBk3XBkFGQBBuTZjl9nW/MXRVI21l7RMtKFFMzuCBYM4b0bQna+PlKcj V4MEDStii3SwcpxAXXPCj8SJYodYNsXUX1ulmHb/uxehFtTXCn7libbuRnLV3Wtp N+rk7B0BoJDDcnxpjqiGeNX0kbSmfywuyX+BGB+F/zxUeGGgU/snt2AO9sw8mr7g kmByzCDMP5fFwAqaOste =oVJ2 -----END PGP SIGNATURE----- Merge pull request #4642 from jufrantz/automatic_loading_of_chaser_plugins Automatic loading of `ExportChaser` and `ImportChaser` pluginsis no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> opic.com>
…y-refresh EMSUSD-3823 fix layer content refresh`ImportChaser` pluginsis no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> tree has not changed. Before this optimization , any change to data in the layer, for example moving a prim, would trigger a full tree model rebuild, which indirectly emitted a selection change signal. Fix: - Add a specific signal when data change. - Now, when the model receives a layer data change signal, it tells the model-rebuild function that it is being called due to internal layer data change. - The model rebuilding emit the new signal. - This reuse the on-idle behavior to limit signal traffic, avoiding emitting the signal constantly. - Make the layer editor widget listen to this signal and update the contents. E----- Merge pull request #4654 from Autodesk/derlerk/EMSUSD-3762 EMSUSD-3762 - RenderSetup undo/redof `ExportChaser` and `ImportChaser` pluginsis no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> <noreply@anthropic.com> opic.com>
les. ++ tests: remove low-value tests, recover coverage Apply the LOW_VALUE_TEST_REVIEW decisions (drop/strengthen/merge crash-only and tautological tests), then restore the coverage those removals dropped: - Restore testLayerTreeViewMouseLogic.cpp and testStageSelectorWidgetLogic.cpp (strengthened) and re-add them to CMakeLists. - Add strengthened LayerTreeView tests (mute/lock button-push, key Delete/R, add-parent, expand-children) and LayerEditorWidget tests (splitter/lazy-update/ save-stage button, GeneratedIconButton paint states). - Add SaveLayersDialog all-as-relative tests and an unguarded EF toggle-button test covering the runtime-gated edit-forwarding setup. - Export GeneratedIconButton (LayerEditorAPI) so its paint paths are testable. UsdLayerEditorNewTests: 438 tests, 437 pass, 1 expected skip. Lib coverage ~70%. TURE----- Merge pull request #4651 from Autodesk/barbalt/dev/EMSUSD-3311-remove-opinion EMSUSD-3311 - Add remove opinion + undoENEITEM_HAS_METADATA is no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> hropic.com>
ve low-value tests, recover coverage Apply the LOW_VALUE_TEST_REVIEW decisions (drop/strengthen/merge crash-only and tautological tests), then restore the coverage those removals dropped: - Restore testLayerTreeViewMouseLogic.cpp and testStageSelectorWidgetLogic.cpp (strengthened) and re-add them to CMakeLists. - Add strengthened LayerTreeView tests (mute/lock button-push, key Delete/R, add-parent, expand-children) and LayerEditorWidget tests (splitter/lazy-update/ save-stage button, GeneratedIconButton paint states). - Add SaveLayersDialog all-as-relative tests and an unguarded EF toggle-button test covering the runtime-gated edit-forwarding setup. - Export GeneratedIconButton (LayerEditorAPI) so its paint paths are testable. UsdLayerEditorNewTests: 438 tests, 437 pass, 1 expected skip. Lib coverage ~70%. TURE----- Merge pull request #4651 from Autodesk/barbalt/dev/EMSUSD-3311-remove-opinion EMSUSD-3311 - Add remove opinion + undoENEITEM_HAS_METADATA is no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> hropic.com>
nification review pass ve low-value tests, recover coverage Apply the LOW_VALUE_TEST_REVIEW decisions (drop/strengthen/merge crash-only and tautological tests), then restore the coverage those removals dropped: - Restore testLayerTreeViewMouseLogic.cpp and testStageSelectorWidgetLogic.cpp (strengthened) and re-add them to CMakeLists. - Add strengthened LayerTreeView tests (mute/lock button-push, key Delete/R, add-parent, expand-children) and LayerEditorWidget tests (splitter/lazy-update/ save-stage button, GeneratedIconButton paint states). - Add SaveLayersDialog all-as-relative tests and an unguarded EF toggle-button test covering the runtime-gated edit-forwarding setup. - Export GeneratedIconButton (LayerEditorAPI) so its paint paths are testable. UsdLayerEditorNewTests: 438 tests, 437 pass, 1 expected skip. Lib coverage ~70%. TURE----- Merge pull request #4651 from Autodesk/barbalt/dev/EMSUSD-3311-remove-opinion EMSUSD-3311 - Add remove opinion + undoENEITEM_HAS_METADATA is no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> hropic.com>
ass ve low-value tests, recover coverage Apply the LOW_VALUE_TEST_REVIEW decisions (drop/strengthen/merge crash-only and tautological tests), then restore the coverage those removals dropped: - Restore testLayerTreeViewMouseLogic.cpp and testStageSelectorWidgetLogic.cpp (strengthened) and re-add them to CMakeLists. - Add strengthened LayerTreeView tests (mute/lock button-push, key Delete/R, add-parent, expand-children) and LayerEditorWidget tests (splitter/lazy-update/ save-stage button, GeneratedIconButton paint states). - Add SaveLayersDialog all-as-relative tests and an unguarded EF toggle-button test covering the runtime-gated edit-forwarding setup. - Export GeneratedIconButton (LayerEditorAPI) so its paint paths are testable. UsdLayerEditorNewTests: 438 tests, 437 pass, 1 expected skip. Lib coverage ~70%. TURE----- Merge pull request #4651 from Autodesk/barbalt/dev/EMSUSD-3311-remove-opinion EMSUSD-3311 - Add remove opinion + undoENEITEM_HAS_METADATA is no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> hropic.com>
tests. Review pass ass ve low-value tests, recover coverage Apply the LOW_VALUE_TEST_REVIEW decisions (drop/strengthen/merge crash-only and tautological tests), then restore the coverage those removals dropped: - Restore testLayerTreeViewMouseLogic.cpp and testStageSelectorWidgetLogic.cpp (strengthened) and re-add them to CMakeLists. - Add strengthened LayerTreeView tests (mute/lock button-push, key Delete/R, add-parent, expand-children) and LayerEditorWidget tests (splitter/lazy-update/ save-stage button, GeneratedIconButton paint states). - Add SaveLayersDialog all-as-relative tests and an unguarded EF toggle-button test covering the runtime-gated edit-forwarding setup. - Export GeneratedIconButton (LayerEditorAPI) so its paint paths are testable. UsdLayerEditorNewTests: 438 tests, 437 pass, 1 expected skip. Lib coverage ~70%. TURE----- Merge pull request #4651 from Autodesk/barbalt/dev/EMSUSD-3311-remove-opinion EMSUSD-3311 - Add remove opinion + undoENEITEM_HAS_METADATA is no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> hropic.com>
…p QA_TEST_REVIEW scratch doc T_REVIEW decisions (drop/strengthen/merge crash-only and tautological tests), then restore the coverage those removals dropped: - Restore testLayerTreeViewMouseLogic.cpp and testStageSelectorWidgetLogic.cpp (strengthened) and re-add them to CMakeLists. - Add strengthened LayerTreeView tests (mute/lock button-push, key Delete/R, add-parent, expand-children) and LayerEditorWidget tests (splitter/lazy-update/ save-stage button, GeneratedIconButton paint states). - Add SaveLayersDialog all-as-relative tests and an unguarded EF toggle-button test covering the runtime-gated edit-forwarding setup. - Export GeneratedIconButton (LayerEditorAPI) so its paint paths are testable. UsdLayerEditorNewTests: 438 tests, 437 pass, 1 expected skip. Lib coverage ~70%. TURE----- Merge pull request #4651 from Autodesk/barbalt/dev/EMSUSD-3311-remove-opinion EMSUSD-3311 - Add remove opinion + undoENEITEM_HAS_METADATA is no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> hropic.com>
…editor_review # Conflicts: # lib/usd/ui/CMakeLists.txt # lib/usd/ui/layerEditor/mayaCommandHook.cpp # lib/usd/ui/renderSetup/renderSetupWindowCmd.cpp KBuYmLgYNrFpAfTMkewbc CKMXQPPtE40icSdsp8GsAmou8z/TdcXkVrx3JD5N4CxgT81ekwYQX5TvwCxQymhd fMGynH4JkKWCg5FK//rsu623du4u9XiTzOQrdsIGT7AMGotqm1qubXInvR+HKARo gxtSQ6mQf+CSGznSNbJlvy8aXq1tfH8fJv28nOXmMXSaq6cXq79lcF6tmS/VMylx pAi5CcIDsXH9rlbsyaKQjtgR30DyaFcu8xoIrQZ19oLk0AmvwGXMhjBVLxs7nKPY jxwJCaPIsEJKxebk5kGRocwFCDs5C+a3eT4I4NW5cOZRd4jzh9KuZ38VuO5BY/GN e7WSA+dxP67xP05w6EYjjdt1qrfe9Ko9jlTb506ptYTBm7Ewz+6roCz40QW7wo1X 2ddj3B6oU3p0vIQVxTT8WhIXhrB/cccMMqaTEBt6YuiczLFCHuYzAOj1znAqnzrL XZWw2OaS9OkyBE0DnOd4czNnzSyx/vSBPo5Xo/QPi0fiVdOdNI/bdTC2NW+E6QTJ rMUPY1vf/KZPRV8l306V =2bZ3 -----END PGP SIGNATURE----- Merge pull request #4655 from Autodesk/bailp/EMSUSD-3823/layer-display-refresh EMSUSD-3823 fix layer content refresh`ImportChaser` pluginsis no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> 8 <noreply@anthropic.com> <noreply@anthropic.com> opic.com>
782483718 -0400 Merge remote-tracking branch 'upstream/dev' into deboisj/unify_layer_editor_review # Conflicts: # lib/usd/ui/CMakeLists.txt # lib/usd/ui/layerEditor/mayaCommandHook.cpp # lib/usd/ui/renderSetup/renderSetupWindowCmd.cpp KBuYmLgYNrFpAfTMkewbc CKMXQPPtE40icSdsp8GsAmou8z/TdcXkVrx3JD5N4CxgT81ekwYQX5TvwCxQymhd fMGynH4JkKWCg5FK//rsu623du4u9XiTzOQrdsIGT7AMGotqm1qubXInvR+HKARo gxtSQ6mQf+CSGznSNbJlvy8aXq1tfH8fJv28nOXmMXSaq6cXq79lcF6tmS/VMylx pAi5CcIDsXH9rlbsyaKQjtgR30DyaFcu8xoIrQZ19oLk0AmvwGXMhjBVLxs7nKPY jxwJCaPIsEJKxebk5kGRocwFCDs5C+a3eT4I4NW5cOZRd4jzh9KuZ38VuO5BY/GN e7WSA+dxP67xP05w6EYjjdt1qrfe9Ko9jlTb506ptYTBm7Ewz+6roCz40QW7wo1X 2ddj3B6oU3p0vIQVxTT8WhIXhrB/cccMMqaTEBt6YuiczLFCHuYzAOj1znAqnzrL XZWw2OaS9OkyBE0DnOd4czNnzSyx/vSBPo5Xo/QPi0fiVdOdNI/bdTC2NW+E6QTJ rMUPY1vf/KZPRV8l306V =2bZ3 -----END PGP SIGNATURE----- Merge pull request #4655 from Autodesk/bailp/EMSUSD-3823/layer-display-refresh EMSUSD-3823 fix layer content refresh`ImportChaser` pluginsis no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> > opic.com>
782483718 -0400 Merge remote-tracking branch 'upstream/dev' into deboisj/unify_layer_editor_review # Conflicts: # lib/usd/ui/CMakeLists.txt # lib/usd/ui/layerEditor/mayaCommandHook.cpp # lib/usd/ui/renderSetup/renderSetupWindowCmd.cpp KBuYmLgYNrFpAfTMkewbc CKMXQPPtE40icSdsp8GsAmou8z/TdcXkVrx3JD5N4CxgT81ekwYQX5TvwCxQymhd fMGynH4JkKWCg5FK//rsu623du4u9XiTzOQrdsIGT7AMGotqm1qubXInvR+HKARo gxtSQ6mQf+CSGznSNbJlvy8aXq1tfH8fJv28nOXmMXSaq6cXq79lcF6tmS/VMylx pAi5CcIDsXH9rlbsyaKQjtgR30DyaFcu8xoIrQZ19oLk0AmvwGXMhjBVLxs7nKPY jxwJCaPIsEJKxebk5kGRocwFCDs5C+a3eT4I4NW5cOZRd4jzh9KuZ38VuO5BY/GN e7WSA+dxP67xP05w6EYjjdt1qrfe9Ko9jlTb506ptYTBm7Ewz+6roCz40QW7wo1X 2ddj3B6oU3p0vIQVxTT8WhIXhrB/cccMMqaTEBt6YuiczLFCHuYzAOj1znAqnzrL XZWw2OaS9OkyBE0DnOd4czNnzSyx/vSBPo5Xo/QPi0fiVdOdNI/bdTC2NW+E6QTJ rMUPY1vf/KZPRV8l306V =2bZ3 -----END PGP SIGNATURE----- Merge pull request #4655 from Autodesk/bailp/EMSUSD-3823/layer-display-refresh EMSUSD-3823 fix layer content refresh`ImportChaser` pluginsis no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> > opic.com>
tor_review # Conflicts: # lib/usd/ui/CMakeLists.txt # lib/usd/ui/layerEditor/mayaCommandHook.cpp # lib/usd/ui/renderSetup/renderSetupWindowCmd.cpp KBuYmLgYNrFpAfTMkewbc CKMXQPPtE40icSdsp8GsAmou8z/TdcXkVrx3JD5N4CxgT81ekwYQX5TvwCxQymhd fMGynH4JkKWCg5FK//rsu623du4u9XiTzOQrdsIGT7AMGotqm1qubXInvR+HKARo gxtSQ6mQf+CSGznSNbJlvy8aXq1tfH8fJv28nOXmMXSaq6cXq79lcF6tmS/VMylx pAi5CcIDsXH9rlbsyaKQjtgR30DyaFcu8xoIrQZ19oLk0AmvwGXMhjBVLxs7nKPY jxwJCaPIsEJKxebk5kGRocwFCDs5C+a3eT4I4NW5cOZRd4jzh9KuZ38VuO5BY/GN e7WSA+dxP67xP05w6EYjjdt1qrfe9Ko9jlTb506ptYTBm7Ewz+6roCz40QW7wo1X 2ddj3B6oU3p0vIQVxTT8WhIXhrB/cccMMqaTEBt6YuiczLFCHuYzAOj1znAqnzrL XZWw2OaS9OkyBE0DnOd4czNnzSyx/vSBPo5Xo/QPi0fiVdOdNI/bdTC2NW+E6QTJ rMUPY1vf/KZPRV8l306V =2bZ3 -----END PGP SIGNATURE----- Merge pull request #4655 from Autodesk/bailp/EMSUSD-3823/layer-display-refresh EMSUSD-3823 fix layer content refresh`ImportChaser` pluginsis no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> red-By: Claude Opus 4.8 <noreply@anthropic.com> > opic.com>
…_review eview # Conflicts: # lib/usd/ui/CMakeLists.txt # lib/usd/ui/layerEditor/mayaCommandHook.cpp # lib/usd/ui/renderSetup/renderSetupWindowCmd.cpp KBuYmLgYNrFpAfTMkewbc CKMXQPPtE40icSdsp8GsAmou8z/TdcXkVrx3JD5N4CxgT81ekwYQX5TvwCxQymhd fMGynH4JkKWCg5FK//rsu623du4u9XiTzOQrdsIGT7AMGotqm1qubXInvR+HKARo gxtSQ6mQf+CSGznSNbJlvy8aXq1tfH8fJv28nOXmMXSaq6cXq79lcF6tmS/VMylx pAi5CcIDsXH9rlbsyaKQjtgR30DyaFcu8xoIrQZ19oLk0AmvwGXMhjBVLxs7nKPY jxwJCaPIsEJKxebk5kGRocwFCDs5C+a3eT4I4NW5cOZRd4jzh9KuZ38VuO5BY/GN e7WSA+dxP67xP05w6EYjjdt1qrfe9Ko9jlTb506ptYTBm7Ewz+6roCz40QW7wo1X 2ddj3B6oU3p0vIQVxTT8WhIXhrB/cccMMqaTEBt6YuiczLFCHuYzAOj1znAqnzrL XZWw2OaS9OkyBE0DnOd4czNnzSyx/vSBPo5Xo/QPi0fiVdOdNI/bdTC2NW+E6QTJ rMUPY1vf/KZPRV8l306V =2bZ3 -----END PGP SIGNATURE----- Merge pull request #4655 from Autodesk/bailp/EMSUSD-3823/layer-display-refresh EMSUSD-3823 fix layer content refresh`ImportChaser` pluginsis no…both unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> red-By: Claude Opus 4.8 <noreply@anthropic.com> > opic.com>
bee27e7 to
8e24ed8
Compare
…_review # Conflicts: # lib/usd/ui/CMakeLists.txt # lib/usd/ui/layerEditor/mayaCommandHook.cpp # lib/usd/ui/renderSetup/renderSetupWindowCmd.cpp
deboisj
commented
Jun 26, 2026
| static void onSceneChangedCB(void* clientData); | ||
|
|
||
| private: | ||
| void applyStages() |
Collaborator
Author
There was a problem hiding this comment.
Workaround for the load issue, will be discarded
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR is not against master on purpose for the purpose of review. It's against a branch where i placed all the shared code as it was 1:1 in the usd-layer-editor repo, so that you can see what is actually new.