a lightweight, interval-based utility to combat digital strain through "Ma" (intentional pauses) for the eyes and body.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

refactor: encode theme mode index

+22 -15
+19
src/config/types.rs
··· 36 36 System, 37 37 } 38 38 39 + impl OverlayTheme { 40 + // Maps to the integer index used by the settings UI (System=0, Light=1, Dark=2). 41 + pub fn to_mode_index(&self) -> i32 { 42 + match self { 43 + OverlayTheme::System => 0, 44 + OverlayTheme::Light => 1, 45 + OverlayTheme::Dark => 2, 46 + } 47 + } 48 + 49 + pub fn from_mode_index(index: i32) -> Self { 50 + match index { 51 + 1 => OverlayTheme::Light, 52 + 2 => OverlayTheme::Dark, 53 + _ => OverlayTheme::System, 54 + } 55 + } 56 + } 57 + 39 58 #[derive(Debug, Clone, Serialize, Deserialize, Default)] 40 59 #[serde(default)] 41 60 pub struct EnforcedConfig {
+3 -15
src/settings/mod.rs
··· 126 126 let win = self.window.clone_strong(); 127 127 let system_dark3 = system_dark.clone(); 128 128 self.window.on_theme_mode_changed(move |mode| { 129 - let theme = match mode { 130 - 1 => OverlayTheme::Light, 131 - 2 => OverlayTheme::Dark, 132 - _ => OverlayTheme::System, 133 - }; 129 + let theme = OverlayTheme::from_mode_index(mode); 134 130 win.set_is_dark(config::resolve_is_dark( 135 131 &theme, 136 132 system_dark3.load(Ordering::Relaxed), ··· 237 233 cfg.appearance.sound_enabled = window.get_sound_enabled(); 238 234 cfg.appearance.sound_volume = window.get_sound_volume(); 239 235 cfg.app.autostart = window.get_autostart(); 240 - cfg.appearance.overlay_theme = match window.get_theme_mode() { 241 - 1 => OverlayTheme::Light, 242 - 2 => OverlayTheme::Dark, 243 - _ => OverlayTheme::System, 244 - }; 236 + cfg.appearance.overlay_theme = OverlayTheme::from_mode_index(window.get_theme_mode()); 245 237 cfg.appearance.text_size_mode = window.get_text_size_mode() as u32; 246 238 } 247 239 ··· 289 281 window.set_sound_enabled(cfg.appearance.sound_enabled); 290 282 window.set_sound_volume(cfg.appearance.sound_volume); 291 283 window.set_autostart(autostart::is_enabled()); 292 - window.set_theme_mode(match cfg.appearance.overlay_theme { 293 - OverlayTheme::System => 0, 294 - OverlayTheme::Light => 1, 295 - OverlayTheme::Dark => 2, 296 - }); 284 + window.set_theme_mode(cfg.appearance.overlay_theme.to_mode_index()); 297 285 window.set_text_size_mode(cfg.appearance.text_size_mode as i32); 298 286 299 287 populate_for_profile(window, levels_model, cfg, &active_name);