Project wide groups implementation
Created by: xDGameStudios
This PR implements global groups as requested by #5744 taking into consideration #18861 (closed) and #20416 (closed).
The system ended up to look like the mockups in #20416 (closed)
In the project settings under "Groups" it is possible to:
- create groups (name and description)
- delete groups (this will also remove references to that group in every node in every scene)
- rename groups (this will change the name and fix group references on every node in every scene)
- edit groups description
- groups are auto ordered alphabetically
- You have a confirm notification upon deleting a group
In node groups editor dock it is possible to:
- add node to existent group (checkbox)
- remove node from group (checkbox)
- call the group manager (opens the project settings "Groups" tab)
In code editor you get:
- autocompletion for "add_to_group", "remove_from_group" and "is_in_group"
In the plugin editor it is now possible to:
- add groups (create_group(name, description));
- remove groups (delete_group(name));
NEW addition: groups are now saved as an array of dictionaries to allow for adding new groups related features in the future.