export persistence ideas

This commit is contained in:
Timon Schelling
2025-10-10 23:06:16 +00:00
parent 3564c2a090
commit a03632337a
4 changed files with 13 additions and 0 deletions

View File

@@ -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<PathBuf>,
}
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Serialize, serde::Deserialize, specta::Type)]

View File

@@ -123,6 +123,9 @@ pub enum DocumentMessage {
path: Option<PathBuf>,
},
MarkAsSaved,
ExportedDocument {
path: Option<PathBuf>,
},
SelectParentLayer,
SelectAllLayers,
SelectedLayersLower,

View File

@@ -118,6 +118,8 @@ pub struct DocumentMessageHandler {
/// The path of the to the document file.
#[serde(skip)]
pub(crate) path: Option<PathBuf>,
/// The path to which the document was most recently exported to.
pub(crate) export_path: Option<PathBuf>,
/// 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<NodeId>,
@@ -1068,6 +1070,10 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> 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());

View File

@@ -197,6 +197,7 @@ impl MessageHandler<PortfolioMessage, PortfolioMessageContext<'_>> 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<PortfolioMessage, PortfolioMessageContext<'_>> for Portfolio
path: document.path.clone(),
is_saved: document.is_saved(),
is_auto_saved: document.is_auto_saved(),
export_path: None,
},
})
})