forked from 1b-agent/opencadstudio-upstream
fix(layer): keep auto-registered layer names verbatim; one sync helper
ensure_layer had started trimming the name, so an entity on " A" got a table entry "A" it never resolves to. Register the name as given again and drop the unused return value. The five copies of the dirty-flag check become sync_registered_layers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1b04bda547
commit
e3c0d456f2
4 files changed
+20
-32
No files matched your search
+6
-7
@@ -143,17 +143,16 @@ impl Scene {
|
||||
/// layer 0. Auto-registering keeps it on its own layer (#252). Names are
|
||||
/// registered verbatim so the writer's (case-insensitive) lookup matches;
|
||||
/// the always-present default layer "0" and empty names are no-ops.
|
||||
pub fn ensure_layer(&mut self, name: &str) -> bool {
|
||||
let trimmed = name.trim();
|
||||
if trimmed.is_empty() || trimmed == "0" || self.document.layers.contains(trimmed) {
|
||||
return false;
|
||||
/// Flags `layer_table_dirty` so the app refreshes its layer lists.
|
||||
pub fn ensure_layer(&mut self, name: &str) {
|
||||
if name.trim().is_empty() || self.document.layers.contains(name) {
|
||||
return;
|
||||
}
|
||||
let mut layer = codec::tables::Layer::new(trimmed);
|
||||
let mut layer = codec::tables::Layer::new(name);
|
||||
layer.handle = self.document.allocate_handle();
|
||||
let _ = self.document.layers.add(layer);
|
||||
self.invalidate_layer_dependencies(&[trimmed.to_string()]);
|
||||
self.invalidate_layer_dependencies(&[name.to_string()]);
|
||||
self.layer_table_dirty = true;
|
||||
true
|
||||
}
|
||||
|
||||
pub(crate) fn ensure_app_id(&mut self, name: &str) {
|
||||
|
||||
Reference in new issue
Block a user