You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-13 13:31:48 +00:00
Optimize StringName usage
* Added a new macro SNAME() that constructs and caches a local stringname. * Subsequent usages use the cached version. * Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time. * Replaced all theme usages by this new macro. * Replace all signal emission usages by this new macro. * Replace all call_deferred usages by this new macro. This is part of ongoing work to optimize GUI and the editor.
This commit is contained in:
@@ -61,22 +61,22 @@ VBoxContainer *EditorFileDialog::get_vbox() {
|
||||
void EditorFileDialog::_notification(int p_what) {
|
||||
if (p_what == NOTIFICATION_READY || p_what == NOTIFICATION_THEME_CHANGED || p_what == Control::NOTIFICATION_LAYOUT_DIRECTION_CHANGED || p_what == NOTIFICATION_TRANSLATION_CHANGED) {
|
||||
// Update icons.
|
||||
mode_thumbnails->set_icon(item_list->get_theme_icon("FileThumbnail", "EditorIcons"));
|
||||
mode_list->set_icon(item_list->get_theme_icon("FileList", "EditorIcons"));
|
||||
mode_thumbnails->set_icon(item_list->get_theme_icon(SNAME("FileThumbnail"), SNAME("EditorIcons")));
|
||||
mode_list->set_icon(item_list->get_theme_icon(SNAME("FileList"), SNAME("EditorIcons")));
|
||||
if (is_layout_rtl()) {
|
||||
dir_prev->set_icon(item_list->get_theme_icon("Forward", "EditorIcons"));
|
||||
dir_next->set_icon(item_list->get_theme_icon("Back", "EditorIcons"));
|
||||
dir_prev->set_icon(item_list->get_theme_icon(SNAME("Forward"), SNAME("EditorIcons")));
|
||||
dir_next->set_icon(item_list->get_theme_icon(SNAME("Back"), SNAME("EditorIcons")));
|
||||
} else {
|
||||
dir_prev->set_icon(item_list->get_theme_icon("Back", "EditorIcons"));
|
||||
dir_next->set_icon(item_list->get_theme_icon("Forward", "EditorIcons"));
|
||||
dir_prev->set_icon(item_list->get_theme_icon(SNAME("Back"), SNAME("EditorIcons")));
|
||||
dir_next->set_icon(item_list->get_theme_icon(SNAME("Forward"), SNAME("EditorIcons")));
|
||||
}
|
||||
dir_up->set_icon(item_list->get_theme_icon("ArrowUp", "EditorIcons"));
|
||||
refresh->set_icon(item_list->get_theme_icon("Reload", "EditorIcons"));
|
||||
favorite->set_icon(item_list->get_theme_icon("Favorites", "EditorIcons"));
|
||||
show_hidden->set_icon(item_list->get_theme_icon("GuiVisibilityVisible", "EditorIcons"));
|
||||
dir_up->set_icon(item_list->get_theme_icon(SNAME("ArrowUp"), SNAME("EditorIcons")));
|
||||
refresh->set_icon(item_list->get_theme_icon(SNAME("Reload"), SNAME("EditorIcons")));
|
||||
favorite->set_icon(item_list->get_theme_icon(SNAME("Favorites"), SNAME("EditorIcons")));
|
||||
show_hidden->set_icon(item_list->get_theme_icon(SNAME("GuiVisibilityVisible"), SNAME("EditorIcons")));
|
||||
|
||||
fav_up->set_icon(item_list->get_theme_icon("MoveUp", "EditorIcons"));
|
||||
fav_down->set_icon(item_list->get_theme_icon("MoveDown", "EditorIcons"));
|
||||
fav_up->set_icon(item_list->get_theme_icon(SNAME("MoveUp"), SNAME("EditorIcons")));
|
||||
fav_down->set_icon(item_list->get_theme_icon(SNAME("MoveDown"), SNAME("EditorIcons")));
|
||||
|
||||
} else if (p_what == NOTIFICATION_PROCESS) {
|
||||
if (preview_waiting) {
|
||||
@@ -100,21 +100,21 @@ void EditorFileDialog::_notification(int p_what) {
|
||||
set_display_mode((DisplayMode)EditorSettings::get_singleton()->get("filesystem/file_dialog/display_mode").operator int());
|
||||
|
||||
// Update icons.
|
||||
mode_thumbnails->set_icon(item_list->get_theme_icon("FileThumbnail", "EditorIcons"));
|
||||
mode_list->set_icon(item_list->get_theme_icon("FileList", "EditorIcons"));
|
||||
mode_thumbnails->set_icon(item_list->get_theme_icon(SNAME("FileThumbnail"), SNAME("EditorIcons")));
|
||||
mode_list->set_icon(item_list->get_theme_icon(SNAME("FileList"), SNAME("EditorIcons")));
|
||||
if (is_layout_rtl()) {
|
||||
dir_prev->set_icon(item_list->get_theme_icon("Forward", "EditorIcons"));
|
||||
dir_next->set_icon(item_list->get_theme_icon("Back", "EditorIcons"));
|
||||
dir_prev->set_icon(item_list->get_theme_icon(SNAME("Forward"), SNAME("EditorIcons")));
|
||||
dir_next->set_icon(item_list->get_theme_icon(SNAME("Back"), SNAME("EditorIcons")));
|
||||
} else {
|
||||
dir_prev->set_icon(item_list->get_theme_icon("Back", "EditorIcons"));
|
||||
dir_next->set_icon(item_list->get_theme_icon("Forward", "EditorIcons"));
|
||||
dir_prev->set_icon(item_list->get_theme_icon(SNAME("Back"), SNAME("EditorIcons")));
|
||||
dir_next->set_icon(item_list->get_theme_icon(SNAME("Forward"), SNAME("EditorIcons")));
|
||||
}
|
||||
dir_up->set_icon(item_list->get_theme_icon("ArrowUp", "EditorIcons"));
|
||||
refresh->set_icon(item_list->get_theme_icon("Reload", "EditorIcons"));
|
||||
favorite->set_icon(item_list->get_theme_icon("Favorites", "EditorIcons"));
|
||||
dir_up->set_icon(item_list->get_theme_icon(SNAME("ArrowUp"), SNAME("EditorIcons")));
|
||||
refresh->set_icon(item_list->get_theme_icon(SNAME("Reload"), SNAME("EditorIcons")));
|
||||
favorite->set_icon(item_list->get_theme_icon(SNAME("Favorites"), SNAME("EditorIcons")));
|
||||
|
||||
fav_up->set_icon(item_list->get_theme_icon("MoveUp", "EditorIcons"));
|
||||
fav_down->set_icon(item_list->get_theme_icon("MoveDown", "EditorIcons"));
|
||||
fav_up->set_icon(item_list->get_theme_icon(SNAME("MoveUp"), SNAME("EditorIcons")));
|
||||
fav_down->set_icon(item_list->get_theme_icon(SNAME("MoveDown"), SNAME("EditorIcons")));
|
||||
// DO NOT CALL UPDATE FILE LIST HERE, ALL HUNDREDS OF HIDDEN DIALOGS WILL RESPOND, CALL INVALIDATE INSTEAD
|
||||
invalidate();
|
||||
} else if (p_what == NOTIFICATION_VISIBILITY_CHANGED) {
|
||||
@@ -245,7 +245,7 @@ void EditorFileDialog::_save_confirm_pressed() {
|
||||
String f = dir_access->get_current_dir().plus_file(file->get_text());
|
||||
_save_to_recent();
|
||||
hide();
|
||||
emit_signal("file_selected", f);
|
||||
emit_signal(SNAME("file_selected"), f);
|
||||
}
|
||||
|
||||
void EditorFileDialog::_post_popup() {
|
||||
@@ -279,8 +279,8 @@ void EditorFileDialog::_post_popup() {
|
||||
}
|
||||
|
||||
if (is_visible()) {
|
||||
Ref<Texture2D> folder = item_list->get_theme_icon("folder", "FileDialog");
|
||||
const Color folder_color = item_list->get_theme_color("folder_icon_modulate", "FileDialog");
|
||||
Ref<Texture2D> folder = item_list->get_theme_icon(SNAME("folder"), SNAME("FileDialog"));
|
||||
const Color folder_color = item_list->get_theme_color(SNAME("folder_icon_modulate"), SNAME("FileDialog"));
|
||||
recent->clear();
|
||||
|
||||
bool res = access == ACCESS_RESOURCES;
|
||||
@@ -379,7 +379,7 @@ void EditorFileDialog::_action_pressed() {
|
||||
if (files.size()) {
|
||||
_save_to_recent();
|
||||
hide();
|
||||
emit_signal("files_selected", files);
|
||||
emit_signal(SNAME("files_selected"), files);
|
||||
}
|
||||
|
||||
return;
|
||||
@@ -390,7 +390,7 @@ void EditorFileDialog::_action_pressed() {
|
||||
if ((mode == FILE_MODE_OPEN_ANY || mode == FILE_MODE_OPEN_FILE) && dir_access->file_exists(f)) {
|
||||
_save_to_recent();
|
||||
hide();
|
||||
emit_signal("file_selected", f);
|
||||
emit_signal(SNAME("file_selected"), f);
|
||||
} else if (mode == FILE_MODE_OPEN_ANY || mode == FILE_MODE_OPEN_DIR) {
|
||||
String path = dir_access->get_current_dir();
|
||||
|
||||
@@ -409,7 +409,7 @@ void EditorFileDialog::_action_pressed() {
|
||||
|
||||
_save_to_recent();
|
||||
hide();
|
||||
emit_signal("dir_selected", path);
|
||||
emit_signal(SNAME("dir_selected"), path);
|
||||
}
|
||||
|
||||
if (mode == FILE_MODE_SAVE_FILE) {
|
||||
@@ -474,7 +474,7 @@ void EditorFileDialog::_action_pressed() {
|
||||
} else {
|
||||
_save_to_recent();
|
||||
hide();
|
||||
emit_signal("file_selected", f);
|
||||
emit_signal(SNAME("file_selected"), f);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -563,8 +563,8 @@ void EditorFileDialog::_item_dc_selected(int p_item) {
|
||||
|
||||
if (d["dir"]) {
|
||||
dir_access->change_dir(d["name"]);
|
||||
call_deferred("_update_file_list");
|
||||
call_deferred("_update_dir");
|
||||
call_deferred(SNAME("_update_file_list"));
|
||||
call_deferred(SNAME("_update_dir"));
|
||||
|
||||
_push_history();
|
||||
|
||||
@@ -595,16 +595,16 @@ void EditorFileDialog::_item_list_item_rmb_selected(int p_item, const Vector2 &p
|
||||
}
|
||||
|
||||
if (single_item_selected) {
|
||||
item_menu->add_icon_item(item_list->get_theme_icon("ActionCopy", "EditorIcons"), TTR("Copy Path"), ITEM_MENU_COPY_PATH);
|
||||
item_menu->add_icon_item(item_list->get_theme_icon(SNAME("ActionCopy"), SNAME("EditorIcons")), TTR("Copy Path"), ITEM_MENU_COPY_PATH);
|
||||
}
|
||||
if (allow_delete) {
|
||||
item_menu->add_icon_item(item_list->get_theme_icon("Remove", "EditorIcons"), TTR("Delete"), ITEM_MENU_DELETE, KEY_DELETE);
|
||||
item_menu->add_icon_item(item_list->get_theme_icon(SNAME("Remove"), SNAME("EditorIcons")), TTR("Delete"), ITEM_MENU_DELETE, KEY_DELETE);
|
||||
}
|
||||
if (single_item_selected) {
|
||||
item_menu->add_separator();
|
||||
Dictionary item_meta = item_list->get_item_metadata(p_item);
|
||||
String item_text = item_meta["dir"] ? TTR("Open in File Manager") : TTR("Show in File Manager");
|
||||
item_menu->add_icon_item(item_list->get_theme_icon("Filesystem", "EditorIcons"), item_text, ITEM_MENU_SHOW_IN_EXPLORER);
|
||||
item_menu->add_icon_item(item_list->get_theme_icon(SNAME("Filesystem"), SNAME("EditorIcons")), item_text, ITEM_MENU_SHOW_IN_EXPLORER);
|
||||
}
|
||||
|
||||
if (item_menu->get_item_count() > 0) {
|
||||
@@ -623,11 +623,11 @@ void EditorFileDialog::_item_list_rmb_clicked(const Vector2 &p_pos) {
|
||||
item_menu->set_size(Size2(1, 1));
|
||||
|
||||
if (can_create_dir) {
|
||||
item_menu->add_icon_item(item_list->get_theme_icon("folder", "FileDialog"), TTR("New Folder..."), ITEM_MENU_NEW_FOLDER, KEY_MASK_CMD | KEY_N);
|
||||
item_menu->add_icon_item(item_list->get_theme_icon(SNAME("folder"), SNAME("FileDialog")), TTR("New Folder..."), ITEM_MENU_NEW_FOLDER, KEY_MASK_CMD | KEY_N);
|
||||
}
|
||||
item_menu->add_icon_item(item_list->get_theme_icon("Reload", "EditorIcons"), TTR("Refresh"), ITEM_MENU_REFRESH, KEY_F5);
|
||||
item_menu->add_icon_item(item_list->get_theme_icon(SNAME("Reload"), SNAME("EditorIcons")), TTR("Refresh"), ITEM_MENU_REFRESH, KEY_F5);
|
||||
item_menu->add_separator();
|
||||
item_menu->add_icon_item(item_list->get_theme_icon("Filesystem", "EditorIcons"), TTR("Open in File Manager"), ITEM_MENU_SHOW_IN_EXPLORER);
|
||||
item_menu->add_icon_item(item_list->get_theme_icon(SNAME("Filesystem"), SNAME("EditorIcons")), TTR("Open in File Manager"), ITEM_MENU_SHOW_IN_EXPLORER);
|
||||
|
||||
item_menu->set_position(item_list->get_global_position() + p_pos);
|
||||
item_menu->popup();
|
||||
@@ -731,11 +731,11 @@ void EditorFileDialog::update_file_list() {
|
||||
item_list->set_fixed_icon_size(Size2(thumbnail_size, thumbnail_size));
|
||||
|
||||
if (thumbnail_size < 64) {
|
||||
folder_thumbnail = item_list->get_theme_icon("FolderMediumThumb", "EditorIcons");
|
||||
file_thumbnail = item_list->get_theme_icon("FileMediumThumb", "EditorIcons");
|
||||
folder_thumbnail = item_list->get_theme_icon(SNAME("FolderMediumThumb"), SNAME("EditorIcons"));
|
||||
file_thumbnail = item_list->get_theme_icon(SNAME("FileMediumThumb"), SNAME("EditorIcons"));
|
||||
} else {
|
||||
folder_thumbnail = item_list->get_theme_icon("FolderBigThumb", "EditorIcons");
|
||||
file_thumbnail = item_list->get_theme_icon("FileBigThumb", "EditorIcons");
|
||||
folder_thumbnail = item_list->get_theme_icon(SNAME("FolderBigThumb"), SNAME("EditorIcons"));
|
||||
file_thumbnail = item_list->get_theme_icon(SNAME("FileBigThumb"), SNAME("EditorIcons"));
|
||||
}
|
||||
|
||||
preview_vb->hide();
|
||||
@@ -755,8 +755,8 @@ void EditorFileDialog::update_file_list() {
|
||||
|
||||
dir_access->list_dir_begin();
|
||||
|
||||
Ref<Texture2D> folder = item_list->get_theme_icon("folder", "FileDialog");
|
||||
const Color folder_color = item_list->get_theme_color("folder_icon_modulate", "FileDialog");
|
||||
Ref<Texture2D> folder = item_list->get_theme_icon(SNAME("folder"), SNAME("FileDialog"));
|
||||
const Color folder_color = item_list->get_theme_color(SNAME("folder_icon_modulate"), SNAME("FileDialog"));
|
||||
List<String> files;
|
||||
List<String> dirs;
|
||||
|
||||
@@ -1206,8 +1206,8 @@ void EditorFileDialog::_update_favorites() {
|
||||
bool res = access == ACCESS_RESOURCES;
|
||||
|
||||
String current = get_current_dir();
|
||||
Ref<Texture2D> folder_icon = item_list->get_theme_icon("Folder", "EditorIcons");
|
||||
const Color folder_color = item_list->get_theme_color("folder_icon_modulate", "FileDialog");
|
||||
Ref<Texture2D> folder_icon = item_list->get_theme_icon(SNAME("Folder"), SNAME("EditorIcons"));
|
||||
const Color folder_color = item_list->get_theme_color(SNAME("folder_icon_modulate"), SNAME("FileDialog"));
|
||||
favorites->clear();
|
||||
|
||||
favorite->set_pressed(false);
|
||||
|
||||
Reference in New Issue
Block a user