diff --git a/cosmic-settings/src/app.rs b/cosmic-settings/src/app.rs index d27d2674..9b6a547a 100644 --- a/cosmic-settings/src/app.rs +++ b/cosmic-settings/src/app.rs @@ -996,7 +996,7 @@ impl SettingsApp { if section .show_while .as_ref() - .map_or(true, |func| func(model.as_ref())) + .is_none_or(|func| func(model.as_ref())) { sections_column.push( (section.view_fn)(&self.pages, model.as_ref(), section) @@ -1108,7 +1108,7 @@ impl SettingsApp { if section .show_while .as_ref() - .map_or(true, |func| func(model.as_ref())) + .is_none_or(|func| func(model.as_ref())) { let section = (section.view_fn)(&self.pages, model.as_ref(), section) .map(Message::PageMessage) diff --git a/cosmic-settings/src/config.rs b/cosmic-settings/src/config.rs index 21d47801..88de69ef 100644 --- a/cosmic-settings/src/config.rs +++ b/cosmic-settings/src/config.rs @@ -19,6 +19,12 @@ pub struct Config { state: cosmic_config::Config, } +impl Default for Config { + fn default() -> Self { + Self::new() + } +} + impl Config { pub fn new() -> Self { let config = match cosmic_config::Config::new(NAME, 1) { diff --git a/cosmic-settings/src/pages/accessibility/mod.rs b/cosmic-settings/src/pages/accessibility/mod.rs index 85eb6365..213544c8 100644 --- a/cosmic-settings/src/pages/accessibility/mod.rs +++ b/cosmic-settings/src/pages/accessibility/mod.rs @@ -231,7 +231,7 @@ pub fn vision() -> section::Section { text::body(status_text).wrapping(Wrapping::Word), page.wayland_available .is_some() - .then_some(crate::pages::Message::Page(magnifier_entity).into()), + .then_some(crate::pages::Message::Page(magnifier_entity)), ) }) .add( @@ -270,7 +270,7 @@ pub fn vision() -> section::Section { Some(page.screen_filter_selection as usize), move |idx| { let filter = ColorFilter::from_usize(idx).unwrap_or_default(); - Message::SetScreenFilterSelection(filter).into() + Message::SetScreenFilterSelection(filter) }, cosmic::iced::window::Id::RESERVED, Message::Surface, diff --git a/cosmic-settings/src/pages/applications/default_apps.rs b/cosmic-settings/src/pages/applications/default_apps.rs index 27233b81..a8c5f42d 100644 --- a/cosmic-settings/src/pages/applications/default_apps.rs +++ b/cosmic-settings/src/pages/applications/default_apps.rs @@ -187,16 +187,13 @@ impl Page { .iter() .map(|m| m.essence_str()) .filter(|m| m.starts_with("audio")) - .chain( - [ - "application/ogg", - "application/x-cue", - "application/x-ogg", - "audio/mp3", - "x-content/audio-cdda", - ] - .into_iter(), - ) + .chain([ + "application/ogg", + "application/x-cue", + "application/x-ogg", + "audio/mp3", + "x-content/audio-cdda", + ]) .collect(); &mime_types }), @@ -528,7 +525,7 @@ async fn load_defaults(assocs: &BTreeMap, Arc>, for_mimes: &[&str] async fn xdg_mime_query_default(mime_type: &str) -> Option { let output = tokio::process::Command::new("xdg-mime") - .args(&["query", "default", mime_type]) + .args(["query", "default", mime_type]) .output() .await .ok()?; diff --git a/cosmic-settings/src/pages/applications/startup_apps.rs b/cosmic-settings/src/pages/applications/startup_apps.rs index 9313d51e..67eaea89 100644 --- a/cosmic-settings/src/pages/applications/startup_apps.rs +++ b/cosmic-settings/src/pages/applications/startup_apps.rs @@ -63,9 +63,9 @@ enum Context { AddApplication(DirectoryType), } -impl Into> for DirectoryType { - fn into(self) -> Vec { - match self { +impl From for Vec { + fn from(val: DirectoryType) -> Self { + match val { DirectoryType::User => vec![ dirs::config_dir() .expect("config dir not found") @@ -121,7 +121,7 @@ impl page::Page for Page { Some( cosmic::app::context_drawer( self.add_application_context_view(directory_type.clone()), - crate::pages::Message::CloseContextDrawer.into(), + crate::pages::Message::CloseContextDrawer, ) .title(fl!("startup-apps", "search-for-application")) .header(search), @@ -224,7 +224,7 @@ impl Page { let directories: Vec = directory_type.clone().into(); let directory_to_target = - directories.get(0).expect("Always at least one directory"); + directories.first().expect("Always at least one directory"); _ = std::fs::create_dir_all(directory_to_target.as_path()); @@ -271,7 +271,7 @@ impl Page { let directories: Vec = directory_type.clone().into(); let directory_to_target = - directories.get(0).expect("Always at least one directory"); + directories.first().expect("Always at least one directory"); if let Ok(exists) = std::fs::exists(directory_to_target.join(file_name.clone())) { if exists { diff --git a/cosmic-settings/src/pages/bluetooth/mod.rs b/cosmic-settings/src/pages/bluetooth/mod.rs index b84030da..71a50af3 100644 --- a/cosmic-settings/src/pages/bluetooth/mod.rs +++ b/cosmic-settings/src/pages/bluetooth/mod.rs @@ -830,7 +830,7 @@ fn connected_devices() -> Section { .model .popup_device .as_deref() - .map_or(false, |p| path.as_str() == p.as_str()) + .is_some_and(|p| path.as_str() == p.as_str()) { widget::popover( widget::button::icon(widget::icon::from_name("view-more-symbolic")) @@ -1012,21 +1012,21 @@ mod systemd { pub fn activate_bluetooth() -> impl Future + Send { tokio::process::Command::new("pkexec") - .args(&["systemctl", "start", "bluetooth"]) + .args(["systemctl", "start", "bluetooth"]) .status() .map(|_| ()) } pub fn enable_bluetooth() -> impl Future + Send { tokio::process::Command::new("pkexec") - .args(&["systemctl", "enable", "--now", "bluetooth"]) + .args(["systemctl", "enable", "--now", "bluetooth"]) .status() .map(|_| ()) } pub fn is_bluetooth_enabled() -> bool { std::process::Command::new("systemctl") - .args(&["is-enabled", "bluetooth"]) + .args(["is-enabled", "bluetooth"]) .status() .map(|status| status.success()) .unwrap_or(true) @@ -1034,7 +1034,7 @@ mod systemd { pub fn is_bluetooth_active() -> bool { std::process::Command::new("systemctl") - .args(&["is-active", "bluetooth"]) + .args(["is-active", "bluetooth"]) .status() .map(|status| status.success()) .unwrap_or(true) diff --git a/cosmic-settings/src/pages/desktop/appearance/drawer.rs b/cosmic-settings/src/pages/desktop/appearance/drawer.rs index 791d97c9..ada25b73 100644 --- a/cosmic-settings/src/pages/desktop/appearance/drawer.rs +++ b/cosmic-settings/src/pages/desktop/appearance/drawer.rs @@ -129,7 +129,7 @@ impl Content { ) -> Task { match message { FontMessage::FontLoaded(interface, mono) => { - return self.font_config.font_loaded(mono, interface); + self.font_config.font_loaded(mono, interface) } FontMessage::Search(input) => match context_view { None => Task::none(), @@ -141,7 +141,7 @@ impl Content { return task; } } - return Task::none(); + Task::none() } } } diff --git a/cosmic-settings/src/pages/desktop/appearance/font_config.rs b/cosmic-settings/src/pages/desktop/appearance/font_config.rs index 669f003a..76fca5a6 100644 --- a/cosmic-settings/src/pages/desktop/appearance/font_config.rs +++ b/cosmic-settings/src/pages/desktop/appearance/font_config.rs @@ -38,15 +38,12 @@ pub fn load_font_families() -> (Vec>, Vec>) { }; if face.monospaced { - if mono - .last() - .map_or(true, |name| &**name != font_name.as_str()) - { + if mono.last().is_none_or(|name| &**name != font_name.as_str()) { mono.push(Arc::from(font_name.as_str())); } } else if interface .last() - .map_or(true, |name| &**name != font_name.as_str()) + .is_none_or(|name| &**name != font_name.as_str()) { interface.push(Arc::from(font_name.as_str())); } @@ -75,6 +72,12 @@ pub struct Model { pub monospace_font: FontConfig, } +impl Default for Model { + fn default() -> Self { + Self::new() + } +} + impl Model { pub fn new() -> Model { Model { @@ -118,7 +121,7 @@ impl Model { }; update_config(MONOSPACE_FONT, self.monospace_font.clone()); - return None; + None } ContextView::SystemFont => { self.interface_font = FontConfig { @@ -131,9 +134,9 @@ impl Model { tokio::spawn(async move { set_gnome_font_name(font.as_ref()).await; }); - return None; + None } - _ => return None, + _ => None, } } @@ -148,7 +151,7 @@ impl Model { fonts .iter() .filter(|f| f.to_lowercase().contains(&self.font_search)) - .map(|f| f.clone()) + .cloned() .collect(), ); } @@ -175,7 +178,7 @@ impl Model { callback: impl Fn(Arc) -> super::Message, ) -> Element<'_, super::Message> { let svg_accent = Rc::new(|theme: &cosmic::Theme| svg::Style { - color: Some(theme.cosmic().accent_color().into()), + color: Some(theme.cosmic().accent_text_color().into()), }); let (mut families, current_font) = match *context_view { @@ -195,6 +198,11 @@ impl Model { list.add( settings::item_row(vec![ widget::text::body(&**family) + .class(if selected { + cosmic::theme::Text::Accent + } else { + cosmic::theme::Text::Default + }) .wrapping(Wrapping::Word) .width(cosmic::iced::Length::Fill) .into(), diff --git a/cosmic-settings/src/pages/desktop/appearance/mod.rs b/cosmic-settings/src/pages/desktop/appearance/mod.rs index e987ee95..60a0b946 100644 --- a/cosmic-settings/src/pages/desktop/appearance/mod.rs +++ b/cosmic-settings/src/pages/desktop/appearance/mod.rs @@ -302,7 +302,7 @@ impl Page { theme_staged = self .theme_manager .selected_customizer_mut() - .set_accent(Some(c).map(Srgb::from)); + .set_accent(Some(Srgb::from(c))); } Message::Reset => { diff --git a/cosmic-settings/src/pages/desktop/appearance/mode_and_colors.rs b/cosmic-settings/src/pages/desktop/appearance/mode_and_colors.rs index dfc2b227..808e007c 100644 --- a/cosmic-settings/src/pages/desktop/appearance/mode_and_colors.rs +++ b/cosmic-settings/src/pages/desktop/appearance/mode_and_colors.rs @@ -26,13 +26,13 @@ pub fn section() -> Section { let mut section = settings::section() .title(§ion.title) - .add(theme_mode(&page, section, &label_keys)) - .add(auto_switch(&page, section, &label_keys)) - .add(accent_color_palette(&page, section, &label_keys)) - .add(application_background(&page, section, &label_keys)) - .add(container_background(&page, section, &label_keys)) - .add(interface_text(&page, section, &label_keys)) - .add(control_tint(&page, section, &label_keys)) + .add(theme_mode(page, section, &label_keys)) + .add(auto_switch(page, section, &label_keys)) + .add(accent_color_palette(page, section, &label_keys)) + .add(application_background(page, section, &label_keys)) + .add(container_background(page, section, &label_keys)) + .add(interface_text(page, section, &label_keys)) + .add(control_tint(page, section, &label_keys)) .add( settings::item::builder(&descriptions[label_keys["window_hint_toggle"]]) .toggler( @@ -196,16 +196,13 @@ fn accent_color_palette<'a>( let mut accent_palette_row = Vec::with_capacity(accent.len()); for &color in accent { - accent_palette_row.push( - color_button( - Some(Message::PaletteAccent(color.into())), - color.into(), - cur_accent == color, - 48, - 48, - ) - .into(), - ); + accent_palette_row.push(color_button( + Some(Message::PaletteAccent(color.into())), + color.into(), + cur_accent == color, + 48, + 48, + )); } accent_palette_row.push( diff --git a/cosmic-settings/src/pages/desktop/appearance/theme_manager.rs b/cosmic-settings/src/pages/desktop/appearance/theme_manager.rs index 50478a90..14711eaf 100644 --- a/cosmic-settings/src/pages/desktop/appearance/theme_manager.rs +++ b/cosmic-settings/src/pages/desktop/appearance/theme_manager.rs @@ -85,7 +85,7 @@ impl From<(Option, Option, Option>)> for ThemeCustomi custom_window_hint: None, }; - if let None = customizer.accent_palette { + if customizer.accent_palette.is_none() { let palette = customizer.builder.0.palette.as_ref(); customizer.accent_palette = Some(vec![ palette.accent_blue, @@ -159,7 +159,7 @@ impl Default for Manager { } impl Manager { - pub fn build_theme<'a>(&mut self, stage: ThemeStaged) -> Task { + pub fn build_theme(&mut self, stage: ThemeStaged) -> Task { macro_rules! theme_transaction { ($config:ident, $current_theme:ident, $new_theme:ident, { $($name:ident;)+ }) => { let tx = $config.transaction(); @@ -194,10 +194,10 @@ impl Manager { None }; - let mut data = std::iter::once(current).chain(other.into_iter()); + let mut data = std::iter::once(current).chain(other); cosmic::task::future(async move { - while let Some((builder, config)) = data.next() { + for (builder, config) in data.by_ref() { if let Some(config) = config { let current_theme = match Theme::get_entry(&config) { Ok(theme) => theme, @@ -277,7 +277,7 @@ impl Manager { #[inline] pub fn custom_window_hint(&self) -> &Option { - &self.selected_customizer().custom_window_hint() + self.selected_customizer().custom_window_hint() } #[inline] diff --git a/cosmic-settings/src/pages/desktop/dock/mod.rs b/cosmic-settings/src/pages/desktop/dock/mod.rs index 2cda181b..da86e1e7 100644 --- a/cosmic-settings/src/pages/desktop/dock/mod.rs +++ b/cosmic-settings/src/pages/desktop/dock/mod.rs @@ -68,7 +68,7 @@ impl Page { } Message::Inner(inner) => { if let inner::Message::Surface(a) = inner { - return cosmic::task::message(crate::app::Message::Surface(a)); + cosmic::task::message(crate::app::Message::Surface(a)) } else { self.inner .update(inner) diff --git a/cosmic-settings/src/pages/desktop/panel/applets_inner.rs b/cosmic-settings/src/pages/desktop/panel/applets_inner.rs index 3db02ab1..bbfd98f4 100644 --- a/cosmic-settings/src/pages/desktop/panel/applets_inner.rs +++ b/cosmic-settings/src/pages/desktop/panel/applets_inner.rs @@ -590,7 +590,7 @@ impl Applet<'static> { } } -impl<'a> Applet<'a> { +impl Applet<'_> { fn into_owned(self) -> Applet<'static> { Applet { id: Cow::from(self.id.into_owned()), @@ -641,7 +641,7 @@ impl<'a, Message: 'static + Clone> AppletReorderList<'a, Message> { .into_iter() .map(|info| { let id_clone = info.id.to_string(); - let is_dragged = active_dnd.as_ref().map_or(false, |dnd| dnd.id == info.id); + let is_dragged = active_dnd.as_ref().is_some_and(|dnd| dnd.id == info.id); let content = if is_dragged { row::with_capacity(0).height(Length::Fixed(32.0)) @@ -859,8 +859,8 @@ pub fn dnd_icon(info: Applet<'static>, layout: &layout::Layout) -> AppletReorder } } -impl<'a, Message: 'static> Widget - for AppletReorderList<'a, Message> +impl Widget + for AppletReorderList<'_, Message> where Message: Clone, { diff --git a/cosmic-settings/src/pages/desktop/panel/mod.rs b/cosmic-settings/src/pages/desktop/panel/mod.rs index 199f6253..63a95cf0 100644 --- a/cosmic-settings/src/pages/desktop/panel/mod.rs +++ b/cosmic-settings/src/pages/desktop/panel/mod.rs @@ -24,7 +24,7 @@ pub struct Message(pub inner::Message); impl Page { pub fn update(&mut self, message: Message) -> Task { if let inner::Message::Surface(a) = message.0 { - return cosmic::task::message(crate::app::Message::Surface(a)); + cosmic::task::message(crate::app::Message::Surface(a)) } else { self.inner .update(message.0) diff --git a/cosmic-settings/src/pages/desktop/wallpaper/config.rs b/cosmic-settings/src/pages/desktop/wallpaper/config.rs index cecf8c92..d655aa6f 100644 --- a/cosmic-settings/src/pages/desktop/wallpaper/config.rs +++ b/cosmic-settings/src/pages/desktop/wallpaper/config.rs @@ -14,7 +14,7 @@ const CURRENT_FOLDER: &str = "current-folder"; const CUSTOM_COLORS: &str = "custom-colors"; const CUSTOM_IMAGES: &str = "custom-images"; const RECENT_FOLDERS: &str = "recent-folders"; -const BACKGROUNDS_DIR: &'static str = "backgrounds"; +const BACKGROUNDS_DIR: &str = "backgrounds"; #[derive(Debug, Default)] pub struct Config { diff --git a/cosmic-settings/src/pages/desktop/wallpaper/mod.rs b/cosmic-settings/src/pages/desktop/wallpaper/mod.rs index 6507318d..9044908e 100644 --- a/cosmic-settings/src/pages/desktop/wallpaper/mod.rs +++ b/cosmic-settings/src/pages/desktop/wallpaper/mod.rs @@ -1213,7 +1213,7 @@ pub fn settings() -> Section { let mut slideshow_enabled = page .config_output() .and_then(|output| page.wallpaper_service_config.entry(output)) - .map_or(false, |entry| { + .is_some_and(|entry| { if let Source::Path(path) = &entry.source { path.is_dir() } else { diff --git a/cosmic-settings/src/pages/desktop/wallpaper/widgets.rs b/cosmic-settings/src/pages/desktop/wallpaper/widgets.rs index df288ea6..10680988 100644 --- a/cosmic-settings/src/pages/desktop/wallpaper/widgets.rs +++ b/cosmic-settings/src/pages/desktop/wallpaper/widgets.rs @@ -118,11 +118,7 @@ pub fn color_select_options( }) .chain(wallpaper::DEFAULT_COLORS.iter().map(|color| (color, false))) .map(|(color, removable)| { - color_button( - color.clone(), - removable, - selected.map_or(false, |selection| selection == color), - ) + color_button(color.clone(), removable, selected == Some(color)) }) .collect::>(), ) @@ -146,7 +142,7 @@ pub fn wallpaper_select_options( handle, *id, true, - selected.map_or(false, |selection| id == &selection), + selected.is_some_and(|selection| id == &selection), )); } } @@ -157,12 +153,7 @@ pub fn wallpaper_select_options( continue; } - vec.push(wallpaper_button( - handle, - id, - false, - selected.map_or(false, |selection| id == selection), - )); + vec.push(wallpaper_button(handle, id, false, selected == Some(id))); } flex_select_row(vec) diff --git a/cosmic-settings/src/pages/display/arrangement.rs b/cosmic-settings/src/pages/display/arrangement.rs index c179bc37..d4f01655 100644 --- a/cosmic-settings/src/pages/display/arrangement.rs +++ b/cosmic-settings/src/pages/display/arrangement.rs @@ -79,7 +79,7 @@ impl<'a, Message> Arrangement<'a, Message> { } } -impl<'a, Message: Clone> Widget for Arrangement<'a, Message> { +impl Widget for Arrangement<'_, Message> { fn tag(&self) -> tree::Tag { tree::Tag::of::() } @@ -119,7 +119,7 @@ impl<'a, Message: Clone> Widget for Arrangemen continue; }; - let (mut width, mut height) = if output.transform.map_or(true, is_landscape) { + let (mut width, mut height) = if output.transform.is_none_or(is_landscape) { (mode.size.0, mode.size.1) } else { (mode.size.1, mode.size.0) @@ -420,7 +420,7 @@ fn display_regions<'a>( (mode.size.1 as f32 / output.scale as f32) / UNIT_PIXELS, ); - (width, height) = if output.transform.map_or(true, is_landscape) { + (width, height) = if output.transform.is_none_or(is_landscape) { (width, height) } else { (height, width) diff --git a/cosmic-settings/src/pages/input/keyboard/mod.rs b/cosmic-settings/src/pages/input/keyboard/mod.rs index c546f0fd..40c3a327 100644 --- a/cosmic-settings/src/pages/input/keyboard/mod.rs +++ b/cosmic-settings/src/pages/input/keyboard/mod.rs @@ -223,7 +223,6 @@ fn popover_menu(id: DefaultKey) -> cosmic::Element<'static, Message> { color: background.component.divider.into(), width: 1.0, radius: cosmic.corner_radii.radius_s.into(), - ..Border::default() }, shadow: Default::default(), } diff --git a/cosmic-settings/src/pages/input/keyboard/shortcuts/common.rs b/cosmic-settings/src/pages/input/keyboard/shortcuts/common.rs index e1a2c91f..9f92c3f9 100644 --- a/cosmic-settings/src/pages/input/keyboard/shortcuts/common.rs +++ b/cosmic-settings/src/pages/input/keyboard/shortcuts/common.rs @@ -253,7 +253,7 @@ impl Model { self.shortcut_context = None; self.editing = None; - return Task::none(); + Task::none() } pub(super) fn on_context_drawer_close(&mut self) { @@ -637,9 +637,7 @@ impl Model { if matches!( key, Key::Named(Named::Super | Named::Alt | Named::Control | Named::Shift) - ) { - return None; - } else if matches!((&key, modifiers), (Key::Named(Named::Tab), modifiers) if modifiers.is_empty() || modifiers == Modifiers::SHIFT) + ) || matches!((&key, modifiers), (Key::Named(Named::Tab), modifiers) if modifiers.is_empty() || modifiers == Modifiers::SHIFT) { return None; } diff --git a/cosmic-settings/src/pages/input/keyboard/shortcuts/custom.rs b/cosmic-settings/src/pages/input/keyboard/shortcuts/custom.rs index 250907da..09abfc99 100644 --- a/cosmic-settings/src/pages/input/keyboard/shortcuts/custom.rs +++ b/cosmic-settings/src/pages/input/keyboard/shortcuts/custom.rs @@ -281,7 +281,7 @@ impl Page { widget::text_input::focus(widget::Id::unique()), iced_winit::platform_specific::commands::keyboard_shortcuts_inhibit::inhibit_shortcuts(false).discard(), ]); - } else if (old.alt || old.ctrl || old.shift) { + } else if old.alt || old.ctrl || old.shift { self.add_shortcut = Default::default(); _ = self.model.on_enter(); @@ -564,7 +564,7 @@ impl page::Page for Page { } fn on_leave(&mut self) -> Task { - _ = self.model.on_clear(); + self.model.on_clear(); iced_winit::platform_specific::commands::keyboard_shortcuts_inhibit::inhibit_shortcuts( false, ) @@ -595,9 +595,7 @@ impl page::Page for Page { if matches!( key, Key::Named(Named::Super | Named::Alt | Named::Control | Named::Shift) - ) { - return None; - } else if matches!((&key, modifiers), (Key::Named(Named::Tab), modifiers) if modifiers.is_empty() || modifiers == Modifiers::SHIFT) + ) || matches!((&key, modifiers), (Key::Named(Named::Tab), modifiers) if modifiers.is_empty() || modifiers == Modifiers::SHIFT) { return None; } diff --git a/cosmic-settings/src/pages/input/keyboard/shortcuts/manage_windows.rs b/cosmic-settings/src/pages/input/keyboard/shortcuts/manage_windows.rs index e1b6956d..ac31e5e8 100644 --- a/cosmic-settings/src/pages/input/keyboard/shortcuts/manage_windows.rs +++ b/cosmic-settings/src/pages/input/keyboard/shortcuts/manage_windows.rs @@ -69,7 +69,7 @@ impl page::Page for Page { } fn on_leave(&mut self) -> Task { - _ = self.model.on_clear(); + self.model.on_clear(); cosmic::iced_winit::platform_specific::commands::keyboard_shortcuts_inhibit::inhibit_shortcuts( false, ) diff --git a/cosmic-settings/src/pages/input/keyboard/shortcuts/move_window.rs b/cosmic-settings/src/pages/input/keyboard/shortcuts/move_window.rs index 47e521dc..6e7d20ef 100644 --- a/cosmic-settings/src/pages/input/keyboard/shortcuts/move_window.rs +++ b/cosmic-settings/src/pages/input/keyboard/shortcuts/move_window.rs @@ -69,7 +69,7 @@ impl page::Page for Page { } fn on_leave(&mut self) -> Task { - _ = self.model.on_clear(); + self.model.on_clear(); cosmic::iced_winit::platform_specific::commands::keyboard_shortcuts_inhibit::inhibit_shortcuts( false, ) diff --git a/cosmic-settings/src/pages/input/keyboard/shortcuts/nav.rs b/cosmic-settings/src/pages/input/keyboard/shortcuts/nav.rs index 843973e4..7528db7d 100644 --- a/cosmic-settings/src/pages/input/keyboard/shortcuts/nav.rs +++ b/cosmic-settings/src/pages/input/keyboard/shortcuts/nav.rs @@ -70,7 +70,7 @@ impl page::Page for Page { } fn on_leave(&mut self) -> Task { - _ = self.model.on_clear(); + self.model.on_clear(); cosmic::iced_winit::platform_specific::commands::keyboard_shortcuts_inhibit::inhibit_shortcuts( false, ) diff --git a/cosmic-settings/src/pages/input/keyboard/shortcuts/system.rs b/cosmic-settings/src/pages/input/keyboard/shortcuts/system.rs index aaddcc6e..1fd252af 100644 --- a/cosmic-settings/src/pages/input/keyboard/shortcuts/system.rs +++ b/cosmic-settings/src/pages/input/keyboard/shortcuts/system.rs @@ -69,7 +69,7 @@ impl page::Page for Page { } fn on_leave(&mut self) -> Task { - _ = self.model.on_clear(); + self.model.on_clear(); cosmic::iced_winit::platform_specific::commands::keyboard_shortcuts_inhibit::inhibit_shortcuts( false, ) diff --git a/cosmic-settings/src/pages/input/keyboard/shortcuts/tiling.rs b/cosmic-settings/src/pages/input/keyboard/shortcuts/tiling.rs index a22d999d..52eb7346 100644 --- a/cosmic-settings/src/pages/input/keyboard/shortcuts/tiling.rs +++ b/cosmic-settings/src/pages/input/keyboard/shortcuts/tiling.rs @@ -69,7 +69,7 @@ impl page::Page for Page { } fn on_leave(&mut self) -> Task { - _ = self.model.on_clear(); + self.model.on_clear(); cosmic::iced_winit::platform_specific::commands::keyboard_shortcuts_inhibit::inhibit_shortcuts( false, ) diff --git a/cosmic-settings/src/pages/input/mod.rs b/cosmic-settings/src/pages/input/mod.rs index 64470bee..e1b94d68 100644 --- a/cosmic-settings/src/pages/input/mod.rs +++ b/cosmic-settings/src/pages/input/mod.rs @@ -219,6 +219,6 @@ fn system_has_touchpad() -> bool { devices.any(|device| { device .property_value("ID_INPUT_TOUCHPAD") - .map_or(false, |value| value == "1") + .is_some_and(|value| value == "1") }) } diff --git a/cosmic-settings/src/pages/input/mouse.rs b/cosmic-settings/src/pages/input/mouse.rs index dacc3118..bf6bb5bc 100644 --- a/cosmic-settings/src/pages/input/mouse.rs +++ b/cosmic-settings/src/pages/input/mouse.rs @@ -106,7 +106,7 @@ fn mouse() -> Section { .input_default .acceleration .as_ref() - .map_or(true, |x| x.profile == Some(AccelProfile::Adaptive)), + .is_none_or(|x| x.profile == Some(AccelProfile::Adaptive)), |x| Message::SetAcceleration(x, false), ), ) diff --git a/cosmic-settings/src/pages/input/touchpad.rs b/cosmic-settings/src/pages/input/touchpad.rs index bf71e96f..3606c5f6 100644 --- a/cosmic-settings/src/pages/input/touchpad.rs +++ b/cosmic-settings/src/pages/input/touchpad.rs @@ -124,7 +124,7 @@ fn touchpad() -> Section { .input_touchpad .acceleration .as_ref() - .map_or(true, |x| x.profile == Some(AccelProfile::Adaptive)), + .is_none_or(|x| x.profile == Some(AccelProfile::Adaptive)), |x| Message::SetAcceleration(x, true), ), ) @@ -193,7 +193,7 @@ fn click_behavior() -> Section { page.input_touchpad .tap_config .as_ref() - .map_or(false, |x| x.enabled), + .is_some_and(|x| x.enabled), Message::TapToClick, ), ) @@ -288,7 +288,7 @@ fn scrolling() -> Section { page.input_touchpad .scroll_config .as_ref() - .map_or(false, |conf| conf.natural_scroll.unwrap_or(false)), + .is_some_and(|conf| conf.natural_scroll.unwrap_or(false)), |enabled| Message::SetNaturalScroll(enabled, true), ), ) diff --git a/cosmic-settings/src/pages/networking/mod.rs b/cosmic-settings/src/pages/networking/mod.rs index a1cf53b5..a1172c53 100644 --- a/cosmic-settings/src/pages/networking/mod.rs +++ b/cosmic-settings/src/pages/networking/mod.rs @@ -227,7 +227,7 @@ impl page::Page for Page { .context("failed to create system dbus connection") .map_or_else( |why| Message::Error(why.to_string()), - |conn| Message::NetworkManagerConnect(conn), + Message::NetworkManagerConnect, ) .apply(crate::pages::Message::Networking) }); diff --git a/cosmic-settings/src/pages/networking/vpn/mod.rs b/cosmic-settings/src/pages/networking/vpn/mod.rs index 9457ff74..3e1a0148 100644 --- a/cosmic-settings/src/pages/networking/vpn/mod.rs +++ b/cosmic-settings/src/pages/networking/vpn/mod.rs @@ -133,7 +133,7 @@ impl VpnConnectionSettings { fn password_flag(&self) -> Option { self.connection_type .as_ref() - .map_or(false, |ct| match ct { + .is_some_and(|ct| match ct { ConnectionType::Password => true, }) .then_some(self.password_flag) @@ -878,7 +878,7 @@ fn devices_view() -> Section { let view_more: Option> = if page .view_more_popup .as_deref() - .map_or(false, |id| id == uuid.as_ref()) + .is_some_and(|id| id == uuid.as_ref()) { widget::popover(view_more_button.on_press(Message::ViewMore(None))) .position(widget::popover::Position::Bottom) @@ -1018,12 +1018,8 @@ fn add_network() -> Task { Err(why) => Message::Error(ErrorKind::Config, why.to_string()), } } - Err(cosmic::dialog::file_chooser::Error::Cancelled) => { - return Message::CancelDialog; - } - Err(why) => { - return Message::Error(ErrorKind::Config, why.to_string()); - } + Err(cosmic::dialog::file_chooser::Error::Cancelled) => Message::CancelDialog, + Err(why) => Message::Error(ErrorKind::Config, why.to_string()), } }) .apply(cosmic::task::future) diff --git a/cosmic-settings/src/pages/networking/vpn/nmcli.rs b/cosmic-settings/src/pages/networking/vpn/nmcli.rs index 7c7632cd..878bccd4 100644 --- a/cosmic-settings/src/pages/networking/vpn/nmcli.rs +++ b/cosmic-settings/src/pages/networking/vpn/nmcli.rs @@ -6,7 +6,7 @@ use std::process::Stdio; pub async fn set_username(connection_name: &str, username: &str) -> Result<(), String> { tokio::process::Command::new("nmcli") - .args(&["con", "mod", connection_name, "vpn.user-name", username]) + .args(["con", "mod", connection_name, "vpn.user-name", username]) .stderr(Stdio::piped()) .output() .await @@ -60,7 +60,7 @@ pub async fn set_password(connection_name: &str, password: &str) -> Result<(), S pub async fn connect(connection_name: &str) -> Result<(), String> { tokio::process::Command::new("nmcli") - .args(&["con", "up", &connection_name]) + .args(["con", "up", connection_name]) .stderr(Stdio::piped()) .output() .await diff --git a/cosmic-settings/src/pages/networking/wifi.rs b/cosmic-settings/src/pages/networking/wifi.rs index a05b4ae3..892916ab 100644 --- a/cosmic-settings/src/pages/networking/wifi.rs +++ b/cosmic-settings/src/pages/networking/wifi.rs @@ -726,7 +726,7 @@ fn devices_view() -> Section { let view_more: Option> = if page .view_more_popup .as_deref() - .map_or(false, |id| id == network.ssid.as_ref()) + .is_some_and(|id| id == network.ssid.as_ref()) { widget::popover(view_more_button.on_press(Message::ViewMore(None))) .position(widget::popover::Position::Bottom) diff --git a/cosmic-settings/src/pages/networking/wired.rs b/cosmic-settings/src/pages/networking/wired.rs index a2d61c4e..6bb42ce4 100644 --- a/cosmic-settings/src/pages/networking/wired.rs +++ b/cosmic-settings/src/pages/networking/wired.rs @@ -504,7 +504,7 @@ impl Page { let view_more: Option> = if self .view_more_popup .as_deref() - .map_or(false, |id| id == connection.uuid.as_ref()) + .is_some_and(|id| id == connection.uuid.as_ref()) { widget::popover(view_more_button.on_press(Message::ViewMore(None))) .position(widget::popover::Position::Bottom) diff --git a/cosmic-settings/src/pages/power/backend/mod.rs b/cosmic-settings/src/pages/power/backend/mod.rs index 51875fea..d10e6292 100644 --- a/cosmic-settings/src/pages/power/backend/mod.rs +++ b/cosmic-settings/src/pages/power/backend/mod.rs @@ -516,15 +516,11 @@ impl ConnectedDevice { let proxy = enumerate_devices().await; if let Ok(devices) = proxy { - return join_all( - devices - .into_iter() - .map(|device| Self::from_device_maybe(device)), - ) - .await - .into_iter() - .flatten() - .collect(); + return join_all(devices.into_iter().map(Self::from_device_maybe)) + .await + .into_iter() + .flatten() + .collect(); } vec![] diff --git a/cosmic-settings/src/pages/power/mod.rs b/cosmic-settings/src/pages/power/mod.rs index 0568f854..75b81f79 100644 --- a/cosmic-settings/src/pages/power/mod.rs +++ b/cosmic-settings/src/pages/power/mod.rs @@ -34,7 +34,7 @@ static SUSPEND_TIMES: &[Duration] = &[ Duration::from_secs(25 * 60), Duration::from_secs(30 * 60), Duration::from_secs(45 * 60), - Duration::from_secs(1 * 60 * 60), + Duration::from_secs(60 * 60), Duration::from_secs(80 * 60), Duration::from_secs(90 * 60), Duration::from_secs(100 * 60), diff --git a/cosmic-settings/src/pages/sound.rs b/cosmic-settings/src/pages/sound.rs index 9eaa6a66..14cfd8be 100644 --- a/cosmic-settings/src/pages/sound.rs +++ b/cosmic-settings/src/pages/sound.rs @@ -60,9 +60,9 @@ impl From for crate::Message { } } -impl Into for subscription::Message { - fn into(self) -> Message { - Message::Subscription(self) +impl From for Message { + fn from(val: subscription::Message) -> Self { + Message::Subscription(val) } } @@ -110,7 +110,7 @@ impl page::Page for Page { &self, _core: &cosmic::Core, ) -> cosmic::iced::Subscription { - cosmic::iced::Subscription::run(|| subscription::watch()) + cosmic::iced::Subscription::run(subscription::watch) .map(|message| Message::Subscription(message).into()) } @@ -269,7 +269,7 @@ fn input() -> Section { Message::SourceChanged, window::Id::RESERVED, Message::Surface, - |a| crate::Message::from(a), + crate::Message::from, ) .apply(Element::from) .map(crate::pages::Message::from); @@ -289,7 +289,7 @@ fn input() -> Section { Message::SourceProfileChanged, window::Id::RESERVED, Message::Surface, - |a| crate::Message::from(a), + crate::Message::from, ) .apply(Element::from) .map(crate::pages::Message::from); @@ -363,7 +363,7 @@ fn output() -> Section { Message::SinkChanged, window::Id::RESERVED, Message::Surface, - |a| crate::Message::from(a), + crate::Message::from, ) .apply(Element::from) .map(crate::pages::Message::from); @@ -383,7 +383,7 @@ fn output() -> Section { Message::SinkProfileChanged, window::Id::RESERVED, Message::Surface, - |a| crate::Message::from(a), + crate::Message::from, ) .apply(Element::from) .map(crate::pages::Message::from); diff --git a/cosmic-settings/src/pages/system/users/mod.rs b/cosmic-settings/src/pages/system/users/mod.rs index 1ff097ea..6bab7a14 100644 --- a/cosmic-settings/src/pages/system/users/mod.rs +++ b/cosmic-settings/src/pages/system/users/mod.rs @@ -216,8 +216,8 @@ impl page::Page for Page { validation_msg = fl!("invalid-username"); None } else if user.password != user.password_confirm - && user.password != "" - && user.password_confirm != "" + && !user.password.is_empty() + && !user.password_confirm.is_empty() { validation_msg = fl!("password-mismatch"); None @@ -309,8 +309,8 @@ impl page::Page for Page { // validation let mut validation_msg = String::new(); let complete_maybe = if user.password != user.password_confirm - && user.password != "" - && user.password_confirm != "" + && !user.password.is_empty() + && !user.password_confirm.is_empty() { validation_msg = fl!("password-mismatch"); None @@ -393,9 +393,7 @@ impl Page { is_admin: match user_proxy.account_type().await { Ok(1) => true, Ok(_) => false, - Err(_) => { - admin_group.map_or(false, |group| group.users.contains(&user.username)) - } + Err(_) => admin_group.is_some_and(|group| group.users.contains(&user.username)), }, username: String::from(user.username), full_name: String::from(user.full_name), @@ -578,16 +576,12 @@ impl Page { return; }; - match request_permission_on_denial(&conn, || { + if let Err(why) = request_permission_on_denial(&conn, || { user.set_password(&password_hashed, "") }) .await { - Err(why) => { - tracing::error!(?why, "failed to set password"); - } - - Ok(_) => (), + tracing::error!(?why, "failed to set password"); } }) .discard(); @@ -757,7 +751,7 @@ fn user_list() -> Section { .on_submit(move |_| Message::ApplyEdit(idx, EditorField::FullName)) .on_unfocus(Message::ApplyEdit(idx, EditorField::FullName)); - let fullname_text = text::body(if user.full_name != "" { + let fullname_text = text::body(if !user.full_name.is_empty() { &user.full_name } else { &user.username @@ -945,14 +939,7 @@ where } fn permission_was_denied(result: &zbus::Error) -> bool { - match result { - zbus::Error::MethodError(name, _, _) - if name.as_str() == "org.freedesktop.Accounts.Error.PermissionDenied" => - { - true - } - _ => false, - } + matches!(result, zbus::Error::MethodError(name, _, _) if name.as_str() == "org.freedesktop.Accounts.Error.PermissionDenied") } // TODO: Should we allow deprecated methods? @@ -977,14 +964,12 @@ fn get_encrypt_method() -> String { }; let reader = BufReader::new(login_defs); - for line in reader.lines() { - if let Ok(line) = line { - if !line.trim().is_empty() { - if let Some(index) = line.find(|c: char| c.is_whitespace()) { - let key = line[0..index].trim(); - if key == "ENCRYPT_METHOD" { - value = line[(index + 1)..].trim().to_string(); - } + for line in reader.lines().map_while(Result::ok) { + if !line.trim().is_empty() { + if let Some(index) = line.find(|c: char| c.is_whitespace()) { + let key = line[0..index].trim(); + if key == "ENCRYPT_METHOD" { + value = line[(index + 1)..].trim().to_string(); } } } diff --git a/cosmic-settings/src/pages/time/date.rs b/cosmic-settings/src/pages/time/date.rs index b37c43bf..26ff3628 100644 --- a/cosmic-settings/src/pages/time/date.rs +++ b/cosmic-settings/src/pages/time/date.rs @@ -22,6 +22,7 @@ use icu::{ }; use slab::Slab; use slotmap::{Key, SlotMap}; +use std::rc::Rc; pub use timedate_zbus::TimeDateProxy; use tracing::error; @@ -345,12 +346,36 @@ impl Page { } fn timezone_context_item<'a>(&self, id: usize, timezone: &'a str) -> Element<'a, Message> { - widget::button::custom(widget::settings::item_row(vec![ - widget::text::body(timezone).wrapping(Wrapping::Word).into(), - widget::horizontal_space().into(), - ])) + let svg_accent = Rc::new(|theme: &cosmic::Theme| cosmic::widget::svg::Style { + color: Some(theme.cosmic().accent_text_color().into()), + }); + let selected = Some(id) == self.timezone; + + widget::settings::item_row(vec![ + widget::text::body(timezone) + .class(if selected { + cosmic::theme::Text::Accent + } else { + cosmic::theme::Text::Default + }) + .wrapping(Wrapping::Word) + .width(cosmic::iced::Length::Fill) + .into(), + if selected { + widget::icon::from_name("object-select-symbolic") + .size(16) + .icon() + .class(cosmic::theme::Svg::Custom(svg_accent.clone())) + .into() + } else { + widget::horizontal_space().width(16).into() + }, + ]) + .apply(widget::container) + .class(cosmic::theme::Container::List) + .apply(widget::button::custom) + .class(cosmic::theme::Button::Transparent) .on_press(Message::Timezone(id)) - .class(cosmic::theme::Button::Icon) .into() } diff --git a/cosmic-settings/src/pages/time/region.rs b/cosmic-settings/src/pages/time/region.rs index ec3674ce..db265ddd 100644 --- a/cosmic-settings/src/pages/time/region.rs +++ b/cosmic-settings/src/pages/time/region.rs @@ -81,7 +81,7 @@ impl Ord for SystemLocale { impl PartialOrd for SystemLocale { fn partial_cmp(&self, other: &Self) -> Option { - self.display_name.partial_cmp(&other.display_name) + Some(self.cmp(other)) } } @@ -315,7 +315,7 @@ impl Page { _ = config.set("system_locales", &locales); - if let Some(language_code) = locales.get(0) { + if let Some(language_code) = locales.first() { if let Some(language) = self .available_languages .values() @@ -346,9 +346,8 @@ impl Page { let search_input = &self.add_language_search.trim().to_lowercase(); - let svg_accent = Rc::new(|theme: &cosmic::Theme| { - let color = theme.cosmic().accent_text_color().into(); - cosmic::widget::svg::Style { color: Some(color) } + let svg_accent = Rc::new(|theme: &cosmic::Theme| cosmic::widget::svg::Style { + color: Some(theme.cosmic().accent_text_color().into()), }); for (id, available_language) in &self.available_languages { @@ -358,9 +357,10 @@ impl Page { .to_lowercase() .contains(search_input) { - let is_installed = self.config.as_ref().map_or(false, |(_, locales)| { - locales.contains(&available_language.lang_code) - }); + let is_installed = self + .config + .as_ref() + .is_some_and(|(_, locales)| locales.contains(&available_language.lang_code)); let button = widget::settings::item_row(vec![ widget::text::body(&available_language.display_name) @@ -488,7 +488,7 @@ impl Page { let is_selected = self .region .as_ref() - .map_or(false, |l| l.lang_code == locale.lang_code); + .is_some_and(|l| l.lang_code == locale.lang_code); let button = widget::settings::item_row(vec![ widget::text::body(&locale.region_name) diff --git a/cosmic-settings/src/widget/mod.rs b/cosmic-settings/src/widget/mod.rs index 26899184..1afddbb9 100644 --- a/cosmic-settings/src/widget/mod.rs +++ b/cosmic-settings/src/widget/mod.rs @@ -23,7 +23,7 @@ pub fn color_picker_context_view<'a, Message: Clone + 'static>( let theme = theme::active(); let spacing = &theme.cosmic().spacing; - let description = description.map(|description| text::caption(description)); + let description = description.map(text::caption); let color_picker = model .builder(on_update) diff --git a/pages/system/src/about.rs b/pages/system/src/about.rs index 44f81f7d..73c571c6 100644 --- a/pages/system/src/about.rs +++ b/pages/system/src/about.rs @@ -195,7 +195,7 @@ pub fn processor_name(bump: &Bump, name: &mut String) { let s = sysinfo::System::new_with_specifics( sysinfo::RefreshKind::nothing().with_cpu(sysinfo::CpuRefreshKind::everything()), ); - name.push_str(s.cpus().into_iter().nth(0).unwrap().brand()); + name.push_str(s.cpus().iter().next().unwrap().brand()); } pub fn read_to_string<'a, P: AsRef>(