forked from 1b-agent/opencadstudio-upstream
Merge remote-tracking branch 'origin/main'
# Conflicts: # src/app/command_driver/clipboard.rs # src/app/command_driver/mod.rs # src/app/update/command.rs
This commit is contained in:
commit
5639b29209
4 files changed
+464
-296
No files matched your search
@@ -1473,39 +1473,11 @@ impl OpenCADStudio {
|
||||
/// handle from the target document so it can't collide with an existing
|
||||
/// one. No-op for same-document pastes (the records already exist). (#129)
|
||||
pub(super) fn merge_dependencies(&mut self, i: usize, deps: &crate::app::ClipboardDeps) {
|
||||
use codec::TableEntry;
|
||||
if deps.is_empty() {
|
||||
return;
|
||||
}
|
||||
let doc = &mut self.tabs[i].scene.document;
|
||||
for rec in &deps.layers {
|
||||
if !doc.layers.contains(rec.name()) {
|
||||
let mut r = rec.clone();
|
||||
r.set_handle(doc.allocate_handle());
|
||||
let _ = doc.layers.add(r);
|
||||
}
|
||||
}
|
||||
for rec in &deps.linetypes {
|
||||
if !doc.line_types.contains(rec.name()) {
|
||||
let mut r = rec.clone();
|
||||
r.set_handle(doc.allocate_handle());
|
||||
let _ = doc.line_types.add(r);
|
||||
}
|
||||
}
|
||||
for rec in &deps.text_styles {
|
||||
if !doc.text_styles.contains(rec.name()) {
|
||||
let mut r = rec.clone();
|
||||
r.set_handle(doc.allocate_handle());
|
||||
let _ = doc.text_styles.add(r);
|
||||
}
|
||||
}
|
||||
for rec in &deps.dim_styles {
|
||||
if !doc.dim_styles.contains(rec.name()) {
|
||||
let mut r = rec.clone();
|
||||
r.set_handle(doc.allocate_handle());
|
||||
let _ = doc.dim_styles.add(r);
|
||||
}
|
||||
}
|
||||
// Single shared copy — see `clipboard::merge_table_records`.
|
||||
clipboard::merge_table_records(&mut self.tabs[i].scene.document, deps);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user