feat: responsive controls and standard button fixes
This commit is contained in:
parent
c101089aea
commit
cd5a8a701a
15 changed files with 146 additions and 149 deletions
|
|
@ -1050,19 +1050,10 @@ impl page::Page<crate::pages::Message> for Page {
|
|||
}
|
||||
|
||||
fn header_view(&self) -> Option<Element<'_, crate::pages::Message>> {
|
||||
let spacing = self.theme_builder.spacing;
|
||||
let content = row::with_capacity(2)
|
||||
.spacing(self.theme_builder.spacing.space_xxs)
|
||||
.push(
|
||||
button(text(fl!("import")))
|
||||
.on_press(Message::StartImport)
|
||||
.padding([spacing.space_xxs, spacing.space_xs]),
|
||||
)
|
||||
.push(
|
||||
button(text(fl!("export")))
|
||||
.on_press(Message::StartExport)
|
||||
.padding([spacing.space_xxs, spacing.space_xs]),
|
||||
)
|
||||
.push(button::standard(fl!("import")).on_press(Message::StartImport))
|
||||
.push(button::standard(fl!("export")).on_press(Message::StartExport))
|
||||
.apply(container)
|
||||
.width(Length::Fill)
|
||||
.align_x(alignment::Horizontal::Right)
|
||||
|
|
@ -1560,10 +1551,10 @@ pub fn reset_button() -> Section<crate::pages::Message> {
|
|||
let spacing = &page.theme_builder.spacing;
|
||||
let descriptions = §ion.descriptions;
|
||||
if page.can_reset {
|
||||
cosmic::iced::widget::row![button(text(&*descriptions[0]))
|
||||
button::standard(&*descriptions[0])
|
||||
.on_press(Message::Reset)
|
||||
.padding([spacing.space_xxs, spacing.space_xs])]
|
||||
.apply(Element::from)
|
||||
.padding([spacing.space_xxs, spacing.space_xs])
|
||||
.into()
|
||||
} else {
|
||||
horizontal_space(1).apply(Element::from)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,9 +89,8 @@ impl page::Page<crate::pages::Message> for Page {
|
|||
let content = row::with_capacity(2)
|
||||
.spacing(spacing.space_xxs)
|
||||
.push(
|
||||
button(text(fl!("add-applet")))
|
||||
.on_press(Message(applets_inner::Message::AddAppletDrawer))
|
||||
.padding([spacing.space_xxs, spacing.space_xs]),
|
||||
button::standard(fl!("add-applet"))
|
||||
.on_press(Message(applets_inner::Message::AddAppletDrawer)),
|
||||
)
|
||||
.apply(container)
|
||||
.width(Length::Fill)
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ pub(crate) fn enable() -> Section<crate::pages::Message> {
|
|||
return Element::from(text(fl!("unknown")));
|
||||
};
|
||||
settings::view_section(§ion.title)
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*descriptions[0],
|
||||
toggler(
|
||||
None,
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ pub fn window_controls() -> Section<crate::pages::Message> {
|
|||
let descriptions = §ion.descriptions;
|
||||
|
||||
settings::view_section(§ion.title)
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*descriptions[0],
|
||||
toggler(
|
||||
None,
|
||||
|
|
@ -93,7 +93,7 @@ pub fn window_controls() -> Section<crate::pages::Message> {
|
|||
Message::ShowMinimizeButton,
|
||||
),
|
||||
))
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*descriptions[1],
|
||||
toggler(
|
||||
None,
|
||||
|
|
|
|||
|
|
@ -133,11 +133,7 @@ impl page::Page<crate::pages::Message> for Page {
|
|||
let spacing = theme.cosmic().spacing;
|
||||
let content = row::with_capacity(2)
|
||||
.spacing(spacing.space_xxs)
|
||||
.push(
|
||||
button(text(fl!("add-applet")))
|
||||
.on_press(Message::AddAppletDrawer)
|
||||
.padding([spacing.space_xxs, spacing.space_xs]),
|
||||
)
|
||||
.push(button::standard(fl!("add-applet")).on_press(Message::AddAppletDrawer))
|
||||
.apply(container)
|
||||
.width(Length::Fill)
|
||||
.align_x(alignment::Horizontal::Right)
|
||||
|
|
|
|||
|
|
@ -107,13 +107,13 @@ pub(crate) fn behavior_and_position<
|
|||
return Element::from(text(fl!("unknown")));
|
||||
};
|
||||
settings::view_section(§ion.title)
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*descriptions[0],
|
||||
toggler(None, panel_config.autohide.is_some(), |value| {
|
||||
Message::AutoHidePanel(value)
|
||||
}),
|
||||
))
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*descriptions[1],
|
||||
dropdown(
|
||||
page.anchors.as_slice(),
|
||||
|
|
@ -121,7 +121,7 @@ pub(crate) fn behavior_and_position<
|
|||
Message::PanelAnchor,
|
||||
),
|
||||
))
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*descriptions[2],
|
||||
dropdown(
|
||||
page.outputs.as_slice(),
|
||||
|
|
@ -161,19 +161,19 @@ pub(crate) fn style<
|
|||
return Element::from(text(fl!("unknown")));
|
||||
};
|
||||
settings::view_section(§ion.title)
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*descriptions[0],
|
||||
toggler(None, panel_config.anchor_gap, |value| {
|
||||
Message::AnchorGap(value)
|
||||
}),
|
||||
))
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*descriptions[1],
|
||||
toggler(None, panel_config.expand_to_edges, |value| {
|
||||
Message::ExtendToEdge(value)
|
||||
}),
|
||||
))
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*descriptions[2],
|
||||
dropdown(
|
||||
inner.backgrounds.as_slice(),
|
||||
|
|
@ -186,7 +186,7 @@ pub(crate) fn style<
|
|||
Message::Appearance,
|
||||
),
|
||||
))
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*descriptions[3],
|
||||
// TODO custom discrete slider variant
|
||||
row::with_children(vec![
|
||||
|
|
@ -219,7 +219,7 @@ pub(crate) fn style<
|
|||
])
|
||||
.spacing(12),
|
||||
))
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*descriptions[4],
|
||||
row::with_children(vec![
|
||||
text(fl!("number", HashMap::from_iter(vec![("number", 0)]))).into(),
|
||||
|
|
@ -286,7 +286,8 @@ pub(crate) fn add_panel<
|
|||
.descriptions(vec![fl!("reset-to-default").into()])
|
||||
.view::<P>(move |_binder, _page, section| {
|
||||
let descriptions = §ion.descriptions;
|
||||
cosmic::iced::widget::row![button(text(&*descriptions[0])).on_press(Message::FullReset)]
|
||||
button::standard(&*descriptions[0])
|
||||
.on_press(Message::FullReset)
|
||||
.apply(Element::from)
|
||||
.map(msg_map)
|
||||
})
|
||||
|
|
@ -305,12 +306,11 @@ pub fn reset_button<
|
|||
let descriptions = §ion.descriptions;
|
||||
let inner = page.inner();
|
||||
if inner.system_default == inner.panel_config {
|
||||
horizontal_space(1).apply(Element::from)
|
||||
Element::from(horizontal_space(1))
|
||||
} else {
|
||||
cosmic::iced::widget::row![
|
||||
button(text(&*descriptions[0])).on_press(Message::ResetPanel)
|
||||
]
|
||||
.apply(Element::from)
|
||||
button::standard(&*descriptions[0])
|
||||
.on_press(Message::ResetPanel)
|
||||
.into()
|
||||
}
|
||||
.map(msg_map)
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1221,7 +1221,7 @@ pub fn settings() -> Section<crate::pages::Message> {
|
|||
|
||||
children.push({
|
||||
let mut column = list_column()
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*WALLPAPER_SAME,
|
||||
toggler(
|
||||
None,
|
||||
|
|
@ -1229,10 +1229,10 @@ pub fn settings() -> Section<crate::pages::Message> {
|
|||
Message::SameWallpaper,
|
||||
),
|
||||
))
|
||||
.add(settings::item(&*WALLPAPER_FIT, wallpaper_fit));
|
||||
.add(settings::flex_item(&*WALLPAPER_FIT, wallpaper_fit));
|
||||
|
||||
if show_slideshow_toggle {
|
||||
column = column.add(settings::item(
|
||||
column = column.add(settings::flex_item(
|
||||
&*WALLPAPER_SLIDE,
|
||||
toggler(None, slideshow_enabled, Message::Slideshow),
|
||||
));
|
||||
|
|
@ -1241,7 +1241,7 @@ pub fn settings() -> Section<crate::pages::Message> {
|
|||
// The rotation frequency dropdown should only be shown when the slideshow is enabled.
|
||||
if slideshow_enabled {
|
||||
column
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*WALLPAPER_CHANGE,
|
||||
dropdown(
|
||||
&page.rotation_options,
|
||||
|
|
|
|||
|
|
@ -421,7 +421,7 @@ impl Page {
|
|||
|
||||
let display_options = active_output.enabled.then(|| {
|
||||
list_column()
|
||||
.add(cosmic::widget::settings::item(
|
||||
.add(cosmic::widget::settings::flex_item(
|
||||
&*text::DISPLAY_RESOLUTION,
|
||||
dropdown(
|
||||
&self.cache.resolutions,
|
||||
|
|
@ -429,7 +429,7 @@ impl Page {
|
|||
Message::Resolution,
|
||||
),
|
||||
))
|
||||
.add(cosmic::widget::settings::item(
|
||||
.add(cosmic::widget::settings::flex_item(
|
||||
&*text::DISPLAY_REFRESH_RATE,
|
||||
dropdown(
|
||||
&self.cache.refresh_rates,
|
||||
|
|
@ -437,7 +437,7 @@ impl Page {
|
|||
Message::RefreshRate,
|
||||
),
|
||||
))
|
||||
.add(cosmic::widget::settings::item(
|
||||
.add(cosmic::widget::settings::flex_item(
|
||||
&*text::DISPLAY_SCALE,
|
||||
dropdown(
|
||||
&["50%", "75%", "100%", "125%", "150%", "175%", "200%"],
|
||||
|
|
@ -445,7 +445,7 @@ impl Page {
|
|||
Message::Scale,
|
||||
),
|
||||
))
|
||||
.add(cosmic::widget::settings::item(
|
||||
.add(cosmic::widget::settings::flex_item(
|
||||
&*text::ORIENTATION,
|
||||
dropdown(
|
||||
&self.cache.orientations,
|
||||
|
|
@ -479,7 +479,7 @@ impl Page {
|
|||
> 1
|
||||
|| !active_output.enabled)
|
||||
.then(|| {
|
||||
list_column().add(cosmic::widget::settings::item(
|
||||
list_column().add(cosmic::widget::settings::flex_item(
|
||||
&*text::DISPLAY_ENABLE,
|
||||
toggler(None, active_output.enabled, Message::DisplayToggle),
|
||||
))
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@ fn input_source(
|
|||
) -> cosmic::Element<Message> {
|
||||
let expanded = expanded_source_popover.is_some_and(|expanded_id| expanded_id == id);
|
||||
|
||||
settings::item(description, popover_button(id, expanded)).into()
|
||||
settings::flex_item(description, popover_button(id, expanded)).into()
|
||||
}
|
||||
|
||||
pub mod shortcuts;
|
||||
|
|
@ -267,7 +267,7 @@ impl page::Page<crate::pages::Message> for Page {
|
|||
fn on_enter(
|
||||
&mut self,
|
||||
_page: page::Entity,
|
||||
sender: tokio::sync::mpsc::Sender<crate::pages::Message>,
|
||||
_sender: tokio::sync::mpsc::Sender<crate::pages::Message>,
|
||||
) -> Command<crate::pages::Message> {
|
||||
self.xkb = super::get_config(&self.config, "xkb_config");
|
||||
match xkb_data::keyboard_layouts() {
|
||||
|
|
@ -657,7 +657,7 @@ fn keyboard_typing_assist() -> Section<crate::pages::Message> {
|
|||
let theme = cosmic::theme::active();
|
||||
|
||||
settings::view_section(§ion.title)
|
||||
.add(settings::item(&*descriptions[0], {
|
||||
.add(settings::flex_item(&*descriptions[0], {
|
||||
// Delay
|
||||
let delay_slider = cosmic::widget::slider(
|
||||
KB_REPEAT_DELAY_MIN..=KB_REPEAT_DELAY_MAX,
|
||||
|
|
@ -675,7 +675,7 @@ fn keyboard_typing_assist() -> Section<crate::pages::Message> {
|
|||
.push(delay_slider)
|
||||
.push(&*descriptions[3])
|
||||
}))
|
||||
.add(settings::item(&*descriptions[1], {
|
||||
.add(settings::flex_item(&*descriptions[1], {
|
||||
// Repeat rate
|
||||
let rate_slider = cosmic::widget::slider(
|
||||
KB_REPEAT_RATE_MIN..=KB_REPEAT_RATE_MAX,
|
||||
|
|
|
|||
|
|
@ -55,13 +55,13 @@ fn mouse() -> Section<crate::pages::Message> {
|
|||
let theme = cosmic::theme::active();
|
||||
|
||||
settings::view_section(§ion.title)
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*super::PRIMARY_BUTTON,
|
||||
cosmic::widget::segmented_control::horizontal(&input.primary_button)
|
||||
.minimum_button_width(0)
|
||||
.on_activate(|x| Message::PrimaryButtonSelected(x, false)),
|
||||
))
|
||||
.add(settings::item::builder(&*MOUSE_SPEED).control({
|
||||
.add(settings::item::builder(&*MOUSE_SPEED).flex_control({
|
||||
let value = (input
|
||||
.input_default
|
||||
.acceleration
|
||||
|
|
@ -112,7 +112,7 @@ fn scrolling() -> Section<crate::pages::Message> {
|
|||
let theme = cosmic::theme::active();
|
||||
|
||||
settings::view_section(§ion.title)
|
||||
.add(settings::item(&*super::SCROLLING_SPEED, {
|
||||
.add(settings::flex_item(&*super::SCROLLING_SPEED, {
|
||||
let value = input
|
||||
.input_default
|
||||
.scroll_config
|
||||
|
|
|
|||
|
|
@ -69,13 +69,13 @@ fn touchpad() -> Section<crate::pages::Message> {
|
|||
let theme = cosmic::theme::active();
|
||||
|
||||
settings::view_section(§ion.title)
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*super::PRIMARY_BUTTON,
|
||||
cosmic::widget::segmented_control::horizontal(&input.touchpad_primary_button)
|
||||
.minimum_button_width(0)
|
||||
.on_activate(|x| Message::PrimaryButtonSelected(x, true)),
|
||||
))
|
||||
.add(settings::item::builder(&*TOUCHPAD_SPEED).control({
|
||||
.add(settings::item::builder(&*TOUCHPAD_SPEED).flex_control({
|
||||
let value = (input
|
||||
.input_touchpad
|
||||
.acceleration
|
||||
|
|
@ -277,23 +277,23 @@ fn swiping() -> Section<crate::pages::Message> {
|
|||
settings::view_section(&*section.title)
|
||||
.add(
|
||||
settings::item::builder(&*SWIPING_THREE_FINGER_ANY)
|
||||
.control(text(&*SWITCH_BETWEEN_WINDOWS)),
|
||||
.flex_control(text(&*SWITCH_BETWEEN_WINDOWS)),
|
||||
)
|
||||
.add(
|
||||
settings::item::builder(&*SWIPING_FOUR_FINGER_UP)
|
||||
.control(text(&*SWITCH_TO_PREV_WORKSPACE)),
|
||||
.flex_control(text(&*SWITCH_TO_PREV_WORKSPACE)),
|
||||
)
|
||||
.add(
|
||||
settings::item::builder(&*SWIPING_FOUR_FINGER_DOWN)
|
||||
.control(text(&*SWITCH_TO_NEXT_WORKSPACE)),
|
||||
.flex_control(text(&*SWITCH_TO_NEXT_WORKSPACE)),
|
||||
)
|
||||
.add(
|
||||
settings::item::builder(&*SWIPING_FOUR_FINGER_LEFT)
|
||||
.control(text(&*OPEN_WORKSPACES_VIEW)),
|
||||
.flex_control(text(&*OPEN_WORKSPACES_VIEW)),
|
||||
)
|
||||
.add(
|
||||
settings::item::builder(&*SWIPING_FOUR_FINGER_RIGHT)
|
||||
.control(text(&*OPEN_APPLICATION_LIBRARY)),
|
||||
.flex_control(text(&*OPEN_APPLICATION_LIBRARY)),
|
||||
)
|
||||
.apply(Element::from)
|
||||
.map(crate::pages::Message::Input)
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ fn device() -> Section<crate::pages::Message> {
|
|||
|
||||
let device_name = settings::item::builder(&*desc[0])
|
||||
.description(&*desc[1])
|
||||
.control(hostname_row);
|
||||
.flex_control(hostname_row);
|
||||
|
||||
list_column()
|
||||
.add(device_name)
|
||||
|
|
@ -151,16 +151,22 @@ fn hardware() -> Section<crate::pages::Message> {
|
|||
let desc = §ion.descriptions;
|
||||
|
||||
let mut sections = settings::view_section(§ion.title)
|
||||
.add(settings::item(&*desc[0], text(&page.info.hardware_model)))
|
||||
.add(settings::item(&*desc[1], text(&page.info.memory)))
|
||||
.add(settings::item(&*desc[2], text(&page.info.processor)));
|
||||
.add(settings::flex_item(
|
||||
&*desc[0],
|
||||
text(&page.info.hardware_model),
|
||||
))
|
||||
.add(settings::flex_item(&*desc[1], text(&page.info.memory)))
|
||||
.add(settings::flex_item(&*desc[2], text(&page.info.processor)));
|
||||
|
||||
for card in &page.info.graphics {
|
||||
sections = sections.add(settings::item(&*desc[3], text(card.as_str())));
|
||||
sections = sections.add(settings::flex_item(&*desc[3], text(card.as_str())));
|
||||
}
|
||||
|
||||
sections
|
||||
.add(settings::item(&*desc[4], text(&page.info.disk_capacity)))
|
||||
.add(settings::flex_item(
|
||||
&*desc[4],
|
||||
text(&page.info.disk_capacity),
|
||||
))
|
||||
.into()
|
||||
})
|
||||
}
|
||||
|
|
@ -177,13 +183,22 @@ fn os() -> Section<crate::pages::Message> {
|
|||
.view::<Page>(|_binder, page, section| {
|
||||
let desc = §ion.descriptions;
|
||||
settings::view_section(§ion.title)
|
||||
.add(settings::item(&*desc[0], text(&page.info.operating_system)))
|
||||
.add(settings::item(&*desc[1], text(&page.info.os_architecture)))
|
||||
.add(settings::item(
|
||||
.add(settings::flex_item(
|
||||
&*desc[0],
|
||||
text(&page.info.operating_system),
|
||||
))
|
||||
.add(settings::flex_item(
|
||||
&*desc[1],
|
||||
text(&page.info.os_architecture),
|
||||
))
|
||||
.add(settings::flex_item(
|
||||
&*desc[2],
|
||||
text(&page.info.desktop_environment),
|
||||
))
|
||||
.add(settings::item(&*desc[3], text(&page.info.windowing_system)))
|
||||
.add(settings::flex_item(
|
||||
&*desc[3],
|
||||
text(&page.info.windowing_system),
|
||||
))
|
||||
.into()
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ fn format() -> Section<crate::pages::Message> {
|
|||
)
|
||||
// First day of week
|
||||
.add(
|
||||
settings::item::builder(&*TIME_FORMAT_FIRST).control(dropdown(
|
||||
settings::item::builder(&*TIME_FORMAT_FIRST).flex_control(dropdown(
|
||||
&*TIME_FORMAT_WEEKDAYS,
|
||||
match page.first_day_of_week {
|
||||
4 => Some(0), // friday
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue