|
|
|
|
@ -59,38 +59,6 @@ VBoxContainer *FileDialog::get_vbox() {
|
|
|
|
|
return vbox;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FileDialog::_theme_changed() {
|
|
|
|
|
Color font_color = vbox->get_theme_color(SNAME("font_color"), SNAME("Button"));
|
|
|
|
|
Color font_hover_color = vbox->get_theme_color(SNAME("font_hover_color"), SNAME("Button"));
|
|
|
|
|
Color font_focus_color = vbox->get_theme_color(SNAME("font_focus_color"), SNAME("Button"));
|
|
|
|
|
Color font_pressed_color = vbox->get_theme_color(SNAME("font_pressed_color"), SNAME("Button"));
|
|
|
|
|
|
|
|
|
|
dir_up->add_theme_color_override("icon_normal_color", font_color);
|
|
|
|
|
dir_up->add_theme_color_override("icon_hover_color", font_hover_color);
|
|
|
|
|
dir_up->add_theme_color_override("icon_focus_color", font_focus_color);
|
|
|
|
|
dir_up->add_theme_color_override("icon_pressed_color", font_pressed_color);
|
|
|
|
|
|
|
|
|
|
dir_prev->add_theme_color_override("icon_color_normal", font_color);
|
|
|
|
|
dir_prev->add_theme_color_override("icon_color_hover", font_hover_color);
|
|
|
|
|
dir_prev->add_theme_color_override("icon_focus_color", font_focus_color);
|
|
|
|
|
dir_prev->add_theme_color_override("icon_color_pressed", font_pressed_color);
|
|
|
|
|
|
|
|
|
|
dir_next->add_theme_color_override("icon_color_normal", font_color);
|
|
|
|
|
dir_next->add_theme_color_override("icon_color_hover", font_hover_color);
|
|
|
|
|
dir_next->add_theme_color_override("icon_focus_color", font_focus_color);
|
|
|
|
|
dir_next->add_theme_color_override("icon_color_pressed", font_pressed_color);
|
|
|
|
|
|
|
|
|
|
refresh->add_theme_color_override("icon_normal_color", font_color);
|
|
|
|
|
refresh->add_theme_color_override("icon_hover_color", font_hover_color);
|
|
|
|
|
refresh->add_theme_color_override("icon_focus_color", font_focus_color);
|
|
|
|
|
refresh->add_theme_color_override("icon_pressed_color", font_pressed_color);
|
|
|
|
|
|
|
|
|
|
show_hidden->add_theme_color_override("icon_normal_color", font_color);
|
|
|
|
|
show_hidden->add_theme_color_override("icon_hover_color", font_hover_color);
|
|
|
|
|
show_hidden->add_theme_color_override("icon_focus_color", font_focus_color);
|
|
|
|
|
show_hidden->add_theme_color_override("icon_pressed_color", font_pressed_color);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FileDialog::_notification(int p_what) {
|
|
|
|
|
switch (p_what) {
|
|
|
|
|
case NOTIFICATION_VISIBILITY_CHANGED: {
|
|
|
|
|
@ -99,23 +67,52 @@ void FileDialog::_notification(int p_what) {
|
|
|
|
|
}
|
|
|
|
|
} break;
|
|
|
|
|
|
|
|
|
|
case NOTIFICATION_ENTER_TREE: {
|
|
|
|
|
dir_up->set_icon(vbox->get_theme_icon(SNAME("parent_folder"), SNAME("FileDialog")));
|
|
|
|
|
if (vbox->is_layout_rtl()) {
|
|
|
|
|
dir_prev->set_icon(vbox->get_theme_icon(SNAME("forward_folder"), SNAME("FileDialog")));
|
|
|
|
|
dir_next->set_icon(vbox->get_theme_icon(SNAME("back_folder"), SNAME("FileDialog")));
|
|
|
|
|
} else {
|
|
|
|
|
dir_prev->set_icon(vbox->get_theme_icon(SNAME("back_folder"), SNAME("FileDialog")));
|
|
|
|
|
dir_next->set_icon(vbox->get_theme_icon(SNAME("forward_folder"), SNAME("FileDialog")));
|
|
|
|
|
}
|
|
|
|
|
refresh->set_icon(vbox->get_theme_icon(SNAME("reload"), SNAME("FileDialog")));
|
|
|
|
|
show_hidden->set_icon(vbox->get_theme_icon(SNAME("toggle_hidden"), SNAME("FileDialog")));
|
|
|
|
|
_theme_changed();
|
|
|
|
|
} break;
|
|
|
|
|
|
|
|
|
|
case NOTIFICATION_TRANSLATION_CHANGED: {
|
|
|
|
|
update_filters();
|
|
|
|
|
} break;
|
|
|
|
|
|
|
|
|
|
case NOTIFICATION_THEME_CHANGED: {
|
|
|
|
|
dir_up->set_icon(get_theme_icon(SNAME("parent_folder"), SNAME("FileDialog")));
|
|
|
|
|
if (vbox->is_layout_rtl()) {
|
|
|
|
|
dir_prev->set_icon(get_theme_icon(SNAME("forward_folder"), SNAME("FileDialog")));
|
|
|
|
|
dir_next->set_icon(get_theme_icon(SNAME("back_folder"), SNAME("FileDialog")));
|
|
|
|
|
} else {
|
|
|
|
|
dir_prev->set_icon(get_theme_icon(SNAME("back_folder"), SNAME("FileDialog")));
|
|
|
|
|
dir_next->set_icon(get_theme_icon(SNAME("forward_folder"), SNAME("FileDialog")));
|
|
|
|
|
}
|
|
|
|
|
refresh->set_icon(get_theme_icon(SNAME("reload"), SNAME("FileDialog")));
|
|
|
|
|
show_hidden->set_icon(get_theme_icon(SNAME("toggle_hidden"), SNAME("FileDialog")));
|
|
|
|
|
|
|
|
|
|
Color font_color = get_theme_color(SNAME("font_color"), SNAME("Button"));
|
|
|
|
|
Color font_hover_color = get_theme_color(SNAME("font_hover_color"), SNAME("Button"));
|
|
|
|
|
Color font_focus_color = get_theme_color(SNAME("font_focus_color"), SNAME("Button"));
|
|
|
|
|
Color font_pressed_color = get_theme_color(SNAME("font_pressed_color"), SNAME("Button"));
|
|
|
|
|
|
|
|
|
|
dir_up->add_theme_color_override("icon_normal_color", font_color);
|
|
|
|
|
dir_up->add_theme_color_override("icon_hover_color", font_hover_color);
|
|
|
|
|
dir_up->add_theme_color_override("icon_focus_color", font_focus_color);
|
|
|
|
|
dir_up->add_theme_color_override("icon_pressed_color", font_pressed_color);
|
|
|
|
|
|
|
|
|
|
dir_prev->add_theme_color_override("icon_color_normal", font_color);
|
|
|
|
|
dir_prev->add_theme_color_override("icon_color_hover", font_hover_color);
|
|
|
|
|
dir_prev->add_theme_color_override("icon_focus_color", font_focus_color);
|
|
|
|
|
dir_prev->add_theme_color_override("icon_color_pressed", font_pressed_color);
|
|
|
|
|
|
|
|
|
|
dir_next->add_theme_color_override("icon_color_normal", font_color);
|
|
|
|
|
dir_next->add_theme_color_override("icon_color_hover", font_hover_color);
|
|
|
|
|
dir_next->add_theme_color_override("icon_focus_color", font_focus_color);
|
|
|
|
|
dir_next->add_theme_color_override("icon_color_pressed", font_pressed_color);
|
|
|
|
|
|
|
|
|
|
refresh->add_theme_color_override("icon_normal_color", font_color);
|
|
|
|
|
refresh->add_theme_color_override("icon_hover_color", font_hover_color);
|
|
|
|
|
refresh->add_theme_color_override("icon_focus_color", font_focus_color);
|
|
|
|
|
refresh->add_theme_color_override("icon_pressed_color", font_pressed_color);
|
|
|
|
|
|
|
|
|
|
show_hidden->add_theme_color_override("icon_normal_color", font_color);
|
|
|
|
|
show_hidden->add_theme_color_override("icon_hover_color", font_hover_color);
|
|
|
|
|
show_hidden->add_theme_color_override("icon_focus_color", font_focus_color);
|
|
|
|
|
show_hidden->add_theme_color_override("icon_pressed_color", font_pressed_color);
|
|
|
|
|
} break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -506,10 +503,10 @@ void FileDialog::update_file_list() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TreeItem *root = tree->create_item();
|
|
|
|
|
Ref<Texture2D> folder = vbox->get_theme_icon(SNAME("folder"), SNAME("FileDialog"));
|
|
|
|
|
Ref<Texture2D> file_icon = vbox->get_theme_icon(SNAME("file"), SNAME("FileDialog"));
|
|
|
|
|
const Color folder_color = vbox->get_theme_color(SNAME("folder_icon_modulate"), SNAME("FileDialog"));
|
|
|
|
|
const Color file_color = vbox->get_theme_color(SNAME("file_icon_modulate"), SNAME("FileDialog"));
|
|
|
|
|
Ref<Texture2D> folder = get_theme_icon(SNAME("folder"), SNAME("FileDialog"));
|
|
|
|
|
Ref<Texture2D> file_icon = get_theme_icon(SNAME("file"), SNAME("FileDialog"));
|
|
|
|
|
const Color folder_color = get_theme_color(SNAME("folder_icon_modulate"), SNAME("FileDialog"));
|
|
|
|
|
const Color file_color = get_theme_color(SNAME("file_icon_modulate"), SNAME("FileDialog"));
|
|
|
|
|
List<String> files;
|
|
|
|
|
List<String> dirs;
|
|
|
|
|
|
|
|
|
|
@ -606,7 +603,7 @@ void FileDialog::update_file_list() {
|
|
|
|
|
ti->set_icon_modulate(0, file_color);
|
|
|
|
|
|
|
|
|
|
if (mode == FILE_MODE_OPEN_DIR) {
|
|
|
|
|
ti->set_custom_color(0, vbox->get_theme_color(SNAME("files_disabled"), SNAME("FileDialog")));
|
|
|
|
|
ti->set_custom_color(0, get_theme_color(SNAME("files_disabled"), SNAME("FileDialog")));
|
|
|
|
|
ti->set_selectable(0, false);
|
|
|
|
|
}
|
|
|
|
|
Dictionary d;
|
|
|
|
|
@ -1006,7 +1003,6 @@ FileDialog::FileDialog() {
|
|
|
|
|
|
|
|
|
|
vbox = memnew(VBoxContainer);
|
|
|
|
|
add_child(vbox, false, INTERNAL_MODE_FRONT);
|
|
|
|
|
vbox->connect("theme_changed", callable_mp(this, &FileDialog::_theme_changed));
|
|
|
|
|
|
|
|
|
|
mode = FILE_MODE_SAVE_FILE;
|
|
|
|
|
set_title(TTRC("Save a File"));
|
|
|
|
|
|