summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2016-09-10 17:34:27 -0300
committerJuan Linietsky <reduzio@gmail.com>2016-09-10 17:34:27 -0300
commit65b93d177e334aaa11db9c6cf9350d5280a76afe (patch)
tree69af708253e8d5d6803ad11486bf9880e1577d23
parent2da3aaefc2509408284d77b01349231e6965ef20 (diff)
-Added bindings to the resource filesystem for editor
-Added set_child_rect, which was unavailable for script
-rw-r--r--doc/base/classes.xml197
-rw-r--r--scene/gui/dialogs.cpp1
-rw-r--r--tools/editor/editor_file_system.cpp18
-rw-r--r--tools/editor/editor_node.cpp3
-rw-r--r--tools/editor/editor_plugin.cpp5
-rw-r--r--tools/editor/editor_plugin.h2
-rw-r--r--tools/editor/plugins/spatial_editor_plugin.cpp2
7 files changed, 222 insertions, 6 deletions
diff --git a/doc/base/classes.xml b/doc/base/classes.xml
index 095614e3ce..eb8c6eea2b 100644
--- a/doc/base/classes.xml
+++ b/doc/base/classes.xml
@@ -2221,6 +2221,12 @@
Register a [LineEdit] in the dialog. When the enter key is pressed, the dialog will be accepted.
</description>
</method>
+ <method name="set_child_rect">
+ <argument index="0" name="child" type="Control">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="set_hide_on_ok">
<argument index="0" name="enabled" type="bool">
</argument>
@@ -11261,6 +11267,184 @@
</constant>
</constants>
</class>
+<class name="EditorFileSystem" inherits="Node" category="Core">
+ <brief_description>
+ Resource filesystem, as the editor sees it.
+ </brief_description>
+ <description>
+ This object holds information of all resources in the filesystem, their types, etc.
+ </description>
+ <methods>
+ <method name="get_file_type" qualifiers="const">
+ <return type="String">
+ </return>
+ <argument index="0" name="path" type="String">
+ </argument>
+ <description>
+ Get the type of the file, given the full path.
+ </description>
+ </method>
+ <method name="get_filesystem">
+ <return type="EditorFileSystemDirectory">
+ </return>
+ <description>
+ Get the root directory object.
+ </description>
+ </method>
+ <method name="get_path">
+ <return type="EditorFileSystemDirectory">
+ </return>
+ <argument index="0" name="path" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="get_scanning_progress" qualifiers="const">
+ <return type="float">
+ </return>
+ <description>
+ Return the scan progress for 0 to 1 if the FS is being scanned.
+ </description>
+ </method>
+ <method name="is_scanning" qualifiers="const">
+ <return type="bool">
+ </return>
+ <description>
+ Return true of the filesystem is being scanned.
+ </description>
+ </method>
+ <method name="scan">
+ <description>
+ Scan the filesystem for changes.
+ </description>
+ </method>
+ <method name="scan_sources">
+ <description>
+ Check if the source of any imported resource changed.
+ </description>
+ </method>
+ <method name="update_file">
+ <argument index="0" name="path" type="String">
+ </argument>
+ <description>
+ Update a file information. Call this if an external program (not Godot) modified the file.
+ </description>
+ </method>
+ </methods>
+ <signals>
+ <signal name="filesystem_changed">
+ <description>
+ Emitted if the filesystem changed.
+ </description>
+ </signal>
+ <signal name="sources_changed">
+ <argument index="0" name="exist" type="bool">
+ </argument>
+ <description>
+ Emitted if the source of any imported file changed.
+ </description>
+ </signal>
+ </signals>
+ <constants>
+ </constants>
+</class>
+<class name="EditorFileSystemDirectory" inherits="Object" category="Core">
+ <brief_description>
+ A diretory for the resource filesystem.
+ </brief_description>
+ <description>
+ </description>
+ <methods>
+ <method name="find_dir_index" qualifiers="const">
+ <return type="int">
+ </return>
+ <argument index="0" name="name" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="find_file_index" qualifiers="const">
+ <return type="int">
+ </return>
+ <argument index="0" name="name" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="get_file" qualifiers="const">
+ <return type="String">
+ </return>
+ <argument index="0" name="idx" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="get_file_count" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_file_path" qualifiers="const">
+ <return type="String">
+ </return>
+ <argument index="0" name="idx" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="get_file_type" qualifiers="const">
+ <return type="String">
+ </return>
+ <argument index="0" name="idx" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="get_name">
+ <return type="String">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_parent">
+ <return type="EditorFileSystemDirectory">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_path" qualifiers="const">
+ <return type="String">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_subdir">
+ <return type="Object">
+ </return>
+ <argument index="0" name="idx" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="get_subdir_count" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="is_missing_sources" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="idx" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ </methods>
+ <constants>
+ </constants>
+</class>
<class name="EditorImportPlugin" inherits="Reference" category="Core">
<brief_description>
Import plugin for editor
@@ -11467,7 +11651,7 @@
<argument index="1" name="event" type="InputEvent">
</argument>
<description>
- If your plugin is active (because handles() returned true to the object), any input interaction with the 2D canvas editor will be first forwarded here. The canvas transform (containing zoom and offset to transform to edited world coordinates) is provided, but the input supplied is in untransformed coordinates to the canvas editor. Return true if you want to eat this event and not pass it to the canvas editor.
+ If your plugin is active (because handles() returned true to the object), any input interaction with the 2D canvas editor will be first forwarded here. The canvas transform (containing zoom and offset to transform to edited world coordinates) is provided, but the input supplied is in untransformed coordinates to the canvas editor. Return true if you want to eat this event and not pass it to the canvas editor.
</description>
</method>
<method name="forward_draw_over_canvas" qualifiers="virtual">
@@ -11476,7 +11660,7 @@
<argument index="1" name="canvas" type="Control">
</argument>
<description>
- This function is called every time the 2D canvas editor draws (which overlays over the edited scene). Drawing over the supplied control will draw over the edited scene. To convert from control coordinates to edited scene coordinates (including zoom and offset), a transform is also provided. If you require this control to be redraw, call [method update_canvas]().
+ This function is called every time the 2D canvas editor draws (which overlays over the edited scene). Drawing over the supplied control will draw over the edited scene. To convert from control coordinates to edited scene coordinates (including zoom and offset), a transform is also provided. If you require this control to be redraw, call [method update_canvas]().
</description>
</method>
<method name="forward_spatial_input_event" qualifiers="virtual">
@@ -11520,6 +11704,13 @@
Get the name of the editor plugin. For main scren plugins this is what will appear in the selector (which by default is 2D, 3D, Script).
</description>
</method>
+ <method name="get_resource_filesystem">
+ <return type="EditorFileSystem">
+ </return>
+ <description>
+ Get the filesystem cache for all resources in the project.
+ </description>
+ </method>
<method name="get_resource_previewer">
<return type="EditorResourcePreview">
</return>
@@ -11649,7 +11840,7 @@
</method>
<method name="update_canvas">
<description>
- Updates the control used to draw the edited scene over the 2D canvas. This is used together with [method forward_canvas_input_event]().
+ Updates the control used to draw the edited scene over the 2D canvas. This is used together with [method forward_canvas_input_event]().
</description>
</method>
</methods>
diff --git a/scene/gui/dialogs.cpp b/scene/gui/dialogs.cpp
index 93e46da82b..15ff334c92 100644
--- a/scene/gui/dialogs.cpp
+++ b/scene/gui/dialogs.cpp
@@ -368,6 +368,7 @@ void AcceptDialog::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_custom_action"),&AcceptDialog::_custom_action);
ObjectTypeDB::bind_method(_MD("set_text","text"),&AcceptDialog::set_text);
ObjectTypeDB::bind_method(_MD("get_text"),&AcceptDialog::get_text);
+ ObjectTypeDB::bind_method(_MD("set_child_rect","child:Control"),&AcceptDialog::set_child_rect);
ADD_SIGNAL( MethodInfo("confirmed") );
ADD_SIGNAL( MethodInfo("custom_action",PropertyInfo(Variant::STRING,"action")) );
diff --git a/tools/editor/editor_file_system.cpp b/tools/editor/editor_file_system.cpp
index 582b9e2490..be1af16576 100644
--- a/tools/editor/editor_file_system.cpp
+++ b/tools/editor/editor_file_system.cpp
@@ -208,10 +208,14 @@ void EditorFileSystemDirectory::_bind_methods() {
ObjectTypeDB::bind_method(_MD("get_file_count"),&EditorFileSystemDirectory::get_file_count);
ObjectTypeDB::bind_method(_MD("get_file","idx"),&EditorFileSystemDirectory::get_file);
ObjectTypeDB::bind_method(_MD("get_file_path","idx"),&EditorFileSystemDirectory::get_file_path);
- ObjectTypeDB::bind_method(_MD("get_file_types","idx"),&EditorFileSystemDirectory::get_file_type);
+ ObjectTypeDB::bind_method(_MD("get_file_type","idx"),&EditorFileSystemDirectory::get_file_type);
ObjectTypeDB::bind_method(_MD("is_missing_sources","idx"),&EditorFileSystemDirectory::is_missing_sources);
ObjectTypeDB::bind_method(_MD("get_name"),&EditorFileSystemDirectory::get_name);
- ObjectTypeDB::bind_method(_MD("get_parent"),&EditorFileSystemDirectory::get_parent);
+ ObjectTypeDB::bind_method(_MD("get_path"),&EditorFileSystemDirectory::get_path);
+ ObjectTypeDB::bind_method(_MD("get_parent:EditorFileSystemDirectory"),&EditorFileSystemDirectory::get_parent);
+ ObjectTypeDB::bind_method(_MD("find_file_index","name"),&EditorFileSystemDirectory::find_file_index);
+ ObjectTypeDB::bind_method(_MD("find_dir_index","name"),&EditorFileSystemDirectory::find_dir_index);
+
}
@@ -1341,6 +1345,16 @@ void EditorFileSystem::update_file(const String& p_file) {
void EditorFileSystem::_bind_methods() {
+
+ ObjectTypeDB::bind_method(_MD("get_filesystem:EditorFileSystemDirectory"),&EditorFileSystem::get_filesystem);
+ ObjectTypeDB::bind_method(_MD("is_scanning"),&EditorFileSystem::is_scanning);
+ ObjectTypeDB::bind_method(_MD("get_scanning_progress"),&EditorFileSystem::get_scanning_progress);
+ ObjectTypeDB::bind_method(_MD("scan"),&EditorFileSystem::scan);
+ ObjectTypeDB::bind_method(_MD("scan_sources"),&EditorFileSystem::scan_sources);
+ ObjectTypeDB::bind_method(_MD("update_file","path"),&EditorFileSystem::update_file);
+ ObjectTypeDB::bind_method(_MD("get_path:EditorFileSystemDirectory","path"),&EditorFileSystem::get_path);
+ ObjectTypeDB::bind_method(_MD("get_file_type","path"),&EditorFileSystem::get_file_type);
+
ADD_SIGNAL( MethodInfo("filesystem_changed") );
ADD_SIGNAL( MethodInfo("sources_changed",PropertyInfo(Variant::BOOL,"exist")) );
diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp
index 9a81d287b2..86b814c610 100644
--- a/tools/editor/editor_node.cpp
+++ b/tools/editor/editor_node.cpp
@@ -4141,6 +4141,9 @@ void EditorNode::register_editor_types() {
ObjectTypeDB::register_type<EditorSpatialGizmo>();
ObjectTypeDB::register_type<EditorResourcePreview>();
ObjectTypeDB::register_type<EditorResourcePreviewGenerator>();
+ ObjectTypeDB::register_type<EditorFileSystem>();
+ ObjectTypeDB::register_type<EditorFileSystemDirectory>();
+
//ObjectTypeDB::register_type<EditorImporter>();
diff --git a/tools/editor/editor_plugin.cpp b/tools/editor/editor_plugin.cpp
index 0cfb9c083c..55f0e52c88 100644
--- a/tools/editor/editor_plugin.cpp
+++ b/tools/editor/editor_plugin.cpp
@@ -320,6 +320,10 @@ void EditorPlugin::inspect_object(Object *p_obj,const String& p_for_property) {
EditorNode::get_singleton()->push_item(p_obj,p_for_property);
}
+EditorFileSystem *EditorPlugin::get_resource_file_system() {
+ return EditorFileSystem::get_singleton();
+}
+
void EditorPlugin::_bind_methods() {
ObjectTypeDB::bind_method(_MD("add_control_to_container","container","control:Control"),&EditorPlugin::add_control_to_container);
@@ -337,6 +341,7 @@ void EditorPlugin::_bind_methods() {
ObjectTypeDB::bind_method(_MD("remove_export_plugin","plugin:EditorExportPlugin"),&EditorPlugin::remove_export_plugin);
ObjectTypeDB::bind_method(_MD("get_resource_previewer:EditorResourcePreview"),&EditorPlugin::get_resource_previewer);
+ ObjectTypeDB::bind_method(_MD("get_resource_filesystem:EditorFileSystem"),&EditorPlugin::get_resource_file_system);
ObjectTypeDB::bind_method(_MD("inspect_object","object","for_property"),&EditorPlugin::inspect_object,DEFVAL(String()));
ObjectTypeDB::bind_method(_MD("update_canvas"),&EditorPlugin::update_canvas);
diff --git a/tools/editor/editor_plugin.h b/tools/editor/editor_plugin.h
index f73fb47cc8..5b944cc27a 100644
--- a/tools/editor/editor_plugin.h
+++ b/tools/editor/editor_plugin.h
@@ -49,6 +49,7 @@ class SpatialEditorGizmo;
class EditorImportPlugin;
class EditorExportPlugin;
class EditorResourcePreview;
+class EditorFileSystem;
class EditorPlugin : public Node {
@@ -139,6 +140,7 @@ public:
//EditorImportExport *get_import_export();
EditorSettings *get_editor_settings();
EditorResourcePreview *get_resource_previewer();
+ EditorFileSystem *get_resource_file_system();
virtual void restore_global_state();
virtual void save_global_state();
diff --git a/tools/editor/plugins/spatial_editor_plugin.cpp b/tools/editor/plugins/spatial_editor_plugin.cpp
index 8076a91a32..9701b8030d 100644
--- a/tools/editor/plugins/spatial_editor_plugin.cpp
+++ b/tools/editor/plugins/spatial_editor_plugin.cpp
@@ -3470,7 +3470,7 @@ void SpatialEditor::_unhandled_key_input(InputEvent p_event) {
return;
#if 0
-//i don't remember this being used
+//i don't remember this being used, why was it here?
{
EditorNode *en = editor;