Skip to content

Commit d1b6a95

Browse files
committed
improv: color schemes
- fixed footer appearing in other pages - fixed grid sizing - added spacing between scrollbar and content
1 parent 22b1cf0 commit d1b6a95

File tree

3 files changed

+81
-85
lines changed

3 files changed

+81
-85
lines changed

src/app.rs

+54-50
Original file line numberDiff line numberDiff line change
@@ -367,56 +367,60 @@ impl Application for TweakTool {
367367

368368
fn footer(&self) -> Option<Element<Self::Message>> {
369369
let spacing = cosmic::theme::active().cosmic().spacing;
370-
match self.color_schemes.model.active_data::<Tab>() {
371-
Some(Tab::Installed) => Some(
372-
widget::row()
373-
.push(widget::horizontal_space())
374-
.push(
375-
widget::button::standard(fl!("save-current-color-scheme"))
376-
.trailing_icon(icons::get_handle("arrow-into-box-symbolic", 16))
377-
.on_press(Message::ColorSchemes(Box::new(
378-
color_schemes::Message::SaveCurrentColorScheme(None),
379-
))),
380-
)
381-
.push(
382-
widget::button::standard(fl!("import-color-scheme"))
383-
.trailing_icon(icons::get_handle("document-save-symbolic", 16))
384-
.on_press(Message::ColorSchemes(Box::new(
385-
color_schemes::Message::StartImport,
386-
))),
387-
)
388-
.spacing(spacing.space_xxs)
389-
.apply(widget::container)
390-
.class(cosmic::style::Container::Card)
391-
.padding(spacing.space_xxs)
392-
.into(),
393-
),
394-
Some(Tab::Available) => Some(
395-
widget::row()
396-
.push(widget::horizontal_space())
397-
.push(match self.color_schemes.status {
398-
Status::Idle => widget::button::standard(fl!("show-more"))
399-
.leading_icon(crate::core::icons::get_handle(
400-
"content-loading-symbolic",
401-
16,
402-
))
403-
.on_press(Message::ColorSchemes(Box::new(
404-
color_schemes::Message::FetchAvailableColorSchemes(
405-
color_schemes::ColorSchemeProvider::CosmicThemes,
406-
self.color_schemes.limit,
407-
),
408-
))),
409-
Status::LoadingMore | Status::Loading => {
410-
widget::button::standard(fl!("loading"))
411-
}
412-
})
413-
.spacing(spacing.space_xxs)
414-
.apply(widget::container)
415-
.class(cosmic::style::Container::Card)
416-
.padding(spacing.space_xxs)
417-
.into(),
418-
),
419-
None => None,
370+
371+
match self.nav_model.active_data::<Page>() {
372+
Some(Page::ColorSchemes) => match self.color_schemes.model.active_data::<Tab>() {
373+
Some(Tab::Installed) => Some(
374+
widget::row()
375+
.push(widget::horizontal_space())
376+
.push(
377+
widget::button::standard(fl!("save-current-color-scheme"))
378+
.trailing_icon(icons::get_handle("arrow-into-box-symbolic", 16))
379+
.on_press(Message::ColorSchemes(Box::new(
380+
color_schemes::Message::SaveCurrentColorScheme(None),
381+
))),
382+
)
383+
.push(
384+
widget::button::standard(fl!("import-color-scheme"))
385+
.trailing_icon(icons::get_handle("document-save-symbolic", 16))
386+
.on_press(Message::ColorSchemes(Box::new(
387+
color_schemes::Message::StartImport,
388+
))),
389+
)
390+
.spacing(spacing.space_xxs)
391+
.apply(widget::container)
392+
.class(cosmic::style::Container::Card)
393+
.padding(spacing.space_xxs)
394+
.into(),
395+
),
396+
Some(Tab::Available) => Some(
397+
widget::row()
398+
.push(widget::horizontal_space())
399+
.push(match self.color_schemes.status {
400+
Status::Idle => widget::button::standard(fl!("show-more"))
401+
.leading_icon(crate::core::icons::get_handle(
402+
"content-loading-symbolic",
403+
16,
404+
))
405+
.on_press(Message::ColorSchemes(Box::new(
406+
color_schemes::Message::FetchAvailableColorSchemes(
407+
color_schemes::ColorSchemeProvider::CosmicThemes,
408+
self.color_schemes.limit,
409+
),
410+
))),
411+
Status::LoadingMore | Status::Loading => {
412+
widget::button::standard(fl!("loading"))
413+
}
414+
})
415+
.spacing(spacing.space_xxs)
416+
.apply(widget::container)
417+
.class(cosmic::style::Container::Card)
418+
.padding(spacing.space_xxs)
419+
.into(),
420+
),
421+
None => None,
422+
},
423+
_ => None,
420424
}
421425
}
422426

src/pages/color_schemes.rs

+14-22
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ use ashpd::desktop::file_chooser::{FileFilter, SelectedFiles};
66
use cosmic::{
77
cosmic_config::{Config, CosmicConfigEntry},
88
cosmic_theme::{Theme, ThemeBuilder, ThemeMode},
9-
iced::Alignment,
109
widget::{
1110
self,
1211
segmented_button::{self, SingleSelect},
@@ -426,17 +425,14 @@ impl ColorSchemes {
426425
fn installed_themes<'a>(&'a self) -> Element<'a, Message> {
427426
widget::responsive(move |size| {
428427
let spacing = cosmic::theme::active().cosmic().spacing;
429-
let grid_width = (size.width - 2.0 * spacing.space_s as f32).floor().max(0.0) as usize;
430428

431-
widget::scrollable(
432-
widget::container(ColorScheme::installed_grid(
433-
&self.installed,
434-
&self.selected,
435-
spacing,
436-
grid_width,
437-
))
438-
.align_x(Alignment::Center),
439-
)
429+
widget::scrollable(ColorScheme::installed_grid(
430+
&self.installed,
431+
&self.selected,
432+
spacing,
433+
size.width as usize,
434+
))
435+
.spacing(spacing.space_xxs)
440436
.into()
441437
})
442438
.into()
@@ -446,17 +442,13 @@ impl ColorSchemes {
446442
match self.status {
447443
Status::Idle | Status::LoadingMore => widget::responsive(move |size| {
448444
let spacing = cosmic::theme::active().cosmic().spacing;
449-
let grid_width =
450-
(size.width - 2.0 * spacing.space_s as f32).floor().max(0.0) as usize;
451-
452-
widget::scrollable(
453-
widget::container(ColorScheme::available_grid(
454-
&self.available,
455-
spacing,
456-
grid_width,
457-
))
458-
.align_x(Alignment::Center),
459-
)
445+
446+
widget::scrollable(ColorScheme::available_grid(
447+
&self.available,
448+
spacing,
449+
size.width as usize,
450+
))
451+
.spacing(spacing.space_xxs)
460452
.into()
461453
})
462454
.into(),

src/pages/color_schemes/config.rs

+13-13
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ use std::path::PathBuf;
33
use cosmic::{
44
cosmic_config::{self, Config},
55
cosmic_theme::ThemeBuilder,
6-
widget, Element,
6+
iced::{Alignment, Length},
7+
widget::{self, JustifyContent},
8+
Element,
79
};
810
use cosmic_config::cosmic_config_derive::CosmicConfigEntry;
911
use cosmic_config::CosmicConfigEntry;
@@ -77,12 +79,11 @@ impl ColorScheme {
7779
}
7880
grid.column_spacing(column_spacing)
7981
.row_spacing(column_spacing)
80-
.padding(cosmic::iced::Padding {
81-
top: spacing.space_s as f32,
82-
right: spacing.space_s as f32,
83-
bottom: spacing.space_s as f32,
84-
left: spacing.space_s as f32,
85-
})
82+
.row_alignment(Alignment::Center)
83+
.column_alignment(Alignment::Center)
84+
.justify_content(JustifyContent::Center)
85+
.width(Length::Fill)
86+
.height(Length::Fill)
8687
.into()
8788
}
8889

@@ -111,12 +112,11 @@ impl ColorScheme {
111112

112113
grid.column_spacing(column_spacing)
113114
.row_spacing(column_spacing)
114-
.padding(cosmic::iced::Padding {
115-
top: spacing.space_s as f32,
116-
right: spacing.space_s as f32,
117-
bottom: spacing.space_s as f32,
118-
left: spacing.space_s as f32,
119-
})
115+
.row_alignment(Alignment::Center)
116+
.column_alignment(Alignment::Center)
117+
.justify_content(JustifyContent::Center)
118+
.width(Length::Fill)
119+
.height(Length::Fill)
120120
.into()
121121
}
122122
}

0 commit comments

Comments
 (0)