Expose FileSystemDock to the scripting API and fixed signals

Fixed FileSystemDock's `file_removed` and `folder_removed` signals not being
emitted because the emitted was using the wrong signal name.
This commit is contained in:
Ignacio Etcheverry 2020-03-17 01:40:15 +01:00
parent 989a223c5a
commit fe0b783e70
5 changed files with 17 additions and 8 deletions

View File

@ -3612,6 +3612,7 @@ void EditorNode::register_editor_types() {
ClassDB::register_class<ScriptCreateDialog>();
ClassDB::register_class<EditorFeatureProfile>();
ClassDB::register_class<EditorSpinSlider>();
ClassDB::register_virtual_class<FileSystemDock>();
// FIXME: Is this stuff obsolete, or should it be ported to new APIs?
ClassDB::register_class<EditorScenePostImport>();

View File

@ -226,6 +226,10 @@ EditorFileSystem *EditorInterface::get_resource_file_system() {
return EditorFileSystem::get_singleton();
}
FileSystemDock *EditorInterface::get_file_system_dock() {
return EditorNode::get_singleton()->get_filesystem_dock();
}
EditorSelection *EditorInterface::get_selection() {
return EditorNode::get_singleton()->get_editor_selection();
}
@ -295,6 +299,7 @@ void EditorInterface::_bind_methods() {
ClassDB::bind_method(D_METHOD("select_file", "file"), &EditorInterface::select_file);
ClassDB::bind_method(D_METHOD("get_selected_path"), &EditorInterface::get_selected_path);
ClassDB::bind_method(D_METHOD("get_current_path"), &EditorInterface::get_current_path);
ClassDB::bind_method(D_METHOD("get_file_system_dock"), &EditorInterface::get_file_system_dock);
ClassDB::bind_method(D_METHOD("set_plugin_enabled", "plugin", "enabled"), &EditorInterface::set_plugin_enabled);
ClassDB::bind_method(D_METHOD("is_plugin_enabled", "plugin"), &EditorInterface::is_plugin_enabled);

View File

@ -53,6 +53,7 @@ class EditorSpatialGizmoPlugin;
class EditorResourcePreview;
class EditorFileSystem;
class EditorToolAddons;
class FileSystemDock;
class ScriptEditor;
class EditorInterface : public Node {
@ -88,6 +89,8 @@ public:
EditorResourcePreview *get_resource_previewer();
EditorFileSystem *get_resource_file_system();
FileSystemDock *get_file_system_dock();
Control *get_base_control();
void set_plugin_enabled(const String &p_plugin, bool p_enabled);

View File

@ -1287,12 +1287,12 @@ void FileSystemDock::_make_scene_confirm() {
editor->get_editor_data().set_scene_path(idx, scene_name);
}
void FileSystemDock::_file_deleted(String p_file) {
emit_signal("file_deleted", p_file);
void FileSystemDock::_file_removed(String p_file) {
emit_signal("file_removed", p_file);
}
void FileSystemDock::_folder_deleted(String p_folder) {
emit_signal("folder_deleted", p_folder);
void FileSystemDock::_folder_removed(String p_folder) {
emit_signal("folder_removed", p_folder);
}
void FileSystemDock::_rename_operation_confirm() {
@ -2613,8 +2613,8 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) {
add_child(owners_editor);
remove_dialog = memnew(DependencyRemoveDialog);
remove_dialog->connect("file_removed", callable_mp(this, &FileSystemDock::_file_deleted));
remove_dialog->connect("folder_removed", callable_mp(this, &FileSystemDock::_folder_deleted));
remove_dialog->connect("file_removed", callable_mp(this, &FileSystemDock::_file_removed));
remove_dialog->connect("folder_removed", callable_mp(this, &FileSystemDock::_folder_removed));
add_child(remove_dialog);
move_dialog = memnew(EditorDirDialog);

View File

@ -210,8 +210,8 @@ private:
void _update_favorites_list_after_move(const Map<String, String> &p_files_renames, const Map<String, String> &p_folders_renames) const;
void _update_project_settings_after_move(const Map<String, String> &p_renames) const;
void _file_deleted(String p_file);
void _folder_deleted(String p_folder);
void _file_removed(String p_file);
void _folder_removed(String p_folder);
void _files_moved(String p_old_file, String p_new_file);
void _folder_moved(String p_old_folder, String p_new_folder);