Merge PR #1581 from F4brizi/feature/increase-zoomfactor-limit: expand ZOOMFACTOR range to 500

This commit is contained in:
Hakan Seven committed 2026-10-02 09:58:36 +03:00
commit f44d03f472
7 files changed
+21 -10

No files matched your search

+2 -2
View File
@@ -1688,11 +1688,11 @@ impl OpenCADStudio {
},
"ZOOMFACTOR" => match &value {
Some(v) => match v.parse::<i32>() {
Ok(factor) if (3..=100).contains(&factor) => {
Ok(factor) if (3..=500).contains(&factor) => {
self.zoom_factor = factor;
Ok((format!("ZOOMFACTOR = {factor}"), true))
}
_ => Err("SETVAR: integer from 3 to 100 required.".into()),
_ => Err("SETVAR: integer from 3 to 500 required.".into()),
},
None => {
Ok((format!("ZOOMFACTOR = {}", self.zoom_factor), false))
+2 -2
View File
@@ -554,7 +554,7 @@ pub(super) struct OpenCADStudio {
polar_increment_deg: f32,
/// Reverse the mouse-wheel zoom direction when true (ZOOMWHEEL = 1).
zoom_wheel_reversed: bool,
/// Mouse-wheel zoom sensitivity, clamped to 3..=100 (ZOOMFACTOR).
/// Mouse-wheel zoom sensitivity, clamped to 3..=500 (ZOOMFACTOR).
zoom_factor: i32,
/// Crosshair size setting (CURSORSIZE, 1..=100).
cursor_size: i32,
@@ -2308,7 +2308,7 @@ pub enum Message {
CommandLineFadeChanged(i32),
/// Toggle reversing the mouse-wheel zoom direction (ZOOMWHEEL).
ZoomWheelReversedChanged(bool),
/// Change how far one wheel notch zooms (ZOOMFACTOR, 3..=100).
/// Change how far one wheel notch zooms (ZOOMFACTOR, 3..=500).
ZoomFactorChanged(i32),
/// Options → User Preferences: right-click behaviour (SHORTCUTMENU).
RightClickModeChanged(settings::RightClickMode),
+11
View File
@@ -222,4 +222,15 @@ mod tests {
assert_eq!(h.display_silhouette, silhouette);
assert!(!app.tabs[i].dirty, "the drawing is as unmodified as it was");
}
#[test]
fn zoom_factor_supports_values_above_100() {
let mut app = app();
let _ = app.update(Message::ZoomFactorChanged(250));
assert_eq!(app.zoom_factor, 250);
let _ = app.update(Message::ZoomFactorChanged(500));
assert_eq!(app.zoom_factor, 500);
let _ = app.update(Message::ZoomFactorChanged(600));
assert_eq!(app.zoom_factor, 500, "clamped to new upper limit of 500");
}
}
+1 -1
View File
@@ -743,7 +743,7 @@ impl OpenCADStudio {
self.polar_mode = s.polar;
self.polar_increment_deg = s.polar_increment_deg;
self.zoom_wheel_reversed = s.zoom_wheel_reversed;
self.zoom_factor = s.zoom_factor.clamp(3, 100);
self.zoom_factor = s.zoom_factor.clamp(3, 500);
self.cursor_size = s.cursor_size.clamp(1, 100);
self.pick_box = s.pick_box.clamp(0, 50);
self.options_tab = s.options_tab;
+1 -1
View File
@@ -8239,7 +8239,7 @@ impl OpenCADStudio {
}
Message::ZoomFactorChanged(factor) => {
self.zoom_factor = factor.clamp(3, 100);
self.zoom_factor = factor.clamp(3, 500);
self.persist_settings_if_changed();
Task::none()
}
+1 -1
View File
@@ -492,7 +492,7 @@ impl Camera {
}
pub fn zoom(&mut self, delta: f32) {
self.distance = (self.distance * (1.0 - delta * 0.1)).max(0.001);
self.distance = (self.distance * 0.9f32.powf(delta)).max(0.001);
}
/// World-space offset from `target` to the point under `screen` on the
+3 -3
View File
@@ -55,7 +55,7 @@ pub struct AppPrefs {
pub commandline_fade_ms: i32,
/// ZOOMWHEEL: reverse the mouse-wheel zoom direction.
pub zoom_wheel_reversed: bool,
/// ZOOMFACTOR, 3..=100.
/// ZOOMFACTOR, 3..=500.
pub zoom_factor: i32,
/// TEXTEDITMODE: TEXTEDIT keeps prompting for the next object.
pub texteditmode: bool,
@@ -1181,10 +1181,10 @@ pub fn view_window<'a>(
Space::new().height(12),
row![
text(crate::t!("Zoom factor")).size(12).width(150),
slider(3..=100, prefs.zoom_factor.clamp(3, 100), Message::ZoomFactorChanged)
slider(3..=500, prefs.zoom_factor.clamp(3, 500), Message::ZoomFactorChanged)
.step(1)
.width(Fill),
text(prefs.zoom_factor.clamp(3, 100).to_string()).size(11).width(44),
text(prefs.zoom_factor.clamp(3, 500).to_string()).size(11).width(44),
]
.spacing(10)
.align_y(iced::Center),