Mark new documents as saved (#3165)

* clean up new document message handling

* Mark new documents as saved
This commit is contained in:
Timon 2025-09-11 10:58:38 -07:00 committed by Keavon Chambers
parent 5836416632
commit 2483832227
4 changed files with 13 additions and 8 deletions

View file

@ -45,6 +45,8 @@ impl<'a> MessageHandler<NewDocumentDialogMessage, NewDocumentDialogMessageContex
messages: vec![DocumentMessage::ZoomCanvasToFitAll.into(), DocumentMessage::DeselectAllLayers.into()],
});
}
responses.add(DocumentMessage::MarkAsSaved);
}
}

View file

@ -122,6 +122,7 @@ pub enum DocumentMessage {
SavedDocument {
path: Option<PathBuf>,
},
MarkAsSaved,
SelectParentLayer,
SelectAllLayers,
SelectedLayersLower,

View file

@ -1062,6 +1062,10 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
responses.add(NodeGraphMessage::UpdateNewNodeGraph);
}
}
DocumentMessage::MarkAsSaved => {
self.set_save_state(true);
responses.add(PortfolioMessage::UpdateOpenDocumentsList);
}
DocumentMessage::SelectParentLayer => {
let selected_nodes = self.network_interface.selected_nodes();
let selected_layers = selected_nodes.selected_layers(self.metadata());

View file

@ -390,19 +390,17 @@ impl MessageHandler<PortfolioMessage, PortfolioMessageContext<'_>> for Portfolio
PortfolioMessage::NewDocumentWithName { name } => {
let mut new_document = DocumentMessageHandler::default();
new_document.name = name;
let mut new_responses = VecDeque::new();
new_responses.add(DocumentMessage::PTZUpdate);
responses.add(DocumentMessage::PTZUpdate);
let document_id = DocumentId(generate_uuid());
if self.active_document().is_some() {
new_responses.add(EventMessage::ToolAbort);
new_responses.add(NavigationMessage::CanvasPan { delta: (0., 0.).into() });
responses.add(EventMessage::ToolAbort);
responses.add(NavigationMessage::CanvasPan { delta: (0., 0.).into() });
}
self.load_document(new_document, document_id, self.layers_panel_open, &mut new_responses, false);
new_responses.add(PortfolioMessage::SelectDocument { document_id });
new_responses.extend(responses.drain(..));
*responses = new_responses;
self.load_document(new_document, document_id, self.layers_panel_open, responses, false);
responses.add(PortfolioMessage::SelectDocument { document_id });
}
PortfolioMessage::NextDocument => {
if let Some(active_document_id) = self.active_document_id {