improv: rearrange pages to match design
This commit is contained in:
parent
34d2b82376
commit
3d75343958
7 changed files with 47 additions and 92 deletions
|
|
@ -61,7 +61,8 @@ impl SettingsApp {
|
||||||
PageCommands::Appearance => self.pages.page_id::<desktop::appearance::Page>(),
|
PageCommands::Appearance => self.pages.page_id::<desktop::appearance::Page>(),
|
||||||
PageCommands::Bluetooth => None,
|
PageCommands::Bluetooth => None,
|
||||||
PageCommands::DateTime => self.pages.page_id::<time::date::Page>(),
|
PageCommands::DateTime => self.pages.page_id::<time::date::Page>(),
|
||||||
PageCommands::DesktopPanel => self.pages.page_id::<desktop::options::Page>(),
|
PageCommands::Panel => self.pages.page_id::<desktop::panel::Page>(),
|
||||||
|
PageCommands::Dock => self.pages.page_id::<desktop::dock::Page>(),
|
||||||
PageCommands::Displays => self.pages.page_id::<display::Page>(),
|
PageCommands::Displays => self.pages.page_id::<display::Page>(),
|
||||||
PageCommands::Firmware => self.pages.page_id::<system::firmware::Page>(),
|
PageCommands::Firmware => self.pages.page_id::<system::firmware::Page>(),
|
||||||
PageCommands::Keyboard => self.pages.page_id::<input::keyboard::Page>(),
|
PageCommands::Keyboard => self.pages.page_id::<input::keyboard::Page>(),
|
||||||
|
|
@ -74,6 +75,9 @@ impl SettingsApp {
|
||||||
PageCommands::Touchpad => self.pages.page_id::<input::touchpad::Page>(),
|
PageCommands::Touchpad => self.pages.page_id::<input::touchpad::Page>(),
|
||||||
PageCommands::Users => self.pages.page_id::<system::users::Page>(),
|
PageCommands::Users => self.pages.page_id::<system::users::Page>(),
|
||||||
PageCommands::Wallpaper => self.pages.page_id::<desktop::wallpaper::Page>(),
|
PageCommands::Wallpaper => self.pages.page_id::<desktop::wallpaper::Page>(),
|
||||||
|
PageCommands::WindowManagement => {
|
||||||
|
self.pages.page_id::<desktop::window_management::Page>()
|
||||||
|
}
|
||||||
PageCommands::Workspaces => self.pages.page_id::<desktop::workspaces::Page>(),
|
PageCommands::Workspaces => self.pages.page_id::<desktop::workspaces::Page>(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -311,16 +315,16 @@ impl cosmic::Application for SettingsApp {
|
||||||
page::update!(self.pages, message, desktop::Page);
|
page::update!(self.pages, message, desktop::Page);
|
||||||
}
|
}
|
||||||
|
|
||||||
crate::pages::Message::DesktopOptions(message) => {
|
|
||||||
page::update!(self.pages, message, desktop::options::Page);
|
|
||||||
}
|
|
||||||
|
|
||||||
crate::pages::Message::DesktopWallpaper(message) => {
|
crate::pages::Message::DesktopWallpaper(message) => {
|
||||||
if let Some(page) = self.pages.page_mut::<desktop::wallpaper::Page>() {
|
if let Some(page) = self.pages.page_mut::<desktop::wallpaper::Page>() {
|
||||||
return page.update(message).map(Into::into);
|
return page.update(message).map(Into::into);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
crate::pages::Message::WindowManagement(message) => {
|
||||||
|
page::update!(self.pages, message, desktop::window_management::Page);
|
||||||
|
}
|
||||||
|
|
||||||
crate::pages::Message::DesktopWorkspaces(message) => {
|
crate::pages::Message::DesktopWorkspaces(message) => {
|
||||||
page::update!(self.pages, message, desktop::workspaces::Page);
|
page::update!(self.pages, message, desktop::workspaces::Page);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,8 +46,10 @@ pub enum PageCommands {
|
||||||
Bluetooth,
|
Bluetooth,
|
||||||
/// DateTime settings page
|
/// DateTime settings page
|
||||||
DateTime,
|
DateTime,
|
||||||
/// Desktop and panel settings page
|
/// Panel settings page
|
||||||
DesktopPanel,
|
Panel,
|
||||||
|
/// Dock settings page
|
||||||
|
Dock,
|
||||||
/// Displays settings page
|
/// Displays settings page
|
||||||
Displays,
|
Displays,
|
||||||
/// Firmware settings page
|
/// Firmware settings page
|
||||||
|
|
@ -72,6 +74,8 @@ pub enum PageCommands {
|
||||||
Users,
|
Users,
|
||||||
/// Wallpaper settings page
|
/// Wallpaper settings page
|
||||||
Wallpaper,
|
Wallpaper,
|
||||||
|
/// Window management page
|
||||||
|
WindowManagement,
|
||||||
/// Workspaces settings page
|
/// Workspaces settings page
|
||||||
Workspaces,
|
Workspaces,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@
|
||||||
|
|
||||||
pub mod appearance;
|
pub mod appearance;
|
||||||
pub mod dock;
|
pub mod dock;
|
||||||
pub mod options;
|
|
||||||
pub mod panel;
|
pub mod panel;
|
||||||
pub mod wallpaper;
|
pub mod wallpaper;
|
||||||
|
pub mod window_management;
|
||||||
pub mod workspaces;
|
pub mod workspaces;
|
||||||
|
|
||||||
use cosmic::{config::CosmicTk, cosmic_config::CosmicConfigEntry};
|
use cosmic::{config::CosmicTk, cosmic_config::CosmicConfigEntry};
|
||||||
|
|
@ -46,9 +46,11 @@ impl page::Page<crate::pages::Message> for Page {
|
||||||
|
|
||||||
impl page::AutoBind<crate::pages::Message> for Page {
|
impl page::AutoBind<crate::pages::Message> for Page {
|
||||||
fn sub_pages(page: page::Insert<crate::pages::Message>) -> page::Insert<crate::pages::Message> {
|
fn sub_pages(page: page::Insert<crate::pages::Message>) -> page::Insert<crate::pages::Message> {
|
||||||
page.sub_page::<options::Page>()
|
page.sub_page::<wallpaper::Page>()
|
||||||
.sub_page::<wallpaper::Page>()
|
|
||||||
.sub_page::<appearance::Page>()
|
.sub_page::<appearance::Page>()
|
||||||
|
.sub_page::<panel::Page>()
|
||||||
|
.sub_page::<dock::Page>()
|
||||||
|
.sub_page::<window_management::Page>()
|
||||||
.sub_page::<workspaces::Page>()
|
.sub_page::<workspaces::Page>()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@ impl page::Page<crate::pages::Message> for Page {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn info(&self) -> page::Info {
|
fn info(&self) -> page::Info {
|
||||||
page::Info::new("panel", "preferences-dock-symbolic")
|
page::Info::new("panel", "preferences-panel-symbolic")
|
||||||
.title(fl!("panel"))
|
.title(fl!("panel"))
|
||||||
.description(fl!("panel", "desc"))
|
.description(fl!("panel", "desc"))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,7 @@
|
||||||
// SPDX-License-Identifier: GPL-3.0-only
|
// SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
|
||||||
use cosmic::{
|
use cosmic::{
|
||||||
iced::Length,
|
widget::{self, settings, toggler},
|
||||||
theme,
|
|
||||||
widget::{self, button, container, horizontal_space, icon, row, settings, toggler},
|
|
||||||
Apply, Element,
|
Apply, Element,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -65,23 +63,20 @@ impl page::Page<crate::pages::Message> for Page {
|
||||||
Some(vec![
|
Some(vec![
|
||||||
sections.insert(super_key_action()),
|
sections.insert(super_key_action()),
|
||||||
sections.insert(window_controls()),
|
sections.insert(window_controls()),
|
||||||
sections.insert(panel_dock_links()),
|
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
|
|
||||||
fn info(&self) -> page::Info {
|
fn info(&self) -> page::Info {
|
||||||
page::Info::new("desktop-panel-options", "video-display-symbolic")
|
page::Info::new(
|
||||||
.title(fl!("desktop-panel-options"))
|
"window-management",
|
||||||
.description(fl!("desktop-panel-options", "desc"))
|
"preferences-window-management-symbolic",
|
||||||
|
)
|
||||||
|
.title(fl!("window-management"))
|
||||||
|
.description(fl!("window-management", "desc"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl page::AutoBind<crate::pages::Message> for Page {
|
impl page::AutoBind<crate::pages::Message> for Page {}
|
||||||
fn sub_pages(page: page::Insert<crate::pages::Message>) -> page::Insert<crate::pages::Message> {
|
|
||||||
page.sub_page::<super::panel::Page>()
|
|
||||||
.sub_page::<super::dock::Page>()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn super_key_action() -> Section<crate::pages::Message> {
|
pub fn super_key_action() -> Section<crate::pages::Message> {
|
||||||
let mut descriptions = Slab::new();
|
let mut descriptions = Slab::new();
|
||||||
|
|
@ -105,7 +100,7 @@ pub fn super_key_action() -> Section<crate::pages::Message> {
|
||||||
)),
|
)),
|
||||||
)
|
)
|
||||||
.apply(Element::from)
|
.apply(Element::from)
|
||||||
.map(crate::pages::Message::DesktopOptions)
|
.map(crate::pages::Message::WindowManagement)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -146,61 +141,6 @@ pub fn window_controls() -> Section<crate::pages::Message> {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn panel_dock_links() -> Section<crate::pages::Message> {
|
|
||||||
Section::default()
|
|
||||||
.title(fl!("desktop-panels-and-applets"))
|
|
||||||
.view::<Page>(move |binder, _page, section| {
|
|
||||||
// TODO probably a way of getting the entity and its info
|
|
||||||
let mut settings = settings::view_section(§ion.title);
|
|
||||||
|
|
||||||
if let Some((panel_entity, panel_info)) =
|
|
||||||
binder.info.iter().find(|(_, v)| v.id == "panel")
|
|
||||||
{
|
|
||||||
let control = row::with_children(vec![
|
|
||||||
horizontal_space(Length::Fill).into(),
|
|
||||||
icon::from_name("go-next-symbolic").size(16).into(),
|
|
||||||
]);
|
|
||||||
|
|
||||||
settings = settings.add(
|
|
||||||
settings::item::builder(panel_info.title.clone())
|
|
||||||
.description(panel_info.description.clone())
|
|
||||||
.control(control)
|
|
||||||
.spacing(16)
|
|
||||||
.apply(container)
|
|
||||||
.style(theme::Container::List)
|
|
||||||
.apply(button)
|
|
||||||
.style(theme::Button::Transparent)
|
|
||||||
.on_press(crate::pages::Message::Page(panel_entity)),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
settings = if let Some((dock_entity, dock_info)) =
|
|
||||||
binder.info.iter().find(|(_, v)| v.id == "dock")
|
|
||||||
{
|
|
||||||
let control = row::with_children(vec![
|
|
||||||
horizontal_space(Length::Fill).into(),
|
|
||||||
icon::from_name("go-next-symbolic").size(16).into(),
|
|
||||||
]);
|
|
||||||
|
|
||||||
settings.add(
|
|
||||||
settings::item::builder(dock_info.title.clone())
|
|
||||||
.description(dock_info.description.clone())
|
|
||||||
.control(control)
|
|
||||||
.spacing(16)
|
|
||||||
.apply(container)
|
|
||||||
.style(theme::Container::List)
|
|
||||||
.apply(button)
|
|
||||||
.style(theme::Button::Transparent)
|
|
||||||
.on_press(crate::pages::Message::Page(dock_entity)),
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
settings
|
|
||||||
};
|
|
||||||
|
|
||||||
Element::from(settings)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
fn super_key_active_config() -> Option<usize> {
|
fn super_key_active_config() -> Option<usize> {
|
||||||
let super_binding = Binding::new(shortcuts::Modifiers::new().logo(), None);
|
let super_binding = Binding::new(shortcuts::Modifiers::new().logo(), None);
|
||||||
|
|
||||||
|
|
@ -19,8 +19,8 @@ pub enum Message {
|
||||||
CustomShortcuts(input::keyboard::shortcuts::custom::Message),
|
CustomShortcuts(input::keyboard::shortcuts::custom::Message),
|
||||||
DateAndTime(time::date::Message),
|
DateAndTime(time::date::Message),
|
||||||
Desktop(desktop::Message),
|
Desktop(desktop::Message),
|
||||||
DesktopOptions(desktop::options::Message),
|
|
||||||
DesktopWallpaper(desktop::wallpaper::Message),
|
DesktopWallpaper(desktop::wallpaper::Message),
|
||||||
|
WindowManagement(desktop::window_management::Message),
|
||||||
DesktopWorkspaces(desktop::workspaces::Message),
|
DesktopWorkspaces(desktop::workspaces::Message),
|
||||||
Displays(display::Message),
|
Displays(display::Message),
|
||||||
Dock(desktop::dock::Message),
|
Dock(desktop::dock::Message),
|
||||||
|
|
|
||||||
|
|
@ -142,19 +142,10 @@ dock = Dock
|
||||||
hot-corner = Hot Corner
|
hot-corner = Hot Corner
|
||||||
.top-left-corner = Enable top-left hot corner for Workspaces
|
.top-left-corner = Enable top-left hot corner for Workspaces
|
||||||
|
|
||||||
super-key = Super key
|
|
||||||
.launcher = Open Launcher
|
|
||||||
.workspaces = Open Workspaces
|
|
||||||
.applications = Open Applications
|
|
||||||
|
|
||||||
top-panel = Top Panel
|
top-panel = Top Panel
|
||||||
.workspaces = Show Workspaces Button
|
.workspaces = Show Workspaces Button
|
||||||
.applications = Show Applications Button
|
.applications = Show Applications Button
|
||||||
|
|
||||||
window-controls = Window Controls
|
|
||||||
.minimize = Show Minimize Button
|
|
||||||
.maximize = Show Maximize Button
|
|
||||||
|
|
||||||
## Desktop: Panel
|
## Desktop: Panel
|
||||||
|
|
||||||
panel = Panel
|
panel = Panel
|
||||||
|
|
@ -233,6 +224,20 @@ x-hours = { $number ->
|
||||||
*[other] { $number } hours
|
*[other] { $number } hours
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## Desktop: Window management
|
||||||
|
|
||||||
|
window-management = Window management
|
||||||
|
.desc = Super key action, window control options, and additional window tiling options.
|
||||||
|
|
||||||
|
super-key = Super key
|
||||||
|
.launcher = Open Launcher
|
||||||
|
.workspaces = Open Workspaces
|
||||||
|
.applications = Open Applications
|
||||||
|
|
||||||
|
window-controls = Window Controls
|
||||||
|
.minimize = Show minimize button
|
||||||
|
.maximize = Show maximize button
|
||||||
|
|
||||||
## Desktop: Workspaces
|
## Desktop: Workspaces
|
||||||
|
|
||||||
workspaces = Workspaces
|
workspaces = Workspaces
|
||||||
|
|
@ -565,10 +570,10 @@ switch-to-prev-workspace = Switch to prev workspace
|
||||||
open-application-library = Open Application Library
|
open-application-library = Open Application Library
|
||||||
open-workspaces-view = Open Workspaces Overview
|
open-workspaces-view = Open Workspaces Overview
|
||||||
|
|
||||||
## Power
|
## Power
|
||||||
|
|
||||||
power = Power
|
power = Power
|
||||||
.desc = Manage power settings
|
.desc = Manage power settings
|
||||||
|
|
||||||
power-mode = Power Mode
|
power-mode = Power Mode
|
||||||
.performance = High performance
|
.performance = High performance
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue