Fix VS editor's "Create Function" dialog
This commit is contained in:
parent
b0f0e0e2fc
commit
13e752190f
@ -546,14 +546,14 @@ void VisualShaderEditor::_update_graph() {
|
|||||||
HBoxContainer *hb2 = memnew(HBoxContainer);
|
HBoxContainer *hb2 = memnew(HBoxContainer);
|
||||||
|
|
||||||
Button *add_input_btn = memnew(Button);
|
Button *add_input_btn = memnew(Button);
|
||||||
add_input_btn->set_text(TTR("Add input +"));
|
add_input_btn->set_text(TTR("Add Input"));
|
||||||
add_input_btn->connect("pressed", this, "_add_input_port", varray(nodes[n_i], group_node->get_free_input_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "input" + itos(group_node->get_free_input_port_id())), CONNECT_DEFERRED);
|
add_input_btn->connect("pressed", this, "_add_input_port", varray(nodes[n_i], group_node->get_free_input_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "input" + itos(group_node->get_free_input_port_id())), CONNECT_DEFERRED);
|
||||||
hb2->add_child(add_input_btn);
|
hb2->add_child(add_input_btn);
|
||||||
|
|
||||||
hb2->add_spacer();
|
hb2->add_spacer();
|
||||||
|
|
||||||
Button *add_output_btn = memnew(Button);
|
Button *add_output_btn = memnew(Button);
|
||||||
add_output_btn->set_text(TTR("Add output +"));
|
add_output_btn->set_text(TTR("Add Output"));
|
||||||
add_output_btn->connect("pressed", this, "_add_output_port", varray(nodes[n_i], group_node->get_free_output_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "output" + itos(group_node->get_free_output_port_id())), CONNECT_DEFERRED);
|
add_output_btn->connect("pressed", this, "_add_output_port", varray(nodes[n_i], group_node->get_free_output_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "output" + itos(group_node->get_free_output_port_id())), CONNECT_DEFERRED);
|
||||||
hb2->add_child(add_output_btn);
|
hb2->add_child(add_output_btn);
|
||||||
|
|
||||||
|
@ -1166,13 +1166,11 @@ void VisualScriptEditor::_member_edited() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void VisualScriptEditor::_create_function_dialog() {
|
void VisualScriptEditor::_create_function_dialog() {
|
||||||
function_create_dialog->popup();
|
function_create_dialog->popup_centered();
|
||||||
function_create_dialog->set_position(graph->get_global_position() + Vector2(55, 80));
|
|
||||||
func_name_box->set_text("");
|
func_name_box->set_text("");
|
||||||
func_name_box->grab_focus();
|
func_name_box->grab_focus();
|
||||||
for (int i = 0; i < func_input_vbox->get_child_count(); i++) {
|
for (int i = 0; i < func_input_vbox->get_child_count(); i++) {
|
||||||
Node *nd = func_input_vbox->get_child(i);
|
Node *nd = func_input_vbox->get_child(i);
|
||||||
func_input_vbox->remove_child(nd);
|
|
||||||
nd->queue_delete();
|
nd->queue_delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1252,7 +1250,6 @@ void VisualScriptEditor::_add_func_input() {
|
|||||||
|
|
||||||
func_input_vbox->add_child(hbox);
|
func_input_vbox->add_child(hbox);
|
||||||
hbox->set_meta("id", hbox->get_position_in_parent());
|
hbox->set_meta("id", hbox->get_position_in_parent());
|
||||||
function_create_dialog->set_size(Size2(-1, -1));
|
|
||||||
|
|
||||||
delete_button->connect("pressed", this, "_remove_func_input", varray(hbox));
|
delete_button->connect("pressed", this, "_remove_func_input", varray(hbox));
|
||||||
|
|
||||||
@ -1263,7 +1260,6 @@ void VisualScriptEditor::_add_func_input() {
|
|||||||
void VisualScriptEditor::_remove_func_input(Node *p_node) {
|
void VisualScriptEditor::_remove_func_input(Node *p_node) {
|
||||||
func_input_vbox->remove_child(p_node);
|
func_input_vbox->remove_child(p_node);
|
||||||
p_node->queue_delete();
|
p_node->queue_delete();
|
||||||
function_create_dialog->set_size(Size2(-1, -1));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void VisualScriptEditor::_deselect_input_names() {
|
void VisualScriptEditor::_deselect_input_names() {
|
||||||
@ -3907,11 +3903,18 @@ void VisualScriptEditor::_hide_timer() {
|
|||||||
|
|
||||||
void VisualScriptEditor::_notification(int p_what) {
|
void VisualScriptEditor::_notification(int p_what) {
|
||||||
|
|
||||||
if (p_what == NOTIFICATION_READY || (p_what == NOTIFICATION_THEME_CHANGED && is_visible_in_tree())) {
|
switch (p_what) {
|
||||||
if (p_what == NOTIFICATION_READY) {
|
case NOTIFICATION_READY: {
|
||||||
variable_editor->connect("changed", this, "_update_members");
|
variable_editor->connect("changed", this, "_update_members");
|
||||||
signal_editor->connect("changed", this, "_update_members");
|
signal_editor->connect("changed", this, "_update_members");
|
||||||
|
FALLTHROUGH;
|
||||||
}
|
}
|
||||||
|
case NOTIFICATION_THEME_CHANGED: {
|
||||||
|
if (p_what != NOTIFICATION_READY && !is_visible_in_tree()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
func_input_scroll->add_style_override("bg", get_stylebox("bg", "Tree"));
|
||||||
|
|
||||||
Ref<Theme> tm = EditorNode::get_singleton()->get_theme_base()->get_theme();
|
Ref<Theme> tm = EditorNode::get_singleton()->get_theme_base()->get_theme();
|
||||||
|
|
||||||
@ -3950,8 +3953,10 @@ void VisualScriptEditor::_notification(int p_what) {
|
|||||||
_update_members();
|
_update_members();
|
||||||
_update_graph();
|
_update_graph();
|
||||||
}
|
}
|
||||||
} else if (p_what == NOTIFICATION_VISIBILITY_CHANGED) {
|
} break;
|
||||||
|
case NOTIFICATION_VISIBILITY_CHANGED: {
|
||||||
members_section->set_visible(is_visible_in_tree());
|
members_section->set_visible(is_visible_in_tree());
|
||||||
|
} break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4762,7 +4767,7 @@ VisualScriptEditor::VisualScriptEditor() {
|
|||||||
add_nds->connect("pressed", this, "_add_node_dialog");
|
add_nds->connect("pressed", this, "_add_node_dialog");
|
||||||
|
|
||||||
Button *fn_btn = memnew(Button);
|
Button *fn_btn = memnew(Button);
|
||||||
fn_btn->set_text("Add Function");
|
fn_btn->set_text("Add Function...");
|
||||||
graph_hbc->add_child(fn_btn);
|
graph_hbc->add_child(fn_btn);
|
||||||
fn_btn->connect("pressed", this, "_create_function_dialog");
|
fn_btn->connect("pressed", this, "_create_function_dialog");
|
||||||
|
|
||||||
@ -4790,17 +4795,20 @@ VisualScriptEditor::VisualScriptEditor() {
|
|||||||
|
|
||||||
Button *add_input_button = memnew(Button);
|
Button *add_input_button = memnew(Button);
|
||||||
add_input_button->set_h_size_flags(SIZE_EXPAND_FILL);
|
add_input_button->set_h_size_flags(SIZE_EXPAND_FILL);
|
||||||
add_input_button->set_text(TTR("Add input +"));
|
add_input_button->set_text(TTR("Add Input"));
|
||||||
add_input_button->connect("pressed", this, "_add_func_input");
|
add_input_button->connect("pressed", this, "_add_func_input");
|
||||||
function_vb->add_child(add_input_button);
|
function_vb->add_child(add_input_button);
|
||||||
|
|
||||||
func_input_vbox = memnew(VBoxContainer);
|
func_input_scroll = memnew(ScrollContainer);
|
||||||
function_vb->add_child(func_input_vbox);
|
func_input_scroll->set_v_size_flags(SIZE_EXPAND_FILL);
|
||||||
|
function_vb->add_child(func_input_scroll);
|
||||||
|
|
||||||
function_vb->add_child(memnew(HSeparator));
|
func_input_vbox = memnew(VBoxContainer);
|
||||||
|
func_input_vbox->set_h_size_flags(SIZE_EXPAND_FILL);
|
||||||
|
func_input_scroll->add_child(func_input_vbox);
|
||||||
|
|
||||||
function_create_dialog = memnew(ConfirmationDialog);
|
function_create_dialog = memnew(ConfirmationDialog);
|
||||||
function_create_dialog->set_custom_minimum_size(Size2(450 * EDSCALE, 0));
|
function_create_dialog->set_custom_minimum_size(Size2(450, 300) * EDSCALE);
|
||||||
function_create_dialog->set_v_size_flags(SIZE_EXPAND_FILL);
|
function_create_dialog->set_v_size_flags(SIZE_EXPAND_FILL);
|
||||||
function_create_dialog->set_title(TTR("Create Function"));
|
function_create_dialog->set_title(TTR("Create Function"));
|
||||||
function_create_dialog->add_child(function_vb);
|
function_create_dialog->add_child(function_vb);
|
||||||
|
@ -89,6 +89,7 @@ class VisualScriptEditor : public ScriptEditorBase {
|
|||||||
Button *base_type_select;
|
Button *base_type_select;
|
||||||
|
|
||||||
LineEdit *func_name_box;
|
LineEdit *func_name_box;
|
||||||
|
ScrollContainer *func_input_scroll;
|
||||||
VBoxContainer *func_input_vbox;
|
VBoxContainer *func_input_vbox;
|
||||||
ConfirmationDialog *function_create_dialog;
|
ConfirmationDialog *function_create_dialog;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user