@@ -18,7 +18,7 @@ use crate::messages::portfolio::document::overlays::grid_overlays::{grid_overlay
1818use crate :: messages:: portfolio:: document:: overlays:: utility_types:: { OverlaysType , OverlaysVisibilitySettings , Pivot } ;
1919use crate :: messages:: portfolio:: document:: properties_panel:: properties_panel_message_handler:: PropertiesPanelMessageContext ;
2020use crate :: messages:: portfolio:: document:: utility_types:: document_metadata:: { DocumentMetadata , LayerNodeIdentifier } ;
21- use crate :: messages:: portfolio:: document:: utility_types:: misc:: { AlignAggregate , AlignAxis , FlipAxis , PTZ } ;
21+ use crate :: messages:: portfolio:: document:: utility_types:: misc:: { AlignAggregate , AlignAxis , DocumentMode , FlipAxis , PTZ } ;
2222use crate :: messages:: portfolio:: document:: utility_types:: network_interface:: { FlowType , InputConnector , NodeTemplate } ;
2323use crate :: messages:: portfolio:: utility_types:: { PanelType , PersistentData } ;
2424use crate :: messages:: prelude:: * ;
@@ -115,6 +115,9 @@ pub struct DocumentMessageHandler {
115115 /// The name of the document, which is displayed in the tab and title bar of the editor.
116116 #[ serde( skip) ]
117117 pub name : String ,
118+ /// The current editor-only mode for the active document.
119+ #[ serde( skip) ]
120+ pub document_mode : DocumentMode ,
118121 /// The path of the to the document file.
119122 #[ serde( skip) ]
120123 pub ( crate ) path : Option < PathBuf > ,
@@ -173,6 +176,7 @@ impl Default for DocumentMessageHandler {
173176 // Fields omitted from the saved document format
174177 // =============================================
175178 name : DEFAULT_DOCUMENT_NAME . to_string ( ) ,
179+ document_mode : DocumentMode :: default ( ) ,
176180 path : None ,
177181 breadcrumb_network_path : Vec :: new ( ) ,
178182 selection_network_path : Vec :: new ( ) ,
@@ -1108,6 +1112,15 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
11081112 self . render_mode = render_mode;
11091113 responses. add_front ( NodeGraphMessage :: RunDocumentGraph ) ;
11101114 }
1115+ DocumentMessage :: ToggleDocumentMode => {
1116+ self . document_mode = match self . document_mode {
1117+ DocumentMode :: MaskMode => DocumentMode :: DesignMode ,
1118+ _ => DocumentMode :: MaskMode ,
1119+ } ;
1120+ }
1121+ DocumentMessage :: SetDocumentMode { document_mode } => {
1122+ self . document_mode = document_mode;
1123+ }
11111124 DocumentMessage :: AddTransaction => {
11121125 // Reverse order since they are added to the front
11131126 responses. add_front ( DocumentMessage :: CommitTransaction ) ;
@@ -1463,6 +1476,8 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
14631476 SaveDocument ,
14641477 SelectAllLayers ,
14651478 SetSnapping ,
1479+ ToggleDocumentMode ,
1480+ SetDocumentMode ,
14661481 ToggleGridVisibility ,
14671482 ToggleOverlaysVisibility ,
14681483 ToggleSnapping ,
0 commit comments