forked from 1b-agent/opencadstudio-upstream
feat(ui): feature-parity context menu — Snap Overrides, transparent Pan/Zoom, ARC keyword flow
The command menu now follows the commercial solutions' layout row for row: Enter, Cancel,
Recent Input ▸, the command's keywords, Snap Overrides ▸ (every object snap
with its glyph, Mid Between 2 Points, None, Osnap Settings…), then Pan and
Zoom. Pan / Zoom run transparently while a command is active ('PAN,
'ZOOM …): navigation modes leave the command untouched and an interactive
ZOOM Window parks it and resumes it afterwards. Rows carry an icon gutter
so labels align; the Enter row shows a default value ("<0.5000>") as its
hint instead of a second finish row.
ARC gets the commercial solutions' prompt flow with all keywords: start [Center], second
point [Center/End], end; after Center: end [Angle/chord Length]; after
End: center [Angle/Direction/Radius]; Enter continues tangent. The
previous default (Center/Start/End with method codes) stays as ARC_CSE.
Object snaps gain a one-shot "None" override. New strings in all locales.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
96df4928c7
commit
02cd98e790
34 files changed
+1305
-67
No files matched your search
+11
@@ -416,6 +416,17 @@ impl Snapper {
|
||||
self.snap_enabled = true;
|
||||
}
|
||||
|
||||
/// One-shot "None" override (Snap Overrides ▸ None): the next pick takes
|
||||
/// the raw cursor point, ignoring every running object snap, after which
|
||||
/// `clear_override` restores the saved configuration.
|
||||
pub fn set_override_none(&mut self) {
|
||||
if self.override_saved.is_none() {
|
||||
self.override_saved = Some((self.enabled.clone(), self.snap_enabled));
|
||||
}
|
||||
self.enabled.clear();
|
||||
self.snap_enabled = false;
|
||||
}
|
||||
|
||||
/// Restore the pre-override snap configuration. No-op when inactive.
|
||||
pub fn clear_override(&mut self) {
|
||||
if let Some((enabled, on)) = self.override_saved.take() {
|
||||
|
||||
Reference in new issue
Block a user