DiabloRun / DiabloInterface

Diablo 2 Interface for Streamers/Speedrunners
MIT License
121 stars 28 forks source link

Load settings from main window. #16

Closed qhris closed 8 years ago

qhris commented 8 years ago

Quality-of-life improvement: Allow loading settings file from main window context menu.

Example: context->load->Sorceress Hell where Sorceress Hell is the file Sorceress Hell.conf.

The idea is to allow quickly switching configuration when switching characters or run type without having to go through the route of opening up the settings window, locating the save file, etc...

Required features:

feyd commented 8 years ago

I have forked the code and implemented a quick, basic version of this.

context

I am in two minds as to whether it is actually necessary to track history in any complicated way. If you are going for one file per config approach I think it is easier to just provide the context menu with config files found under an application/settings directory. It saves all the hassle of tracking stuff saved to multiple locations.

For a simple application like this, I would lean towards having one config file that contained multiple settings groups rather than multiple files.

Some nice changes to the UI for managing the configs could also make it much easier to work with multiple files.

Zutatensuppe commented 8 years ago

@feyd do u think u can make the code available? i didnt see the changes at github in ur fork. id like to take a look at it, definately like the idea of putting multiple configurations in one setting file (for such a rather simple application). would still like the possibility to have an easily copiable config file at any place though, not just in the application/settings dir (which is rather hidden in user home dir, or do u mean something different?)

feyd commented 8 years ago

I'll try to do a commit later today so you can check it out. I may have started doing a bit of a refactor and adding my twitch bot to it before remembering to commit the basic changes, so need to take a look and tidy it back again!

I made it individual config files now, but its trivial to change it to save them all in one. The advantage of separated is if you wanted to send one individual config to someone for them to import.

I meant a Settings directory under the app install directory (DiabloInterface/Settings basically), keeps it clean and makes it easy to delete all traces of the app by just deleting the whole install directory, no config left around the system. And makes it easy to drop in new files if someone sends you one, just stick it in the folder and restart the app.

Anyway I'll throw it up into my fork and you can look and see, easier to discuss when you have something to play with.

feyd commented 8 years ago

@Zutatensuppe you can grab the multiple_character_config branch from my fork to have a look, It is pretty much working, if not 100% polished, but you will get the idea.

MainWindow:

SettingsWindow:

I had done rather a lot more (made runewords display with a grouping so you can see when a word is completed, added alternate text view for people that cant recognise the runes, added twitch chat for the items, restful service for receiving data) but was watching Teo run while checking my repo and accidentally reset the wrong branch while doing some stashing, so lost a few hours of work that I will have to redo later.

Zutatensuppe commented 8 years ago

@feyd have merged your changes into the develop branch :+1: looks very nice so far ^^ did not use another branch, guess i probably should have tho. had some conflicts but i think everything is there now :bow: .. yes those teo runs!! :dancers: :dash:

One thing ill add is that the old/current config is read and copied to settings folder at first start, so the user is not confused when updating to new version, but thats a rather minor thing ^^

Zutatensuppe commented 8 years ago

implemented since v0.3.2 Prerelease 1.

Not exactly as described in the beginning of the ticket but with the same effect. Thank you @feyd for the input and of course the code :)

feyd commented 8 years ago

@Zutatensuppe god its annoying that they removed the messaging feature on here, as I dont have other contact details for you.

Finally had a little time tonight so I took a couple of hours tonight and knocked out/put back a bunch of stuff. I'll list it here for now, and we can discuss elsewhere/later/whatever....

Chat server interaction now works for items and runes (built in chat server in DI so no need to run two apps on local machine)

image

I added runes/difficulty and the ability to select required/nice to have on them

I added a push service and example client

The code all needs a tidy before you take a look as I literally just threw it together fast from memory from the stuff I had lost before. Need exception handling and a thorough tidy, and its using hardcoded stuff for the chat connection at the moment too!

Zutatensuppe commented 8 years ago

@feyd: Could the chatbot functionality be made into a plugin for DI? we did not rly want to add that functionality directly into the tool, but ur right that running 2 tools is also overhead. not 100 % sure on which way to go. you can contact us on twitch basically (me = https://www.twitch.tv/nc_para_, qhris = https://www.twitch.tv/Quaew). Queaw is building the chatbot, so maybe if u have both worked on that functionality, you can exchange some thoughts? :bow:

Zutatensuppe commented 8 years ago

@feyd @qhris or maybe as a different idea, have the DI data reading stuff as a library and bots/other tools can use that lib? what do u think about that?

and for contact, nice and oldschool, here is an irc: https://webchat.quakenet.org/ /join diablointerface