From fd67781eafca2f96f5cc5c132c291a61f7f152b8 Mon Sep 17 00:00:00 2001 From: Michael Aaron Murphy Date: Wed, 20 Sep 2023 17:11:15 +0200 Subject: [PATCH] chore(wallpaper): use new `FlexRow` widget from libcosmic --- app/src/pages/desktop/wallpaper/widgets.rs | 36 ++++++++++------------ 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/app/src/pages/desktop/wallpaper/widgets.rs b/app/src/pages/desktop/wallpaper/widgets.rs index 128006d..e2cd046 100644 --- a/app/src/pages/desktop/wallpaper/widgets.rs +++ b/app/src/pages/desktop/wallpaper/widgets.rs @@ -2,8 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only use super::Message; -use cosmic::iced_core::{self, gradient::Linear, Background, BorderRadius, Color, Degrees}; -use cosmic::iced_core::{alignment, Length}; +use cosmic::iced_core::{self, gradient::Linear, Background, BorderRadius, Color, Degrees, Length}; use cosmic::iced_runtime::core::image::Handle as ImageHandle; use cosmic::prelude::*; use cosmic::widget::{button, container, image, space}; @@ -12,8 +11,6 @@ use cosmic_settings_desktop::wallpaper; use slotmap::DefaultKey; const COLOR_WIDTH: u16 = 70; -const WALLPAPER_WIDTH: u16 = 158; - const COLUMN_SPACING: u16 = 12; const ROW_SPACING: u16 = 16; @@ -68,34 +65,33 @@ pub fn color_image( /// Color selection list pub fn color_select_options() -> Element<'static, Message> { - flex_select_row(|vec, _size| { - for color in wallpaper::DEFAULT_COLORS { - vec.push(color_button(color.clone())); - } + let mut vec = Vec::with_capacity(wallpaper::DEFAULT_COLORS.len()); - COLOR_WIDTH - }) + for color in wallpaper::DEFAULT_COLORS { + vec.push(color_button(color.clone())); + } + + flex_select_row(vec) } /// Background selection list pub fn wallpaper_select_options(page: &super::Page) -> Element { - flex_select_row(move |vec, _size| { - for (id, handle) in &page.selection.selection_handles { - vec.push(wallpaper_button(handle, id)); - } + let mut vec = Vec::with_capacity(page.selection.selection_handles.len()); - WALLPAPER_WIDTH - }) + for (id, handle) in &page.selection.selection_handles { + vec.push(wallpaper_button(handle, id)); + } + + flex_select_row(vec) } -fn flex_select_row<'a>( - elements: impl Fn(&mut Vec>, iced_core::Size) -> u16 + 'a, -) -> Element<'a, Message> { +fn flex_select_row(elements: Vec>) -> Element { cosmic::widget::flex_row(elements) .column_spacing(COLUMN_SPACING) .row_spacing(ROW_SPACING) + .apply(container) .width(Length::Fill) - .align_x(alignment::Horizontal::Center) + .center_x() .into() }