summaryrefslogtreecommitdiff
path: root/tools/editor
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2014-03-13 23:14:35 -0300
committerJuan Linietsky <reduzio@gmail.com>2014-03-13 23:14:35 -0300
commit0a717ffee270b3d2761aaae6a42c06d999a5b823 (patch)
treea52dd64a8c76e24f4734f917af3a124f4dea6d4b /tools/editor
parent31ce3c5fd0300aac1e86bced1efc5f9ec94bdb6b (diff)
parent81757d2e977d959e6b0bc26f9fa990417ca91de9 (diff)
Merge branch 'master' of https://github.com/okamstudio/godot
Conflicts: modules/multiscript/register_types.cpp platform/android/java/src/com/android/godot/GodotLib.java
Diffstat (limited to 'tools/editor')
-rw-r--r--tools/editor/editor_node.h2
-rw-r--r--tools/editor/plugins/script_editor_plugin.cpp2
-rw-r--r--tools/editor/property_editor.cpp53
-rw-r--r--tools/editor/property_editor.h2
-rw-r--r--tools/editor/scene_tree_editor.cpp3
5 files changed, 59 insertions, 3 deletions
diff --git a/tools/editor/editor_node.h b/tools/editor/editor_node.h
index 87f17247c3..e35467e788 100644
--- a/tools/editor/editor_node.h
+++ b/tools/editor/editor_node.h
@@ -410,6 +410,8 @@ public:
static void add_editor_plugin(EditorPlugin *p_editor);
static void remove_editor_plugin(EditorPlugin *p_editor);
+ static EditorNode * get_singleton() { return singleton; }
+
void edit_node(Node *p_node);
void edit_resource(const Ref<Resource>& p_resource);
diff --git a/tools/editor/plugins/script_editor_plugin.cpp b/tools/editor/plugins/script_editor_plugin.cpp
index 1a17916394..a01565a046 100644
--- a/tools/editor/plugins/script_editor_plugin.cpp
+++ b/tools/editor/plugins/script_editor_plugin.cpp
@@ -1507,7 +1507,7 @@ ScriptEditorPlugin::ScriptEditorPlugin(EditorNode *p_node) {
EDITOR_DEF("external_editor/use_external_editor",false);
EDITOR_DEF("external_editor/exec_path","");
- EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING,"external_editor/exec_path",PROPERTY_HINT_FILE));
+ EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING,"external_editor/exec_path",PROPERTY_HINT_GLOBAL_FILE));
EDITOR_DEF("external_editor/exec_flags","");
}
diff --git a/tools/editor/property_editor.cpp b/tools/editor/property_editor.cpp
index 6b34e3f555..1cce161d08 100644
--- a/tools/editor/property_editor.cpp
+++ b/tools/editor/property_editor.cpp
@@ -51,7 +51,7 @@ void CustomPropertyEditor::_notification(int p_what) {
VisualServer::get_singleton()->canvas_item_add_rect(ci, Rect2( 10,10,60, get_size().height-20 ), v );
}*/
- }
+ }
}
@@ -1397,6 +1397,53 @@ void CustomPropertyEditor::_modified(String p_string) {
updating=false;
}
+void CustomPropertyEditor::_focus_enter() {
+ switch(type) {
+ case Variant::REAL:
+ case Variant::STRING:
+ case Variant::VECTOR2:
+ case Variant::RECT2:
+ case Variant::VECTOR3:
+ case Variant::PLANE:
+ case Variant::QUAT:
+ case Variant::_AABB:
+ case Variant::MATRIX32:
+ case Variant::MATRIX3:
+ case Variant::TRANSFORM: {
+ for (int i=0;i<MAX_VALUE_EDITORS;++i) {
+ if (value_editor[i]->has_focus()) {
+ value_editor[i]->select_all();
+ break;
+ }
+ }
+ } break;
+ default: {}
+ }
+
+}
+
+void CustomPropertyEditor::_focus_exit() {
+ switch(type) {
+ case Variant::REAL:
+ case Variant::STRING:
+ case Variant::VECTOR2:
+ case Variant::RECT2:
+ case Variant::VECTOR3:
+ case Variant::PLANE:
+ case Variant::QUAT:
+ case Variant::_AABB:
+ case Variant::MATRIX32:
+ case Variant::MATRIX3:
+ case Variant::TRANSFORM: {
+ for (int i=0;i<MAX_VALUE_EDITORS;++i) {
+ value_editor[i]->select(0, 0);
+ }
+ } break;
+ default: {}
+ }
+
+}
+
void CustomPropertyEditor::config_action_buttons(const List<String>& p_strings) {
int w=100;
@@ -1456,6 +1503,8 @@ void CustomPropertyEditor::config_value_editors(int p_amount, int p_columns,int
void CustomPropertyEditor::_bind_methods() {
+ ObjectTypeDB::bind_method("_focus_enter", &CustomPropertyEditor::_focus_enter);
+ ObjectTypeDB::bind_method("_focus_exit", &CustomPropertyEditor::_focus_exit);
ObjectTypeDB::bind_method("_modified",&CustomPropertyEditor::_modified);
ObjectTypeDB::bind_method("_scroll_modified",&CustomPropertyEditor::_scroll_modified);
ObjectTypeDB::bind_method("_action_pressed",&CustomPropertyEditor::_action_pressed);
@@ -1487,6 +1536,8 @@ CustomPropertyEditor::CustomPropertyEditor() {
value_editor[i]->hide();
value_label[i]->hide();
value_editor[i]->connect("text_entered", this,"_modified");
+ value_editor[i]->connect("focus_enter", this, "_focus_enter");
+ value_editor[i]->connect("focus_exit", this, "_focus_exit");
}
for(int i=0;i<4;i++) {
diff --git a/tools/editor/property_editor.h b/tools/editor/property_editor.h
index fc0330c25d..7ee14679c1 100644
--- a/tools/editor/property_editor.h
+++ b/tools/editor/property_editor.h
@@ -105,6 +105,8 @@ class CustomPropertyEditor : public Popup {
void _file_selected(String p_file);
void _scroll_modified(double p_value);
void _modified(String p_string);
+ void _focus_enter();
+ void _focus_exit();
void _action_pressed(int p_which);
void _type_create_selected(int p_idx);
diff --git a/tools/editor/scene_tree_editor.cpp b/tools/editor/scene_tree_editor.cpp
index e2ae897fe9..162475cb9f 100644
--- a/tools/editor/scene_tree_editor.cpp
+++ b/tools/editor/scene_tree_editor.cpp
@@ -715,7 +715,8 @@ void SceneTreeDialog::_cancel() {
void SceneTreeDialog::_select() {
if (tree->get_selected()) {
- emit_signal("selected",tree->get_selected()->get_path());
+ Node *scene = EditorNode::get_singleton()->get_edited_scene();
+ emit_signal("selected","/root/" + scene->get_parent()->get_path_to(tree->get_selected()));
hide();
}
}