.. its been there since the beginning at the heart of the code
as a registry of the rides (RideItem) and controlling the
selection of rides.
.. in v3.0 we stopped showing it, but it was still created and
then hidden immediately. But removing the 'spine' of the code
was seen as a step too far.
.. this is the first part of moving from SQL to a NoSQL cache
for ride metrics, metadata and measures -- RideItem is now
no longer inheriting from QTreeWidgetItem with all the issues
that brings.
.. since its right at the heart there are likely to be unforeseen
bugs as we go, especially since it affects the ride navigator.
.. add/delete has been tested a fair amount and should be reliable.
.. last piece of the jigsaw for compare mode. This update adds a
clear button to the compare pane bar.
.. we can still add lots more to compare mode, but for v3.1 this
is probably enough now, so closing the feature request too.
Fixes#343.
.. Connected the compare mode on/off switch in the
compare pane to Context to notify charts
.. the scope bar and chart painting now highlight in
red when compare more is active and supported by
a particular chart.
.. each chart must implement isCompare() to return
true or false if it is supporting compare mode.
We /still/ do not have a mechanism for clearing or
reordering items in the compare pane, nor a mechanism
for choosing 'delta' compare (i.e. baseline all compares
to first item in the list).
Now allows you to add intervals and select them and
change colors they will use.
It will maintain the data as a CompareInterval which
also includes a RideFile representation of the interval.
This is stored in Context in a QList as compareIntervals
and can therefore be re-used across all charts.
We now need to think about putting some widgets onto the
Compare 'bar' for turning compare mode on and off and
deleting / reordering / clearing items.
.. compare pane now appears and disappears on both
the analysis view and home view
.. it also is notified of drag/drop events and can
accept the objects dropped
.. it is now time to write the widget for collecting
and managing compare sets
.. casting the sidebar in TrainView was wrong because the
controls are in the sidebar, not the trainTool. Thus
it would crash on exit .. but strangely only on Mac!
.. the code now correctly calls trainTool->Stop(), quite
why it fails on Mac only is a bit of a mystery.
Split the views in MainWindow into separate classes;
* Tab is a collection of the 4 main views
* TabView is a base class for all of the 4 view types
* {Analysis,Train,Diary,Home}View are all derived from
TabView and deal with specifics of those views (e.g.
Diary/Home worry about date ranges).
We should be ready to move to tabbed athletes soon.
There are a few nits left for this part of the refactor
that will need to be resolved in some fixups over the
next few days;
* tile mode segment selector has wrong segment selected
when the view is in tile mode.
* Minimum height/width of MainWindow is large for some
reason
* the Train view controls (play, ffwd etc) have nowhere
to go at present -- need to fix that !!!
* When you resize the mainwindow width the sidebars expand
and should remain a fixed width
* not sure if it will build on Windows or Mac!