mbrlabs / Lorien

Infinite canvas drawing/whiteboarding app for Windows, Linux and macOS. Made with Godot.
MIT License
5.55k stars 241 forks source link

Sorted keybindings #179

Closed MrApplejuice closed 2 years ago

MrApplejuice commented 2 years ago

Btw, while your'e at at...the list of keybindings becomes pretty big. Can we maybe sort them alphabetically by name? This way all the "Pan" actions would be grouped together for example and stuff is easier to find in general.

Edit: Ah i just see you use an unordered map/dictionary for this. The order is different everytime Lorien is started. Probably a good idea to convert to an array sort it and then build the UI list from that.

Edit: Nevermind it's already an Array built from the InputMap. So it would only need to be sorted.

Originally posted by @mbrlabs in https://github.com/mbrlabs/Lorien/issues/177#issuecomment-1179508344

MrApplejuice commented 2 years ago

@mbrlabs - Originally, I thought to maybe include sections for this purpose and some sort of explicit ordering. I namely think that the keybindings list we keep growing and growing. And looking in my regular IDEs it seems to become very important rather quickly to organize the keybindings, otherwise it takes way too long to find what one wants to bind a key for...

So if we are at it, what do you think of collapsible sections plus explicit ordering? The explicit ordering would be driven through some sort of file (including the section assignments). Something like this:

grafik

That would maybe allow me to also fix the nuisance of the GirdLayout expanding horizontally when adding a lot of keybindings...

MrApplejuice commented 2 years ago

Sidenote: Alternatively, alphabetical sorting of the names is quite easy, of course!

mbrlabs commented 2 years ago

I think it's a good idea, but currently probably a bit overkill since we don't really have a huge number of bindings (compared to the Godot editor for example). I don't think the added complexity of having an explicit order/categories is worth the effort tbh. If the number of actions increase substantially in the future we can think about it, but for now a simple alphabetical ordering is the way to go ;)