Merge pull request #68741 from Chaosus/vs_fix_varyings_popup
This commit is contained in:
commit
966785751f
2 changed files with 8 additions and 18 deletions
|
@ -3623,12 +3623,6 @@ void VisualShaderEditor::_show_members_dialog(bool at_mouse_pos, VisualShaderNod
|
|||
node_filter->select_all();
|
||||
}
|
||||
|
||||
void VisualShaderEditor::_show_varying_menu() {
|
||||
varying_options->set_item_disabled(int(VaryingMenuOptions::REMOVE), visual_shader->get_varyings_count() == 0);
|
||||
varying_options->set_position(graph->get_screen_position() + varying_button->get_position() + Size2(0, varying_button->get_size().height));
|
||||
varying_options->popup();
|
||||
}
|
||||
|
||||
void VisualShaderEditor::_varying_menu_id_pressed(int p_idx) {
|
||||
switch (VaryingMenuOptions(p_idx)) {
|
||||
case VaryingMenuOptions::ADD: {
|
||||
|
@ -4334,7 +4328,7 @@ void VisualShaderEditor::_update_varying_tree() {
|
|||
}
|
||||
}
|
||||
|
||||
varying_options->set_item_disabled(int(VaryingMenuOptions::REMOVE), count == 0);
|
||||
varying_button->get_popup()->set_item_disabled(int(VaryingMenuOptions::REMOVE), count == 0);
|
||||
}
|
||||
|
||||
void VisualShaderEditor::_varying_create() {
|
||||
|
@ -4809,17 +4803,15 @@ VisualShaderEditor::VisualShaderEditor() {
|
|||
graph->get_zoom_hbox()->move_child(add_node, 0);
|
||||
add_node->connect("pressed", callable_mp(this, &VisualShaderEditor::_show_members_dialog).bind(false, VisualShaderNode::PORT_TYPE_MAX, VisualShaderNode::PORT_TYPE_MAX));
|
||||
|
||||
varying_button = memnew(Button);
|
||||
varying_button->set_flat(true);
|
||||
varying_button = memnew(MenuButton);
|
||||
varying_button->set_text(TTR("Manage Varyings"));
|
||||
varying_button->set_switch_on_hover(true);
|
||||
graph->get_zoom_hbox()->add_child(varying_button);
|
||||
varying_button->connect("pressed", callable_mp(this, &VisualShaderEditor::_show_varying_menu));
|
||||
|
||||
varying_options = memnew(PopupMenu);
|
||||
add_child(varying_options);
|
||||
varying_options->add_item(TTR("Add Varying"), int(VaryingMenuOptions::ADD));
|
||||
varying_options->add_item(TTR("Remove Varying"), int(VaryingMenuOptions::REMOVE));
|
||||
varying_options->connect("id_pressed", callable_mp(this, &VisualShaderEditor::_varying_menu_id_pressed));
|
||||
PopupMenu *varying_menu = varying_button->get_popup();
|
||||
varying_menu->add_item(TTR("Add Varying"), int(VaryingMenuOptions::ADD));
|
||||
varying_menu->add_item(TTR("Remove Varying"), int(VaryingMenuOptions::REMOVE));
|
||||
varying_menu->connect("id_pressed", callable_mp(this, &VisualShaderEditor::_varying_menu_id_pressed));
|
||||
|
||||
preview_shader = memnew(Button);
|
||||
preview_shader->set_flat(true);
|
||||
|
|
|
@ -165,8 +165,7 @@ class VisualShaderEditor : public VBoxContainer {
|
|||
Ref<VisualShader> visual_shader;
|
||||
GraphEdit *graph = nullptr;
|
||||
Button *add_node = nullptr;
|
||||
Button *varying_button = nullptr;
|
||||
PopupMenu *varying_options = nullptr;
|
||||
MenuButton *varying_button = nullptr;
|
||||
Button *preview_shader = nullptr;
|
||||
|
||||
OptionButton *edit_type = nullptr;
|
||||
|
@ -283,7 +282,6 @@ class VisualShaderEditor : public VBoxContainer {
|
|||
void _tools_menu_option(int p_idx);
|
||||
void _show_members_dialog(bool at_mouse_pos, VisualShaderNode::PortType p_input_port_type = VisualShaderNode::PORT_TYPE_MAX, VisualShaderNode::PortType p_output_port_type = VisualShaderNode::PORT_TYPE_MAX);
|
||||
|
||||
void _show_varying_menu();
|
||||
void _varying_menu_id_pressed(int p_idx);
|
||||
void _show_add_varying_dialog();
|
||||
void _show_remove_varying_dialog();
|
||||
|
|
Loading…
Reference in a new issue