Remove Quick Filter Files and fix FS search hotkey

The new Quick Filter Files behaviour since 8b47e26 had not been implemented,
so this implements it and makes it an editor hotkey instead of a menu entry.
Fixes #7582.
This commit is contained in:
Rémi Verschelde 2017-01-21 13:07:29 +01:00
parent ee0f53df52
commit c4d6e54e93
5 changed files with 30 additions and 28 deletions

View file

@ -189,6 +189,9 @@ void EditorNode::_unhandled_input(const InputEvent& p_event) {
next_tab = next_tab >= 0 ? next_tab : editor_data.get_edited_scene_count() - 1;
_scene_tab_changed(next_tab);
}
if (ED_IS_SHORTCUT("editor/filter_files", p_event)) {
filesystem_dock->focus_on_filter();
}
switch(p_event.key.scancode) {
@ -2074,14 +2077,6 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
quick_open->popup("Script", true);
quick_open->set_title(TTR("Quick Open Script.."));
} break;
case FILE_QUICK_OPEN_FILE: {
//quick_open->popup("Resource", false, true);
//quick_open->set_title("Quick Search File..");
scenes_dock->focus_on_filter();
} break;
case FILE_RUN_SCRIPT: {
@ -3861,9 +3856,9 @@ void EditorNode::request_instance_scenes(const Vector<String>& p_files) {
scene_tree_dock->instance_scenes(p_files);
}
FileSystemDock *EditorNode::get_scenes_dock() {
FileSystemDock *EditorNode::get_filesystem_dock() {
return scenes_dock;
return filesystem_dock;
}
SceneTreeDock *EditorNode::get_scene_tree_dock() {
@ -5187,7 +5182,7 @@ Variant EditorNode::drag_files_and_dirs(const Vector<String>& p_files, Control *
void EditorNode::_dropped_files(const Vector<String>& p_files,int p_screen) {
String cur_path = scenes_dock->get_current_path();
String cur_path = filesystem_dock->get_current_path();
for(int i=0;i<EditorImportExport::get_singleton()->get_import_plugin_count();i++) {
EditorImportExport::get_singleton()->get_import_plugin(i)->import_from_drop(p_files,cur_path);
}
@ -5860,6 +5855,7 @@ EditorNode::EditorNode() {
ED_SHORTCUT("editor/next_tab", TTR("Next tab"), KEY_MASK_CMD+KEY_TAB);
ED_SHORTCUT("editor/prev_tab", TTR("Previous tab"), KEY_MASK_CMD+KEY_MASK_SHIFT+KEY_TAB);
ED_SHORTCUT("editor/filter_files", TTR("Filter Files.."), KEY_MASK_ALT+KEY_MASK_CMD+KEY_P);
file_menu->set_tooltip(TTR("Operations with scene files."));
@ -5879,7 +5875,6 @@ EditorNode::EditorNode() {
p->add_separator();
p->add_shortcut(ED_SHORTCUT("editor/quick_open_scene",TTR("Quick Open Scene.."),KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_O),FILE_QUICK_OPEN_SCENE);
p->add_shortcut(ED_SHORTCUT("editor/quick_open_script",TTR("Quick Open Script.."),KEY_MASK_ALT+KEY_MASK_CMD+KEY_O),FILE_QUICK_OPEN_SCRIPT);
p->add_shortcut(ED_SHORTCUT("editor/quick_filter_files",TTR("Quick Filter Files.."),KEY_MASK_ALT+KEY_MASK_CMD+KEY_P),FILE_QUICK_OPEN_FILE);
p->add_separator();
PopupMenu *pm_export = memnew(PopupMenu );
@ -6376,21 +6371,21 @@ EditorNode::EditorNode() {
dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(node_dock);
}
scenes_dock = memnew( FileSystemDock(this) );
scenes_dock->set_name(TTR("FileSystem"));
scenes_dock->set_display_mode(int(EditorSettings::get_singleton()->get("docks/filesystem/display_mode")));
filesystem_dock = memnew( FileSystemDock(this) );
filesystem_dock->set_name(TTR("FileSystem"));
filesystem_dock->set_display_mode(int(EditorSettings::get_singleton()->get("docks/filesystem/display_mode")));
if (use_single_dock_column) {
dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(scenes_dock);
dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(filesystem_dock);
left_r_vsplit->hide();
dock_slot[DOCK_SLOT_LEFT_UR]->hide();
dock_slot[DOCK_SLOT_LEFT_BR]->hide();
} else {
dock_slot[DOCK_SLOT_LEFT_UR]->add_child(scenes_dock);
dock_slot[DOCK_SLOT_LEFT_UR]->add_child(filesystem_dock);
}
//prop_pallete->add_child(scenes_dock);
scenes_dock->connect("open",this,"open_request");
scenes_dock->connect("instance",this,"_instance_request");
//prop_pallete->add_child(filesystem_dock);
filesystem_dock->connect("open",this,"open_request");
filesystem_dock->connect("instance",this,"_instance_request");
const String docks_section = "docks";

View file

@ -139,7 +139,6 @@ private:
FILE_OPEN_OLD_SCENE,
FILE_QUICK_OPEN_SCENE,
FILE_QUICK_OPEN_SCRIPT,
FILE_QUICK_OPEN_FILE,
FILE_RUN_SCRIPT,
FILE_OPEN_PREV,
FILE_CLOSE,
@ -280,7 +279,7 @@ private:
PropertyEditor *property_editor;
NodeDock *node_dock;
VBoxContainer *prop_editor_vb;
FileSystemDock *scenes_dock;
FileSystemDock *filesystem_dock;
EditorRunNative *run_native;
HBoxContainer *search_bar;
@ -706,7 +705,7 @@ public:
void request_instance_scene(const String &p_path);
void request_instance_scenes(const Vector<String>& p_files);
FileSystemDock *get_scenes_dock();
FileSystemDock *get_filesystem_dock();
SceneTreeDock *get_scene_tree_dock();
static UndoRedo* get_undo_redo() { return &singleton->editor_data.get_undo_redo(); }

View file

@ -170,7 +170,7 @@ void FileSystemDock::_notification(int p_what) {
_update_tree(); //maybe it finished already
if (EditorFileSystem::get_singleton()->is_scanning()) {
_set_scannig_mode();
_set_scanning_mode();
}
} break;
@ -662,7 +662,7 @@ void FileSystemDock::_fs_changed() {
set_process(false);
}
void FileSystemDock::_set_scannig_mode() {
void FileSystemDock::_set_scanning_mode() {
split_box->hide();
button_hist_prev->set_disabled(true);
@ -1174,7 +1174,7 @@ void FileSystemDock::_search_changed(const String& p_text) {
void FileSystemDock::_rescan() {
_set_scannig_mode();
_set_scanning_mode();
EditorFileSystem::get_singleton()->scan();
}
@ -1186,6 +1186,14 @@ void FileSystemDock::fix_dependencies(const String& p_for_file) {
void FileSystemDock::focus_on_filter() {
if (!search_box->is_visible_in_tree()) {
// Tree mode, switch to files list with search box
tree->hide();
file_list_vb->show();
button_favorite->hide();
}
search_box->grab_focus();
}
void FileSystemDock::set_display_mode(int p_mode) {

View file

@ -153,7 +153,7 @@ private:
void _dir_selected();
void _update_tree();
void _rescan();
void _set_scannig_mode();
void _set_scanning_mode();
void _favorites_pressed();

View file

@ -3437,7 +3437,7 @@ void SpatialEditor::_instance_scene() {
#if 0
EditorNode *en = get_scene()->get_root_node()->cast_to<EditorNode>();
ERR_FAIL_COND(!en);
String path = en->get_scenes_dock()->get_selected_path();
String path = en->get_filesystem_dock()->get_selected_path();
if (path=="") {
set_message(TTR("No scene selected to instance!"));
return;