mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-29 03:18:12 +08:00
Add option to adjust viewport zoom rate in the preferences dialog (#2420)
* zoom rate preference * Add generic range mapping functions for improved reusability * cleanup * Map zoom slider's default value of 50 to the original zoom rate (0.005) * use . instead of .0 for whole-number floats * Refactor zoom rate mapping to use a fixed reference point and adjustable curve steepness * Code review --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
co-authored by
Keavon Chambers
parent
6a8386d1e9
commit
3c1ec45188
@@ -1,3 +1,4 @@
|
||||
use crate::consts::VIEWPORT_ZOOM_WHEEL_RATE;
|
||||
use crate::messages::input_mapper::key_mapping::MappingVariant;
|
||||
use crate::messages::portfolio::document::node_graph::utility_types::GraphWireStyle;
|
||||
use crate::messages::preferences::SelectionMode;
|
||||
@@ -13,6 +14,7 @@ pub struct PreferencesMessageHandler {
|
||||
pub use_vello: bool,
|
||||
pub vector_meshes: bool,
|
||||
pub graph_wire_style: GraphWireStyle,
|
||||
pub viewport_zoom_wheel_rate: f64,
|
||||
}
|
||||
|
||||
impl PreferencesMessageHandler {
|
||||
@@ -47,6 +49,7 @@ impl Default for PreferencesMessageHandler {
|
||||
use_vello,
|
||||
vector_meshes: false,
|
||||
graph_wire_style: GraphWireStyle::default(),
|
||||
viewport_zoom_wheel_rate: VIEWPORT_ZOOM_WHEEL_RATE,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -99,6 +102,9 @@ impl MessageHandler<PreferencesMessage, ()> for PreferencesMessageHandler {
|
||||
self.graph_wire_style = style;
|
||||
responses.add(NodeGraphMessage::SendGraph);
|
||||
}
|
||||
PreferencesMessage::ViewportZoomWheelRate { rate } => {
|
||||
self.viewport_zoom_wheel_rate = rate;
|
||||
}
|
||||
}
|
||||
// TODO: Reenable when Imaginate is restored (and move back up one line since the auto-formatter doesn't like it in that block)
|
||||
// PreferencesMessage::ImaginateRefreshFrequency { seconds } => {
|
||||
|
||||
Reference in New Issue
Block a user