mirror of
https://github.com/godotengine/godot.git
synced 2026-01-03 18:11:19 +03:00
Add and adjust more scroll hints in the editor
This commit is contained in:
@@ -754,10 +754,15 @@ FindInFilesPanel::FindInFilesPanel() {
|
||||
vbc->add_child(hbc);
|
||||
}
|
||||
|
||||
_results_mc = memnew(MarginContainer);
|
||||
_results_mc->set_theme_type_variation("NoBorderHorizontal");
|
||||
_results_mc->set_v_size_flags(SIZE_EXPAND_FILL);
|
||||
vbc->add_child(_results_mc);
|
||||
|
||||
_results_display = memnew(Tree);
|
||||
_results_display->set_accessibility_name(TTRC("Search Results"));
|
||||
_results_display->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED);
|
||||
_results_display->set_v_size_flags(SIZE_EXPAND_FILL);
|
||||
_results_display->set_scroll_hint_mode(Tree::SCROLL_HINT_MODE_BOTH);
|
||||
_results_display->connect(SceneStringName(item_selected), callable_mp(this, &FindInFilesPanel::_on_result_selected));
|
||||
_results_display->connect("item_edited", callable_mp(this, &FindInFilesPanel::_on_item_edited));
|
||||
_results_display->connect("button_clicked", callable_mp(this, &FindInFilesPanel::_on_button_clicked));
|
||||
@@ -768,7 +773,7 @@ FindInFilesPanel::FindInFilesPanel() {
|
||||
_results_display->add_theme_constant_override("inner_item_margin_left", 0);
|
||||
_results_display->add_theme_constant_override("inner_item_margin_right", 0);
|
||||
_results_display->create_item(); // Root
|
||||
vbc->add_child(_results_display);
|
||||
_results_mc->add_child(_results_display);
|
||||
|
||||
{
|
||||
_replace_container = memnew(HBoxContainer);
|
||||
@@ -862,6 +867,22 @@ void FindInFilesPanel::stop_search() {
|
||||
_cancel_button->hide();
|
||||
}
|
||||
|
||||
void FindInFilesPanel::update_layout(EditorDock::DockLayout p_layout) {
|
||||
bool new_floating = (p_layout == EditorDock::DOCK_LAYOUT_FLOATING);
|
||||
if (_floating == new_floating) {
|
||||
return;
|
||||
}
|
||||
_floating = new_floating;
|
||||
|
||||
if (_floating) {
|
||||
_results_mc->set_theme_type_variation("NoBorderHorizontalBottom");
|
||||
_results_display->set_scroll_hint_mode(Tree::SCROLL_HINT_MODE_TOP);
|
||||
} else {
|
||||
_results_mc->set_theme_type_variation("NoBorderHorizontal");
|
||||
_results_display->set_scroll_hint_mode(Tree::SCROLL_HINT_MODE_BOTH);
|
||||
}
|
||||
}
|
||||
|
||||
void FindInFilesPanel::_notification(int p_what) {
|
||||
switch (p_what) {
|
||||
case NOTIFICATION_THEME_CHANGED: {
|
||||
@@ -1419,6 +1440,15 @@ void FindInFilesContainer::_on_find_in_files_close_button_clicked(FindInFilesPan
|
||||
}
|
||||
}
|
||||
|
||||
void FindInFilesContainer::update_layout(EditorDock::DockLayout p_layout) {
|
||||
for (Node *node : _tabs->iterate_children()) {
|
||||
FindInFilesPanel *panel = Object::cast_to<FindInFilesPanel>(node);
|
||||
if (panel) {
|
||||
panel->update_layout(p_layout);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FindInFilesContainer::_on_tab_close_pressed(int p_tab) {
|
||||
FindInFilesPanel *panel = Object::cast_to<FindInFilesPanel>(_tabs->get_tab_control(p_tab));
|
||||
if (panel) {
|
||||
|
||||
@@ -187,6 +187,8 @@ public:
|
||||
void start_search();
|
||||
void stop_search();
|
||||
|
||||
void update_layout(EditorDock::DockLayout p_layout);
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
@@ -244,6 +246,9 @@ private:
|
||||
HBoxContainer *_replace_container = nullptr;
|
||||
LineEdit *_replace_line_edit = nullptr;
|
||||
Button *_replace_all_button = nullptr;
|
||||
|
||||
bool _floating = false;
|
||||
MarginContainer *_results_mc = nullptr;
|
||||
};
|
||||
|
||||
class PopupMenu;
|
||||
@@ -285,6 +290,8 @@ protected:
|
||||
void _on_find_in_files_modified_files(const PackedStringArray &p_paths);
|
||||
void _on_find_in_files_close_button_clicked(FindInFilesPanel *p_panel);
|
||||
|
||||
virtual void update_layout(EditorDock::DockLayout p_layout) override;
|
||||
|
||||
public:
|
||||
FindInFilesContainer();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user