.. to support importing rides on download from a
web page, we now support files that are compressed
using gzip or zip.
.. the file name will still need to have the correct
file format encoded in the suffix but will be
deflated before being passed to the readers.
.. for example files downloaded from TrainingPeaks
via their webapp will likely end in .wko.gz.
Tooltip in ‘Ride’ view will now show hundredths due to precision selection.
Fix comparison of headers which simply used ‘contains’ rather than equals and would cause a problem if translation is in effect.
Fix rounding of gear ratio in derived series.
... incomplete class initialization
... duplicate if statements
... typos in objects names (copy&paste) (AllPlot)
... missing else (CPPlot)
... missing DELETEs for objects (only if obvious that object is not used somewhere else)
... copy&paste errors (e.g. ModelPlot)
... small floats instead of integer evaluating to 0
... potential SEGV since pointer is not checked for NULL
... misleading code formatting (hard to read) in *zones.cpp
.. inadvertently committed alongside updates for sport tags.
.. these updates introduced a serious regression for the
ridefile JSON format and backwards compatibility
.. reverts the following commits:
b47cb733a2d432602b35
.. to work with data before or after an interval the
before and after functions have been added to the
user metric program.
.. as an example, to calculate kj of work done
before the interval:
init { work <- 0 }
before { work <- work + (POWER*RECINTSECS); }
value { work/1000 }
.. you can do the same for work done after using
the after function name instead of before.
.. when working with user data and user metrics its often
useful to work with arrays or index into the ride data.
.. a new variable INDEX is available that is the sample
number in the array of samples that make up the ride.
.. you can dereference samples in a ride using the []
operator so POWER[55] is the 55th sample for power.
.. when iterating you should consider the recording interval
so NN <- 1200 / RECINTSECS would set NN to the number of
samples in 20 minutes.
.. you can also use your own arrays: MYARRAY[44] <- 100 will
set the 44th item in MYARRAY to 100.
.. the old vector syntax [ date : date ] has been deprecated
since it is too complex !
.. context menu on xdata editor row/column headings now
adds functions to add/remove rows and columns
.. users can now manually create and maintain XDATA in the
ride editor
.. the UX is a bit naff and needs to be cleaned up; the
visual cues are missing on redo/undo and the performance
is poor since setTabBar is called too frequently. Will
look to fix these nits over the next few days.
Conflicts:
src/FileIO/XDataTableModel.cpp
.. there was a memory leak in RideFile and FitRideFile
.. added a test file with weather data that can be used to
test XDATA processing (it has 10 weather points with
wind, humidity etc).
.. added a new 'XDATA' element for the JsonRideFile and
RideFile classes.
.. this allows ride file readers to extract and load any
time series data that doesn't neccessarily fit into
the usual data points.
.. this was added to support weather data from FIT files
and also to support 3rd party merging data with the
GC supported data.
.. ** IMPORTANT ** the XDATA segment is added at the END
of the JSON format. So older parsers will fail to read
but will have loaded all data already (i.e. they will
fail gracefully enough)
This means files with XDATA can be read by earlier
versions of GC, but the XDATA will be discarded.
Introducing a directory structure to make it a bit less
daunting for new developers and perhaps even old hands.
The main folders all start with an upper character, so src
files are now located in;
* Core - Core data structures
* Gui - Main GUI elements
* Metrics - Models and Metrics
* FileIO - Device and File I/O
* Charts - All the chart types
* Cloud - Working with Web Resources
* Train - Anything Train View specific
* ANT - Our ANT+ Stack
* Resources - Images, Translations, Web etc
Apologies to anyone who needs to merge across this update.