@@ -878,7 +878,7 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
878
878
} ;
879
879
let Some ( output_connector) = output_connector else { return } ;
880
880
self . wire_in_progress_from_connector = network_interface. output_position ( & output_connector, selection_network_path) ;
881
- self . wire_in_progress_type = FrontendGraphDataType :: from_type ( & network_interface. input_type ( clicked_input, breadcrumb_network_path) . 0 ) ;
881
+ self . wire_in_progress_type = FrontendGraphDataType :: displayed_type ( & network_interface. input_type ( clicked_input, breadcrumb_network_path) ) ;
882
882
return ;
883
883
}
884
884
@@ -888,8 +888,8 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
888
888
self . initial_disconnecting = false ;
889
889
890
890
self . wire_in_progress_from_connector = network_interface. output_position ( & clicked_output, selection_network_path) ;
891
- let ( output_type, source ) = & network_interface. output_type ( & clicked_output, breadcrumb_network_path) ;
892
- self . wire_in_progress_type = FrontendGraphDataType :: displayed_type ( output_type, source ) ;
891
+ let output_type = network_interface. output_type ( & clicked_output, breadcrumb_network_path) ;
892
+ self . wire_in_progress_type = FrontendGraphDataType :: displayed_type ( & output_type) ;
893
893
894
894
self . update_node_graph_hints ( responses) ;
895
895
return ;
@@ -1207,16 +1207,12 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
1207
1207
}
1208
1208
1209
1209
// Get the output types from the network interface
1210
- let ( output_type, type_source) = network_interface. output_type ( & output_connector, selection_network_path) ;
1211
1210
let Some ( network_metadata) = network_interface. network_metadata ( selection_network_path) else {
1212
1211
warn ! ( "No network_metadata" ) ;
1213
1212
return ;
1214
1213
} ;
1215
1214
1216
- let compatible_type = match type_source {
1217
- TypeSource :: RandomProtonodeImplementation | TypeSource :: Error ( _) => None ,
1218
- _ => Some ( format ! ( "type:{}" , output_type. nested_type( ) ) ) ,
1219
- } ;
1215
+ let compatible_type = network_interface. output_type ( & output_connector. unwrap ( ) , selection_network_path) . add_node_string ( ) ;
1220
1216
1221
1217
let appear_right_of_mouse = if ipp. mouse . position . x > ipp. viewport_bounds . size ( ) . x - 173. { -173. } else { 0. } ;
1222
1218
let appear_above_mouse = if ipp. mouse . position . y > ipp. viewport_bounds . size ( ) . y - 34. { -34. } else { 0. } ;
@@ -1990,12 +1986,7 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
1990
1986
responses. add ( NodeGraphMessage :: SendGraph ) ;
1991
1987
}
1992
1988
NodeGraphMessage :: UpdateTypes { resolved_types, node_graph_errors } => {
1993
- for ( path, node_type) in resolved_types. add {
1994
- network_interface. resolved_types . types . insert ( path. to_vec ( ) , node_type) ;
1995
- }
1996
- for path in resolved_types. remove {
1997
- network_interface. resolved_types . types . remove ( & path. to_vec ( ) ) ;
1998
- }
1989
+ network_interface. resolved_types . update ( resolved_types) ;
1999
1990
self . node_graph_errors = node_graph_errors;
2000
1991
}
2001
1992
NodeGraphMessage :: UpdateActionButtons => {
@@ -2109,16 +2100,7 @@ impl NodeGraphMessageHandler {
2109
2100
. popover_layout( {
2110
2101
// Showing only compatible types
2111
2102
let compatible_type = match ( selection_includes_layers, has_multiple_selection, selected_layer) {
2112
- ( true , false , Some ( layer) ) => {
2113
- let graph_layer = graph_modification_utils:: NodeGraphLayer :: new( layer, network_interface) ;
2114
- let node_type = graph_layer. horizontal_layer_flow( ) . nth( 1 ) ;
2115
- if let Some ( node_id) = node_type {
2116
- let ( output_type, _) = network_interface. output_type( & OutputConnector :: node( node_id, 0 ) , & [ ] ) ;
2117
- Some ( format!( "type:{}" , output_type. nested_type( ) ) )
2118
- } else {
2119
- None
2120
- }
2121
- }
2103
+ ( true , false , Some ( layer) ) => network_interface. output_type( & OutputConnector :: node( node_id, 0 ) , & [ ] ) . add_node_string( ) ,
2122
2104
_ => None ,
2123
2105
} ;
2124
2106
@@ -2431,17 +2413,10 @@ impl NodeGraphMessageHandler {
2431
2413
. icon( Some ( "Node" . to_string( ) ) )
2432
2414
. tooltip( "Add an operation to the end of this layer's chain of nodes" )
2433
2415
. popover_layout( {
2434
- let layer_identifier = LayerNodeIdentifier :: new( layer, context. network_interface) ;
2435
- let compatible_type = {
2436
- let graph_layer = graph_modification_utils:: NodeGraphLayer :: new( layer_identifier, context. network_interface) ;
2437
- let node_type = graph_layer. horizontal_layer_flow( ) . nth( 1 ) ;
2438
- if let Some ( node_id) = node_type {
2439
- let ( output_type, _) = context. network_interface. output_type( & OutputConnector :: node( node_id, 0 ) , & [ ] ) ;
2440
- Some ( format!( "type:{}" , output_type. nested_type( ) ) )
2441
- } else {
2442
- None
2443
- }
2444
- } ;
2416
+ let compatible_type = context
2417
+ . network_interface
2418
+ . upstream_output_connector( & InputConnector :: node( layer, 1 ) , & [ ] )
2419
+ . and_then( |upstream_output| context. network_interface. output_type( & upstream_output, & [ ] ) . add_node_string( ) ) ;
2445
2420
2446
2421
let mut node_chooser = NodeCatalog :: new( ) ;
2447
2422
node_chooser. intial_search = compatible_type. unwrap_or( "" . to_string( ) ) ;
0 commit comments