Add PDF state persistence
This commit is contained in:
@@ -10,7 +10,7 @@ mod global;
|
||||
mod project;
|
||||
|
||||
pub use global::GlobalConfig;
|
||||
pub use project::ProjectConfig;
|
||||
pub use project::{PdfTabEntry, PdfTabState, ProjectConfig, SessionConfig};
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
@@ -104,8 +104,8 @@ pub struct MergedConfig {
|
||||
pub appearance: AppearanceConfig,
|
||||
pub layout: LayoutConfig,
|
||||
pub keybindings: KeybindingsConfig,
|
||||
/// Reference IDs of tabs that should be restored on launch.
|
||||
pub open_tabs: Vec<String>,
|
||||
/// Tabs that should be restored on launch.
|
||||
pub open_tabs: Vec<PdfTabEntry>,
|
||||
}
|
||||
|
||||
impl MergedConfig {
|
||||
@@ -157,7 +157,7 @@ pub enum ConfigError {
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::config::project::SessionConfig;
|
||||
use crate::config::project::{PdfTabEntry, SessionConfig};
|
||||
|
||||
// ── AppearanceConfig ──────────────────────────────────────────────────────
|
||||
|
||||
@@ -273,12 +273,18 @@ mod tests {
|
||||
let global = GlobalConfig::default();
|
||||
let project = ProjectConfig {
|
||||
session: SessionConfig {
|
||||
open_tabs: vec!["tab-a".to_string(), "tab-b".to_string()],
|
||||
open_tabs: vec![
|
||||
PdfTabEntry { ref_id: "tab-a".to_string(), title: "a2024".to_string() },
|
||||
PdfTabEntry { ref_id: "tab-b".to_string(), title: "b2024".to_string() },
|
||||
],
|
||||
..Default::default()
|
||||
},
|
||||
..Default::default()
|
||||
};
|
||||
let merged = MergedConfig::merge(&global, Some(&project));
|
||||
assert_eq!(merged.open_tabs, ["tab-a", "tab-b"]);
|
||||
assert_eq!(merged.open_tabs.len(), 2);
|
||||
assert_eq!(merged.open_tabs[0].ref_id, "tab-a");
|
||||
assert_eq!(merged.open_tabs[1].ref_id, "tab-b");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user