Merge pull request #1512 from ramox81/codex/frame-parity

Frames: follow the drawing state, DWF/DGN frames, image frame profile, frame-only picking

The codec [patch] to ramox81/cadcodec@ea5edaa is dropped: that commit landed as opencadcodec#63 and main already pins ad16215, which contains it.
This commit is contained in:
Hakan Seven committed 2026-09-28 13:52:06 +03:00
commit 7694c506aa
70 files changed
+445 -64

No files matched your search

+3
View File
@@ -618,6 +618,8 @@ inventory::submit!(crate::command::CommandRegistration {
"FRAME",
"IMAGEFRAME",
"PDFFRAME",
"DWFFRAME",
"DGNFRAME",
"PDFOSNAP",
"UOSNAP",
"PDFIMPORTMODE",
@@ -630,6 +632,7 @@ inventory::submit!(crate::command::CommandRegistration {
"WIPEOUTFRAME",
"FRAMES0",
"FRAMES1",
"FRAMES3",
"FRAMES2",
"UOSNAP0",
"UOSNAP1",
+18 -4
View File
@@ -10,6 +10,8 @@ impl OpenCADStudio {
"FRAMES0" => return self.dispatch_styleprops("SETVAR FRAME 0", i),
"FRAMES1" => return self.dispatch_styleprops("SETVAR FRAME 1", i),
"FRAMES2" => return self.dispatch_styleprops("SETVAR FRAME 2", i),
// The mixed state is shown, never chosen.
"FRAMES3" => return Some(Task::none()),
"UOSNAP0" => return self.dispatch_styleprops("SETVAR UOSNAP 0", i),
"UOSNAP1" => return self.dispatch_styleprops("SETVAR UOSNAP 1", i),
// COLOR <ByLayer|ByBlock|1-255|name> — the colour applied to new
@@ -1017,6 +1019,8 @@ impl OpenCADStudio {
| "FRAME"
| "IMAGEFRAME"
| "PDFFRAME"
| "DWFFRAME"
| "DGNFRAME"
| "PDFOSNAP"
| "UOSNAP"
| "PDFIMPORTMODE"
@@ -1283,13 +1287,23 @@ impl OpenCADStudio {
self.tabs[i].scene.bump_entities(&changes);
}
self.tabs[i].dirty = true;
// IMAGEFRAME also lands in the profile.
self.save_config();
}
self.command_line
.push_output(&crate::tf!("{name} = {mode}"));
.push_output(crate::t!("Regenerating model.").as_ref());
}
// Out of range: say so and ask again.
_ => {
self.command_line.push_error(
crate::t!("Requires an integer between 0 and 2.").as_ref(),
);
self.command_line.push_output(
crate::tf!("Enter new value for {name} <{current}>:")
.as_ref(),
);
self.pending_setvar = Some(name.clone());
}
_ => self.command_line.push_error(
crate::tf!("SETVAR: {name} requires 0, 1, or 2.").as_ref(),
),
},
None => {
self.command_line.push_output(crate::tf!(