blish-hud / Blish-HUD

A Guild Wars 2 overlay with extreme extensibility through compiled modules.
https://blishhud.com
MIT License
328 stars 61 forks source link

Allow User To Define Sorting Order of Displayed Modules #826

Open Hotklou2404 opened 1 year ago

Hotklou2404 commented 1 year ago

Currently, the modules appear to not be organized in any way in the Module Repo and Manage Modules tabs. This can be a bit confusing. I propose that there be some way for the user to define in what way they should be sorted, such as sorting them alphabetically. I can't think of any other sorting methods that you could implement as well though.

For the Module Repo tab, I was thinking that there would be ample space next to the Options button to put a Sorting Options button, which opens a dropdown with new options regarding the sorting order of the displayed modules. Or perhaps you could build these sorting options it into the Options button, or put them in the Overlay Settings tab.

If there aren't any other sorting methods apart from alphabetical that will be added then it might actually not be necessary to make it user-defineable at all and just build alphabetical sorting into the base functionality.

Hotklou2404 commented 1 year ago

With the newest update to Blish HUD, the modules are now alphabetically sorted in Module Repo. It still appears to be random in Manage Modules though.

dlamkins commented 1 year ago

The order in the menu listing on the left side of the window are based on the module load order. Currently, that's just alphabetically based on the modules namespace name (which sometimes are different from their names).

We can consider sorting these alphabetically by their name instead. The current order isn't actually something we enforce, it's just that way because Windows provides us the list of modules in alphabetical order by their filename, so we'll need to implement a way to update the menu item order when a new module is added to the listing.

Tharylia commented 1 week ago

985 Adds alphabetical sorting for the module menu items.