Fix ScriptTextEditor encapsulation

This commit is contained in:
Yuri Roubinsky 2019-12-18 22:32:25 +03:00
parent 9cda7f7333
commit c89df816c1
5 changed files with 15 additions and 13 deletions

View file

@ -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) {

View file

@ -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();
}
}
}

View file

@ -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;

View file

@ -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();

View file

@ -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;