summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorvolzhs <volzhs@gmail.com>2016-08-23 08:14:04 +0900
committervolzhs <volzhs@gmail.com>2016-08-28 15:18:13 +0900
commit2e5a4cb5ca33576ea81601f949b2e633ff92213c (patch)
treed0b470d0436097e9f129ab4b9689c45a0fbc6f97 /tools
parent2cf781d3c66cbc53739ff91d4608ac979ae17262 (diff)
Show last added action on Input Map and implement InputEvent "=="
Diffstat (limited to 'tools')
-rw-r--r--tools/editor/project_settings.cpp30
-rw-r--r--tools/editor/project_settings.h2
2 files changed, 30 insertions, 2 deletions
diff --git a/tools/editor/project_settings.cpp b/tools/editor/project_settings.cpp
index e8d22143ee..e17b6b83be 100644
--- a/tools/editor/project_settings.cpp
+++ b/tools/editor/project_settings.cpp
@@ -245,7 +245,7 @@ void ProjectSettings::_device_input_add() {
undo_redo->add_undo_method(this,"_settings_changed");
undo_redo->commit_action();
-
+ _show_last_added(ie);
}
@@ -283,7 +283,34 @@ void ProjectSettings::_press_a_key_confirm() {
undo_redo->add_undo_method(this,"_settings_changed");
undo_redo->commit_action();
+ _show_last_added(ie);
+}
+
+void ProjectSettings::_show_last_added(const InputEvent& p_event) {
+ TreeItem *r = input_editor->get_root();
+
+ if (!r)
+ return;
+ r=r->get_children();
+ if (!r)
+ return;
+ bool found = false;
+ while(r){
+ TreeItem *child = r->get_children();
+ while(child){
+ Variant input = child->get_meta("__input");
+ if (p_event==input){
+ child->select(0);
+ found = true;
+ break;
+ }
+ child=child->get_next();
+ }
+ if (found) break;
+ r=r->get_next();
+ }
+ if (found) input_editor->ensure_cursor_is_visible();
}
void ProjectSettings::_wait_for_key(const InputEvent& p_event) {
@@ -543,6 +570,7 @@ void ProjectSettings::_update_actions() {
}
action->add_button(0,get_icon("Remove","EditorIcons"),2);
action->set_metadata(0,i);
+ action->set_meta("__input", ie);
}
}
}
diff --git a/tools/editor/project_settings.h b/tools/editor/project_settings.h
index 46e98f69ad..61ad094d00 100644
--- a/tools/editor/project_settings.h
+++ b/tools/editor/project_settings.h
@@ -111,7 +111,7 @@ class ProjectSettings : public AcceptDialog {
void _action_button_pressed(Object* p_obj, int p_column,int p_id);
void _wait_for_key(const InputEvent& p_event);
void _press_a_key_confirm();
-
+ void _show_last_added(const InputEvent& p_event);
void _settings_prop_edited(const String& p_name);
void _settings_changed();