chore: Use slab! and with_capacity more

COSMIC Setting's code is a mix of `crate::slab!` and manually creating
a Slab. Newer code seems to use the macro, so I replaced the older code
with the macro for consistency and cleanliness.
This commit is contained in:
Josh Megnauth 2026-03-01 20:58:05 -05:00 committed by Michael Murphy
parent aae22f862c
commit c299b6bc67
25 changed files with 284 additions and 285 deletions

View file

@ -21,7 +21,6 @@ use cosmic_randr_shell::List;
use cosmic_settings_page::Section; use cosmic_settings_page::Section;
use cosmic_settings_page::{self as page, section}; use cosmic_settings_page::{self as page, section};
use futures::SinkExt; use futures::SinkExt;
use slab::Slab;
use slotmap::SlotMap; use slotmap::SlotMap;
use tokio::sync::oneshot; use tokio::sync::oneshot;
use tracing::error; use tracing::error;
@ -265,14 +264,14 @@ impl Page {
} }
pub fn legacy_application_global_shortcuts() -> Section<crate::pages::Message> { pub fn legacy_application_global_shortcuts() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
desc = fl!("legacy-app-global-shortcuts", "desc");
let desc = descriptions.insert(fl!("legacy-app-global-shortcuts", "desc")); none = fl!("legacy-app-global-shortcuts", "none");
let none = descriptions.insert(fl!("legacy-app-global-shortcuts", "none")); modifiers = fl!("legacy-app-global-shortcuts", "modifiers");
let modifiers = descriptions.insert(fl!("legacy-app-global-shortcuts", "modifiers")); combination = fl!("legacy-app-global-shortcuts", "combination");
let combination = descriptions.insert(fl!("legacy-app-global-shortcuts", "combination")); all = fl!("legacy-app-global-shortcuts", "all");
let all = descriptions.insert(fl!("legacy-app-global-shortcuts", "all")); mouse = fl!("legacy-app-global-shortcuts", "mouse");
let mouse = descriptions.insert(fl!("legacy-app-global-shortcuts", "mouse")); });
Section::default() Section::default()
.title(fl!("legacy-app-global-shortcuts")) .title(fl!("legacy-app-global-shortcuts"))
@ -339,15 +338,16 @@ pub fn legacy_application_global_shortcuts() -> Section<crate::pages::Message> {
} }
pub fn legacy_application_scaling() -> Section<crate::pages::Message> { pub fn legacy_application_scaling() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
gaming = fl!("legacy-app-scaling", "scaled-gaming");
gaming_desc = fl!("legacy-app-scaling", "gaming-description");
apps = fl!("legacy-app-scaling", "scaled-applications");
apps_desc = fl!("legacy-app-scaling", "applications-description");
compat = fl!("legacy-app-scaling", "scaled-compatibility");
compat_desc = fl!("legacy-app-scaling", "compatibility-description");
preferred_display = fl!("legacy-app-scaling", "preferred-display");
let gaming = descriptions.insert(fl!("legacy-app-scaling", "scaled-gaming")); });
let gaming_desc = descriptions.insert(fl!("legacy-app-scaling", "gaming-description"));
let apps = descriptions.insert(fl!("legacy-app-scaling", "scaled-applications"));
let apps_desc = descriptions.insert(fl!("legacy-app-scaling", "applications-description"));
let compat = descriptions.insert(fl!("legacy-app-scaling", "scaled-compatibility"));
let compat_desc = descriptions.insert(fl!("legacy-app-scaling", "compatibility-description"));
let preferred_display = descriptions.insert(fl!("legacy-app-scaling", "preferred-display"));
Section::default() Section::default()
.title(fl!("legacy-app-scaling")) .title(fl!("legacy-app-scaling"))

View file

@ -9,7 +9,6 @@ use cosmic_settings_bluetooth_subscription::*;
use cosmic_settings_page::{self as page, Section, section}; use cosmic_settings_page::{self as page, Section, section};
use futures::channel::oneshot; use futures::channel::oneshot;
use futures::{SinkExt, StreamExt}; use futures::{SinkExt, StreamExt};
use slab::Slab;
use slotmap::SlotMap; use slotmap::SlotMap;
use std::collections::{HashMap, HashSet}; use std::collections::{HashMap, HashSet};
use std::sync::Arc; use std::sync::Arc;
@ -725,9 +724,9 @@ impl Page {
} }
fn status() -> Section<crate::pages::Message> { fn status() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
bluetooth = fl!("bluetooth");
let bluetooth = descriptions.insert(fl!("bluetooth")); });
Section::default() Section::default()
.descriptions(descriptions) .descriptions(descriptions)
@ -903,9 +902,9 @@ fn connected_devices() -> Section<crate::pages::Message> {
} }
fn available_devices() -> Section<crate::pages::Message> { fn available_devices() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
device_connecting = fl!("bluetooth", "connecting");
let device_connecting = descriptions.insert(fl!("bluetooth", "connecting")); });
Section::default() Section::default()
.title(fl!("bluetooth-available")) .title(fl!("bluetooth-available"))
@ -959,9 +958,9 @@ fn available_devices() -> Section<crate::pages::Message> {
} }
fn multiple_adapter() -> Section<crate::pages::Message> { fn multiple_adapter() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
device_connected = fl!("bluetooth", "connected");
let device_connected = descriptions.insert(fl!("bluetooth", "connected")); });
Section::default() Section::default()
.title(fl!("bluetooth-adapters")) .title(fl!("bluetooth-adapters"))

View file

@ -31,7 +31,6 @@ use cosmic_panel_config::CosmicPanelConfig;
use cosmic_settings_page::Section; use cosmic_settings_page::Section;
use cosmic_settings_page::{self as page, section}; use cosmic_settings_page::{self as page, section};
use ron::ser::PrettyConfig; use ron::ser::PrettyConfig;
use slab::Slab;
use slotmap::{Key, SlotMap}; use slotmap::{Key, SlotMap};
use crate::app; use crate::app;
@ -821,10 +820,10 @@ pub fn interface_density() -> Section<crate::pages::Message> {
#[allow(clippy::too_many_lines)] #[allow(clippy::too_many_lines)]
pub fn window_management() -> Section<crate::pages::Message> { pub fn window_management() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
active_hint = fl!("window-management-appearance", "active-hint");
let active_hint = descriptions.insert(fl!("window-management-appearance", "active-hint")); gaps = fl!("window-management-appearance", "gaps");
let gaps = descriptions.insert(fl!("window-management-appearance", "gaps")); });
Section::default() Section::default()
.title(fl!("window-management-appearance")) .title(fl!("window-management-appearance"))
@ -914,9 +913,9 @@ pub fn experimental() -> Section<crate::pages::Message> {
#[allow(clippy::too_many_lines)] #[allow(clippy::too_many_lines)]
pub fn reset_button() -> Section<crate::pages::Message> { pub fn reset_button() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
reset_to_default = fl!("reset-to-default");
let reset_to_default = descriptions.insert(fl!("reset-to-default")); });
Section::default() Section::default()
.descriptions(descriptions) .descriptions(descriptions)

View file

@ -3,17 +3,16 @@ use cosmic::widget::icon::{from_name, icon};
use cosmic::widget::{button, container, settings, text}; use cosmic::widget::{button, container, settings, text};
use cosmic::{Apply, Element}; use cosmic::{Apply, Element};
use cosmic_settings_page::Section; use cosmic_settings_page::Section;
use slab::Slab;
use super::{Message, Page, Roundness}; use super::{Message, Page, Roundness};
#[allow(clippy::too_many_lines)] #[allow(clippy::too_many_lines)]
pub fn section() -> Section<crate::pages::Message> { pub fn section() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
round = fl!("style", "round");
let round = descriptions.insert(fl!("style", "round")); slightly_round = fl!("style", "slightly-round");
let slightly_round = descriptions.insert(fl!("style", "slightly-round")); square = fl!("style", "square");
let square = descriptions.insert(fl!("style", "square")); });
let dark_round_style = from_name("illustration-appearance-dark-style-round").handle(); let dark_round_style = from_name("illustration-appearance-dark-style-round").handle();
let light_round_style = from_name("illustration-appearance-light-style-round").handle(); let light_round_style = from_name("illustration-appearance-light-style-round").handle();

View file

@ -8,7 +8,6 @@ use cosmic::{
}; };
use cosmic_panel_config::{CosmicPanelConfig, CosmicPanelContainerConfig}; use cosmic_panel_config::{CosmicPanelConfig, CosmicPanelContainerConfig};
use cosmic_settings_page::{self as page, Section, section}; use cosmic_settings_page::{self as page, Section, section};
use slab::Slab;
use slotmap::SlotMap; use slotmap::SlotMap;
use tracing::error; use tracing::error;
@ -158,9 +157,9 @@ impl Default for Page {
} }
pub(crate) fn enable() -> Section<crate::pages::Message> { pub(crate) fn enable() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
dock = fl!("dock");
let dock = descriptions.insert(fl!("dock")); });
Section::default() Section::default()
.descriptions(descriptions) .descriptions(descriptions)

View file

@ -17,7 +17,6 @@ use cosmic_panel_config::{
CosmicPanelOuput, PanelAnchor, PanelSize, CosmicPanelOuput, PanelAnchor, PanelSize,
}; };
use cosmic_settings_page::{self as page, Section}; use cosmic_settings_page::{self as page, Section};
use slab::Slab;
use std::{collections::HashMap, time::Duration}; use std::{collections::HashMap, time::Duration};
use crate::pages::desktop::appearance::Roundness; use crate::pages::desktop::appearance::Roundness;
@ -102,11 +101,11 @@ pub(crate) fn behavior_and_position<
p: &P, p: &P,
msg_map: T, msg_map: T,
) -> Section<crate::pages::Message> { ) -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
autohide_label = p.autohide_label();
let autohide_label = descriptions.insert(p.autohide_label()); position = fl!("panel-behavior-and-position", "position");
let position = descriptions.insert(fl!("panel-behavior-and-position", "position")); display = fl!("panel-behavior-and-position", "display");
let display = descriptions.insert(fl!("panel-behavior-and-position", "display")); });
Section::default() Section::default()
.title(fl!("panel-behavior-and-position")) .title(fl!("panel-behavior-and-position"))
@ -161,13 +160,13 @@ pub(crate) fn style<
p: &P, p: &P,
msg_map: T, msg_map: T,
) -> Section<crate::pages::Message> { ) -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
gap_label = p.gap_label();
let gap_label = descriptions.insert(p.gap_label()); extend_label = p.extend_label();
let extend_label = descriptions.insert(p.extend_label()); appearance = fl!("panel-style", "appearance");
let appearance = descriptions.insert(fl!("panel-style", "appearance")); background_opacity = fl!("panel-style", "background-opacity");
let background_opacity = descriptions.insert(fl!("panel-style", "background-opacity")); size = fl!("panel-style", "size");
let size = descriptions.insert(fl!("panel-style", "size")); });
Section::default() Section::default()
.title(fl!("panel-style")) .title(fl!("panel-style"))
@ -270,9 +269,9 @@ pub(crate) fn style<
pub(crate) fn configuration<P: page::Page<crate::pages::Message> + PanelPage>( pub(crate) fn configuration<P: page::Page<crate::pages::Message> + PanelPage>(
p: &P, p: &P,
) -> Section<crate::pages::Message> { ) -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
applets_label = p.configure_applets_label();
let applets_label = descriptions.insert(p.configure_applets_label()); });
Section::default() Section::default()
.title(fl!("panel-applets")) .title(fl!("panel-applets"))
@ -315,9 +314,9 @@ pub(crate) fn add_panel<
>( >(
msg_map: T, msg_map: T,
) -> Section<crate::pages::Message> { ) -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
reset_to_default = fl!("reset-to-default");
let reset_to_default = descriptions.insert(fl!("reset-to-default")); });
Section::default() Section::default()
.title(fl!("panel-missing")) .title(fl!("panel-missing"))
@ -338,9 +337,9 @@ pub fn reset_button<
>( >(
msg_map: T, msg_map: T,
) -> Section<crate::pages::Message> { ) -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
reset_to_default = fl!("reset-to-default");
let reset_to_default = descriptions.insert(fl!("reset-to-default")); });
Section::default() Section::default()
.descriptions(descriptions) .descriptions(descriptions)

View file

@ -38,7 +38,6 @@ use cosmic_settings_page::{self as page, section};
use cosmic_settings_wallpaper::{self as wallpaper, Entry, ScalingMode}; use cosmic_settings_wallpaper::{self as wallpaper, Entry, ScalingMode};
use image::imageops::FilterType::Lanczos3; use image::imageops::FilterType::Lanczos3;
use image::{ImageBuffer, Rgba}; use image::{ImageBuffer, Rgba};
use slab::Slab;
use slotmap::{DefaultKey, Key, SecondaryMap, SlotMap}; use slotmap::{DefaultKey, Key, SecondaryMap, SlotMap};
use crate::subscription::WallpaperEvent; use crate::subscription::WallpaperEvent;
@ -1189,12 +1188,12 @@ impl Context {
#[allow(clippy::too_many_lines)] #[allow(clippy::too_many_lines)]
pub fn settings() -> Section<crate::pages::Message> { pub fn settings() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
same_label = fl!("wallpaper", "same");
let same_label = descriptions.insert(fl!("wallpaper", "same")); fit_label = fl!("wallpaper", "fit");
let fit_label = descriptions.insert(fl!("wallpaper", "fit")); slide_label = fl!("wallpaper", "slide");
let slide_label = descriptions.insert(fl!("wallpaper", "slide")); change_label = fl!("wallpaper", "change");
let change_label = descriptions.insert(fl!("wallpaper", "change")); });
Section::default() Section::default()
.descriptions(descriptions) .descriptions(descriptions)

View file

@ -13,7 +13,6 @@ use cosmic_config::{ConfigGet, ConfigSet};
use cosmic_settings_config::{Action, Binding, Shortcuts, shortcuts}; use cosmic_settings_config::{Action, Binding, Shortcuts, shortcuts};
use cosmic_settings_page::Section; use cosmic_settings_page::Section;
use cosmic_settings_page::{self as page, section}; use cosmic_settings_page::{self as page, section};
use slab::Slab;
use slotmap::SlotMap; use slotmap::SlotMap;
use tracing::error; use tracing::error;
@ -229,15 +228,14 @@ impl page::Page<crate::pages::Message> for Page {
impl page::AutoBind<crate::pages::Message> for Page {} impl page::AutoBind<crate::pages::Message> for Page {}
pub fn window_management() -> Section<crate::pages::Message> { pub fn window_management() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
super_key = fl!("super-key");
let super_key = descriptions.insert(fl!("super-key")); _launcher = fl!("super-key", "launcher");
let _launcher = descriptions.insert(fl!("super-key", "launcher")); _workspaces = fl!("super-key", "workspaces");
let _workspaces = descriptions.insert(fl!("super-key", "workspaces")); _applications = fl!("super-key", "applications");
let _applications = descriptions.insert(fl!("super-key", "applications")); _disable = fl!("super-key", "disable");
let _disable = descriptions.insert(fl!("super-key", "disable")); edge_gravity = fl!("edge-gravity");
});
let edge_gravity = descriptions.insert(fl!("edge-gravity"));
Section::default() Section::default()
.descriptions(descriptions) .descriptions(descriptions)
@ -272,11 +270,11 @@ pub fn window_management() -> Section<crate::pages::Message> {
} }
pub fn window_controls() -> Section<crate::pages::Message> { pub fn window_controls() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
maximize = fl!("window-controls", "maximize");
let maximize = descriptions.insert(fl!("window-controls", "maximize")); minimize = fl!("window-controls", "minimize");
let minimize = descriptions.insert(fl!("window-controls", "minimize")); active_window_hint = fl!("window-controls", "active-window-hint");
let active_window_hint = descriptions.insert(fl!("window-controls", "active-window-hint")); });
Section::default() Section::default()
.title(fl!("window-controls")) .title(fl!("window-controls"))
@ -304,12 +302,11 @@ pub fn window_controls() -> Section<crate::pages::Message> {
} }
pub fn focus_navigation() -> Section<crate::pages::Message> { pub fn focus_navigation() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
focus_follows_cursor = fl!("focus-navigation", "focus-follows-cursor");
let focus_follows_cursor = descriptions.insert(fl!("focus-navigation", "focus-follows-cursor")); focus_follows_cursor_delay = fl!("focus-navigation", "focus-follows-cursor-delay");
let focus_follows_cursor_delay = cursor_follows_focus = fl!("focus-navigation", "cursor-follows-focus");
descriptions.insert(fl!("focus-navigation", "focus-follows-cursor-delay")); });
let cursor_follows_focus = descriptions.insert(fl!("focus-navigation", "cursor-follows-focus"));
Section::default() Section::default()
.title(fl!("focus-navigation")) .title(fl!("focus-navigation"))

View file

@ -13,7 +13,6 @@ use cosmic::{
use cosmic_comp_config::workspace::{Action, WorkspaceConfig, WorkspaceLayout, WorkspaceMode}; use cosmic_comp_config::workspace::{Action, WorkspaceConfig, WorkspaceLayout, WorkspaceMode};
use cosmic_settings_page::Section; use cosmic_settings_page::Section;
use cosmic_settings_page::{self as page, section}; use cosmic_settings_page::{self as page, section};
use slab::Slab;
use slotmap::SlotMap; use slotmap::SlotMap;
use tracing::error; use tracing::error;
@ -164,9 +163,9 @@ fn into_action(value: usize) -> Action {
} }
pub fn action_on_typing() -> Section<crate::pages::Message> { pub fn action_on_typing() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
action_on_typing = fl!("workspaces-overview", "action-on-typing");
let action_on_typing = descriptions.insert(fl!("workspaces-overview", "action-on-typing")); });
Section::default() Section::default()
.title(fl!("workspaces-overview")) .title(fl!("workspaces-overview"))
@ -198,10 +197,10 @@ pub fn action_on_typing() -> Section<crate::pages::Message> {
} }
fn multi_behavior() -> Section<crate::pages::Message> { fn multi_behavior() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
span = fl!("workspaces-multi-behavior", "span");
let span = descriptions.insert(fl!("workspaces-multi-behavior", "span")); separate = fl!("workspaces-multi-behavior", "separate");
let separate = descriptions.insert(fl!("workspaces-multi-behavior", "separate")); });
Section::default() Section::default()
.title(fl!("workspaces-multi-behavior")) .title(fl!("workspaces-multi-behavior"))
@ -236,10 +235,10 @@ fn multi_behavior() -> Section<crate::pages::Message> {
} }
fn workspace_orientation() -> Section<crate::pages::Message> { fn workspace_orientation() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
vertical = fl!("workspaces-orientation", "vertical");
let vertical = descriptions.insert(fl!("workspaces-orientation", "vertical")); horizontal = fl!("workspaces-orientation", "horizontal");
let horizontal = descriptions.insert(fl!("workspaces-orientation", "horizontal")); });
Section::default() Section::default()
.title(fl!("workspaces-orientation")) .title(fl!("workspaces-orientation"))

View file

@ -18,7 +18,6 @@ use cosmic_randr_shell::{
use cosmic_settings_page::{self as page, Section, section}; use cosmic_settings_page::{self as page, Section, section};
use futures::SinkExt; use futures::SinkExt;
use indexmap::Equivalent; use indexmap::Equivalent;
use slab::Slab;
use slotmap::{Key, SecondaryMap, SlotMap}; use slotmap::{Key, SecondaryMap, SlotMap};
use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::{Arc, LazyLock}; use std::sync::{Arc, LazyLock};
@ -1183,10 +1182,10 @@ impl Page {
/// View for the display arrangement section. /// View for the display arrangement section.
pub fn display_arrangement() -> Section<crate::pages::Message> { pub fn display_arrangement() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
_display_arrangement = fl!("display", "arrangement");
_ = descriptions.insert(fl!("display", "arrangement")); display_arrangement_desc = fl!("display", "arrangement-desc");
let display_arrangement_desc = descriptions.insert(fl!("display", "arrangement-desc")); });
Section::default() Section::default()
.title(fl!("display", "arrangement")) .title(fl!("display", "arrangement"))
@ -1227,18 +1226,18 @@ pub fn display_arrangement() -> Section<crate::pages::Message> {
/// View for the display configuration section. /// View for the display configuration section.
pub fn display_configuration() -> Section<crate::pages::Message> { pub fn display_configuration() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
_display = fl!("display");
let _display = descriptions.insert(fl!("display")); refresh_rate = fl!("display", "refresh-rate");
let refresh_rate = descriptions.insert(fl!("display", "refresh-rate")); vrr = fl!("vrr");
let vrr = descriptions.insert(fl!("vrr")); resolution = fl!("display", "resolution");
let resolution = descriptions.insert(fl!("display", "resolution")); scale = fl!("display", "scale");
let scale = descriptions.insert(fl!("display", "scale")); additional_scale_options = fl!("display", "additional-scale-options");
let additional_scale_options = descriptions.insert(fl!("display", "additional-scale-options")); orientation = fl!("orientation");
let orientation = descriptions.insert(fl!("orientation")); enable_label = fl!("display", "enable");
let enable_label = descriptions.insert(fl!("display", "enable")); options_label = fl!("display", "options");
let options_label = descriptions.insert(fl!("display", "options")); mirroring_label = fl!("mirroring");
let mirroring_label = descriptions.insert(fl!("mirroring")); });
Section::default() Section::default()
.descriptions(descriptions) .descriptions(descriptions)

View file

@ -16,7 +16,6 @@ use cosmic::{
use cosmic_comp_config::{KeyboardConfig, NumlockState, XkbConfig}; use cosmic_comp_config::{KeyboardConfig, NumlockState, XkbConfig};
use cosmic_settings_page::{self as page, Section, section}; use cosmic_settings_page::{self as page, Section, section};
use itertools::Itertools; use itertools::Itertools;
use slab::Slab;
use slotmap::{DefaultKey, Key, SlotMap}; use slotmap::{DefaultKey, Key, SlotMap};
static COMPOSE_OPTIONS: &[(&str, &str)] = &[ static COMPOSE_OPTIONS: &[(&str, &str)] = &[
@ -727,11 +726,11 @@ fn input_sources() -> Section<crate::pages::Message> {
} }
fn special_character_entry() -> Section<crate::pages::Message> { fn special_character_entry() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
alternate = fl!("keyboard-special-char", "alternate");
let alternate = descriptions.insert(fl!("keyboard-special-char", "alternate")); compose = fl!("keyboard-special-char", "compose");
let compose = descriptions.insert(fl!("keyboard-special-char", "compose")); caps = fl!("keyboard-special-char", "caps");
let caps = descriptions.insert(fl!("keyboard-special-char", "caps")); });
Section::default() Section::default()
.title(fl!("keyboard-special-char")) .title(fl!("keyboard-special-char"))
@ -759,9 +758,9 @@ fn special_character_entry() -> Section<crate::pages::Message> {
} }
fn keyboard_shortcuts() -> Section<crate::pages::Message> { fn keyboard_shortcuts() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
shortcuts_desc = fl!("keyboard-shortcuts", "desc");
let shortcuts_desc = descriptions.insert(fl!("keyboard-shortcuts", "desc")); });
Section::default() Section::default()
.title(fl!("keyboard-shortcuts")) .title(fl!("keyboard-shortcuts"))
@ -785,14 +784,14 @@ fn keyboard_shortcuts() -> Section<crate::pages::Message> {
} }
fn keyboard_typing_assist() -> Section<crate::pages::Message> { fn keyboard_typing_assist() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
repeat_delay = fl!("keyboard-typing-assist", "repeat-delay");
let repeat_delay = descriptions.insert(fl!("keyboard-typing-assist", "repeat-delay")); repeat_rate = fl!("keyboard-typing-assist", "repeat-rate");
let repeat_rate = descriptions.insert(fl!("keyboard-typing-assist", "repeat-rate")); short = fl!("short");
let short = descriptions.insert(fl!("short")); long = fl!("long");
let long = descriptions.insert(fl!("long")); slow = fl!("slow");
let slow = descriptions.insert(fl!("slow")); fast = fl!("fast");
let fast = descriptions.insert(fl!("fast")); });
Section::default() Section::default()
.title(fl!("keyboard-typing-assist")) .title(fl!("keyboard-typing-assist"))
@ -848,9 +847,9 @@ fn keyboard_typing_assist() -> Section<crate::pages::Message> {
} }
fn keyboard_num_lock() -> Section<crate::pages::Message> { fn keyboard_num_lock() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
boot_state = fl!("keyboard-numlock-boot", "boot-state");
let boot_state = descriptions.insert(fl!("keyboard-numlock-boot", "boot-state")); });
Section::default() Section::default()
.title(fl!("keyboard-numlock-boot")) .title(fl!("keyboard-numlock-boot"))

View file

@ -17,10 +17,13 @@ impl Default for Page {
fn default() -> Self { fn default() -> Self {
Self { Self {
model: super::Model::default().actions(|defaults, keybindings| { model: super::Model::default().actions(|defaults, keybindings| {
actions().iter().fold(Slab::new(), |mut slab, action| { actions().iter().cloned().fold(
slab.insert(ShortcutModel::new(defaults, keybindings, action.clone())); Slab::with_capacity(actions().len()),
slab |mut slab, action| {
}) slab.insert(ShortcutModel::new(defaults, keybindings, action));
slab
},
)
}), }),
} }
} }
@ -101,7 +104,7 @@ pub const fn actions() -> &'static [Action] {
} }
fn shortcuts() -> Section<crate::pages::Message> { fn shortcuts() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); let mut descriptions = Slab::with_capacity(actions().len());
// Make these searchable in the global settings search. // Make these searchable in the global settings search.
for action in actions() { for action in actions() {

View file

@ -102,7 +102,7 @@ pub const fn actions() -> &'static [Action] {
] ]
} }
fn shortcuts() -> Section<crate::pages::Message> { fn shortcuts() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); let mut descriptions = Slab::with_capacity(actions().len());
// Make these searchable in the global settings search. // Make these searchable in the global settings search.
for action in actions() { for action in actions() {

View file

@ -405,28 +405,31 @@ impl Search {
self.localized[*id].to_lowercase().contains(&input) self.localized[*id].to_lowercase().contains(&input)
|| shortcut_search_actions.contains(action) || shortcut_search_actions.contains(action)
}) })
.fold(Slab::new(), |mut slab, (_, action)| { .fold(
slab.insert(ShortcutModel::new( Slab::with_capacity(self.actions.len()),
&self.defaults, |mut slab, (_, action)| {
&self.shortcuts, slab.insert(ShortcutModel::new(
action.clone(), &self.defaults,
)); &self.shortcuts,
action.clone(),
));
slab slab
}) },
)
} }
} }
fn shortcuts() -> Section<crate::pages::Message> { fn shortcuts() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
accessibility = fl!("accessibility");
let accessibility = descriptions.insert(fl!("accessibility")); custom_label = fl!("custom");
let custom_label = descriptions.insert(fl!("custom")); manage_window_label = fl!("manage-windows");
let manage_window_label = descriptions.insert(fl!("manage-windows")); move_window_label = fl!("move-windows");
let move_window_label = descriptions.insert(fl!("move-windows")); nav_label = fl!("nav-shortcuts");
let nav_label = descriptions.insert(fl!("nav-shortcuts")); system_label = fl!("system-shortcut");
let system_label = descriptions.insert(fl!("system-shortcut")); window_tiling_label = fl!("window-tiling");
let window_tiling_label = descriptions.insert(fl!("window-tiling")); });
Section::default() Section::default()
.descriptions(descriptions) .descriptions(descriptions)

View file

@ -16,10 +16,13 @@ impl Default for Page {
fn default() -> Self { fn default() -> Self {
Self { Self {
model: super::Model::default().actions(|defaults, keybindings| { model: super::Model::default().actions(|defaults, keybindings| {
actions().iter().fold(Slab::new(), |mut slab, action| { actions().iter().cloned().fold(
slab.insert(ShortcutModel::new(defaults, keybindings, action.clone())); Slab::with_capacity(actions().len()),
slab |mut slab, action| {
}) slab.insert(ShortcutModel::new(defaults, keybindings, action));
slab
},
)
}), }),
} }
} }
@ -116,7 +119,7 @@ pub const fn actions() -> &'static [Action] {
} }
fn shortcuts() -> Section<crate::pages::Message> { fn shortcuts() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); let mut descriptions = Slab::with_capacity(actions().len());
// Make these searchable in the global settings search. // Make these searchable in the global settings search.
for action in actions() { for action in actions() {

View file

@ -17,10 +17,13 @@ impl Default for Page {
fn default() -> Self { fn default() -> Self {
Self { Self {
model: super::Model::default().actions(|defaults, keybindings| { model: super::Model::default().actions(|defaults, keybindings| {
actions().iter().fold(Slab::new(), |mut slab, action| { actions().iter().cloned().fold(
slab.insert(ShortcutModel::new(defaults, keybindings, action.clone())); Slab::with_capacity(actions().len()),
slab |mut slab, action| {
}) slab.insert(ShortcutModel::new(defaults, keybindings, action));
slab
},
)
}), }),
} }
} }
@ -119,7 +122,7 @@ pub const fn actions() -> &'static [Action] {
} }
fn shortcuts() -> Section<crate::pages::Message> { fn shortcuts() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); let mut descriptions = Slab::with_capacity(actions().len());
// Make these searchable in the global settings search. // Make these searchable in the global settings search.
for action in actions() { for action in actions() {

View file

@ -16,10 +16,13 @@ impl Default for Page {
fn default() -> Self { fn default() -> Self {
Self { Self {
model: super::Model::default().actions(|defaults, keybindings| { model: super::Model::default().actions(|defaults, keybindings| {
actions().iter().fold(Slab::new(), |mut slab, action| { actions().iter().cloned().fold(
slab.insert(ShortcutModel::new(defaults, keybindings, action.clone())); Slab::with_capacity(actions().len()),
slab |mut slab, action| {
}) slab.insert(ShortcutModel::new(defaults, keybindings, action));
slab
},
)
}), }),
} }
} }
@ -122,7 +125,7 @@ pub const fn actions() -> &'static [Action] {
} }
fn shortcuts() -> Section<crate::pages::Message> { fn shortcuts() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); let mut descriptions = Slab::with_capacity(actions().len());
// Make these searchable in the global settings search. // Make these searchable in the global settings search.
for action in actions() { for action in actions() {

View file

@ -16,10 +16,13 @@ impl Default for Page {
fn default() -> Self { fn default() -> Self {
Self { Self {
model: super::Model::default().actions(|defaults, keybindings| { model: super::Model::default().actions(|defaults, keybindings| {
actions().iter().fold(Slab::new(), |mut slab, action| { actions().iter().cloned().fold(
slab.insert(ShortcutModel::new(defaults, keybindings, action.clone())); Slab::with_capacity(actions().len()),
slab |mut slab, action| {
}) slab.insert(ShortcutModel::new(defaults, keybindings, action));
slab
},
)
}), }),
} }
} }
@ -103,7 +106,7 @@ pub fn actions() -> &'static [Action] {
} }
fn shortcuts() -> Section<crate::pages::Message> { fn shortcuts() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); let mut descriptions = Slab::with_capacity(actions().len());
// Make these searchable in the global settings search. // Make these searchable in the global settings search.
for action in actions() { for action in actions() {

View file

@ -7,7 +7,6 @@ use cosmic::{Apply, Element};
use cosmic_comp_config::input::AccelProfile; use cosmic_comp_config::input::AccelProfile;
use cosmic_settings_page::Section; use cosmic_settings_page::Section;
use cosmic_settings_page::{self as page, section}; use cosmic_settings_page::{self as page, section};
use slab::Slab;
use slotmap::SlotMap; use slotmap::SlotMap;
use super::Message; use super::Message;
@ -48,12 +47,12 @@ 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 mouse() -> Section<crate::pages::Message> { fn mouse() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
mouse_acceleration = fl!("mouse", "acceleration");
let mouse_acceleration = descriptions.insert(fl!("mouse", "acceleration")); mouse_speed = fl!("mouse", "speed");
let mouse_speed = descriptions.insert(fl!("mouse", "speed")); primary_button = fl!("primary-button");
let primary_button = descriptions.insert(fl!("primary-button")); acceleration_desc = fl!("acceleration-desc");
let acceleration_desc = descriptions.insert(fl!("acceleration-desc")); });
Section::default() Section::default()
.descriptions(descriptions) .descriptions(descriptions)
@ -116,11 +115,11 @@ fn mouse() -> Section<crate::pages::Message> {
} }
fn scrolling() -> Section<crate::pages::Message> { fn scrolling() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
natural = fl!("scrolling", "natural");
let natural = descriptions.insert(fl!("scrolling", "natural")); natural_desc = fl!("scrolling", "natural-desc");
let natural_desc = descriptions.insert(fl!("scrolling", "natural-desc")); scroll_speed = fl!("scrolling", "speed");
let scroll_speed = descriptions.insert(fl!("scrolling", "speed")); });
Section::default() Section::default()
.title(fl!("scrolling")) .title(fl!("scrolling"))

View file

@ -10,7 +10,6 @@ use cosmic_comp_config::input::{AccelProfile, ClickMethod, ScrollMethod};
use cosmic_comp_config::workspace::{WorkspaceConfig, WorkspaceLayout}; use cosmic_comp_config::workspace::{WorkspaceConfig, WorkspaceLayout};
use cosmic_settings_page::Section; use cosmic_settings_page::Section;
use cosmic_settings_page::{self as page, section}; use cosmic_settings_page::{self as page, section};
use slab::Slab;
use slotmap::SlotMap; use slotmap::SlotMap;
use tracing::error; use tracing::error;
@ -59,14 +58,14 @@ 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 touchpad() -> Section<crate::pages::Message> { fn touchpad() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
primary_button = fl!("primary-button");
let primary_button = descriptions.insert(fl!("primary-button")); primary_button_desc = fl!("primary-button", "desc");
let primary_button_desc = descriptions.insert(fl!("primary-button", "desc")); touchpad_speed = fl!("touchpad", "speed");
let touchpad_speed = descriptions.insert(fl!("touchpad", "speed")); acceleration = fl!("touchpad", "acceleration");
let acceleration = descriptions.insert(fl!("touchpad", "acceleration")); acceleration_desc = fl!("acceleration-desc");
let acceleration_desc = descriptions.insert(fl!("acceleration-desc")); disable_while_typing = fl!("disable-while-typing");
let disable_while_typing = descriptions.insert(fl!("disable-while-typing")); });
Section::default() Section::default()
.descriptions(descriptions) .descriptions(descriptions)
@ -148,12 +147,12 @@ fn touchpad() -> Section<crate::pages::Message> {
} }
fn click_behavior() -> Section<crate::pages::Message> { fn click_behavior() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
click_finger = fl!("click-behavior", "click-finger");
let click_finger = descriptions.insert(fl!("click-behavior", "click-finger")); button_areas = fl!("click-behavior", "button-areas");
let button_areas = descriptions.insert(fl!("click-behavior", "button-areas")); tap_to_click = fl!("tap-to-click");
let tap_to_click = descriptions.insert(fl!("tap-to-click")); _tap_to_click_desc = fl!("tap-to-click", "desc");
let _tap_to_click_desc = descriptions.insert(fl!("tap-to-click", "desc")); });
Section::default() Section::default()
.title(fl!("click-behavior")) .title(fl!("click-behavior"))
@ -203,13 +202,13 @@ fn click_behavior() -> Section<crate::pages::Message> {
} }
fn scrolling() -> Section<crate::pages::Message> { fn scrolling() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
edge = fl!("scrolling", "edge");
let edge = descriptions.insert(fl!("scrolling", "edge")); natural = fl!("scrolling", "natural");
let natural = descriptions.insert(fl!("scrolling", "natural")); natural_desc = fl!("scrolling", "natural-desc");
let natural_desc = descriptions.insert(fl!("scrolling", "natural-desc")); scroll_speed = fl!("scrolling", "speed");
let scroll_speed = descriptions.insert(fl!("scrolling", "speed")); two_finger = fl!("scrolling", "two-finger");
let two_finger = descriptions.insert(fl!("scrolling", "two-finger")); });
Section::default() Section::default()
.title(fl!("scrolling")) .title(fl!("scrolling"))
@ -298,7 +297,11 @@ fn scrolling() -> Section<crate::pages::Message> {
} }
fn gestures() -> Section<crate::pages::Message> { fn gestures() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
switch_workspaces = fl!("switch-workspaces");
switch_workspaces_horizontal = fl!("switch-workspaces", "horizontal");
switch_workspaces_vertical = fl!("switch-workspaces", "vertical");
});
// let four_finger_down = descriptions.insert(fl!("gestures", "four-finger-down")); // let four_finger_down = descriptions.insert(fl!("gestures", "four-finger-down"));
// let four_finger_left = descriptions.insert(fl!("gestures", "four-finger-left")); // let four_finger_left = descriptions.insert(fl!("gestures", "four-finger-left"));
@ -310,10 +313,6 @@ fn gestures() -> Section<crate::pages::Message> {
// let open_workspaces_view = descriptions.insert(fl!("open-workspaces-view")); // let open_workspaces_view = descriptions.insert(fl!("open-workspaces-view"));
// let switch_between_windows = descriptions.insert(fl!("switch-between-windows")); // let switch_between_windows = descriptions.insert(fl!("switch-between-windows"));
let switch_workspaces = descriptions.insert(fl!("switch-workspaces"));
let switch_workspaces_horizontal = descriptions.insert(fl!("switch-workspaces", "horizontal"));
let switch_workspaces_vertical = descriptions.insert(fl!("switch-workspaces", "vertical"));
Section::default() Section::default()
.title(fl!("gestures")) .title(fl!("gestures"))
.descriptions(descriptions) .descriptions(descriptions)

View file

@ -490,9 +490,9 @@ fn connected_devices() -> Section<crate::pages::Message> {
} }
fn profiles() -> Section<crate::pages::Message> { fn profiles() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
_power_desc = fl!("xdg-entry-power-comment");
let _power_desc = descriptions.insert(fl!("xdg-entry-power-comment")); });
Section::default() Section::default()
.title(fl!("power-mode")) .title(fl!("power-mode"))

View file

@ -12,7 +12,6 @@ use cosmic::{
use cosmic_config::{Config, ConfigGet, ConfigSet}; use cosmic_config::{Config, ConfigGet, ConfigSet};
use cosmic_settings_page::{self as page, Section, section}; use cosmic_settings_page::{self as page, Section, section};
use cosmic_settings_sound_subscription as subscription; use cosmic_settings_sound_subscription as subscription;
use slab::Slab;
use slotmap::SlotMap; use slotmap::SlotMap;
const AUDIO_CONFIG: &str = "com.system76.CosmicAudio"; const AUDIO_CONFIG: &str = "com.system76.CosmicAudio";
@ -251,13 +250,13 @@ impl Page {
} }
fn input() -> Section<crate::pages::Message> { fn input() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
volume = fl!("sound-input", "volume");
let volume = descriptions.insert(fl!("sound-input", "volume")); device = fl!("sound-input", "device");
let device = descriptions.insert(fl!("sound-input", "device")); _level = fl!("sound-input", "level");
let _level = descriptions.insert(fl!("sound-input", "level")); amplification = fl!("amplification");
let amplification = descriptions.insert(fl!("amplification")); amplification_desc = fl!("amplification", "desc");
let amplification_desc = descriptions.insert(fl!("amplification", "desc")); });
Section::default() Section::default()
.title(fl!("sound-input")) .title(fl!("sound-input"))
@ -328,17 +327,16 @@ fn input() -> Section<crate::pages::Message> {
} }
fn output() -> Section<crate::pages::Message> { fn output() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
volume = fl!("sound-output", "volume");
let volume = descriptions.insert(fl!("sound-output", "volume")); device = fl!("sound-output", "device");
let device = descriptions.insert(fl!("sound-output", "device")); _level = fl!("sound-output", "level");
let _level = descriptions.insert(fl!("sound-output", "level")); balance = fl!("sound-output", "balance");
let balance = descriptions.insert(fl!("sound-output", "balance")); left = fl!("sound-output", "left");
let left = descriptions.insert(fl!("sound-output", "left")); right = fl!("sound-output", "right");
let right = descriptions.insert(fl!("sound-output", "right")); amplification = fl!("amplification");
// let balance = descriptions.insert(fl!("sound-output", "balance")); amplification_desc = fl!("amplification", "desc");
let amplification = descriptions.insert(fl!("amplification")); });
let amplification_desc = descriptions.insert(fl!("amplification", "desc"));
Section::default() Section::default()
.title(fl!("sound-output")) .title(fl!("sound-output"))

View file

@ -6,7 +6,6 @@ use cosmic_settings_page::{self as page, Section, section};
use super::info::Info; use super::info::Info;
use cosmic::widget::{editable_input, list_column, settings, text}; use cosmic::widget::{editable_input, list_column, settings, text};
use cosmic::{Apply, Task}; use cosmic::{Apply, Task};
use slab::Slab;
use slotmap::SlotMap; use slotmap::SlotMap;
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
@ -162,10 +161,10 @@ async fn set_hostname_impl(hostname: &str) -> Result<(), String> {
} }
fn device() -> Section<crate::pages::Message> { fn device() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
device = fl!("about-device");
let device = descriptions.insert(fl!("about-device")); device_desc = fl!("about-device", "desc");
let device_desc = descriptions.insert(fl!("about-device", "desc")); });
Section::default() Section::default()
.descriptions(descriptions) .descriptions(descriptions)
@ -195,13 +194,13 @@ fn device() -> Section<crate::pages::Message> {
} }
fn hardware() -> Section<crate::pages::Message> { fn hardware() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
model = fl!("about-hardware", "model");
let model = descriptions.insert(fl!("about-hardware", "model")); memory = fl!("about-hardware", "memory");
let memory = descriptions.insert(fl!("about-hardware", "memory")); processor = fl!("about-hardware", "processor");
let processor = descriptions.insert(fl!("about-hardware", "processor")); graphics = fl!("about-hardware", "graphics");
let graphics = descriptions.insert(fl!("about-hardware", "graphics")); disk_capacity = fl!("about-hardware", "disk-capacity");
let disk_capacity = descriptions.insert(fl!("about-hardware", "disk-capacity")); });
Section::default() Section::default()
.title(fl!("about-hardware")) .title(fl!("about-hardware"))
@ -241,13 +240,13 @@ fn hardware() -> Section<crate::pages::Message> {
} }
fn os() -> Section<crate::pages::Message> { fn os() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
os = fl!("about-os", "os");
let os = descriptions.insert(fl!("about-os", "os")); os_arch = fl!("about-os", "os-architecture");
let os_arch = descriptions.insert(fl!("about-os", "os-architecture")); kernel = fl!("about-os", "kernel");
let kernel = descriptions.insert(fl!("about-os", "kernel")); desktop = fl!("about-os", "desktop-environment");
let desktop = descriptions.insert(fl!("about-os", "desktop-environment")); windowing_system = fl!("about-os", "windowing-system");
let windowing_system = descriptions.insert(fl!("about-os", "windowing-system")); });
Section::default() Section::default()
.title(fl!("about-os")) .title(fl!("about-os"))

View file

@ -14,7 +14,6 @@ use cosmic_settings_page::{self as page, Section, section};
use image::GenericImageView; use image::GenericImageView;
use pwhash::{bcrypt, md5_crypt, sha256_crypt, sha512_crypt}; use pwhash::{bcrypt, md5_crypt, sha256_crypt, sha512_crypt};
use regex::Regex; use regex::Regex;
use slab::Slab;
use slotmap::SlotMap; use slotmap::SlotMap;
use std::{ use std::{
collections::HashMap, collections::HashMap,
@ -777,10 +776,10 @@ impl Page {
impl page::AutoBind<crate::pages::Message> for Page {} impl page::AutoBind<crate::pages::Message> for Page {}
fn user_list() -> Section<crate::pages::Message> { fn user_list() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
user_type_standard = fl!("users", "standard");
let user_type_standard = descriptions.insert(fl!("users", "standard")); user_type_admin = fl!("users", "admin");
let user_type_admin = descriptions.insert(fl!("users", "admin")); });
Section::default() Section::default()
.descriptions(descriptions) .descriptions(descriptions)

View file

@ -19,7 +19,6 @@ use icu::{
}, },
locale::{Locale, preferences::extensions::unicode::keywords::HourCycle}, locale::{Locale, preferences::extensions::unicode::keywords::HourCycle},
}; };
use slab::Slab;
use slotmap::{Key, SlotMap}; use slotmap::{Key, SlotMap};
use std::rc::Rc; use std::rc::Rc;
pub use timedate_zbus::TimeDateProxy; pub use timedate_zbus::TimeDateProxy;
@ -407,9 +406,9 @@ pub enum Message {
impl page::AutoBind<crate::pages::Message> for Page {} impl page::AutoBind<crate::pages::Message> for Page {}
fn date() -> Section<crate::pages::Message> { fn date() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
title = fl!("time-date");
let title = descriptions.insert(fl!("time-date")); });
Section::default() Section::default()
.title(fl!("time-date")) .title(fl!("time-date"))
@ -428,12 +427,12 @@ fn date() -> Section<crate::pages::Message> {
} }
fn format() -> Section<crate::pages::Message> { fn format() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
military = fl!("time-format", "twenty-four");
let military = descriptions.insert(fl!("time-format", "twenty-four")); show_seconds = fl!("time-format", "show-seconds");
let show_seconds = descriptions.insert(fl!("time-format", "show-seconds")); first = fl!("time-format", "first");
let first = descriptions.insert(fl!("time-format", "first")); show_date = fl!("time-format", "show-date");
let show_date = descriptions.insert(fl!("time-format", "show-date")); });
Section::default() Section::default()
.title(fl!("time-format")) .title(fl!("time-format"))
@ -491,9 +490,9 @@ fn format() -> Section<crate::pages::Message> {
} }
fn timezone() -> Section<crate::pages::Message> { fn timezone() -> Section<crate::pages::Message> {
let mut descriptions = Slab::new(); crate::slab!(descriptions {
time_zone = fl!("time-zone");
let time_zone = descriptions.insert(fl!("time-zone")); });
Section::default() Section::default()
.title(fl!("time-zone")) .title(fl!("time-zone"))