@@ -3,7 +3,7 @@ use super::node_graph::utility_types::Transform;
3
3
use super :: overlays:: utility_types:: Pivot ;
4
4
use super :: utility_types:: error:: EditorError ;
5
5
use super :: utility_types:: misc:: { GroupFolderType , SNAP_FUNCTIONS_FOR_BOUNDING_BOXES , SNAP_FUNCTIONS_FOR_PATHS , SnappingOptions , SnappingState } ;
6
- use super :: utility_types:: network_interface:: { self , NodeNetworkInterface , TransactionStatus } ;
6
+ use super :: utility_types:: network_interface:: { NodeNetworkInterface , TransactionStatus } ;
7
7
use super :: utility_types:: nodes:: { CollapsedLayers , SelectedNodes } ;
8
8
use crate :: application:: { GRAPHITE_GIT_COMMIT_HASH , generate_uuid} ;
9
9
use crate :: consts:: { ASYMPTOTIC_EFFECT , COLOR_OVERLAY_GRAY , DEFAULT_DOCUMENT_NAME , FILE_SAVE_SUFFIX , SCALE_EFFECT , SCROLLBAR_SPACING , VIEWPORT_ROTATE_SNAP_INTERVAL } ;
@@ -13,22 +13,20 @@ use crate::messages::portfolio::document::graph_operation::utility_types::Transf
13
13
use crate :: messages:: portfolio:: document:: node_graph:: NodeGraphMessageContext ;
14
14
use crate :: messages:: portfolio:: document:: overlays:: grid_overlays:: { grid_overlay, overlay_options} ;
15
15
use crate :: messages:: portfolio:: document:: overlays:: utility_types:: { OverlaysType , OverlaysVisibilitySettings } ;
16
- use crate :: messages:: portfolio:: document:: properties_panel:: properties_panel_message_handler:: PropertiesPanelMessageContext ;
17
16
use crate :: messages:: portfolio:: document:: utility_types:: document_metadata:: { DocumentMetadata , LayerNodeIdentifier } ;
18
17
use crate :: messages:: portfolio:: document:: utility_types:: misc:: { AlignAggregate , AlignAxis , DocumentMode , FlipAxis , PTZ } ;
19
- use crate :: messages:: portfolio:: document:: utility_types:: network_interface:: { FlowType , InputConnector , NodeTemplate } ;
18
+ use crate :: messages:: portfolio:: document:: utility_types:: network_interface:: { FlowType , NodeTemplate } ;
20
19
use crate :: messages:: portfolio:: document:: utility_types:: nodes:: RawBuffer ;
21
20
use crate :: messages:: portfolio:: utility_types:: PersistentData ;
22
21
use crate :: messages:: prelude:: * ;
23
22
use crate :: messages:: tool:: common_functionality:: graph_modification_utils:: { self , get_blend_mode, get_fill, get_opacity} ;
24
23
use crate :: messages:: tool:: tool_messages:: select_tool:: SelectToolPointerKeys ;
25
24
use crate :: messages:: tool:: tool_messages:: tool_prelude:: Key ;
26
25
use crate :: messages:: tool:: utility_types:: ToolType ;
27
- use crate :: node_graph_executor:: NodeGraphExecutor ;
28
26
use bezier_rs:: Subpath ;
29
27
use glam:: { DAffine2 , DVec2 , IVec2 } ;
30
28
use graph_craft:: document:: value:: TaggedValue ;
31
- use graph_craft:: document:: { NodeId , NodeInput , NodeNetwork , OldNodeNetwork } ;
29
+ use graph_craft:: document:: { InputConnector , NodeInput , NodeNetwork , OldNodeNetwork } ;
32
30
use graphene_std:: math:: quad:: Quad ;
33
31
use graphene_std:: path_bool:: { boolean_intersect, path_bool_lib} ;
34
32
use graphene_std:: raster:: BlendMode ;
@@ -37,18 +35,16 @@ use graphene_std::uuid::NodeId;
37
35
use graphene_std:: vector:: PointId ;
38
36
use graphene_std:: vector:: click_target:: { ClickTarget , ClickTargetType } ;
39
37
use graphene_std:: vector:: style:: ViewMode ;
40
- use std:: sync:: Arc ;
41
38
use std:: time:: Duration ;
42
39
43
40
#[ derive( ExtractField ) ]
44
- pub struct DocumentMessageContext < ' a > {
45
- pub document_id : DocumentId ,
41
+ pub struct DocumentMessageData < ' a > {
46
42
pub ipp : & ' a InputPreprocessorMessageHandler ,
47
43
pub persistent_data : & ' a PersistentData ,
48
44
pub current_tool : & ' a ToolType ,
49
45
pub preferences : & ' a PreferencesMessageHandler ,
50
46
pub device_pixel_ratio : f64 ,
51
- // pub introspected_inputs: &HashMap<CompiledProtonodeInput, Box <dyn std::any::Any + Send + Sync>>,
47
+ // pub introspected_inputs: &HashMap<CompiledProtonodeInput, Arc <dyn std::any::Any + Send + Sync>>,
52
48
// pub downcasted_inputs: &mut HashMap<CompiledProtonodeInput, TaggedValue>,
53
49
}
54
50
@@ -173,10 +169,9 @@ impl Default for DocumentMessageHandler {
173
169
}
174
170
175
171
#[ message_handler_data]
176
- impl MessageHandler < DocumentMessage , DocumentMessageContext < ' _ > > for DocumentMessageHandler {
177
- fn process_message ( & mut self , message : DocumentMessage , responses : & mut VecDeque < Message > , context : DocumentMessageContext ) {
178
- let DocumentMessageContext {
179
- document_id,
172
+ impl MessageHandler < DocumentMessage , DocumentMessageData < ' _ > > for DocumentMessageHandler {
173
+ fn process_message ( & mut self , message : DocumentMessage , responses : & mut VecDeque < Message > , data : DocumentMessageData ) {
174
+ let DocumentMessageData {
180
175
ipp,
181
176
persistent_data,
182
177
current_tool,
@@ -222,12 +217,10 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
222
217
) ;
223
218
}
224
219
DocumentMessage :: PropertiesPanel ( message) => {
225
- let context = PropertiesPanelMessageContext {
220
+ let properties_panel_message_handler_data = super :: properties_panel :: PropertiesPanelMessageHandlerData {
226
221
network_interface : & mut self . network_interface ,
227
222
selection_network_path : & self . selection_network_path ,
228
223
document_name : self . name . as_str ( ) ,
229
- executor,
230
- persistent_data,
231
224
} ;
232
225
self . properties_panel_message_handler . process_message ( message, responses, context) ;
233
226
}
@@ -239,7 +232,6 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
239
232
network_interface : & mut self . network_interface ,
240
233
selection_network_path : & self . selection_network_path ,
241
234
breadcrumb_network_path : & self . breadcrumb_network_path ,
242
- document_id,
243
235
collapsed : & mut self . collapsed ,
244
236
ipp,
245
237
graph_view_overlay_open : self . graph_view_overlay_open ,
@@ -1432,7 +1424,7 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
1432
1424
center : Key :: Alt ,
1433
1425
duplicate : Key :: Alt ,
1434
1426
} ) ) ;
1435
- responses. add ( PortfolioMessage :: CompileActiveDocument ) ;
1427
+ responses. add ( PortfolioMessage :: EvaluateActiveDocument ) ;
1436
1428
} else {
1437
1429
let Some ( network_metadata) = self . network_interface . network_metadata ( & self . breadcrumb_network_path ) else {
1438
1430
return ;
@@ -1492,7 +1484,7 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
1492
1484
// Connect the current output data to the artboard's input data, and the artboard's output to the document output
1493
1485
responses. add ( NodeGraphMessage :: InsertNodeBetween {
1494
1486
node_id,
1495
- input_connector : network_interface :: InputConnector :: Export ( 0 ) ,
1487
+ input_connector : InputConnector :: Export ( 0 ) ,
1496
1488
insert_node_input_index : 1 ,
1497
1489
} ) ;
1498
1490
@@ -1914,13 +1906,14 @@ impl DocumentMessageHandler {
1914
1906
let previous_network = std:: mem:: replace ( & mut self . network_interface , network_interface) ;
1915
1907
1916
1908
// Push the UpdateOpenDocumentsList message to the bus in order to update the save status of the open documents
1909
+ responses. add ( PortfolioMessage :: CompileActiveDocument ) ;
1910
+ responses. add ( Message :: StartEvaluationQueue ) ;
1917
1911
responses. add ( PortfolioMessage :: UpdateOpenDocumentsList ) ;
1918
1912
responses. add ( NodeGraphMessage :: SelectedNodesUpdated ) ;
1919
- // TODO: Remove once the footprint is used to load the imports/export distances from the edge
1920
- responses. add ( NodeGraphMessage :: UnloadWires ) ;
1921
1913
responses. add ( NodeGraphMessage :: SetGridAlignedEdges ) ;
1922
- responses. add ( PortfolioMessage :: CompileActiveDocument ) ;
1923
- responses. add ( Message :: StartQueue ) ;
1914
+ responses. add ( NodeGraphMessage :: UnloadWires ) ;
1915
+ responses. add ( NodeGraphMessage :: SendWires ) ;
1916
+ responses. add ( Message :: EndEvaluationQueue ) ;
1924
1917
Some ( previous_network)
1925
1918
}
1926
1919
pub fn redo_with_history ( & mut self , ipp : & InputPreprocessorMessageHandler , responses : & mut VecDeque < Message > ) {
@@ -1946,12 +1939,14 @@ impl DocumentMessageHandler {
1946
1939
network_interface. set_document_to_viewport_transform ( transform) ;
1947
1940
1948
1941
let previous_network = std:: mem:: replace ( & mut self . network_interface , network_interface) ;
1942
+ responses. add ( PortfolioMessage :: CompileActiveDocument ) ;
1943
+ responses. add ( Message :: StartEvaluationQueue ) ;
1949
1944
// Push the UpdateOpenDocumentsList message to the bus in order to update the save status of the open documents
1950
1945
responses. add ( PortfolioMessage :: UpdateOpenDocumentsList ) ;
1951
1946
responses. add ( NodeGraphMessage :: SelectedNodesUpdated ) ;
1952
- responses. add ( PortfolioMessage :: CompileActiveDocument ) ;
1953
1947
responses. add ( NodeGraphMessage :: UnloadWires ) ;
1954
1948
responses. add ( NodeGraphMessage :: SendWires ) ;
1949
+ responses. add ( Message :: EndEvaluationQueue ) ;
1955
1950
Some ( previous_network)
1956
1951
}
1957
1952
@@ -2108,7 +2103,7 @@ impl DocumentMessageHandler {
2108
2103
/// Loads all of the fonts in the document.
2109
2104
pub fn load_layer_resources ( & self , responses : & mut VecDeque < Message > ) {
2110
2105
let mut fonts = HashSet :: new ( ) ;
2111
- for ( _node_id , node, _ ) in self . document_network ( ) . recursive_nodes ( ) {
2106
+ for ( _node_path , node) in self . document_network ( ) . recursive_nodes ( ) {
2112
2107
for input in & node. inputs {
2113
2108
if let Some ( TaggedValue :: Font ( font) ) = input. as_value ( ) {
2114
2109
fonts. insert ( font. clone ( ) ) ;
@@ -2581,7 +2576,7 @@ impl DocumentMessageHandler {
2581
2576
layout : Layout :: WidgetLayout ( document_bar_layout) ,
2582
2577
layout_target : LayoutTarget :: DocumentBar ,
2583
2578
} ) ;
2584
- responses. add ( NodeGraphMessage :: ForceRunDocumentGraph ) ;
2579
+ responses. add ( PortfolioMessage :: EvaluateActiveDocument ) ;
2585
2580
}
2586
2581
2587
2582
pub fn update_layers_panel_control_bar_widgets ( & self , responses : & mut VecDeque < Message > ) {
0 commit comments