forked from 1b-agent/opencadstudio-upstream
Make the view toggles survive a restart, and give them a page
The ViewCube, the UCS icon, its at-origin placement and selection cycling all have commands and status-bar pills, and all four kept their value only on the app struct. Turn the ViewCube off with NAVVCUBE, restart, and it is back. Nothing failed — the setting evaporated — so a checkbox for any of them would have been a checkbox that forgets. They are persisted first, with a round-trip test, and only then given controls. The new 3D Modeling page carries the three view tools plus the drawing variables that decide how solids are tessellated: ISOLINES, DISPSILH, SURFU, SURFV, SURFTYPE, SOLIDHIST and SHOWHIST. Those are saved in the DWG rather than in preferences, so the page says so beside each group and hides them entirely when no drawing is open. Changing them also rebuilds the geometry. The SETVAR path never did, which is why the comment beside LTSCALE's invalidation exists — the same reasoning applies here, and without it a new isoline count does not appear until some unrelated edit rebuilds the solid. Selection cycling joins the Selection page next to the other two selection modes, since that is what it is. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b5f4b4d1cc
commit
5a638f243a
7 files changed
+427
No files matched your search
@@ -184,6 +184,15 @@ pub struct UserSettings {
|
||||
pub grip_object_limit: i32,
|
||||
/// Which Options page was showing when the dialog was last closed.
|
||||
pub options_tab: crate::ui::window::options::OptionsTab,
|
||||
/// Show the navigation cube (NAVVCUBE).
|
||||
pub show_viewcube: bool,
|
||||
/// Show the UCS icon (UCSICON).
|
||||
pub show_ucs_icon: bool,
|
||||
/// Draw the UCS icon at the origin rather than in the corner
|
||||
/// (UCSICON ORigin / NOorigin).
|
||||
pub ucs_icon_at_origin: bool,
|
||||
/// Selection cycling: a click where objects overlap opens a picker.
|
||||
pub selection_cycling: bool,
|
||||
/// CURSORTYPE: crosshair or the platform pointer over the drawing.
|
||||
pub cursor_type: CursorType,
|
||||
/// Explicit crosshair RGB. `None` keeps automatic background contrast.
|
||||
@@ -340,6 +349,10 @@ impl Default for UserSettings {
|
||||
cursor_size: 5,
|
||||
pick_box: 3,
|
||||
options_tab: crate::ui::window::options::OptionsTab::General,
|
||||
show_viewcube: true,
|
||||
show_ucs_icon: true,
|
||||
ucs_icon_at_origin: true,
|
||||
selection_cycling: false,
|
||||
double_click_block_refedit: false,
|
||||
double_click_block_attedit: true,
|
||||
grip_object_limit: DEFAULT_GRIP_OBJECT_LIMIT,
|
||||
|
||||
Reference in new issue
Block a user