forked from 1b-agent/opencadstudio-upstream
feat(grid): the coloured grid axis lines can be turned off (#1815)
Drafting Settings > Snap and Grid gains "Display grid axis lines", kept with the other grid settings; the grid itself stays as it is. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
091331f3bd
commit
977135fbbd
31 files changed
+58
-1
No files matched your search
@@ -2136,6 +2136,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2123,6 +2123,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2123,6 +2123,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2124,6 +2124,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2123,6 +2123,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2124,6 +2124,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2124,6 +2124,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2123,6 +2123,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2124,6 +2124,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2112,6 +2112,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2130,6 +2130,7 @@ common =
|
||||
.display-selection-cycling-list-box = Kijelölésváltó lista megjelenítése
|
||||
.display-coordinate-input-near-crosshairs = Koordinátabevitel megjelenítése a szálkeresztnél
|
||||
.display-grid-beyond-limits = Rács megjelenítése a rajzhatárokon túl
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Kiválasztható objektumok listája kattintáskor
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = A távolság- és szögtűrések nemnegatív számok legyenek.
|
||||
.distance1-distance2 = 1. távolság = __ocs_fmt_0__, 2. távolság = __ocs_fmt_1__
|
||||
|
||||
@@ -2123,6 +2123,7 @@ common =
|
||||
.display-selection-cycling-list-box = Mostra box elenco per la selezione ciclica
|
||||
.display-coordinate-input-near-crosshairs = Mostra le coordinate vicino al mirino
|
||||
.display-grid-beyond-limits = Mostra griglia oltre ai limiti
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distanze e tolleranze degli angoli non possono essere numeri negativi.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2114,6 +2114,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2123,6 +2123,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2124,6 +2124,7 @@ common =
|
||||
.display-selection-cycling-list-box = ສະແດງກ່ອງລາຍການເລືອກແບບວຽນຮອບ
|
||||
.display-coordinate-input-near-crosshairs = ສະແດງຊ່ອງປ້ອນພິກັດໃກ້ເສັ້ນກາກະບາດ
|
||||
.display-grid-beyond-limits = ສະແດງເສັ້ນຕາຕະລາງເກີນຂອບເຂດ (Limits)
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = ສະແດງກ່ອງລາຍການຕົວເລືອກທີ່ອາດຈະເລືອກເມື່ອກົດຄລິກ
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = ຄ່າຄວາມຄາດເຄື່ອນຂອງໄລຍະຫ່າງ ແລະ ມຸມ ຕ້ອງບໍ່ເປັນຄ່າລົບ.
|
||||
.distance1-distance2 = ໄລຍະຫ່າງ1 = __ocs_fmt_0__, ໄລຍະຫ່າງ2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2124,6 +2124,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2123,6 +2123,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2124,6 +2124,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2127,6 +2127,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2108,6 +2108,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2111,6 +2111,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -2123,6 +2123,7 @@ common =
|
||||
.display-selection-cycling-list-box = Display Selection Cycling List Box
|
||||
.display-coordinate-input-near-crosshairs = Display coordinate input near crosshairs
|
||||
.display-grid-beyond-limits = Display grid beyond Limits
|
||||
.display-grid-axis-lines = Display grid axis lines
|
||||
.display-selection-candidate-list-box-on-click = Display selection candidate list box on click
|
||||
.distance-and-angle-tolerances-must-be-non-negative-numbers = Distance and angle tolerances must be non-negative numbers.
|
||||
.distance1-distance2 = Distance1 = __ocs_fmt_0__, Distance2 = __ocs_fmt_1__
|
||||
|
||||
@@ -25,6 +25,7 @@ impl DraftingSettingsState {
|
||||
grid_major_input: format!("{}", app.grid_major_every),
|
||||
grid_adaptive: app.grid_adaptive,
|
||||
grid_beyond_limits: app.grid_beyond_limits,
|
||||
grid_axes: app.grid_axes,
|
||||
isometric: app.isometric_drafting,
|
||||
iso_plane: app.iso_plane,
|
||||
snap_angle_deg: app.snap_angle_deg,
|
||||
@@ -99,6 +100,7 @@ impl OpenCADStudio {
|
||||
self.grid_major_every = gm;
|
||||
self.grid_adaptive = state.grid_adaptive;
|
||||
self.grid_beyond_limits = state.grid_beyond_limits;
|
||||
self.grid_axes = state.grid_axes;
|
||||
self.snapper.grid_snap_on = state.snap_on;
|
||||
self.snapper.snap_spacing_x = sx;
|
||||
self.snapper.snap_spacing_y = sy;
|
||||
@@ -151,6 +153,7 @@ mod tests {
|
||||
grid_major_input: "5".to_string(),
|
||||
grid_adaptive: true,
|
||||
grid_beyond_limits: true,
|
||||
grid_axes: true,
|
||||
isometric: false,
|
||||
iso_plane: crate::app::settings::IsoPlane::Left,
|
||||
snap_angle_deg: 0.0,
|
||||
@@ -193,6 +196,7 @@ mod tests {
|
||||
grid_major_input: "5".to_string(),
|
||||
grid_adaptive: true,
|
||||
grid_beyond_limits: true,
|
||||
grid_axes: true,
|
||||
isometric: false,
|
||||
iso_plane: crate::app::settings::IsoPlane::Left,
|
||||
snap_angle_deg: 0.0,
|
||||
|
||||
@@ -756,6 +756,8 @@ pub(super) struct OpenCADStudio {
|
||||
pub grid_adaptive: bool,
|
||||
/// Display the grid beyond LIMITS (infinite) instead of clipping to them.
|
||||
pub grid_beyond_limits: bool,
|
||||
/// Draw the coloured X/Y axis lines through the grid origin.
|
||||
pub grid_axes: bool,
|
||||
/// Dynamic input overlay (F12): show coordinate tooltip near cursor.
|
||||
dyn_input: bool,
|
||||
/// Dynamic input mode (DYNMODE): 0=off, 1=pointer, 2=dimensional, 3=both.
|
||||
@@ -3567,6 +3569,7 @@ pub enum Message {
|
||||
DraftingSettingsGridMajorChanged(String),
|
||||
DraftingSettingsToggleAdaptiveGrid,
|
||||
DraftingSettingsToggleBeyondLimits,
|
||||
DraftingSettingsToggleGridAxes,
|
||||
DraftingSettingsToggleEqualSnap,
|
||||
DraftingSettingsToggleIsometric,
|
||||
DraftingSettingsSetIsoPlane(crate::app::settings::IsoPlane),
|
||||
@@ -4754,6 +4757,7 @@ impl OpenCADStudio {
|
||||
grid_major_every: 5,
|
||||
grid_adaptive: true,
|
||||
grid_beyond_limits: true,
|
||||
grid_axes: true,
|
||||
dyn_input: true,
|
||||
dyn_mode: 3,
|
||||
options_tab: crate::ui::window::options::OptionsTab::General,
|
||||
|
||||
@@ -704,6 +704,9 @@ pub struct UserSettings {
|
||||
/// Display grid beyond LIMITS (default on, matches dialog).
|
||||
#[serde(default = "default_true")]
|
||||
pub grid_beyond_limits: bool,
|
||||
/// Draw the coloured X/Y axis lines through the grid origin.
|
||||
#[serde(default = "default_true")]
|
||||
pub grid_axes: bool,
|
||||
/// Most-recently-inserted block names, most recent first, capped to 20.
|
||||
/// Used to rank INSERT suggestions without touching the drawing file.
|
||||
#[serde(default)]
|
||||
@@ -1052,6 +1055,7 @@ impl Default for UserSettings {
|
||||
grid_major_every: 5,
|
||||
grid_adaptive: true,
|
||||
grid_beyond_limits: true,
|
||||
grid_axes: true,
|
||||
block_mru: Vec::new(),
|
||||
block_freq: std::collections::HashMap::new(),
|
||||
block_recent: Vec::new(),
|
||||
|
||||
@@ -925,6 +925,7 @@ impl OpenCADStudio {
|
||||
grid_major_every: self.grid_major_every,
|
||||
grid_adaptive: self.grid_adaptive,
|
||||
grid_beyond_limits: self.grid_beyond_limits,
|
||||
grid_axes: self.grid_axes,
|
||||
block_mru: self.block_mru.clone(),
|
||||
block_freq: self.block_freq.clone(),
|
||||
block_recent: self.block_palette.recent.clone(),
|
||||
@@ -1110,6 +1111,7 @@ impl OpenCADStudio {
|
||||
self.grid_major_every = crate::app::settings::sanitize_grid_major(s.grid_major_every);
|
||||
self.grid_adaptive = s.grid_adaptive;
|
||||
self.grid_beyond_limits = s.grid_beyond_limits;
|
||||
self.grid_axes = s.grid_axes;
|
||||
// Block usage: clone but cap to sane sizes (MRU 20, freq map 200)
|
||||
self.block_mru = s.block_mru.iter().take(20).cloned().collect();
|
||||
self.block_freq = s
|
||||
|
||||
@@ -6401,6 +6401,12 @@ impl OpenCADStudio {
|
||||
}
|
||||
Task::none()
|
||||
}
|
||||
Message::DraftingSettingsToggleGridAxes => {
|
||||
if let Some(state) = &mut self.drafting_settings_state {
|
||||
state.grid_axes = !state.grid_axes;
|
||||
}
|
||||
Task::none()
|
||||
}
|
||||
Message::DraftingSettingsToggleEqualSnap => {
|
||||
if let Some(state) = &mut self.drafting_settings_state {
|
||||
state.snap_equal = !state.snap_equal;
|
||||
|
||||
@@ -627,6 +627,7 @@ bg={bg_ms:.1}ms n={view_count}"
|
||||
let grid_style = crate::ui::overlay::GridStyle {
|
||||
opacity: self.model_space.grid_opacity,
|
||||
bg_luminance: bg_lum,
|
||||
axes: self.grid_axes,
|
||||
};
|
||||
crate::ui::overlay::grid_overlay(grid, grid_style)
|
||||
};
|
||||
|
||||
@@ -5680,6 +5680,7 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static
|
||||
"Display Selection Cycling List Box" => Some(("common", "display-selection-cycling-list-box")),
|
||||
"Display coordinate input near crosshairs" => Some(("common", "display-coordinate-input-near-crosshairs")),
|
||||
"Display grid beyond Limits" => Some(("common", "display-grid-beyond-limits")),
|
||||
"Display grid axis lines" => Some(("common", "display-grid-axis-lines")),
|
||||
"Display selection candidate list box on click" => Some(("common", "display-selection-candidate-list-box-on-click")),
|
||||
"Distance and angle tolerances must be non-negative numbers." => Some(("common", "distance-and-angle-tolerances-must-be-non-negative-numbers")),
|
||||
"Distance1 = {:.4}, Distance2 = {:.4}" => Some(("common", "distance1-distance2")),
|
||||
|
||||
+4
-1
@@ -316,6 +316,8 @@ pub struct CrosshairOptions {
|
||||
pub struct GridStyle {
|
||||
pub opacity: u8,
|
||||
pub bg_luminance: f32,
|
||||
/// Draw the coloured X/Y axis lines through the grid origin.
|
||||
pub axes: bool,
|
||||
}
|
||||
|
||||
impl Default for GridStyle {
|
||||
@@ -323,6 +325,7 @@ impl Default for GridStyle {
|
||||
Self {
|
||||
opacity: 18,
|
||||
bg_luminance: 0.15,
|
||||
axes: true,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2722,7 +2725,7 @@ fn draw_grid(
|
||||
});
|
||||
frame.stroke(&path, major_stroke);
|
||||
}
|
||||
if geometry.axis_extent > 0.0 {
|
||||
if style.axes && geometry.axis_extent > 0.0 {
|
||||
let (gx, gy, gz) = grid_axes;
|
||||
let extent = (geometry.axis_extent + step_x.max(step_y)) * 1.5;
|
||||
draw_axes(
|
||||
|
||||
@@ -35,6 +35,7 @@ pub struct DraftingSettingsState {
|
||||
pub grid_major_input: String,
|
||||
pub grid_adaptive: bool,
|
||||
pub grid_beyond_limits: bool,
|
||||
pub grid_axes: bool,
|
||||
pub isometric: bool,
|
||||
pub iso_plane: IsoPlane,
|
||||
pub snap_angle_deg: f32,
|
||||
@@ -72,6 +73,7 @@ impl DraftingSettingsState {
|
||||
|| self.grid_major_input != saved.grid_major_input
|
||||
|| self.grid_adaptive != saved.grid_adaptive
|
||||
|| self.grid_beyond_limits != saved.grid_beyond_limits
|
||||
|| self.grid_axes != saved.grid_axes
|
||||
|| self.isometric != saved.isometric
|
||||
|| self.iso_plane != saved.iso_plane
|
||||
|| (self.snap_angle_deg - saved.snap_angle_deg).abs() > 0.001
|
||||
@@ -387,6 +389,14 @@ pub fn view_window<'a>(
|
||||
]
|
||||
.spacing(6)
|
||||
.align_y(iced::Center),
|
||||
row![
|
||||
checkbox(state.grid_axes)
|
||||
.on_toggle(|_| Message::DraftingSettingsToggleGridAxes)
|
||||
.size(14),
|
||||
text(crate::t!("Display grid axis lines")).size(11),
|
||||
]
|
||||
.spacing(6)
|
||||
.align_y(iced::Center),
|
||||
]
|
||||
.spacing(6),
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user