void EditorFileDialog::_item_dc_selected(int p_item) { int current = p_item; if (current<0 || current>=item_list->get_item_count()) return; Dictionary d=item_list->get_item_metadata(current); if (d["dir"]) { //print_line("change dir: "+String(d["name"])); dir_access->change_dir(d["name"]); if (mode==MODE_OPEN_FILE || mode==MODE_OPEN_FILES || mode==MODE_OPEN_DIR || MODE_OPEN_ANY) file->set_text(""); call_deferred("_update_file_list"); call_deferred("_update_dir"); _push_history(); } else { _action_pressed(); } }
void EditorFileDialog::_go_up() { dir_access->change_dir(".."); update_file_list(); update_dir(); _push_history(); }
void EditorFileDialog::_dir_entered(String p_dir) { dir_access->change_dir(p_dir); file->set_text(""); invalidate(); update_dir(); _push_history(); }
void EditorFileDialog::set_current_dir(const String& p_dir) { dir_access->change_dir(p_dir); update_dir(); invalidate(); _push_history(); }
void EditorFileDialog::_select_drive(int p_idx) { String d = drives->get_item_text(p_idx); dir_access->change_dir(d); file->set_text(""); invalidate(); update_dir(); _push_history(); }
void EditorFileDialog::_recent_selected(int p_idx) { Vector<String> recentd = EditorSettings::get_singleton()->get_recent_dirs(); ERR_FAIL_INDEX(p_idx,recentd.size()); dir_access->change_dir(recent->get_item_metadata(p_idx)); update_file_list(); update_dir(); _push_history(); }
void EditorFileDialog::_favorite_selected(int p_idx) { Vector<String> favorited = EditorSettings::get_singleton()->get_favorite_dirs(); ERR_FAIL_INDEX(p_idx,favorited.size()); dir_access->change_dir(favorited[p_idx]); file->set_text(""); invalidate(); update_dir(); _push_history(); }
void EditorFileDialog::_make_dir_confirm() { Error err = dir_access->make_dir( makedirname->get_text() ); if (err==OK) { dir_access->change_dir(makedirname->get_text()); invalidate(); update_filters(); update_dir(); _push_history(); } else { mkdirerr->popup_centered_minsize(Size2(250,50)); } makedirname->set_text(""); // reset label }
void EditorFileDialog::_post_popup() { ConfirmationDialog::_post_popup(); if (invalidated) { update_file_list(); invalidated=false; } if (mode==MODE_SAVE_FILE) file->grab_focus(); else item_list->grab_focus(); if (is_visible() && get_current_file()!="") _request_single_thumbnail(get_current_dir().plus_file(get_current_file())); if (is_visible()) { Ref<Texture> folder = get_icon("folder","FileDialog"); recent->clear(); bool res = access==ACCESS_RESOURCES; Vector<String> recentd = EditorSettings::get_singleton()->get_recent_dirs(); for(int i=0;i<recentd.size();i++) { bool cres = recentd[i].begins_with("res://"); if (cres!=res) continue; String name = recentd[i]; if (res && name=="res://") { name="/"; } else { name=name.get_file()+"/"; } //print_line("file: "+name); recent->add_item(name,folder); recent->set_item_metadata( recent->get_item_count()-1,recentd[i]); } local_history.clear(); local_history_pos=-1; _push_history(); _update_favorites(); } set_process_unhandled_input(true); }
void EditorFileDialog::_item_dc_selected(int p_item) { int current = p_item; if (current < 0 || current >= item_list->get_item_count()) return; Dictionary d = item_list->get_item_metadata(current); if (d["dir"]) { dir_access->change_dir(d["name"]); call_deferred("_update_file_list"); call_deferred("_update_dir"); _push_history(); } else { _action_pressed(); } }