diff options
| author | 2020-12-18 10:55:18 +0100 | |
|---|---|---|
| committer | 2020-12-18 10:55:18 +0100 | |
| commit | 64af860ad2317d9f2e72cbda659102d96ec0f931 (patch) | |
| tree | e322f96e00c1a09b9b2d1af8ee7835fc560c4201 /native | |
| parent | e6f23e37719ccc52e3a3802e204a9b33aeba9d2a (diff) | |
| download | iced-64af860ad2317d9f2e72cbda659102d96ec0f931.tar.gz iced-64af860ad2317d9f2e72cbda659102d96ec0f931.tar.bz2 iced-64af860ad2317d9f2e72cbda659102d96ec0f931.zip | |
Remove unnecessary `Option` in `image::viewer::State`
Diffstat (limited to '')
| -rw-r--r-- | native/src/widget/image/viewer.rs | 42 | 
1 files changed, 24 insertions, 18 deletions
| diff --git a/native/src/widget/image/viewer.rs b/native/src/widget/image/viewer.rs index c8656101..0f081a1a 100644 --- a/native/src/widget/image/viewer.rs +++ b/native/src/widget/image/viewer.rs @@ -136,7 +136,7 @@ impl<'a> Viewer<'a> {              let ratio = width_ratio.min(height_ratio); -            let scale = self.state.scale.unwrap_or(1.0); +            let scale = self.state.scale;              if ratio < 1.0 {                  (dimensions.0 * ratio * scale, dimensions.1 * ratio * scale) @@ -222,29 +222,24 @@ where                  match delta {                      mouse::ScrollDelta::Lines { y, .. }                      | mouse::ScrollDelta::Pixels { y, .. } => { -                        let previous_scale = self.state.scale.unwrap_or(1.0); +                        let previous_scale = self.state.scale;                          if y < 0.0 && previous_scale > self.min_scale                              || y > 0.0 && previous_scale < self.max_scale                          { -                            self.state.scale = Some( -                                (if y > 0.0 { -                                    self.state.scale.unwrap_or(1.0) -                                        * (1.0 + self.scale_step) -                                } else { -                                    self.state.scale.unwrap_or(1.0) -                                        / (1.0 + self.scale_step) -                                }) -                                .max(self.min_scale) -                                .min(self.max_scale), -                            ); +                            self.state.scale = (if y > 0.0 { +                                self.state.scale * (1.0 + self.scale_step) +                            } else { +                                self.state.scale / (1.0 + self.scale_step) +                            }) +                            .max(self.min_scale) +                            .min(self.max_scale);                              let image_size =                                  self.image_size(renderer, bounds.size()); -                            let factor = self.state.scale.unwrap() -                                / previous_scale -                                - 1.0; +                            let factor = +                                self.state.scale / previous_scale - 1.0;                              let cursor_to_center = relative_cursor_position(                                  cursor_position, @@ -343,14 +338,25 @@ where  /// The local state of a [`Viewer`].  ///  /// [`Viewer`]: struct.Viewer.html -#[derive(Debug, Clone, Copy, Default)] +#[derive(Debug, Clone, Copy)]  pub struct State { -    scale: Option<f32>, +    scale: f32,      starting_offset: Vector,      current_offset: Vector,      starting_cursor_pos: Option<Point>,  } +impl Default for State { +    fn default() -> Self { +        Self { +            scale: 1.0, +            starting_offset: Vector::default(), +            current_offset: Vector::default(), +            starting_cursor_pos: None, +        } +    } +} +  impl State {      /// Creates a new [`State`].      /// | 
