From 2c21e1a90b4a931d166c7e35d285d20951798b97 Mon Sep 17 00:00:00 2001 From: Keavon Chambers Date: Sat, 20 Dec 2025 00:20:35 -0800 Subject: [PATCH] Desktop: Clean up the UI scale setting in the Preferences dialog --- .../preferences_dialog_message_handler.rs | 23 +++++++++++-------- .../preferences_message_handler.rs | 1 + 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs b/editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs index 0c25cf46..e3960982 100644 --- a/editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs +++ b/editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs @@ -1,4 +1,4 @@ -use crate::consts::{UI_SCALE_DEFAULT, UI_SCALE_MAX, UI_SCALE_MIN, VIEWPORT_ZOOM_WHEEL_RATE, VIEWPORT_ZOOM_WHEEL_RATE_CHANGE}; +use crate::consts::{VIEWPORT_ZOOM_WHEEL_RATE, VIEWPORT_ZOOM_WHEEL_RATE_CHANGE}; use crate::messages::layout::utility_types::widget_prelude::*; use crate::messages::portfolio::document::utility_types::wires::GraphWireStyle; use crate::messages::preferences::SelectionMode; @@ -155,14 +155,14 @@ impl PreferencesDialogMessageHandler { rows.extend_from_slice(&[header, selection_label, selection_mode]); } - // ========== - // UI - // ========== + // ========= + // INTERFACE + // ========= #[cfg(not(target_family = "wasm"))] { - let header = vec![TextLabel::new("UI").italic(true).widget_instance()]; + let header = vec![TextLabel::new("Interface").italic(true).widget_instance()]; - let scale_description = "Adjust the scale of the user interface (100 is default)."; + let scale_description = "Adjust the scale of the entire user interface (100% is default)."; let scale_label = vec![ Separator::new(SeparatorType::Unrelated).widget_instance(), Separator::new(SeparatorType::Unrelated).widget_instance(), @@ -176,15 +176,18 @@ impl PreferencesDialogMessageHandler { .tooltip_description(scale_description) .mode_range() .int() - .min(ui_scale_to_display(UI_SCALE_MIN)) - .max(ui_scale_to_display(UI_SCALE_MAX)) + .min(ui_scale_to_display(crate::consts::UI_SCALE_MIN)) + .max(ui_scale_to_display(crate::consts::UI_SCALE_MAX)) .unit("%") .on_update(|number_input: &NumberInput| { if let Some(display_value) = number_input.value { let scale = map_display_to_ui_scale(display_value); PreferencesMessage::UIScale { scale }.into() } else { - PreferencesMessage::UIScale { scale: UI_SCALE_DEFAULT }.into() + PreferencesMessage::UIScale { + scale: crate::consts::UI_SCALE_DEFAULT, + } + .into() } }) .widget_instance(), @@ -376,11 +379,13 @@ fn map_zoom_rate_to_display(rate: f64) -> f64 { } /// Maps display values in percent to actual ui scale. +#[cfg(not(target_family = "wasm"))] fn map_display_to_ui_scale(display: f64) -> f64 { display / 100. } /// Maps actual ui scale back to display values in percent. +#[cfg(not(target_family = "wasm"))] fn ui_scale_to_display(scale: f64) -> f64 { scale * 100. } diff --git a/editor/src/messages/preferences/preferences_message_handler.rs b/editor/src/messages/preferences/preferences_message_handler.rs index 2cc0b5ae..98af0bac 100644 --- a/editor/src/messages/preferences/preferences_message_handler.rs +++ b/editor/src/messages/preferences/preferences_message_handler.rs @@ -6,6 +6,7 @@ use crate::messages::prelude::*; use graph_craft::wasm_application_io::EditorPreferences; #[derive(Debug, PartialEq, Clone, serde::Serialize, serde::Deserialize, specta::Type, ExtractField)] +#[serde(default)] pub struct PreferencesMessageHandler { pub selection_mode: SelectionMode, pub zoom_with_scroll: bool,