mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 07:53:26 +00:00
Keep collapsed state for actions when modifying Input Map
Changing the Input Map in Project Settings (adding/removing/renaming actions, reordering, or changing action events) causes the action list Tree to be cleared/repopulated. Updated ActionMapEditor::update_action_list to store which actions were collapsed before clearing, so they can remain collapsed after modifications.
This commit is contained in:
parent
c2202d36c1
commit
f25e6af9bf
1 changed files with 12 additions and 1 deletions
|
@ -423,8 +423,18 @@ void ActionMapEditor::update_action_list(const Vector<ActionInfo> &p_action_info
|
|||
actions_cache = p_action_infos;
|
||||
}
|
||||
|
||||
HashSet<String> collapsed_actions;
|
||||
TreeItem *root = action_tree->get_root();
|
||||
if (root) {
|
||||
for (TreeItem *child = root->get_first_child(); child; child = child->get_next()) {
|
||||
if (child->is_collapsed()) {
|
||||
collapsed_actions.insert(child->get_meta("__name"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
action_tree->clear();
|
||||
TreeItem *root = action_tree->create_item();
|
||||
root = action_tree->create_item();
|
||||
|
||||
for (const ActionInfo &action_info : actions_cache) {
|
||||
const Array events = action_info.action["events"];
|
||||
|
@ -444,6 +454,7 @@ void ActionMapEditor::update_action_list(const Vector<ActionInfo> &p_action_info
|
|||
ERR_FAIL_NULL(action_item);
|
||||
action_item->set_meta("__action", action_info.action);
|
||||
action_item->set_meta("__name", action_info.name);
|
||||
action_item->set_collapsed(collapsed_actions.has(action_info.name));
|
||||
|
||||
// First Column - Action Name
|
||||
action_item->set_auto_translate_mode(0, AUTO_TRANSLATE_MODE_DISABLED);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue