From a03632337a9b66fdeb0cbf6a1e776a281444a36a Mon Sep 17 00:00:00 2001 From: Timon Schelling Date: Fri, 10 Oct 2025 23:06:16 +0000 Subject: [PATCH] export persistence ideas --- editor/src/messages/frontend/utility_types.rs | 2 ++ editor/src/messages/portfolio/document/document_message.rs | 3 +++ .../messages/portfolio/document/document_message_handler.rs | 6 ++++++ editor/src/messages/portfolio/portfolio_message_handler.rs | 2 ++ 4 files changed, 13 insertions(+) diff --git a/editor/src/messages/frontend/utility_types.rs b/editor/src/messages/frontend/utility_types.rs index 89dc539c53..db4d451cbc 100644 --- a/editor/src/messages/frontend/utility_types.rs +++ b/editor/src/messages/frontend/utility_types.rs @@ -17,6 +17,8 @@ pub struct DocumentDetails { pub is_saved: bool, #[serde(rename = "isAutoSaved")] pub is_auto_saved: bool, + #[serde(rename = "exportPath")] + pub export_path: Option, } #[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Serialize, serde::Deserialize, specta::Type)] diff --git a/editor/src/messages/portfolio/document/document_message.rs b/editor/src/messages/portfolio/document/document_message.rs index deb50b6ab9..97340790bc 100644 --- a/editor/src/messages/portfolio/document/document_message.rs +++ b/editor/src/messages/portfolio/document/document_message.rs @@ -123,6 +123,9 @@ pub enum DocumentMessage { path: Option, }, MarkAsSaved, + ExportedDocument { + path: Option, + }, SelectParentLayer, SelectAllLayers, SelectedLayersLower, diff --git a/editor/src/messages/portfolio/document/document_message_handler.rs b/editor/src/messages/portfolio/document/document_message_handler.rs index ea1efc0a0c..1bcfcbbb82 100644 --- a/editor/src/messages/portfolio/document/document_message_handler.rs +++ b/editor/src/messages/portfolio/document/document_message_handler.rs @@ -118,6 +118,8 @@ pub struct DocumentMessageHandler { /// The path of the to the document file. #[serde(skip)] pub(crate) path: Option, + /// The path to which the document was most recently exported to. + pub(crate) export_path: Option, /// Path to network currently viewed in the node graph overlay. This will eventually be stored in each panel, so that multiple panels can refer to different networks #[serde(skip)] breadcrumb_network_path: Vec, @@ -1068,6 +1070,10 @@ impl MessageHandler> for DocumentMes self.set_save_state(true); responses.add(PortfolioMessage::UpdateOpenDocumentsList); } + DocumentMessage::ExportedDocument { path } => { + self.export_path = path; + responses.add(PortfolioMessage::AutoSaveActiveDocument); + } DocumentMessage::SelectParentLayer => { let selected_nodes = self.network_interface.selected_nodes(); let selected_layers = selected_nodes.selected_layers(self.metadata()); diff --git a/editor/src/messages/portfolio/portfolio_message_handler.rs b/editor/src/messages/portfolio/portfolio_message_handler.rs index 7dc0334c3f..3fc966a442 100644 --- a/editor/src/messages/portfolio/portfolio_message_handler.rs +++ b/editor/src/messages/portfolio/portfolio_message_handler.rs @@ -197,6 +197,7 @@ impl MessageHandler> for Portfolio path: document.path.clone(), is_saved: document.is_saved(), is_auto_saved: document.is_auto_saved(), + export_path: None, }, }) } @@ -1057,6 +1058,7 @@ impl MessageHandler> for Portfolio path: document.path.clone(), is_saved: document.is_saved(), is_auto_saved: document.is_auto_saved(), + export_path: None, }, }) })