@@ -2,6 +2,7 @@ use crate::CustomEvent;
22use crate :: WindowSize ;
33use crate :: consts:: APP_NAME ;
44use crate :: dialogs:: dialog_open_graphite_file;
5+ use crate :: dialogs:: dialog_save_file;
56use crate :: dialogs:: dialog_save_graphite_file;
67use crate :: render:: GraphicsState ;
78use crate :: render:: WgpuContext ;
@@ -83,17 +84,17 @@ impl WinitApp {
8384 }
8485
8586 for message in responses. extract_if ( .., |m| matches ! ( m, FrontendMessage :: TriggerSaveDocument { .. } ) ) {
86- let FrontendMessage :: TriggerSaveDocument { document_id, name, path, document } = message else {
87+ let FrontendMessage :: TriggerSaveDocument { document_id, name, path, content } = message else {
8788 unreachable ! ( )
8889 } ;
8990 if let Some ( path) = path {
90- let _ = std:: fs:: write ( & path, document ) ;
91+ let _ = std:: fs:: write ( & path, content ) ;
9192 } else {
9293 let event_loop_proxy = self . event_loop_proxy . clone ( ) ;
9394 let _ = thread:: spawn ( move || {
9495 let path = futures:: executor:: block_on ( dialog_save_graphite_file ( name) ) ;
9596 if let Some ( path) = path {
96- if let Err ( e) = std:: fs:: write ( & path, document ) {
97+ if let Err ( e) = std:: fs:: write ( & path, content ) {
9798 tracing:: error!( "Failed to save file: {}: {}" , path. display( ) , e) ;
9899 } else {
99100 let message = Message :: Portfolio ( PortfolioMessage :: DocumentPassMessage {
@@ -107,6 +108,18 @@ impl WinitApp {
107108 }
108109 }
109110
111+ for message in responses. extract_if ( .., |m| matches ! ( m, FrontendMessage :: TriggerSaveFile { .. } ) ) {
112+ let FrontendMessage :: TriggerSaveFile { name, content } = message else { unreachable ! ( ) } ;
113+ let _ = thread:: spawn ( move || {
114+ let path = futures:: executor:: block_on ( dialog_save_file ( name) ) ;
115+ if let Some ( path) = path {
116+ if let Err ( e) = std:: fs:: write ( & path, content) {
117+ tracing:: error!( "Failed to save file: {}: {}" , path. display( ) , e) ;
118+ }
119+ }
120+ } ) ;
121+ }
122+
110123 for message in responses. extract_if ( .., |m| matches ! ( m, FrontendMessage :: TriggerVisitLink { .. } ) ) {
111124 let _ = thread:: spawn ( move || {
112125 let FrontendMessage :: TriggerVisitLink { url } = message else { unreachable ! ( ) } ;
0 commit comments