Let the sidebar divider be dragged
This commit is contained in:
@@ -57,6 +57,7 @@ pub struct AppPreferences {
|
||||
pub sidebar_collapsed: bool,
|
||||
/// Project the app reopens on. Cleared when that project goes away.
|
||||
pub last_project_id: Option<i32>,
|
||||
pub sidebar_width: i32,
|
||||
}
|
||||
|
||||
impl Default for AppPreferences {
|
||||
@@ -101,6 +102,7 @@ impl Default for AppPreferences {
|
||||
endpoint_cors: false,
|
||||
sidebar_collapsed: false,
|
||||
last_project_id: None,
|
||||
sidebar_width: 276,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -446,6 +448,14 @@ impl Database {
|
||||
.map_err(|error| error.to_string())
|
||||
}
|
||||
|
||||
pub fn set_sidebar_width(&mut self, width: i32) -> Result<(), String> {
|
||||
diesel::update(preferences::table.find(1))
|
||||
.set(preferences::sidebar_width.eq(width))
|
||||
.execute(&mut self.connection)
|
||||
.map(|_| ())
|
||||
.map_err(|error| error.to_string())
|
||||
}
|
||||
|
||||
pub fn set_last_project(&mut self, project_id: Option<i32>) -> Result<(), String> {
|
||||
diesel::update(preferences::table.find(1))
|
||||
.set(preferences::last_project_id.eq(project_id))
|
||||
@@ -877,6 +887,7 @@ mod tests {
|
||||
|
||||
database.set_sidebar_collapsed(true).unwrap();
|
||||
database.set_last_project(Some(project.id)).unwrap();
|
||||
database.set_sidebar_width(320).unwrap();
|
||||
assert!(!loaded[0].project.collapsed);
|
||||
database.set_project_collapsed(project.id, true).unwrap();
|
||||
assert!(database.load_projects().unwrap()[0].project.collapsed);
|
||||
@@ -889,6 +900,7 @@ mod tests {
|
||||
let preferences = reopened.load_preferences().unwrap();
|
||||
assert!(preferences.sidebar_collapsed);
|
||||
assert_eq!(preferences.last_project_id, Some(project.id));
|
||||
assert_eq!(preferences.sidebar_width, 320);
|
||||
assert_eq!(preferences.selected_model, "glm-5.2");
|
||||
assert_eq!(preferences.idle_timeout_minutes, 30);
|
||||
assert_eq!(preferences.endpoint_port, 4567);
|
||||
|
||||
Reference in New Issue
Block a user