You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-06 12:20:30 +00:00
-Cleaned up find/replace bar for replace (made selection only default if selection exists), also made buttons look like buttons
-Fixed a bug related to theme propagation, may be able to solve #6443, #6302 and others. Please test.
This commit is contained in:
@@ -356,7 +356,7 @@ void FindReplaceBar::_show_search() {
|
||||
show();
|
||||
search_text->grab_focus();
|
||||
|
||||
if (text_edit->is_selection_active()) {
|
||||
if (text_edit->is_selection_active() && !selection_only->is_pressed()) {
|
||||
search_text->set_text(text_edit->get_selection_text());
|
||||
}
|
||||
|
||||
@@ -376,12 +376,16 @@ void FindReplaceBar::popup_search() {
|
||||
|
||||
void FindReplaceBar::popup_replace() {
|
||||
|
||||
|
||||
if (!replace_hbc->is_visible() || !replace_options_hbc->is_visible()) {
|
||||
replace_text->clear();
|
||||
replace_hbc->show();
|
||||
replace_options_hbc->show();
|
||||
|
||||
}
|
||||
|
||||
selection_only->set_pressed( (text_edit->is_selection_active() && text_edit->get_selection_from_line() < text_edit->get_selection_to_line()) );
|
||||
|
||||
_show_search();
|
||||
}
|
||||
|
||||
@@ -409,6 +413,14 @@ void FindReplaceBar::_search_text_entered(const String& p_text) {
|
||||
search_next();
|
||||
}
|
||||
|
||||
void FindReplaceBar::_replace_text_entered(const String& p_text) {
|
||||
|
||||
if (selection_only->is_pressed() && text_edit->is_selection_active()) {
|
||||
_replace_all();
|
||||
_hide_bar();
|
||||
}
|
||||
}
|
||||
|
||||
String FindReplaceBar::get_search_text() const {
|
||||
|
||||
return search_text->get_text();
|
||||
@@ -452,6 +464,7 @@ void FindReplaceBar::_bind_methods() {
|
||||
ObjectTypeDB::bind_method("_editor_text_changed",&FindReplaceBar::_editor_text_changed);
|
||||
ObjectTypeDB::bind_method("_search_text_changed",&FindReplaceBar::_search_text_changed);
|
||||
ObjectTypeDB::bind_method("_search_text_entered",&FindReplaceBar::_search_text_entered);
|
||||
ObjectTypeDB::bind_method("_replace_text_entered",&FindReplaceBar::_replace_text_entered);
|
||||
ObjectTypeDB::bind_method("_search_current",&FindReplaceBar::search_current);
|
||||
ObjectTypeDB::bind_method("_search_next",&FindReplaceBar::search_next);
|
||||
ObjectTypeDB::bind_method("_search_prev",&FindReplaceBar::search_prev);
|
||||
@@ -497,18 +510,19 @@ FindReplaceBar::FindReplaceBar() {
|
||||
replace_text = memnew(LineEdit);
|
||||
replace_hbc->add_child(replace_text);
|
||||
replace_text->set_custom_minimum_size(Size2(200, 0));
|
||||
replace_text->connect("text_entered",this,"_search_text_entered");
|
||||
replace_text->connect("text_entered",this,"_replace_text_entered");
|
||||
|
||||
replace = memnew(ToolButton);
|
||||
|
||||
replace = memnew(Button);
|
||||
replace_hbc->add_child(replace);
|
||||
replace->set_text(TTR("Replace"));
|
||||
replace->set_focus_mode(FOCUS_NONE);
|
||||
//replace->set_focus_mode(FOCUS_NONE);
|
||||
replace->connect("pressed",this,"_replace_pressed");
|
||||
|
||||
replace_all = memnew(ToolButton);
|
||||
replace_all = memnew(Button);
|
||||
replace_hbc->add_child(replace_all);
|
||||
replace_all->set_text(TTR("Replace All"));
|
||||
replace_all->set_focus_mode(FOCUS_NONE);
|
||||
//replace_all->set_focus_mode(FOCUS_NONE);
|
||||
replace_all->connect("pressed",this,"_replace_all_pressed");
|
||||
|
||||
Control *spacer_split = memnew( Control );
|
||||
@@ -581,8 +595,10 @@ void FindReplaceDialog::popup_search() {
|
||||
|
||||
void FindReplaceDialog::popup_replace() {
|
||||
|
||||
|
||||
set_title(TTR("Replace"));
|
||||
bool do_selection=(text_edit->is_selection_active() && text_edit->get_selection_from_line() < text_edit->get_selection_to_line());
|
||||
|
||||
set_replace_selection_only(do_selection);
|
||||
|
||||
if (!do_selection && text_edit->is_selection_active()) {
|
||||
|
||||
Reference in New Issue
Block a user