mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-30 07:28:12 +08:00
persist document path
This commit is contained in:
@@ -81,7 +81,7 @@ pub(super) fn intercept_frontend_message(dispatcher: &mut DesktopWrapperMessageD
|
|||||||
id: document_id,
|
id: document_id,
|
||||||
document: Document {
|
document: Document {
|
||||||
name: details.name,
|
name: details.name,
|
||||||
path: None,
|
path: details.path,
|
||||||
content: document,
|
content: document,
|
||||||
is_saved: details.is_saved,
|
is_saved: details.is_saved,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
use std::path::PathBuf;
|
||||||
|
|
||||||
use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier;
|
use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier;
|
||||||
use crate::messages::prelude::*;
|
use crate::messages::prelude::*;
|
||||||
|
|
||||||
@@ -10,6 +12,7 @@ pub struct OpenDocument {
|
|||||||
#[derive(PartialEq, Eq, Clone, Debug, serde::Serialize, serde::Deserialize, specta::Type)]
|
#[derive(PartialEq, Eq, Clone, Debug, serde::Serialize, serde::Deserialize, specta::Type)]
|
||||||
pub struct DocumentDetails {
|
pub struct DocumentDetails {
|
||||||
pub name: String,
|
pub name: String,
|
||||||
|
pub path: Option<PathBuf>,
|
||||||
#[serde(rename = "isSaved")]
|
#[serde(rename = "isSaved")]
|
||||||
pub is_saved: bool,
|
pub is_saved: bool,
|
||||||
#[serde(rename = "isAutoSaved")]
|
#[serde(rename = "isAutoSaved")]
|
||||||
|
|||||||
@@ -1047,6 +1047,8 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
|
|||||||
DocumentMessage::SavedDocument { path } => {
|
DocumentMessage::SavedDocument { path } => {
|
||||||
self.path = path;
|
self.path = path;
|
||||||
|
|
||||||
|
responses.add(PortfolioMessage::AutoSaveActiveDocument);
|
||||||
|
|
||||||
// Update the name to match the file stem
|
// Update the name to match the file stem
|
||||||
let document_name_from_path = self.path.as_ref().and_then(|path| {
|
let document_name_from_path = self.path.as_ref().and_then(|path| {
|
||||||
if path.extension().is_some_and(|e| e == FILE_EXTENSION) {
|
if path.extension().is_some_and(|e| e == FILE_EXTENSION) {
|
||||||
|
|||||||
@@ -194,6 +194,7 @@ impl MessageHandler<PortfolioMessage, PortfolioMessageContext<'_>> for Portfolio
|
|||||||
document: document.serialize_document(),
|
document: document.serialize_document(),
|
||||||
details: DocumentDetails {
|
details: DocumentDetails {
|
||||||
name: document.name.clone(),
|
name: document.name.clone(),
|
||||||
|
path: document.path.clone(),
|
||||||
is_saved: document.is_saved(),
|
is_saved: document.is_saved(),
|
||||||
is_auto_saved: document.is_auto_saved(),
|
is_auto_saved: document.is_auto_saved(),
|
||||||
},
|
},
|
||||||
@@ -1052,9 +1053,10 @@ impl MessageHandler<PortfolioMessage, PortfolioMessageContext<'_>> for Portfolio
|
|||||||
self.documents.get(id).map(|document| OpenDocument {
|
self.documents.get(id).map(|document| OpenDocument {
|
||||||
id: *id,
|
id: *id,
|
||||||
details: DocumentDetails {
|
details: DocumentDetails {
|
||||||
is_auto_saved: document.is_auto_saved(),
|
|
||||||
is_saved: document.is_saved(),
|
|
||||||
name: document.name.clone(),
|
name: document.name.clone(),
|
||||||
|
path: document.path.clone(),
|
||||||
|
is_saved: document.is_saved(),
|
||||||
|
is_auto_saved: document.is_auto_saved(),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user