Skip to main content

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}