summaryrefslogtreecommitdiff
path: root/editor/project_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/project_manager.cpp')
-rw-r--r--editor/project_manager.cpp38
1 files changed, 27 insertions, 11 deletions
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp
index 967cb5a932..2eb0a3a76a 100644
--- a/editor/project_manager.cpp
+++ b/editor/project_manager.cpp
@@ -1884,6 +1884,16 @@ void ProjectManager::_notification(int p_what) {
if (open_templates->is_visible()) {
open_templates->popup_centered();
}
+ real_t size = get_size().x / EDSCALE;
+ asset_library->set_columns(size < 1000 ? 1 : 2);
+ // Adjust names of tabs to fit the new size.
+ if (size < 650) {
+ local_projects_hb->set_name(TTR("Local"));
+ asset_library->set_name(TTR("Asset Library"));
+ } else {
+ local_projects_hb->set_name(TTR("Local Projects"));
+ asset_library->set_name(TTR("Asset Library Projects"));
+ }
} break;
case NOTIFICATION_READY: {
@@ -2095,7 +2105,7 @@ void ProjectManager::_confirm_update_settings() {
void ProjectManager::_open_selected_projects() {
// Show loading text to tell the user that the project manager is busy loading.
// This is especially important for the HTML5 project manager.
- loading_label->set_modulate(Color(1, 1, 1));
+ loading_label->show();
const RBSet<String> &selected_list = _project_list->get_selected_project_keys();
@@ -2567,14 +2577,14 @@ ProjectManager::ProjectManager() {
tabs->set_anchors_and_offsets_preset(Control::PRESET_WIDE);
tabs->connect("tab_changed", callable_mp(this, &ProjectManager::_on_tab_changed));
- HBoxContainer *projects_hb = memnew(HBoxContainer);
- projects_hb->set_name(TTR("Local Projects"));
- tabs->add_child(projects_hb);
+ local_projects_hb = memnew(HBoxContainer);
+ local_projects_hb->set_name(TTR("Local Projects"));
+ tabs->add_child(local_projects_hb);
{
// Projects + search bar
VBoxContainer *search_tree_vb = memnew(VBoxContainer);
- projects_hb->add_child(search_tree_vb);
+ local_projects_hb->add_child(search_tree_vb);
search_tree_vb->set_h_size_flags(Control::SIZE_EXPAND_FILL);
HBoxContainer *hb = memnew(HBoxContainer);
@@ -2592,8 +2602,8 @@ ProjectManager::ProjectManager() {
loading_label->add_theme_font_override("font", get_theme_font(SNAME("bold"), SNAME("EditorFonts")));
loading_label->set_h_size_flags(Control::SIZE_EXPAND_FILL);
hb->add_child(loading_label);
- // Hide the label but make it still take up space. This prevents reflows when showing the label.
- loading_label->set_modulate(Color(0, 0, 0, 0));
+ // The loading label is shown later.
+ loading_label->hide();
Label *sort_label = memnew(Label);
sort_label->set_text(TTR("Sort:"));
@@ -2601,7 +2611,7 @@ ProjectManager::ProjectManager() {
filter_option = memnew(OptionButton);
filter_option->set_clip_text(true);
- filter_option->set_custom_minimum_size(Size2(150 * EDSCALE, 10 * EDSCALE));
+ filter_option->set_h_size_flags(Control::SIZE_EXPAND_FILL);
filter_option->connect("item_selected", callable_mp(this, &ProjectManager::_on_order_option_changed));
hb->add_child(filter_option);
@@ -2630,7 +2640,7 @@ ProjectManager::ProjectManager() {
// Project tab side bar
VBoxContainer *tree_vb = memnew(VBoxContainer);
tree_vb->set_custom_minimum_size(Size2(120, 120));
- projects_hb->add_child(tree_vb);
+ local_projects_hb->add_child(tree_vb);
Button *create = memnew(Button);
create->set_text(TTR("New Project"));
@@ -2727,6 +2737,12 @@ ProjectManager::ProjectManager() {
language_btn->set_icon(get_theme_icon(SNAME("Environment"), SNAME("EditorIcons")));
language_btn->set_focus_mode(Control::FOCUS_NONE);
language_btn->connect("item_selected", callable_mp(this, &ProjectManager::_language_selected));
+#ifdef ANDROID_ENABLED
+ // The language selection dropdown doesn't work on Android (as the setting isn't saved), see GH-60353.
+ // Also, the dropdown it spawns is very tall and can't be scrolled without a hardware mouse.
+ // Hiding the language selection dropdown also leaves more space for the version label to display.
+ language_btn->hide();
+#endif
Vector<String> editor_languages;
List<PropertyInfo> editor_settings_properties;
@@ -2869,8 +2885,8 @@ ProjectManager::ProjectManager() {
SceneTree::get_singleton()->get_root()->connect("files_dropped", callable_mp(this, &ProjectManager::_files_dropped));
- // Define a minimum window size to prevent UI elements from overlapping or being cut off
- DisplayServer::get_singleton()->window_set_min_size(Size2(750, 420) * EDSCALE);
+ // Define a minimum window size to prevent UI elements from overlapping or being cut off.
+ DisplayServer::get_singleton()->window_set_min_size(Size2(520, 350) * EDSCALE);
// Resize the bootsplash window based on Editor display scale EDSCALE.
float scale_factor = MAX(1, EDSCALE);