Merge pull request #37623 from Chaosus/vs_fix_keyword_name
Adds warning to the uniform name in visual shader if its equal to keyword
This commit is contained in:
commit
e0a9879ce4
3 changed files with 24 additions and 0 deletions
|
@ -556,6 +556,17 @@ void VisualShaderEditor::_update_graph() {
|
|||
uniform_name->connect("text_entered", callable_mp(this, &VisualShaderEditor::_line_edit_changed), varray(uniform_name, nodes[n_i]));
|
||||
uniform_name->connect("focus_exited", callable_mp(this, &VisualShaderEditor::_line_edit_focus_out), varray(uniform_name, nodes[n_i]));
|
||||
|
||||
String error = vsnode->get_warning(visual_shader->get_mode(), type);
|
||||
if (error != String()) {
|
||||
offset = memnew(Control);
|
||||
offset->set_custom_minimum_size(Size2(0, 4 * EDSCALE));
|
||||
node->add_child(offset);
|
||||
Label *error_label = memnew(Label);
|
||||
error_label->add_theme_color_override("font_color", get_theme_color("error_color", "Editor"));
|
||||
error_label->set_text(error);
|
||||
node->add_child(error_label);
|
||||
}
|
||||
|
||||
if (vsnode->get_input_port_count() == 0 && vsnode->get_output_port_count() == 1 && vsnode->get_output_port_name(0) == "") {
|
||||
//shortcut
|
||||
VisualShaderNode::PortType port_right = vsnode->get_output_port_type(0);
|
||||
|
|
|
@ -2164,6 +2164,17 @@ void VisualShaderNodeUniform::_bind_methods() {
|
|||
ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "uniform_name"), "set_uniform_name", "get_uniform_name");
|
||||
}
|
||||
|
||||
String VisualShaderNodeUniform::get_warning(Shader::Mode p_mode, VisualShader::Type p_type) const {
|
||||
|
||||
List<String> keyword_list;
|
||||
ShaderLanguage::get_keyword_list(&keyword_list);
|
||||
if (keyword_list.find(uniform_name)) {
|
||||
return TTR("Uniform name cannot be equal to a shader keyword. Choose another name.");
|
||||
}
|
||||
|
||||
return String();
|
||||
}
|
||||
|
||||
VisualShaderNodeUniform::VisualShaderNodeUniform() {
|
||||
}
|
||||
|
||||
|
|
|
@ -379,6 +379,8 @@ public:
|
|||
void set_uniform_name(const String &p_name);
|
||||
String get_uniform_name() const;
|
||||
|
||||
virtual String get_warning(Shader::Mode p_mode, VisualShader::Type p_type) const;
|
||||
|
||||
VisualShaderNodeUniform();
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue