forked from 1b-agent/opencadstudio-upstream
fix(layers): carry layer name instead of row index in Message::Layer*
Closes the view-to-dispatch resort race: the nine Layer* variants plus ColorPickTarget::Layer now carry the layer name and resolve to the current panel row at dispatch time via layer_panel_index; unknown names no-op. View sites (layer panel, ribbon dropdown) and the CLI/plugin path send names, so the CLI position lookup and the ribbon enumerate are deleted. Panel-internal selection state stays index-based. Tests: layer_toggle_visible_targets_layer_by_name_after_resort pins name targeting across a re-sort; layer_toggle_visible_unknown_name_is_noop pins the graceful no-op. Full suite: 1974 passed / 0 failed / 25 ignored.
This commit is contained in:
1 parent
c5f8eb2921
commit
5f016e1192
7 files changed
+186
-52
No files matched your search
+12
-12
@@ -1583,8 +1583,8 @@ pub enum ColorPickTarget {
|
||||
PropertiesField(String),
|
||||
/// Current creation colour (ribbon).
|
||||
Ribbon,
|
||||
/// A layer's colour, by panel row index.
|
||||
Layer(usize),
|
||||
/// A layer's colour, by layer name.
|
||||
Layer(String),
|
||||
/// A saved layer-state layer's colour, by editor row index.
|
||||
LayerState(usize),
|
||||
/// The MText editor's selection (or global) colour.
|
||||
@@ -2669,28 +2669,28 @@ pub enum Message {
|
||||
XrefRowFindReplacePrompt(usize),
|
||||
XrefRowChangePathEnter,
|
||||
XrefRowChangePathLeave,
|
||||
LayerToggleVisible(usize),
|
||||
LayerToggleLock(usize),
|
||||
LayerToggleFreeze(usize),
|
||||
LayerTogglePlot(usize),
|
||||
LayerToggleVisible(String),
|
||||
LayerToggleLock(String),
|
||||
LayerToggleFreeze(String),
|
||||
LayerTogglePlot(String),
|
||||
/// Sort the Layer Manager table by a clicked column header.
|
||||
LayerSort(crate::ui::window::layers::LayerSortCol),
|
||||
/// Toggle per-viewport freeze: (layer_index, vp_col_index)
|
||||
LayerToggleVpFreeze(usize, usize),
|
||||
/// Toggle per-viewport freeze: (layer_name, vp_col_index)
|
||||
LayerToggleVpFreeze(String, usize),
|
||||
LayerNew,
|
||||
LayerDelete,
|
||||
/// Confirm deleting a non-empty layer (erases its objects too).
|
||||
LayerDeleteConfirm,
|
||||
LayerSetCurrent,
|
||||
LayerSelect(usize),
|
||||
LayerRenameStart(usize),
|
||||
LayerSelect(String),
|
||||
LayerRenameStart(String),
|
||||
LayerRenameEdit(String),
|
||||
LayerColorPickerToggle(usize),
|
||||
LayerColorPickerToggle(String),
|
||||
LayerColorMorePalette,
|
||||
LayerColorSet(codec::types::Color),
|
||||
LayerLinetypeSet(String),
|
||||
LayerLineweightSet(LineWeight),
|
||||
LayerTransparencyEdit(usize, String),
|
||||
LayerTransparencyEdit(String, String),
|
||||
LayerRenameCommit,
|
||||
// ── Layer State Manager ─────────────────────────────────────────────
|
||||
LayerStateManagerOpen,
|
||||
|
||||
Reference in new issue
Block a user