summaryrefslogtreecommitdiff
path: root/editor/inspector_dock.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/inspector_dock.cpp')
-rw-r--r--editor/inspector_dock.cpp36
1 files changed, 25 insertions, 11 deletions
diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp
index 04ddf3552b..59d0b92ba0 100644
--- a/editor/inspector_dock.cpp
+++ b/editor/inspector_dock.cpp
@@ -204,11 +204,24 @@ void InspectorDock::_load_resource(const String &p_type) {
load_resource_dialog->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper());
}
+ const Vector<String> textfile_ext = ((String)(EditorSettings::get_singleton()->get("docks/filesystem/textfile_extensions"))).split(",", false);
+ for (int i = 0; i < textfile_ext.size(); i++) {
+ load_resource_dialog->add_filter("*." + textfile_ext[i] + " ; " + textfile_ext[i].to_upper());
+ }
+
load_resource_dialog->popup_file_dialog();
}
void InspectorDock::_resource_file_selected(String p_file) {
- RES res = ResourceLoader::load(p_file);
+ RES res;
+ if (ResourceLoader::exists(p_file, "")) {
+ res = ResourceLoader::load(p_file);
+ } else {
+ const Vector<String> textfile_ext = ((String)(EditorSettings::get_singleton()->get("docks/filesystem/textfile_extensions"))).split(",", false);
+ if (textfile_ext.has(p_file.get_extension())) {
+ res = ScriptEditor::get_singleton()->open_file(p_file);
+ }
+ }
if (res.is_null()) {
warning_dialog->set_text(TTR("Failed to load resource."));
@@ -370,7 +383,7 @@ void InspectorDock::_menu_expandall() {
}
void InspectorDock::_property_keyed(const String &p_keyed, const Variant &p_value, bool p_advance) {
- AnimationPlayerEditor::singleton->get_track_editor()->insert_value_key(p_keyed, p_value, p_advance);
+ AnimationPlayerEditor::get_singleton()->get_track_editor()->insert_value_key(p_keyed, p_value, p_advance);
}
void InspectorDock::_transform_keyed(Object *sp, const String &p_sub, const Transform3D &p_key) {
@@ -378,7 +391,7 @@ void InspectorDock::_transform_keyed(Object *sp, const String &p_sub, const Tran
if (!s) {
return;
}
- AnimationPlayerEditor::singleton->get_track_editor()->insert_transform_key(s, p_sub, p_key);
+ AnimationPlayerEditor::get_singleton()->get_track_editor()->insert_transform_key(s, p_sub, p_key);
}
void InspectorDock::_warning_pressed() {
@@ -469,18 +482,19 @@ void InspectorDock::update(Object *p_object) {
const bool is_object = p_object != nullptr;
const bool is_resource = is_object && p_object->is_class("Resource");
+ const bool is_text_file = is_object && p_object->is_class("TextFile");
const bool is_node = is_object && p_object->is_class("Node");
- object_menu->set_disabled(!is_object);
- search->set_editable(is_object);
- resource_save_button->set_disabled(!is_resource);
- open_docs_button->set_disabled(!is_resource && !is_node);
+ object_menu->set_disabled(!is_object || is_text_file);
+ search->set_editable(is_object && !is_text_file);
+ resource_save_button->set_disabled(!is_resource || is_text_file);
+ open_docs_button->set_disabled(is_text_file || (!is_resource && !is_node));
PopupMenu *resource_extra_popup = resource_extra_button->get_popup();
- resource_extra_popup->set_item_disabled(resource_extra_popup->get_item_index(RESOURCE_COPY), !is_resource);
- resource_extra_popup->set_item_disabled(resource_extra_popup->get_item_index(RESOURCE_MAKE_BUILT_IN), !is_resource);
+ resource_extra_popup->set_item_disabled(resource_extra_popup->get_item_index(RESOURCE_COPY), !is_resource || is_text_file);
+ resource_extra_popup->set_item_disabled(resource_extra_popup->get_item_index(RESOURCE_MAKE_BUILT_IN), !is_resource || is_text_file);
- if (!is_object) {
+ if (!is_object || is_text_file) {
warning->hide();
editor_path->clear_path();
return;
@@ -531,7 +545,7 @@ void InspectorDock::go_back() {
void InspectorDock::update_keying() {
bool valid = false;
- if (AnimationPlayerEditor::singleton->get_track_editor()->has_keying()) {
+ if (AnimationPlayerEditor::get_singleton()->get_track_editor()->has_keying()) {
EditorHistory *editor_history = EditorNode::get_singleton()->get_editor_history();
if (editor_history->get_path_size() >= 1) {
Object *obj = ObjectDB::get_instance(editor_history->get_path_object(0));