Xorag / BeQuiet

Add-on to suppress talking heads in World of Warcraft
1 stars 1 forks source link

create a config GUI #1

Closed ScottIngram closed 1 year ago

ScottIngram commented 1 year ago

If you're interested, I could use Ace3 to create a configuration panel in the standard Bliz options menu to provide GUI access to what's currently accessible via /bq . If so, let me know and I'll submit a pull request

Xorag commented 1 year ago

Agree that commandline is pretty bad especially for zone input, that being said i didnt want the nightmare of custom input causing issues with parsing/invalid names if users put in wrong case/spacing/apostraphe so not sure if that would be in scope but go for it, its beyond my skillset and willingness to learn

ScottIngram commented 1 year ago

Yep, parsing user input is the worst. But, I was thinking I would wrap the parser in a pcall() which will trap any errors so they don't crash the addon. If an error happens, we put up a message, "hey, that's not right." and make them re-enter it or provide an undo button. I'm actually already working on this for the fun of it.

Xorag commented 1 year ago

currently there shouldnt be a crash if the zone name was wrong the string match would just be false but good luck!

ScottIngram commented 1 year ago

alrighty. I've got a first draft done. Really hope you like it.

I completely skirted the issue of parsing user input by eliminating it entirely. Zones/subzones are toggled by click buttons, so, no possibility of typos etc.

You can see it at https://github.com/ScottIngram/BeQuiet/tree/config-panel

I'm testing and can create a pull request whenever, probably when I'm done testing? Or before, if you want.

Xorag commented 1 year ago

Really cool so far, i think one thing that I'd maybe like to see from a user perspective is the name of the current zone and subzone beside the respective buttons so its clearer what you're adding before you add it, although it is logged in chat so probably not worth the trouble?

I'd also maybe like to tweak some of the strings from "style" to "mode":

"BeQuiet everywhere by default, zones in the list will not be suppressed" "BeQuiet nowhere by default, only zones in the list will be suppressed"

Is it possible to pop-out the list so a user can see the whole thing in one view without scrolling?

One feature that has also been requested is do block only in instances, as in a user can set the mode to "nowhere" by default and despite that we can do a checkbox and throw a check for if the user is currently in_instance, this way they dont need to add each dungeon they do to the blacklist

Xorag commented 1 year ago

if you prefer not to make the functional changes i can probably figure it out after bringing your changes in

ScottIngram commented 1 year ago

Really cool so far, i think one thing that I'd maybe like to see from a user perspective is the name of the current zone and subzone beside the respective buttons so its clearer what you're adding before you add it, although it is logged in chat so probably not worth the trouble?

Done - I put the zone in the button text itself

I'd also maybe like to tweak some of the strings from "style" to "mode":

I like that. Done.

"BeQuiet everywhere by default, zones in the list will not be suppressed" "BeQuiet nowhere by default, only zones in the list will be suppressed"

Ok, done. But, for clarity, instead of just "list" I explicitly said whitelist or blacklist.

Is it possible to pop-out the list so a user can see the whole thing in one view without scrolling?

Yes, good idea... kk figured out how. I've dumped the scrolling panel all together and replaced it with hover text.

One feature that has also been requested is do block only in instances, as in a user can set the mode to "nowhere" by default and despite that we can do a checkbox and throw a check for if the user is currently in_instance, this way they dont need to add each dungeon they do to the blacklist

Ok, I added a config option for it, but, I didn't implement the logic for it, but I put a placeholder in close_head() if you want to tackle it.

Xorag commented 1 year ago

cool i was able to implement it easily on my end, i'm not seeing any issuse with the fundamental functionality so feel free to raise the PR

ScottIngram commented 1 year ago

kk, I made the pull request :-)

Xorag commented 1 year ago

PR merged and i added the functional tweak for instance checking, new version was just approved by curse. appreciate the work on this one and feel free to keep a watch on this repo if/when it inevitably breaks due to a major wow update :)

ScottIngram commented 1 year ago

glad to help!