.. the with zero option didn't work with polarised zones
and there was a silly bug with the settings being applied
after the setData() call which mean't they were ignored!
.. now can show in zones but using the polarised zones
rather than user defined zones.
.. we may need to revisit this since it uses zone 2 rather
than estimate LT1 from CP.
NOTE: The compare mode needs updating to support this option.
.. SEGV caused by referencing data->isChecked when
not in range mode
.. Speed plotting broken because line setting the
array length in setData was accidentally deleted
.. on the histogram charts when comparing multiple
intervals we group using a golden ratio to make
it easier to read.
.. this is less about the histogram and more about
establishing the aesthetic in time for the LTM
updates for compare date ranges.
.. remember we can plot for a season and recognise that
when checking for isCompareIntervals in PowerHist.
.. fixes a SEGV when looking at a histogram in the trends
view whilst compare intervals is active in ride view.
.. still needs tidying up for some combinations of show/hide
tab switch and adjusting chart parameters but is 99% there
.. still need to apply the same compare update for when comparing
seasons not intervals
When an interval is added to the compare pane we now
compute the RideFileCache so it can be re-used in the
Histogram and CP charts without computing it each time.
The 4 views have been shown to be confusing -- it is not clear
to new users what their purpose is, and hence how or why they
are different.
So in an effort to reduce the confusion I've renamed a few
things to be much more explicit and specific.
.. We embrace the fact we are a cycling program and use the term
RIDES not ACTIVITIES for all files
.. HOME is confusing, renamed to TRENDS
.. the ANALYSIS view name is confusing, its all about ANALYSIS
to renamed to RIDES
There will no doubt be areas that are not renamed properly we
can fix those when the arise.
Reverted the update to the QWT 6.1 code to make QwtPlot::canvas()
return a QwtPlotCanvas -- it now returns QWidget.
This means our local copy of Qwt is the same as the published version
so we should be able to stop maintaining our own copy when Uwe pushes
the multiaxis stuff with 6.2.
Also fixed the LTM tooltip - the zoomer has been removed.
Fixup all the GC code to use the QWT 6.1 code.
It needed canvas() to be patched to return a
QwtPlotCanvas and not a QWidget.
We could probably get round that with a cast.
When we switch to QWT 6.2 with the multiaxis
support formally baked in we can fix the code
as needed.
Now compiles and links without issues.
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.
Slowly migrating code and data from the MainWindow
class to Athlete and Context classes.
This update moves the ride and interval lists and
data structures from MainWindow to Athlete.
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.
.. double to int conversion rounded up and caused an
array bounds segv. just added 1 to the initial resize
of the array to avoid.
.. annoying since I performed considerable testing of the
metric histogram on Mac, but this crashed almost immediately
on Linux. Bah.
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
.. go back to more GC-like color defaults, which became a little
too vibrant in a recent update to introduce linear gradients to
the CP, Histogram and LTM plots.
All are harmless but for the sake of clarity have
fixed them all bar a couple;
- Lucene grumbles about signed/unsigned conversion which
is/isn't valid depending upon the version of CLucene you
compile with. Either way it is harmless.
- QxtScheduleView has a bunch of issues, but since it is a
third party widget its better to leave it unchanged.
Last part of the search/filter functionality;
* SearchBox now incorporates filter and search
with a new widget. We can update this widget
to include more fancy UI/Interactions without
having to change the ride list or charts etc.
* Added search/filter widget to the relevant charts
and screens; Metrics, TreeMap, CP, Histogram,
Activity Log, Ride list (refactored out of MainWindow)
* Added namedsearches.xml and adding/selecting them
from a drop down menu on the search box.
* Fixed some performance bugs related to duplicate
signals and redraw/reprocessing. Also ensured that
CLucene remains optional -- but means no search or
filter functionality unless it is available.
Upgrade to QWT 6.0.1, but still uses a locally patched copy
since support for 8 axes has not been included, despite it
being a relatively simple patch.
Fixes#634.
Fixes#567.
When selecting the speed tab on an imported ride-file, GC exits
with the following error on the command- line: ASSERT failure in
QVector<T>::operator[]: "index out of range", file
/usr/include/qt4/QtCore/qvector.h, line 347.
File: PowerHist.cpp on line 393
low has value -5.55111512312578e-17 which is like -0.0000000000x
This caused an out of bound error on array lookup.
Fixes#551.
When plotting HR on a histogram we set the x-axis
to only plot within the recorded heart rate range,
but the recent patch to fix up LogY settings meant
that values are always > 0 (1e-9), resulting in the
plots rarely being adjusted correctly. This patch
fixes that.
The LogY function for histograms was overlooked
when implementing intervals. The baseline and
start/end values of the interval curve needed to
be set to non-zero values to match the main curve.
[Folded in manually from commit #a562d2 in master]