Browse Source

Changing method signature in other class in not recognized in working class in typed GDScript #28685

Goral 6 years ago
parent
commit
aabd9980d1

+ 4 - 1
editor/code_editor.cpp

@@ -1302,11 +1302,14 @@ void CodeTextEditor::_on_settings_change() {
 }
 }
 
 
 void CodeTextEditor::_text_changed_idle_timeout() {
 void CodeTextEditor::_text_changed_idle_timeout() {
-
 	_validate_script();
 	_validate_script();
 	emit_signal("validate_script");
 	emit_signal("validate_script");
 }
 }
 
 
+void CodeTextEditor::validate_script() {
+	idle->start();
+}
+
 void CodeTextEditor::_warning_label_gui_input(const Ref<InputEvent> &p_event) {
 void CodeTextEditor::_warning_label_gui_input(const Ref<InputEvent> &p_event) {
 	Ref<InputEventMouseButton> mb = p_event;
 	Ref<InputEventMouseButton> mb = p_event;
 	if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) {
 	if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) {

+ 2 - 0
editor/code_editor.h

@@ -236,6 +236,8 @@ public:
 
 
 	void set_code_complete_func(CodeTextEditorCodeCompleteFunc p_code_complete_func, void *p_ud);
 	void set_code_complete_func(CodeTextEditorCodeCompleteFunc p_code_complete_func, void *p_ud);
 
 
+	void validate_script();
+
 	CodeTextEditor();
 	CodeTextEditor();
 };
 };
 
 

+ 2 - 0
editor/plugins/script_editor_plugin.cpp

@@ -429,6 +429,8 @@ void ScriptEditor::_go_to_tab(int p_idx) {
 		if (script != NULL) {
 		if (script != NULL) {
 			notify_script_changed(script);
 			notify_script_changed(script);
 		}
 		}
+
+		Object::cast_to<ScriptEditorBase>(c)->validate();
 	}
 	}
 	if (Object::cast_to<EditorHelp>(c)) {
 	if (Object::cast_to<EditorHelp>(c)) {
 
 

+ 2 - 0
editor/plugins/script_editor_plugin.h

@@ -116,6 +116,8 @@ public:
 	virtual Control *get_edit_menu() = 0;
 	virtual Control *get_edit_menu() = 0;
 	virtual void clear_edit_menu() = 0;
 	virtual void clear_edit_menu() = 0;
 
 
+	virtual void validate() = 0;
+
 	ScriptEditorBase() {}
 	ScriptEditorBase() {}
 };
 };
 
 

+ 4 - 0
editor/plugins/script_text_editor.cpp

@@ -1744,3 +1744,7 @@ void ScriptTextEditor::register_editor() {
 
 
 	ScriptEditor::register_create_script_editor_function(create_editor);
 	ScriptEditor::register_create_script_editor_function(create_editor);
 }
 }
+
+void ScriptTextEditor::validate() {
+	this->code_editor->validate_script();
+}

+ 2 - 0
editor/plugins/script_text_editor.h

@@ -215,6 +215,8 @@ public:
 	virtual void clear_edit_menu();
 	virtual void clear_edit_menu();
 	static void register_editor();
 	static void register_editor();
 
 
+	virtual void validate();
+
 	ScriptTextEditor();
 	ScriptTextEditor();
 };
 };
 
 

+ 3 - 0
editor/plugins/text_editor.cpp

@@ -622,3 +622,6 @@ TextEditor::TextEditor() {
 
 
 	code_editor->get_text_edit()->set_drag_forwarding(this);
 	code_editor->get_text_edit()->set_drag_forwarding(this);
 }
 }
+
+void TextEditor::validate() {
+}

+ 2 - 0
editor/plugins/text_editor.h

@@ -140,6 +140,8 @@ public:
 	virtual Control *get_edit_menu();
 	virtual Control *get_edit_menu();
 	virtual void clear_edit_menu();
 	virtual void clear_edit_menu();
 
 
+	virtual void validate();
+
 	static void register_editor();
 	static void register_editor();
 
 
 	TextEditor();
 	TextEditor();

+ 3 - 0
modules/visual_script/visual_script_editor.cpp

@@ -3754,4 +3754,7 @@ void _VisualScriptEditor::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("remove_custom_node", "name", "category"), &_VisualScriptEditor::remove_custom_node);
 	ClassDB::bind_method(D_METHOD("remove_custom_node", "name", "category"), &_VisualScriptEditor::remove_custom_node);
 	ADD_SIGNAL(MethodInfo("custom_nodes_updated"));
 	ADD_SIGNAL(MethodInfo("custom_nodes_updated"));
 }
 }
+
+void VisualScriptEditor::validate() {
+}
 #endif
 #endif

+ 1 - 0
modules/visual_script/visual_script_editor.h

@@ -280,6 +280,7 @@ public:
 	virtual Control *get_edit_menu();
 	virtual Control *get_edit_menu();
 	virtual void clear_edit_menu();
 	virtual void clear_edit_menu();
 	virtual bool can_lose_focus_on_node_selection() { return false; }
 	virtual bool can_lose_focus_on_node_selection() { return false; }
+	virtual void validate();
 
 
 	static void register_editor();
 	static void register_editor();