Add preference section navigation

This commit is contained in:
Georg Bauer
2026-07-27 15:26:25 +02:00
parent c96675c462
commit c4e92f6206
4 changed files with 212 additions and 65 deletions

View File

@@ -312,13 +312,23 @@ fn update_runtime_config(runtime_config: &RwLock<Config>, config: &Config) {
}
impl App {
pub(super) fn open_preferences(&mut self) {
pub(super) fn open_preferences(&mut self) -> Task<Message> {
if let Some(id) = self.preferences_window {
return window::gain_focus(id);
}
if self.database.is_none() || self.pending_project_path.is_some() || self.choosing_folder {
return;
return Task::none();
}
self.preference_draft = PreferenceDraft::from_saved(&self.config);
self.preference_error = None;
self.preferences_open = true;
let (id, open) = window::open(window::Settings {
size: Size::new(920.0, 700.0),
min_size: Some(Size::new(720.0, 480.0)),
icon: Some(app_icon()),
..Default::default()
});
self.preferences_window = Some(id);
open.map(Message::PreferencesOpened)
}
pub(super) fn save_preferences(&mut self) {
@@ -413,7 +423,6 @@ impl App {
self._endpoint = Some(endpoint);
}
self.preference_draft = PreferenceDraft::from_saved(&self.config);
self.preferences_open = false;
self.preference_error = None;
self.error = None;
}