cadmus_core/view/settings_editor/kinds/identity.rs
1//! Single, deduplicated identity enum for all settings.
2//!
3//! This replaces the two parallel `Kind` enums that previously existed in
4//! `setting_row` and `setting_value`. It is only used to route
5//! [`SettingsEvent::UpdateValue`](crate::view::settings_editor::SettingsEvent)
6//! events to the correct view — the view layer itself contains no per-setting
7//! match arms.
8
9/// Identifies a specific setting value view for targeted updates.
10///
11/// Used in [`SettingsEvent::UpdateValue`](crate::view::settings_editor::SettingsEvent)
12/// so that [`CategoryEditor`](crate::view::settings_editor::CategoryEditor) can tell
13/// exactly which [`SettingValue`](crate::view::settings_editor::SettingValue) to
14/// refresh after a setting changes.
15#[derive(Debug, Clone, PartialEq, Eq)]
16pub enum SettingIdentity {
17 KeyboardLayout,
18 Locale,
19 AutoSuspend,
20 AutoPowerOff,
21 SleepCover,
22 AutoShare,
23 AutoTime,
24 AutoFrontlight,
25 AutoFrontlightBrightness,
26 AutoFrontlightManualCoordinates,
27 ButtonScheme,
28 LoggingEnabled,
29 FinishedAction,
30 LibraryInfo(usize),
31 LibraryName(usize),
32 LibraryPath(usize),
33 LibraryFinishedAction(usize),
34 IntermissionSuspend,
35 IntermissionPowerOff,
36 IntermissionShare,
37 SettingsRetention,
38 DbBackupRetention,
39 LogLevel,
40 ImportSyncMetadata,
41 AllowedKinds,
42 ForceFullImport,
43 #[cfg(feature = "tracing")]
44 OtlpEndpoint,
45 #[cfg(feature = "profiling")]
46 PyroscopeEndpoint,
47 #[cfg(all(feature = "test", feature = "kobo"))]
48 EnableKernLog,
49 #[cfg(all(feature = "test", feature = "kobo"))]
50 EnableDbusLog,
51 /// Identity for a monolingual dictionary row, keyed by ISO 639-1 language code.
52 DictionaryInfo(String),
53 /// Summary row in the Reader category showing "regular / inverted".
54 RefreshRate,
55 /// Global refresh rate (regular, non-inverted page turns).
56 RefreshRateRegular,
57 /// Global refresh rate (inverted page turns).
58 RefreshRateInverted,
59 /// Per-kind refresh rate row in the Reader category list.
60 RefreshRateByKind(String),
61 /// Regular refresh rate inside a per-kind editor.
62 RefreshRateByKindRegular(String),
63 /// Inverted refresh rate inside a per-kind editor.
64 RefreshRateByKindInverted(String),
65 DitheredKinds,
66 StartupMode,
67}