Fix EditorFileDialog icon scale in list mode
This commit is contained in:
@@ -32,8 +32,10 @@
|
||||
|
||||
#include "core/config/project_settings.h"
|
||||
#include "editor/docks/filesystem_dock.h"
|
||||
#include "editor/editor_string_names.h"
|
||||
#include "editor/file_system/dependency_editor.h"
|
||||
#include "editor/settings/editor_settings.h"
|
||||
#include "editor/themes/editor_scale.h"
|
||||
|
||||
void EditorFileDialog::_item_menu_id_pressed(int p_option) {
|
||||
// Use dependency dialog to delete the entry in the editor, but only for project files.
|
||||
@@ -82,6 +84,10 @@ Color EditorFileDialog::_get_folder_color(const String &p_path) const {
|
||||
return FileSystemDock::get_dir_icon_color(p_path, FileDialog::_get_folder_color(p_path));
|
||||
}
|
||||
|
||||
Vector2i EditorFileDialog::_get_list_mode_icon_size() const {
|
||||
return Vector2i(1, 1) * Math::round(get_theme_constant(SNAME("class_icon_size"), EditorStringName(Editor)) * EDSCALE);
|
||||
}
|
||||
|
||||
void EditorFileDialog::_bind_methods() {
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
ClassDB::bind_method(D_METHOD("add_side_menu", "menu", "title"), &EditorFileDialog::add_side_menu, DEFVAL(""));
|
||||
|
||||
@@ -46,6 +46,7 @@ protected:
|
||||
virtual bool _should_use_native_popup() const override;
|
||||
virtual bool _should_hide_file(const String &p_file) const override;
|
||||
virtual Color _get_folder_color(const String &p_path) const override;
|
||||
virtual Vector2i _get_list_mode_icon_size() const override;
|
||||
|
||||
static void _bind_methods();
|
||||
void _validate_property(PropertyInfo &p_property) const;
|
||||
|
||||
@@ -95,6 +95,10 @@ bool FileDialog::_can_use_native_popup() const {
|
||||
return DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_NATIVE_DIALOG_FILE);
|
||||
}
|
||||
|
||||
Vector2i FileDialog::_get_list_mode_icon_size() const {
|
||||
return theme_cache.file->get_size();
|
||||
}
|
||||
|
||||
void FileDialog::_popup_base(const Rect2i &p_screen_rect) {
|
||||
#ifdef TOOLS_ENABLED
|
||||
if (is_part_of_edited_scene()) {
|
||||
@@ -825,7 +829,7 @@ void FileDialog::update_file_list() {
|
||||
file_list->set_max_columns(1);
|
||||
file_list->set_max_text_lines(1);
|
||||
file_list->set_fixed_column_width(0);
|
||||
file_list->set_fixed_icon_size(theme_cache.file->get_size());
|
||||
file_list->set_fixed_icon_size(_get_list_mode_icon_size());
|
||||
}
|
||||
|
||||
dir_access->list_dir_begin();
|
||||
|
||||
@@ -376,6 +376,7 @@ protected:
|
||||
virtual bool _should_use_native_popup() const;
|
||||
virtual bool _should_hide_file(const String &p_file) const { return false; }
|
||||
virtual Color _get_folder_color(const String &p_path) const { return theme_cache.folder_icon_color; }
|
||||
virtual Vector2i _get_list_mode_icon_size() const;
|
||||
|
||||
virtual void _popup_base(const Rect2i &p_screen_rect = Rect2i()) override;
|
||||
void _clear_changed_status();
|
||||
|
||||
Reference in New Issue
Block a user