@@ -871,7 +871,7 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
871
871
} ;
872
872
let Some ( output_connector) = output_connector else { return } ;
873
873
self . wire_in_progress_from_connector = network_interface. output_position ( & output_connector, selection_network_path) ;
874
- self . wire_in_progress_type = FrontendGraphDataType :: from_type ( & network_interface. input_type ( clicked_input, breadcrumb_network_path) . 0 ) ;
874
+ self . wire_in_progress_type = FrontendGraphDataType :: displayed_type ( & network_interface. input_type ( clicked_input, breadcrumb_network_path) ) ;
875
875
return ;
876
876
}
877
877
@@ -881,8 +881,8 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
881
881
self . initial_disconnecting = false ;
882
882
883
883
self . wire_in_progress_from_connector = network_interface. output_position ( & clicked_output, selection_network_path) ;
884
- let ( output_type, source ) = & network_interface. output_type ( & clicked_output, breadcrumb_network_path) ;
885
- self . wire_in_progress_type = FrontendGraphDataType :: displayed_type ( output_type, source ) ;
884
+ let output_type = network_interface. output_type ( & clicked_output, breadcrumb_network_path) ;
885
+ self . wire_in_progress_type = FrontendGraphDataType :: displayed_type ( & output_type) ;
886
886
887
887
self . update_node_graph_hints ( responses) ;
888
888
return ;
@@ -1196,16 +1196,12 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
1196
1196
return ;
1197
1197
}
1198
1198
// Get the output types from the network interface
1199
- let ( output_type, type_source) = network_interface. output_type ( & output_connector. unwrap ( ) , selection_network_path) ;
1200
1199
let Some ( network_metadata) = network_interface. network_metadata ( selection_network_path) else {
1201
1200
warn ! ( "No network_metadata" ) ;
1202
1201
return ;
1203
1202
} ;
1204
1203
1205
- let compatible_type = match type_source {
1206
- TypeSource :: RandomProtonodeImplementation | TypeSource :: Error ( _) => None ,
1207
- _ => Some ( format ! ( "type:{}" , output_type. nested_type( ) ) ) ,
1208
- } ;
1204
+ let compatible_type = network_interface. output_type ( & output_connector. unwrap ( ) , selection_network_path) . add_node_string ( ) ;
1209
1205
1210
1206
let appear_right_of_mouse = if ipp. mouse . position . x > ipp. viewport_bounds . size ( ) . x - 173. { -173. } else { 0. } ;
1211
1207
let appear_above_mouse = if ipp. mouse . position . y > ipp. viewport_bounds . size ( ) . y - 34. { -34. } else { 0. } ;
@@ -1977,12 +1973,7 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphMessageContext<'a>> for NodeG
1977
1973
responses. add ( NodeGraphMessage :: SendGraph ) ;
1978
1974
}
1979
1975
NodeGraphMessage :: UpdateTypes { resolved_types, node_graph_errors } => {
1980
- for ( path, node_type) in resolved_types. add {
1981
- network_interface. resolved_types . types . insert ( path. to_vec ( ) , node_type) ;
1982
- }
1983
- for path in resolved_types. remove {
1984
- network_interface. resolved_types . types . remove ( & path. to_vec ( ) ) ;
1985
- }
1976
+ network_interface. resolved_types . update ( resolved_types) ;
1986
1977
self . node_graph_errors = node_graph_errors;
1987
1978
}
1988
1979
NodeGraphMessage :: UpdateActionButtons => {
@@ -2096,16 +2087,7 @@ impl NodeGraphMessageHandler {
2096
2087
. popover_layout( {
2097
2088
// Showing only compatible types
2098
2089
let compatible_type = match ( selection_includes_layers, has_multiple_selection, selected_layer) {
2099
- ( true , false , Some ( layer) ) => {
2100
- let graph_layer = graph_modification_utils:: NodeGraphLayer :: new( layer, network_interface) ;
2101
- let node_type = graph_layer. horizontal_layer_flow( ) . nth( 1 ) ;
2102
- if let Some ( node_id) = node_type {
2103
- let ( output_type, _) = network_interface. output_type( & OutputConnector :: node( node_id, 0 ) , & [ ] ) ;
2104
- Some ( format!( "type:{}" , output_type. nested_type( ) ) )
2105
- } else {
2106
- None
2107
- }
2108
- }
2090
+ ( true , false , Some ( layer) ) => network_interface. output_type( & OutputConnector :: node( node_id, 0 ) , & [ ] ) . add_node_string( ) ,
2109
2091
_ => None ,
2110
2092
} ;
2111
2093
@@ -2418,17 +2400,10 @@ impl NodeGraphMessageHandler {
2418
2400
. icon( Some ( "Node" . to_string( ) ) )
2419
2401
. tooltip( "Add an operation to the end of this layer's chain of nodes" )
2420
2402
. popover_layout( {
2421
- let layer_identifier = LayerNodeIdentifier :: new( layer, context. network_interface) ;
2422
- let compatible_type = {
2423
- let graph_layer = graph_modification_utils:: NodeGraphLayer :: new( layer_identifier, context. network_interface) ;
2424
- let node_type = graph_layer. horizontal_layer_flow( ) . nth( 1 ) ;
2425
- if let Some ( node_id) = node_type {
2426
- let ( output_type, _) = context. network_interface. output_type( & OutputConnector :: node( node_id, 0 ) , & [ ] ) ;
2427
- Some ( format!( "type:{}" , output_type. nested_type( ) ) )
2428
- } else {
2429
- None
2430
- }
2431
- } ;
2403
+ let compatible_type = context
2404
+ . network_interface
2405
+ . upstream_output_connector( & InputConnector :: node( layer, 1 ) , & [ ] )
2406
+ . and_then( |upstream_output| context. network_interface. output_type( & upstream_output, & [ ] ) . add_node_string( ) ) ;
2432
2407
2433
2408
let mut node_chooser = NodeCatalog :: new( ) ;
2434
2409
node_chooser. intial_search = compatible_type. unwrap_or( "" . to_string( ) ) ;
0 commit comments