Ver código fonte

Fix ScriptTextEditor encapsulation

Yuri Roubinsky 5 anos atrás
pai
commit
c89df816c1

+ 1 - 1
editor/code_editor.cpp

@@ -1509,7 +1509,7 @@ void CodeTextEditor::_set_show_warnings_panel(bool p_show) {
 }
 
 void CodeTextEditor::_toggle_scripts_pressed() {
-	toggle_scripts_button->set_icon(ScriptEditor::get_singleton()->toggle_scripts_panel(this) ? get_icon("Back", "EditorIcons") : get_icon("Forward", "EditorIcons"));
+	toggle_scripts_button->set_icon(ScriptEditor::get_singleton()->toggle_scripts_panel() ? get_icon("Back", "EditorIcons") : get_icon("Forward", "EditorIcons"));
 }
 
 void CodeTextEditor::_error_pressed(const Ref<InputEvent> &p_event) {

+ 5 - 9
editor/plugins/script_editor_plugin.cpp

@@ -987,11 +987,8 @@ Array ScriptEditor::_get_open_scripts() const {
 	return ret;
 }
 
-bool ScriptEditor::toggle_scripts_panel(CodeTextEditor *p_editor) {
+bool ScriptEditor::toggle_scripts_panel() {
 	list_split->set_visible(!list_split->is_visible());
-	if (p_editor) {
-		p_editor->update_toggle_scripts_button();
-	}
 	return list_split->is_visible();
 }
 
@@ -1141,14 +1138,13 @@ void ScriptEditor::_menu_option(int p_option) {
 		} break;
 		case TOGGLE_SCRIPTS_PANEL: {
 			if (current) {
-				CodeTextEditor *code_editor = NULL;
-				ScriptTextEditor *editor = dynamic_cast<ScriptTextEditor *>(current);
+				ScriptTextEditor *editor = Object::cast_to<ScriptTextEditor>(current);
+				toggle_scripts_panel();
 				if (editor) {
-					code_editor = editor->code_editor;
+					editor->update_toggle_scripts_button();
 				}
-				toggle_scripts_panel(code_editor);
 			} else {
-				toggle_scripts_panel(NULL);
+				toggle_scripts_panel();
 			}
 		}
 	}

+ 1 - 1
editor/plugins/script_editor_plugin.h

@@ -419,7 +419,7 @@ protected:
 public:
 	static ScriptEditor *get_singleton() { return script_editor; }
 
-	bool toggle_scripts_panel(CodeTextEditor *p_editor);
+	bool toggle_scripts_panel();
 	bool is_scripts_panel_toggled();
 	void ensure_focus_current();
 	void apply_scripts() const;

+ 6 - 0
editor/plugins/script_text_editor.cpp

@@ -966,6 +966,12 @@ void ScriptTextEditor::_lookup_symbol(const String &p_symbol, int p_row, int p_c
 	}
 }
 
+void ScriptTextEditor::update_toggle_scripts_button() {
+	if (code_editor != NULL) {
+		code_editor->update_toggle_scripts_button();
+	}
+}
+
 void ScriptTextEditor::_update_connected_methods() {
 	TextEdit *text_edit = code_editor->get_text_edit();
 	text_edit->clear_info_icons();

+ 2 - 2
editor/plugins/script_text_editor.h

@@ -55,6 +55,7 @@ class ScriptTextEditor : public ScriptEditorBase {
 
 	GDCLASS(ScriptTextEditor, ScriptEditorBase);
 
+	CodeTextEditor *code_editor;
 	RichTextLabel *warnings_panel;
 
 	Ref<Script> script;
@@ -186,12 +187,11 @@ protected:
 	void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from);
 
 public:
-	CodeTextEditor *code_editor;
-
 	void _update_connected_methods();
 
 	virtual void add_syntax_highlighter(SyntaxHighlighter *p_highlighter);
 	virtual void set_syntax_highlighter(SyntaxHighlighter *p_highlighter);
+	void update_toggle_scripts_button();
 
 	virtual void apply_code();
 	virtual RES get_edited_resource() const;