summaryrefslogtreecommitdiffstats
path: root/native/src/widget
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2022-07-09 19:03:40 +0200
committerLibravatar GitHub <noreply@github.com>2022-07-09 19:03:40 +0200
commit9051dd6977d045f991092e247e6bd9da40d2e793 (patch)
treecde7d983ffc085ed908be776e9021a8e41b44b44 /native/src/widget
parentc4c1221be62f51dd9f1d20ea2c4ea6e2c94e20aa (diff)
parente548d6c0d5b430b090821e673dc453a24c885fbe (diff)
downloadiced-9051dd6977d045f991092e247e6bd9da40d2e793.tar.gz
iced-9051dd6977d045f991092e247e6bd9da40d2e793.tar.bz2
iced-9051dd6977d045f991092e247e6bd9da40d2e793.zip
Merge pull request #1379 from PolyMeilex/fix/clippy
Address Clippy lints
Diffstat (limited to 'native/src/widget')
-rw-r--r--native/src/widget/button.rs2
-rw-r--r--native/src/widget/checkbox.rs5
-rw-r--r--native/src/widget/column.rs6
-rw-r--r--native/src/widget/pane_grid.rs3
-rw-r--r--native/src/widget/pane_grid/node.rs20
-rw-r--r--native/src/widget/pane_grid/state.rs5
-rw-r--r--native/src/widget/pick_list.rs23
-rw-r--r--native/src/widget/progress_bar.rs2
-rw-r--r--native/src/widget/radio.rs8
-rw-r--r--native/src/widget/row.rs6
-rw-r--r--native/src/widget/rule.rs2
-rw-r--r--native/src/widget/scrollable.rs6
-rw-r--r--native/src/widget/slider.rs8
-rw-r--r--native/src/widget/text.rs4
-rw-r--r--native/src/widget/text_input.rs24
-rw-r--r--native/src/widget/text_input/editor.rs19
-rw-r--r--native/src/widget/text_input/value.rs7
-rw-r--r--native/src/widget/toggler.rs7
18 files changed, 81 insertions, 76 deletions
diff --git a/native/src/widget/button.rs b/native/src/widget/button.rs
index d4e88424..a33ee7f7 100644
--- a/native/src/widget/button.rs
+++ b/native/src/widget/button.rs
@@ -382,7 +382,7 @@ where
self.on_press.is_some(),
theme,
self.style,
- || &self.state,
+ || self.state,
);
self.content.draw(
diff --git a/native/src/widget/checkbox.rs b/native/src/widget/checkbox.rs
index 9e7f183a..a49d2fa2 100644
--- a/native/src/widget/checkbox.rs
+++ b/native/src/widget/checkbox.rs
@@ -158,7 +158,10 @@ where
Text::new(&self.label)
.font(self.font.clone())
.width(self.width)
- .size(self.text_size.unwrap_or(renderer.default_size())),
+ .size(
+ self.text_size
+ .unwrap_or_else(|| renderer.default_size()),
+ ),
)
.layout(renderer, limits)
}
diff --git a/native/src/widget/column.rs b/native/src/widget/column.rs
index 01ddd9f1..4eee7d3c 100644
--- a/native/src/widget/column.rs
+++ b/native/src/widget/column.rs
@@ -102,6 +102,12 @@ impl<'a, Message, Renderer> Column<'a, Message, Renderer> {
}
}
+impl<'a, Message, Renderer> Default for Column<'a, Message, Renderer> {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
impl<'a, Message, Renderer> Widget<Message, Renderer>
for Column<'a, Message, Renderer>
where
diff --git a/native/src/widget/pane_grid.rs b/native/src/widget/pane_grid.rs
index eb969dbf..70ca772c 100644
--- a/native/src/widget/pane_grid.rs
+++ b/native/src/widget/pane_grid.rs
@@ -835,8 +835,7 @@ fn hovered_split<'a>(
) -> Option<(Split, Axis, Rectangle)> {
splits
.filter_map(|(split, (axis, region, ratio))| {
- let bounds =
- axis.split_line_bounds(*region, *ratio, f32::from(spacing));
+ let bounds = axis.split_line_bounds(*region, *ratio, spacing);
if bounds.contains(cursor_position) {
Some((*split, *axis, bounds))
diff --git a/native/src/widget/pane_grid/node.rs b/native/src/widget/pane_grid/node.rs
index af6573a0..cc304b96 100644
--- a/native/src/widget/pane_grid/node.rs
+++ b/native/src/widget/pane_grid/node.rs
@@ -36,14 +36,11 @@ impl Node {
std::iter::from_fn(move || {
while let Some(node) = unvisited_nodes.pop() {
- match node {
- Node::Split { id, a, b, .. } => {
- unvisited_nodes.push(a);
- unvisited_nodes.push(b);
+ if let Node::Split { id, a, b, .. } = node {
+ unvisited_nodes.push(a);
+ unvisited_nodes.push(b);
- return Some(id);
- }
- _ => {}
+ return Some(id);
}
}
@@ -124,12 +121,9 @@ impl Node {
}
pub(crate) fn update(&mut self, f: &impl Fn(&mut Node)) {
- match self {
- Node::Split { a, b, .. } => {
- a.update(f);
- b.update(f);
- }
- _ => {}
+ if let Node::Split { a, b, .. } = self {
+ a.update(f);
+ b.update(f);
}
f(self);
diff --git a/native/src/widget/pane_grid/state.rs b/native/src/widget/pane_grid/state.rs
index 6a282d24..4e90f645 100644
--- a/native/src/widget/pane_grid/state.rs
+++ b/native/src/widget/pane_grid/state.rs
@@ -66,6 +66,11 @@ impl<T> State<T> {
self.panes.len()
}
+ /// Returns `true` if the amount of panes in the [`State`] is 0.
+ pub fn is_empty(&self) -> bool {
+ self.len() == 0
+ }
+
/// Returns the internal state of the given [`Pane`], if it exists.
pub fn get(&self, pane: &Pane) -> Option<&T> {
self.panes.get(pane)
diff --git a/native/src/widget/pick_list.rs b/native/src/widget/pick_list.rs
index c6cfcc01..61b0eb96 100644
--- a/native/src/widget/pick_list.rs
+++ b/native/src/widget/pick_list.rs
@@ -160,7 +160,7 @@ where
let limits = limits.width(width).height(Length::Shrink).pad(padding);
- let text_size = text_size.unwrap_or(renderer.default_size());
+ let text_size = text_size.unwrap_or_else(|| renderer.default_size());
let max_width = match width {
Length::Shrink => {
@@ -407,10 +407,9 @@ pub fn draw<T, Renderer>(
let label = selected.map(ToString::to_string);
- if let Some(label) =
- label.as_ref().map(String::as_str).or_else(|| placeholder)
- {
- let text_size = f32::from(text_size.unwrap_or(renderer.default_size()));
+ if let Some(label) = label.as_deref().or(placeholder) {
+ let text_size =
+ f32::from(text_size.unwrap_or_else(|| renderer.default_size()));
renderer.fill_text(Text {
content: label,
@@ -460,7 +459,7 @@ where
self.padding,
self.text_size,
&self.font,
- self.placeholder.as_ref().map(String::as_str),
+ self.placeholder.as_deref(),
&self.options,
)
}
@@ -513,7 +512,7 @@ where
self.padding,
self.text_size,
&self.font,
- self.placeholder.as_ref().map(String::as_str),
+ self.placeholder.as_deref(),
self.selected.as_ref(),
self.style,
)
@@ -526,7 +525,7 @@ where
) -> Option<overlay::Element<'_, Message, Renderer>> {
overlay(
layout,
- &mut self.state,
+ self.state,
self.padding,
self.text_size,
self.font.clone(),
@@ -536,8 +535,8 @@ where
}
}
-impl<'a, T: 'a, Message, Renderer> Into<Element<'a, Message, Renderer>>
- for PickList<'a, T, Message, Renderer>
+impl<'a, T: 'a, Message, Renderer> From<PickList<'a, T, Message, Renderer>>
+ for Element<'a, Message, Renderer>
where
T: Clone + ToString + Eq,
[T]: ToOwned<Owned = Vec<T>>,
@@ -550,7 +549,7 @@ where
<Renderer::Theme as StyleSheet>::Style:
Into<<Renderer::Theme as menu::StyleSheet>::Style>,
{
- fn into(self) -> Element<'a, Message, Renderer> {
- Element::new(self)
+ fn from(pick_list: PickList<'a, T, Message, Renderer>) -> Self {
+ Element::new(pick_list)
}
}
diff --git a/native/src/widget/progress_bar.rs b/native/src/widget/progress_bar.rs
index 4eb7438a..50bdcda6 100644
--- a/native/src/widget/progress_bar.rs
+++ b/native/src/widget/progress_bar.rs
@@ -76,7 +76,7 @@ where
}
}
-impl<'a, Message, Renderer> Widget<Message, Renderer> for ProgressBar<Renderer>
+impl<Message, Renderer> Widget<Message, Renderer> for ProgressBar<Renderer>
where
Renderer: crate::Renderer,
Renderer::Theme: StyleSheet,
diff --git a/native/src/widget/radio.rs b/native/src/widget/radio.rs
index ba45a0f4..647e3c5a 100644
--- a/native/src/widget/radio.rs
+++ b/native/src/widget/radio.rs
@@ -168,11 +168,9 @@ where
.width(Length::Units(self.size))
.height(Length::Units(self.size)),
)
- .push(
- Text::new(&self.label)
- .width(self.width)
- .size(self.text_size.unwrap_or(renderer.default_size())),
- )
+ .push(Text::new(&self.label).width(self.width).size(
+ self.text_size.unwrap_or_else(|| renderer.default_size()),
+ ))
.layout(renderer, limits)
}
diff --git a/native/src/widget/row.rs b/native/src/widget/row.rs
index 9cff74c6..9d8cc715 100644
--- a/native/src/widget/row.rs
+++ b/native/src/widget/row.rs
@@ -102,6 +102,12 @@ impl<'a, Message, Renderer> Row<'a, Message, Renderer> {
}
}
+impl<'a, Message, Renderer> Default for Row<'a, Message, Renderer> {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
impl<'a, Message, Renderer> Widget<Message, Renderer>
for Row<'a, Message, Renderer>
where
diff --git a/native/src/widget/rule.rs b/native/src/widget/rule.rs
index 26285df4..f0fda8a9 100644
--- a/native/src/widget/rule.rs
+++ b/native/src/widget/rule.rs
@@ -36,7 +36,7 @@ where
/// Creates a vertical [`Rule`] with the given width.
pub fn vertical(width: u16) -> Self {
Rule {
- width: Length::from(Length::Units(width)),
+ width: Length::Units(width),
height: Length::Fill,
is_horizontal: false,
style: Default::default(),
diff --git a/native/src/widget/scrollable.rs b/native/src/widget/scrollable.rs
index 5d550315..1b255860 100644
--- a/native/src/widget/scrollable.rs
+++ b/native/src/widget/scrollable.rs
@@ -662,7 +662,7 @@ where
shell: &mut Shell<'_, Message>,
) -> event::Status {
update(
- &mut self.state,
+ self.state,
event,
layout,
cursor_position,
@@ -693,7 +693,7 @@ where
renderer: &Renderer,
) -> mouse::Interaction {
mouse_interaction(
- &self.state,
+ self.state,
layout,
cursor_position,
self.scrollbar_width,
@@ -720,7 +720,7 @@ where
_viewport: &Rectangle,
) {
draw(
- &self.state,
+ self.state,
renderer,
theme,
layout,
diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs
index bda31327..a5ff611c 100644
--- a/native/src/widget/slider.rs
+++ b/native/src/widget/slider.rs
@@ -303,7 +303,7 @@ pub fn draw<T, R>(
HandleShape::Rectangle {
width,
border_radius,
- } => (f32::from(width), f32::from(bounds.height), border_radius),
+ } => (f32::from(width), bounds.height, border_radius),
};
let value = value.into() as f32;
@@ -410,7 +410,7 @@ where
layout,
cursor_position,
shell,
- &mut self.state,
+ self.state,
&mut self.value,
&self.range,
self.step,
@@ -432,7 +432,7 @@ where
renderer,
layout,
cursor_position,
- &self.state,
+ self.state,
self.value,
&self.range,
theme,
@@ -447,7 +447,7 @@ where
_viewport: &Rectangle,
_renderer: &Renderer,
) -> mouse::Interaction {
- mouse_interaction(layout, cursor_position, &self.state)
+ mouse_interaction(layout, cursor_position, self.state)
}
}
diff --git a/native/src/widget/text.rs b/native/src/widget/text.rs
index 242247b0..8d173b8a 100644
--- a/native/src/widget/text.rs
+++ b/native/src/widget/text.rs
@@ -131,7 +131,7 @@ where
) -> layout::Node {
let limits = limits.width(self.width).height(self.height);
- let size = self.size.unwrap_or(renderer.default_size());
+ let size = self.size.unwrap_or_else(|| renderer.default_size());
let bounds = limits.max();
@@ -205,7 +205,7 @@ pub fn draw<Renderer>(
renderer.fill_text(crate::text::Text {
content,
- size: f32::from(size.unwrap_or(renderer.default_size())),
+ size: f32::from(size.unwrap_or_else(|| renderer.default_size())),
bounds: Rectangle { x, y, ..bounds },
color: appearance.color.unwrap_or(style.text_color),
font,
diff --git a/native/src/widget/text_input.rs b/native/src/widget/text_input.rs
index d345cec3..98265ef2 100644
--- a/native/src/widget/text_input.rs
+++ b/native/src/widget/text_input.rs
@@ -176,7 +176,7 @@ where
theme,
layout,
cursor_position,
- &self.state,
+ self.state,
value.unwrap_or(&self.value),
&self.placeholder,
self.size,
@@ -198,7 +198,7 @@ pub fn layout<Renderer>(
where
Renderer: text::Renderer,
{
- let text_size = size.unwrap_or(renderer.default_size());
+ let text_size = size.unwrap_or_else(|| renderer.default_size());
let limits = limits
.pad(padding)
@@ -498,7 +498,7 @@ where
None => {
let content: String = clipboard
.read()
- .unwrap_or(String::new())
+ .unwrap_or_default()
.chars()
.filter(|c| !c.is_control())
.collect();
@@ -597,7 +597,7 @@ pub fn draw<Renderer>(
Renderer::Theme: StyleSheet,
{
let secure_value = is_secure.then(|| value.secure());
- let value = secure_value.as_ref().unwrap_or(&value);
+ let value = secure_value.as_ref().unwrap_or(value);
let bounds = layout.bounds();
let text_bounds = layout.children().next().unwrap().bounds();
@@ -623,16 +623,16 @@ pub fn draw<Renderer>(
);
let text = value.to_string();
- let size = size.unwrap_or(renderer.default_size());
+ let size = size.unwrap_or_else(|| renderer.default_size());
let (cursor, offset) = if state.is_focused() {
- match state.cursor.state(&value) {
+ match state.cursor.state(value) {
cursor::State::Index(position) => {
let (text_value_width, offset) =
measure_cursor_and_scroll_offset(
renderer,
text_bounds,
- &value,
+ value,
size,
position,
font.clone(),
@@ -664,7 +664,7 @@ pub fn draw<Renderer>(
measure_cursor_and_scroll_offset(
renderer,
text_bounds,
- &value,
+ value,
size,
left,
font.clone(),
@@ -674,7 +674,7 @@ pub fn draw<Renderer>(
measure_cursor_and_scroll_offset(
renderer,
text_bounds,
- &value,
+ value,
size,
right,
font.clone(),
@@ -998,16 +998,16 @@ fn find_cursor_position<Renderer>(
where
Renderer: text::Renderer,
{
- let size = size.unwrap_or(renderer.default_size());
+ let size = size.unwrap_or_else(|| renderer.default_size());
let offset =
- offset(renderer, text_bounds, font.clone(), size, &value, &state);
+ offset(renderer, text_bounds, font.clone(), size, value, state);
renderer
.hit_test(
&value.to_string(),
size.into(),
- font.clone(),
+ font,
Size::INFINITY,
Point::new(x + offset, text_bounds.height / 2.0),
true,
diff --git a/native/src/widget/text_input/editor.rs b/native/src/widget/text_input/editor.rs
index bac530e1..d53fa8d9 100644
--- a/native/src/widget/text_input/editor.rs
+++ b/native/src/widget/text_input/editor.rs
@@ -15,12 +15,9 @@ impl<'a> Editor<'a> {
}
pub fn insert(&mut self, character: char) {
- match self.cursor.selection(self.value) {
- Some((left, right)) => {
- self.cursor.move_left(self.value);
- self.value.remove_many(left, right);
- }
- _ => {}
+ if let Some((left, right)) = self.cursor.selection(self.value) {
+ self.cursor.move_left(self.value);
+ self.value.remove_many(left, right);
}
self.value.insert(self.cursor.end(self.value), character);
@@ -29,13 +26,9 @@ impl<'a> Editor<'a> {
pub fn paste(&mut self, content: Value) {
let length = content.len();
-
- match self.cursor.selection(self.value) {
- Some((left, right)) => {
- self.cursor.move_left(self.value);
- self.value.remove_many(left, right);
- }
- _ => {}
+ if let Some((left, right)) = self.cursor.selection(self.value) {
+ self.cursor.move_left(self.value);
+ self.value.remove_many(left, right);
}
self.value.insert_many(self.cursor.end(self.value), content);
diff --git a/native/src/widget/text_input/value.rs b/native/src/widget/text_input/value.rs
index 2034cca4..cf4da562 100644
--- a/native/src/widget/text_input/value.rs
+++ b/native/src/widget/text_input/value.rs
@@ -37,7 +37,7 @@ impl Value {
let previous_string =
&self.graphemes[..index.min(self.graphemes.len())].concat();
- UnicodeSegmentation::split_word_bound_indices(&previous_string as &str)
+ UnicodeSegmentation::split_word_bound_indices(previous_string as &str)
.filter(|(_, word)| !word.trim_start().is_empty())
.next_back()
.map(|(i, previous_word)| {
@@ -58,9 +58,8 @@ impl Value {
pub fn next_end_of_word(&self, index: usize) -> usize {
let next_string = &self.graphemes[index..].concat();
- UnicodeSegmentation::split_word_bound_indices(&next_string as &str)
- .filter(|(_, word)| !word.trim_start().is_empty())
- .next()
+ UnicodeSegmentation::split_word_bound_indices(next_string as &str)
+ .find(|(_, word)| !word.trim_start().is_empty())
.map(|(i, next_word)| {
index
+ UnicodeSegmentation::graphemes(next_word, true).count()
diff --git a/native/src/widget/toggler.rs b/native/src/widget/toggler.rs
index 0936c271..3deaf287 100644
--- a/native/src/widget/toggler.rs
+++ b/native/src/widget/toggler.rs
@@ -162,7 +162,10 @@ where
.horizontal_alignment(self.text_alignment)
.font(self.font.clone())
.width(self.width)
- .size(self.text_size.unwrap_or(renderer.default_size())),
+ .size(
+ self.text_size
+ .unwrap_or_else(|| renderer.default_size()),
+ ),
);
}
@@ -239,7 +242,7 @@ where
renderer,
style,
label_layout,
- &label,
+ label,
self.text_size,
self.font.clone(),
Default::default(),