Added a feature in testing to have a generator instead of passing a
giant list. it looks like it significantly speeds up the processing.
Merge branch 'master' into testing
Added a ThreadPoolExecutor script that emulates the functionality of the
Python 3.x module. Also added a SettingsManager that reads and writes
from/to configuration files in order to persist settings/preferences. The
ThreadPoolExecutor and SettingsManager are not fully in use yet.
Added more functionality to correctly shut down the different threads.
The GUI now uses the executor and profiles.
Finished migrating from settings.py to SettingsManager with ConfigParser
Finally fixed all ways of exiting the app so that the ThreadPoolExecutor
shuts down. This includes the control-c method and the default Mac OSX
command-q method, both of which required me to override the
Tkinter.CallWrapper class with my own custom version which catches
exceptions and properly shuts down the ThreadPoolExecutor
Made it so the profiler button only appears when the option is set.
Made textbox.appendData() autoscroll to the bottom of the textbox. This
makes the debug window (and in the future the chat box) autoscroll as
expected. This will need to be reworked a bit so that if people are
scrolling they don't get annoyed by an autojump. For now, it's fine
though. On another note, I'm thinking of reworking the auto scrolling to
insert larger amounts of data, less frequently. Perhaps something like,
if you reach 3/4 of the way through, insert TCL_BUFFER_SIZE more lines.
or something like that. Bottom line is the performance is kinda shitty
on my older laptop and I'd like it to be better....