summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--editor/find_in_files.cpp12
-rw-r--r--editor/find_in_files.h3
-rw-r--r--editor/plugins/script_editor_plugin.cpp27
-rw-r--r--editor/plugins/script_editor_plugin.h1
4 files changed, 31 insertions, 12 deletions
diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp
index 2d3f1a5b90..3bddc91b81 100644
--- a/editor/find_in_files.cpp
+++ b/editor/find_in_files.cpp
@@ -566,6 +566,7 @@ void FindInFilesDialog::_bind_methods() {
//-----------------------------------------------------------------------------
const char *FindInFilesPanel::SIGNAL_RESULT_SELECTED = "result_selected";
const char *FindInFilesPanel::SIGNAL_FILES_MODIFIED = "files_modified";
+const char *FindInFilesPanel::SIGNAL_CLOSE_BUTTON_CLICKED = "close_button_clicked";
FindInFilesPanel::FindInFilesPanel() {
_finder = memnew(FindInFiles);
@@ -611,6 +612,11 @@ FindInFilesPanel::FindInFilesPanel() {
_cancel_button->hide();
hbc->add_child(_cancel_button);
+ _close_button = memnew(Button);
+ _close_button->set_text(TTR("Close"));
+ _close_button->connect("pressed", callable_mp(this, &FindInFilesPanel::_on_close_button_clicked));
+ hbc->add_child(_close_button);
+
vbc->add_child(hbc);
}
@@ -843,6 +849,10 @@ void FindInFilesPanel::_on_cancel_button_clicked() {
stop_search();
}
+void FindInFilesPanel::_on_close_button_clicked() {
+ emit_signal(SNAME(SIGNAL_CLOSE_BUTTON_CLICKED));
+}
+
void FindInFilesPanel::_on_result_selected() {
TreeItem *item = _results_display->get_selected();
HashMap<TreeItem *, Result>::Iterator E = _result_items.find(item);
@@ -1010,4 +1020,6 @@ void FindInFilesPanel::_bind_methods() {
PropertyInfo(Variant::INT, "end")));
ADD_SIGNAL(MethodInfo(SIGNAL_FILES_MODIFIED, PropertyInfo(Variant::STRING, "paths")));
+
+ ADD_SIGNAL(MethodInfo(SIGNAL_CLOSE_BUTTON_CLICKED));
}
diff --git a/editor/find_in_files.h b/editor/find_in_files.h
index 7885931514..ac336b4e35 100644
--- a/editor/find_in_files.h
+++ b/editor/find_in_files.h
@@ -159,6 +159,7 @@ class FindInFilesPanel : public Control {
public:
static const char *SIGNAL_RESULT_SELECTED;
static const char *SIGNAL_FILES_MODIFIED;
+ static const char *SIGNAL_CLOSE_BUTTON_CLICKED;
FindInFilesPanel();
@@ -180,6 +181,7 @@ private:
void _on_finished();
void _on_refresh_button_clicked();
void _on_cancel_button_clicked();
+ void _on_close_button_clicked();
void _on_result_selected();
void _on_item_edited();
void _on_replace_text_changed(const String &text);
@@ -207,6 +209,7 @@ private:
Label *_status_label = nullptr;
Button *_refresh_button = nullptr;
Button *_cancel_button = nullptr;
+ Button *_close_button = nullptr;
ProgressBar *_progress_bar = nullptr;
HashMap<String, TreeItem *> _file_items;
HashMap<TreeItem *, Result> _result_items;
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index 9121ca09b4..6f1eef62de 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -1716,18 +1716,6 @@ void ScriptEditor::_notification(int p_what) {
_test_script_times_on_disk();
_update_modified_scripts_for_external_editor();
} break;
-
- case CanvasItem::NOTIFICATION_VISIBILITY_CHANGED: {
- if (is_visible()) {
- find_in_files_button->show();
- } else {
- if (find_in_files->is_visible_in_tree()) {
- EditorNode::get_bottom_panel()->hide_bottom_panel();
- }
- find_in_files_button->hide();
- }
-
- } break;
}
}
@@ -3776,6 +3764,7 @@ void ScriptEditor::_on_find_in_files_result_selected(const String &fpath, int li
ScriptTextEditor *ste = Object::cast_to<ScriptTextEditor>(_get_current_editor());
if (ste) {
+ EditorInterface::get_singleton()->set_main_screen_editor("Script");
ste->goto_line_selection(line_number, begin, end);
}
}
@@ -3790,6 +3779,7 @@ void ScriptEditor::_on_find_in_files_result_selected(const String &fpath, int li
ScriptTextEditor *ste = Object::cast_to<ScriptTextEditor>(_get_current_editor());
if (ste) {
+ EditorInterface::get_singleton()->set_main_screen_editor("Script");
ste->goto_line_selection(line_number - 1, begin, end);
}
return;
@@ -3823,6 +3813,13 @@ void ScriptEditor::_start_find_in_files(bool with_replace) {
find_in_files->set_replace_text(find_in_files_dialog->get_replace_text());
find_in_files->start_search();
+ if (find_in_files_button->get_index() != find_in_files_button->get_parent()->get_child_count()) {
+ find_in_files_button->get_parent()->move_child(find_in_files_button, -1);
+ }
+ if (!find_in_files_button->is_visible()) {
+ find_in_files_button->show();
+ }
+
EditorNode::get_bottom_panel()->make_item_visible(find_in_files);
}
@@ -3849,6 +3846,11 @@ void ScriptEditor::_set_zoom_factor(float p_zoom_factor) {
}
}
+void ScriptEditor::_on_find_in_files_close_button_clicked() {
+ EditorNode::get_bottom_panel()->hide_bottom_panel();
+ find_in_files_button->hide();
+}
+
void ScriptEditor::_window_changed(bool p_visible) {
make_floating->set_visible(!p_visible);
is_floating = p_visible;
@@ -4203,6 +4205,7 @@ ScriptEditor::ScriptEditor(WindowWrapper *p_wrapper) {
find_in_files->set_custom_minimum_size(Size2(0, 200) * EDSCALE);
find_in_files->connect(FindInFilesPanel::SIGNAL_RESULT_SELECTED, callable_mp(this, &ScriptEditor::_on_find_in_files_result_selected));
find_in_files->connect(FindInFilesPanel::SIGNAL_FILES_MODIFIED, callable_mp(this, &ScriptEditor::_on_find_in_files_modified_files));
+ find_in_files->connect(FindInFilesPanel::SIGNAL_CLOSE_BUTTON_CLICKED, callable_mp(this, &ScriptEditor::_on_find_in_files_close_button_clicked));
find_in_files->hide();
find_in_files_button->hide();
diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h
index d5c33c73b4..4fff724866 100644
--- a/editor/plugins/script_editor_plugin.h
+++ b/editor/plugins/script_editor_plugin.h
@@ -496,6 +496,7 @@ class ScriptEditor : public PanelContainer {
void _on_find_in_files_result_selected(const String &fpath, int line_number, int begin, int end);
void _start_find_in_files(bool with_replace);
void _on_find_in_files_modified_files(const PackedStringArray &paths);
+ void _on_find_in_files_close_button_clicked();
void _set_zoom_factor(float p_zoom_factor);