iRacing Stats App Update

I've been able to get a bunch of work done on my stats app over the last week. Here's a dump from the change log:

  • sync process: improvements to the way the progress bar is updated

  • sync process: improved logging, display % completion of results collection

  • changes to hide / show timing when updating a tab to avoid flickering

  • fixed bug making previous / next buttons on all tabs not work

  • general tab: updated html layout to match updated GUI layout

  • corners per incident graphs now start at 0 like all others

  • fixed crash bug with stats button on all tabs

  • removed a bunch of debug code

  • general tab: series list entry for each car if MC

  • general tab: skip graphs with no content, reformatted general stats

  • fixed bug where All Oval/Road Series menu option displayed when not required

  • refactored messaging between sync thread and main GUI process

  • fixed bug with normal completion of sync

  • only update track and car lists if counts are diff

  • improved aborting sync

  • kill sync threads on close, disable sync button during sync, enable on complete

  • threadify sync process

  • warn user of things that can take a while

  • fixed installer not creating appdata folder

  • fixed main process left running on close of window, added exe version info

  • fixed how multiclass races are detected and fin pos in mc events

  • packaging complete; app installs into program files, user files are in appdata

  • fixed uploading to blogger; moved to new version of google api lib

  • db filename now uses custid

  • new build system, fixed avg fin pos graph for MC events

I'm now able to easily create a user friendly and well polished release version of the application, packaged up with a simple installer. I've done significant testing for fresh installs and brand new users. I'm pretty chuffed with how things are going. I feel like there isn't much more user testing required before I make a version available for wider use. One thing that definitely needs some work is the branding.