* Re-uses the 'About {APP}' that was defined because the MacOS version
always had an 'About' bit.
* As a side effect of wanting the copyright string in the popup this is
now defined in config.py, and setup.py has been adjusted to also take
it from there.
* The About popup includes a link to the release notes, contingent on
the git tag existing on github.
* Only one instance of the popup is allowed at once.
* There's still a 'TODO' for moving 'Check for updates' into this
popup.
Addresses issue #509
Where it was in EDMarketConnector.py caused issues because then the
main thread was blocking on the popup when other threads expected it to
be running:
---------------------------------------------------------------------
Exception in thread Journal worker:
Traceback (most recent call last):
File "C:\Users\Athan\AppData\Local\Programs\Python\Python37-32\lib\threading.py", line 926, in _bootstrap_inner
self.run()
File "C:\Users\Athan\AppData\Local\Programs\Python\Python37-32\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\Athan\Documents\Devel\EDMarketConnector-python3\monitor.py", line 273, in worker
self.root.event_generate('<<JournalEvent>>', when="tail")
File "C:\Users\Athan\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1673, in event_generate
self.tk.call(args)
RuntimeError: main thread is not in main loop
---------------------------------------------------------------------
However *now* it pops up before the main UI is running properly at all,
so the EDMC window is likely out of position, and won't be
painted/themed yet.
This is deemed acceptable for a 'once a day at most' popup.
The popup title now has 'EDMC: ' at the start to be sure users know
what it's talking about.
It also has some brief advice about how to disable a plugin.
To allow users to sort out their plugins before EDMC itself moves to
Python 3.x warn them if any of their enabled, non-stock, plugins do not
have a plugin_start3() method.
* If any are found without support there's a popup triggered at the
end of AppWindow initialisation.
* Then the user can check Settings > Plugins to see a list of the
plugins without Python 3.x support.
Another str versus bytes issue. We *do* need the .encode('utf-8') in
this case, else it will assume Windows cp1252 encoding which then can't
encode some characters. So we switch to binary file mode instead.
First pass utilising 'futurize' to do most of the work.
There's an issue with ur'\"' in l10n.py which I'm not sure how to
properly fix.
This now has errors when hitting the 'Update' button.
* Stores disable_autoappupdatecheckingame in settings.
* If 'disable' is active then once you're in-game WinSparkle auto
check for updates is disabled.
* Whatever the state of the option WinSparkle auto updates are
(re-)enabled when you exit the game to Main Menu or fully.
* Using 'Help' > 'Check for updates' manually will still always work.
It has been difficult to test the code fully because it isn't easy to
get WinSparkle's registry data about last update check time set just right
to not check immediately, but to do so some reasonable time after you're
in-game and have confirmed the new option setting isn't easy.
Worst case people won't learn about an update until the next time they
run EDMC.
To allow users to sort out their plugins before EDMC itself moves to
Python 3.x warn them if any of their enabled, non-stock, plugins do not
have a plugin_start3() method.
* If any are found without support there's a popup triggered at the
end of AppWindow initialisation.
* Then the user can check Settings > Plugins to see a list of the
plugins without Python 3.x support.