Also immediately emit debug messages to console even before the UI is
initialized.
And present a useful error if the OSCAR data folder can't be created.
The only code change was to move XmlReplayEvent::s_factories into
a local static variable accessed by XmlReplayEvent::factories() to
ensure that it will be initialized before it is used.
Otherwise there is no guarantee in C++11 that global variables
in different source files (translation units) will be initialized
in any particular order.
Checks for updates to OSCAR at startup and profile close.
Also allows user to check with Help/Check for updates.
Updates controlled by versions.xml in www.sleepfiles.com/oscar/versions
This initial commit is designed to change as little existing code as possible.
Once regression tests are in place that can play back previously recorded
data, we can move on to more significant changes.
This uses the miniz library, which is self-contained in a single
.c/.h pair and has an MIT license.
Swapping out the zip library should be fairly straightforward
if ever necessary.
Version number in Windows oscar.exe has first three numbers same as string and fourth as 0
Version number in Windows installer has first three numbers same as string and fourth indicates build type:
0 = release, 100=alpha, 200=beta, 300=gamma, 400=rc
The bash script now adds a #define if the current checkout is
exactly on a tag, and it leaves all #defines empty if building
from a tarball.
The batch file still needs to be updated.
They are stored in two separate locations (Contents/translations
for QT and Contents/Resources/translations) because
QLibraryInfo::location(QLibraryInfo::TranslationsPath) returns
the former only after macdeployqt has run, and returns Qt's
installed location prior to that.
And Contents/Resources/translations is the better location,
so we use it where we can.
This has already exposed many limitations, and possibly some memory trampling. Before this will work as
a true regression test, we'll need to address both of those, so that this produces reliable, reproducible
output.