Fix few bugs in visual shader expressions
Fixed few bugs in visual shader expressions
This commit is contained in:
parent
339b64697c
commit
b74f1abd25
@ -1454,6 +1454,17 @@ void VisualShaderEditor::_remove_output_port(int p_node, int p_port) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int preview_port = node->get_output_port_for_preview();
|
||||||
|
if (preview_port != -1) {
|
||||||
|
if (preview_port == p_port) {
|
||||||
|
undo_redo->add_do_method(node.ptr(), "set_output_port_for_preview", -1);
|
||||||
|
undo_redo->add_undo_method(node.ptr(), "set_output_port_for_preview", preview_port);
|
||||||
|
} else if (preview_port > p_port) {
|
||||||
|
undo_redo->add_do_method(node.ptr(), "set_output_port_for_preview", preview_port - 1);
|
||||||
|
undo_redo->add_undo_method(node.ptr(), "set_output_port_for_preview", preview_port);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
undo_redo->add_do_method(node.ptr(), "remove_output_port", p_port);
|
undo_redo->add_do_method(node.ptr(), "remove_output_port", p_port);
|
||||||
undo_redo->add_undo_method(node.ptr(), "add_output_port", p_port, (int)node->get_output_port_type(p_port), node->get_output_port_name(p_port));
|
undo_redo->add_undo_method(node.ptr(), "add_output_port", p_port, (int)node->get_output_port_type(p_port), node->get_output_port_name(p_port));
|
||||||
|
|
||||||
|
@ -2767,8 +2767,10 @@ void VisualShaderNodeGroupBase::remove_input_port(int p_id) {
|
|||||||
inputs.erase(index, count);
|
inputs.erase(index, count);
|
||||||
|
|
||||||
inputs_strings = inputs.split(";", false);
|
inputs_strings = inputs.split(";", false);
|
||||||
|
inputs = inputs.substr(0, index);
|
||||||
|
|
||||||
for (int i = p_id; i < inputs_strings.size(); i++) {
|
for (int i = p_id; i < inputs_strings.size(); i++) {
|
||||||
inputs = inputs.replace_first(inputs_strings[i].split(",")[0], itos(i));
|
inputs += inputs_strings[i].replace_first(inputs_strings[i].split(",")[0], itos(i)) + ";";
|
||||||
}
|
}
|
||||||
|
|
||||||
_apply_port_changes();
|
_apply_port_changes();
|
||||||
@ -2837,8 +2839,10 @@ void VisualShaderNodeGroupBase::remove_output_port(int p_id) {
|
|||||||
outputs.erase(index, count);
|
outputs.erase(index, count);
|
||||||
|
|
||||||
outputs_strings = outputs.split(";", false);
|
outputs_strings = outputs.split(";", false);
|
||||||
|
outputs = outputs.substr(0, index);
|
||||||
|
|
||||||
for (int i = p_id; i < outputs_strings.size(); i++) {
|
for (int i = p_id; i < outputs_strings.size(); i++) {
|
||||||
outputs = outputs.replace_first(outputs_strings[i].split(",")[0], itos(i));
|
outputs += outputs_strings[i].replace_first(outputs_strings[i].split(",")[0], itos(i)) + ";";
|
||||||
}
|
}
|
||||||
|
|
||||||
_apply_port_changes();
|
_apply_port_changes();
|
||||||
|
Loading…
Reference in New Issue
Block a user