Collapse a project's sessions by clicking its name
This commit is contained in:
28
src/app.rs
28
src/app.rs
@@ -178,7 +178,7 @@ pub(crate) enum Message {
|
||||
ProjectNameChanged(String),
|
||||
ConfirmProject,
|
||||
CancelProject,
|
||||
SelectProject(i32),
|
||||
ToggleProject(i32),
|
||||
DeleteProject(i32),
|
||||
CreateSession(i32),
|
||||
DiscardSession(i32),
|
||||
@@ -718,20 +718,22 @@ impl App {
|
||||
self.project_name_input.clear();
|
||||
self.error = None;
|
||||
}
|
||||
Message::SelectProject(project_id) => {
|
||||
if self.generating {
|
||||
self.error =
|
||||
Some("Stop the active generation before changing sessions.".into());
|
||||
// Sidebar-only: collapsing a project leaves the open chat alone.
|
||||
Message::ToggleProject(project_id) => {
|
||||
let Some(item) = self
|
||||
.projects
|
||||
.iter_mut()
|
||||
.find(|item| item.project.id == project_id)
|
||||
else {
|
||||
return Task::none();
|
||||
};
|
||||
let collapsed = !item.project.collapsed;
|
||||
item.project.collapsed = collapsed;
|
||||
if let Some(database) = &mut self.database
|
||||
&& let Err(error) = database.set_project_collapsed(project_id, collapsed)
|
||||
{
|
||||
self.error = Some(error);
|
||||
}
|
||||
self.remember_project(project_id);
|
||||
self.selected_session = None;
|
||||
self.conversation.clear();
|
||||
self.composer.clear();
|
||||
self.context_used = 0;
|
||||
self.context_limit = self.preferences.context_tokens.max(0) as u32;
|
||||
self.tokens_per_second = None;
|
||||
self.error = None;
|
||||
}
|
||||
Message::DeleteProject(project_id) => {
|
||||
if self.generating && self.selected_project == Some(project_id) {
|
||||
|
||||
Reference in New Issue
Block a user