feat(locations): remember last Add-window directory

Remember manually selected Add-window folders during the current session, with a persisted Locations toggle and cross-platform path handling.\n\nRefs #23
This commit is contained in:
NimBold
2026-07-18 11:52:24 +03:30
parent c914eeb7b3
commit 160e6af945
9 changed files with 173 additions and 9 deletions
+1
View File
@@ -291,6 +291,7 @@ pub struct PersistedSettings {
pub proxy_port: u16,
pub custom_user_agent: String,
pub ask_where_to_save_each_file: bool,
pub remember_last_used_download_directory: bool,
pub prevents_sleep_while_downloading: bool,
pub media_cookie_source: MediaCookieSource,
pub site_logins: Vec<SiteLogin>,
+20
View File
@@ -451,6 +451,7 @@ fn default_settings() -> PersistedSettings {
proxy_port: 8080,
custom_user_agent: String::new(),
ask_where_to_save_each_file: false,
remember_last_used_download_directory: true,
prevents_sleep_while_downloading: true,
media_cookie_source: MediaCookieSource::default(),
site_logins: Vec::new(),
@@ -702,6 +703,25 @@ mod tests {
assert!(!default_settings().auto_add_clipboard_links);
}
#[test]
fn remembers_last_used_download_directory_by_default() {
assert!(default_settings().remember_last_used_download_directory);
}
#[test]
fn decodes_disabled_last_used_download_directory_setting() {
let stored = json!({
"state": {
"rememberLastUsedDownloadDirectory": false
},
"version": 3
});
let settings = decode_stored_settings(&Value::String(stored.to_string())).unwrap();
assert!(!settings.remember_last_used_download_directory);
}
#[test]
fn ignores_legacy_extension_pairing_token_field() {
// Older standard installs persisted `extensionPairingToken` as