... second part: 2nd part ("-Layout.XML") translation
... "Mapping Table generation" provided as a new LTMTool routine (to
avoid duplicate code)
... mapping to HomeWindow::restoreState(bool useDefault) for the LTM
Window type charts added
... metricUnit considered in getting the mapping texts for "unit"
... some more tr() (LTMTool, LTMSetting)
... for Lx/Hx in Time and unit "seconds" translation not working in
constructor, therefore moved to "initialization" for both HR and Power
(similar to the translated metric names) (HrTimeInZone, TimeInZone)
... in RC2 - Windows (name with "umlaut") not displayed in official
build (adjusted to be handled like the one name with umlauts already
defined)
.. can see the total / average or bests for the date range selected
NOTE: Data Table mode is currently a bit broken .. need to revisit it
and fix it up, not just for ALL mode but also for Estimates
.. LTM chart now has a 'use sidebar settings' checkbox
and will display the chart that is selected in the sidebar
.. as the sidebar selection changes the window will plot it
using data for the current date range configured / selected
.. part 3 will now come later to let you manage the charts from
the sidebar menu (it is already in the LTM tool).
.. but the read and write functions are so far out
of date that applying a saved chart causes a crash
.. so we need to fix the read/write functions for charts.xml
.. lots of work to do to clean this up, especially
keeping the presets updated when renaming is done.
.. also need to save away after changes.
.. also need to create a much better default set of
presets taking into account the more recent additions
such as Estimates amd Bests and new metrics
.. aggregator will collect estimates
.. LTM will plot
.. but the model needs to be updated to reflect the intervals
are in seconds not minutes and the y() function is passed
seconds not minutes.
.. added to LTM and updated the default layout on trends view
to include a new 'CP History' chart with W', CP and p-Max
on it.
.. part 3c needs to update to include Damien's model and also
once thats done we need to refactor CPPlot to use the new
PD model classes instead of the code embedded in the class.
.. Now refreshing the model parameters is done and
stored in the athlete class.
.. added the selection of a model estimate to the
LTM chart
.. in part b and c we need to update the LTM chart
to plot the estimates (createCurveData).
.. needed symbol name to be unique as 'Weight' clashed with the
normal ride metadata field.
.. we now add _m to the fieldname to generate a symbol name for
measures.
Fixes#862
Added a few new training stress metrics whilst discussing
and working on a multicomponent view of training stress.
This is all a wip falling out of discussions around stress
metrics beyond the old TSS/BikeScore models.
For now this just includes;
1. Aerobic Training Impact Scoring System on PM/PMC
2. Work (Kj) above/below CP on PM/PMC
3. Aerobic TISS on the Ride Plot
There is lots more to come; specifically around Anaerobic TISS,
looking again at polarised training and personalised training stress
based upon the individual's CP model.
.. mostly in preparation for compatre date ranges
on an LTM chart, but also for plotting lots of
values at once without having too busy a chart.
NOTE: Need to sort out tooltips and optimising the
refresh as well as making it possible for the
user to set the plot height like in AllPlot.
.. show the metric data as a table as well as a chart, its quite
useful to configure a summary table of metrics.
Ironically, the ability to configure the summary page in WKO+ was
one of the things that pissed me off and started me down the road
of extracting data from .wko files. I then found the data I wanted
wasn't even in the files and started developing for GoldenCheetah
.. the rest, as they say, is history.
.. now allows the user to select the type of trend
line for a curve, only two options at present;
* linear (linear regress)
* quadratic (quadratic lsm)
Peak aPower durations now computed and cached;
* updated RideFileCache to work with aPower
* CP curve now allows you to plot aPower
* LTM plot allows you to plot aPower peaks
* DataFilter allows 'best(apower, duration)' function
.. to make sure the v2 LTMSettings
uses the bestSymbol.
Just pushing this (WIP) to make sure
we don't get half baked LTM settings
from people building against the previous
commit.
Update to let users specify a custom duration
to plot on LTM for peak power, vam, wpk etc.
This update is to the LTM chart settings and
the reading/writing of chart settings.
Next update will update LTMWindow/LTMPlot to
retrieve and plot the values from the CPX files.
Note: the values will not plot yet, the next
commit in this series is required.
But saving is an issue !
The presets need to move to the athlete object as they
are in the athlete directory -- we currently have one
per LTM chart, which means they get overwritten on exit.
The definition of curves is rationalised to match the
new design mockups in readiness for introducing user
defined peak durations for power et al.
For now this patch cleans the UX and makes it much
easier to add/edit/remove curves.
Fixes#548
Simplified selecting and managing preset charts
in the LTM chart settings.
Need to now move the 'Add' button to the custom
tab, but that is the next pending update.
There still some assert left in the code, but removed
a fair number of the examples where, its just as easy
to handle the condition gracefully, without crashing.
By 3.1 we will have eradicated assert from the code.
Decoupled classes from MainWindow to reference Context
and Athlete (and introduced a couple of new headers).
We no longer pass around a MainWindow pointer to children
but pass a context instead.
There are still a few pieces left in MainWindow that need
to move to a better place;
* Setting/clearing filter selection
* Working with Intervals
* Adding/Deleting Rides
* Save on Exit
As mentioned previously there are lots of other parts to
this refactor left to do;
* break MainWindow Gui elements into Toolbar and Views
* migrate from RideItem and Ridelist to ActivityCollection
and Activity classes that are not tied into gui elements.
* introduce Application Context and AthleteCollection
Breaking the MainWindow 'god object' into
separate classes for Athlete and Context.
Further updates will need to;
- break MainWindow Gui elements into Toolbar and Views
- migrate from RideItem and Ridelist to ActivityCollection
and Activity classes that are not tied into gui elements.
- introduce Application Context and AthleteCollection
Once these are done we will be in a position to decouple
most classes from mainwindow and also introduce tabbed
athletes.
Update to the histogram plot to now plot long term metrics.
It enables you to plot distribution of say, Intensity Factor
for a season or cycle.
You can select the y-axis metric too, so rather than just
plotting duration you could plot say, TSS accumulated for
different ride intensities.
Fixes#560