.. we should actually paint a zoned background if
power shade zones is selected, when in compare mode.
.. but /only/ for charts that have power on them!
.. silly typo mean't allplot was being used as a refrence
when generating plots instead of fullplot
.. this manifests itself as using the wrong plot for the
'bydist' boolean -- this is fine, unless you switch
between by time and by distance whilst in compare mode.
.. if you selected a ride and viewed on allplot then
changed tabs, entered compare mode then switched back
to allplot the display didn't get refreshed.
Gareth's build system baulked at the stackZoomWidth
class member defined as const in the class declaration.
Moved to a static member of AllPlotWindow.cpp instead.
.. it was a bit shit with controls you couldn't
use, and when you did nothing happened.
.. now has a slider and 7 distinct settings for
stacks from ok to large and 5-60 mins sections.
.. should be good enough for most users.
Finish off the nits and missing pieces for the recent
update to enable plotting in a stack by data series;
* Now plots W' bal, LR Balance and headwind
* Stacks are now redrawn when settings change
* Interval marking is fixed
* Baseline is now set correctly for each plot
* Reference lines are plotted (on power plots only)
* Reference lines can be dragged
* Interval markers are not redrawn with the text
only shown on first plot
Extending the stack display to have a single plot for each
data series. This will be useful when comparing activities
and also makes it a bit easier to see the data when there
are lots of data series.
This is a checkpoint commit as I need to fixup some of the
series that have multiple curves and also reference lines
are not currently working.
But you can zoom using the fullplot and highlight intervals
etc.
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.
Now hide/show appropriately and are painted correctly.
There is still a problem with the x-axis disappearing
but this should be straight forward to resolve.
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.
Porting the codebase to QT 5 (5.2) to get the
latest bug fixes, performance and improved platform
support.
This first part is to fixup the codebase to compile
on Qt 5, but some aspects have been broken (video).
The second part is to migrate from Qwt 6.0.1 to the
latest Qwt for multiaxis support.
The third part will be to fixup any platform specific
issues or issues identified at runtime.
If you change the plot background to black then the
CP curve is always in black too so becomes invisible.
Added a customisable color for the CP curve and fixed
up a few redraw issues in CP and Ride plot when you
change the colors.
Still need to fixup the other charts, but will do over
time. I suspect almost noone changes the plot colors from
the default values.
So you can unzoom in ride plot when you've zoomed in
to an interval -- avoiding having to show fullplot to
do the same thing manually.
There are probably other places to add functionality
for zooming out, will deal with those as they arise.
You can now plot NP, xPower and aPower on the
ride plot.
This has been done to provide transparency &
insight into the relationship between the derived
values and the recorded power values,
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.
.. by only plotting the stack view if its actually
needed (i.e. user has selected stack view).
.. this performance degradation was introduced by the
axisscaling update (which is a nice update)
Fixes#616.
.. will refresh after the metrics and cpx have been refreshed
.. it invalidates the data rather than refreshing immediately
since thats expensive and better wait until refresh is needed.
.. added to the splitter handle context menu
.. also took IntervalItem.h and IntervalTreeView.h from MainWindow.h
coz I was getting pissed with recompiling everything when changing it.
Thats why so many other files have been changed in this commit.
Fixes#338.
I changed the fixed height of the allplot reveal
controls and forgot to set it back. It leaves a
little artefact on the plot when they hide.
I took out my edit and it fixed it.
After discussion with Damien;
* solid white background for the controls looks best
* CP on chart labels need to be less obtrusive
* keep the controls to a simple but useful set
I also tidied up some of the margins since they were
also wrong.
.. black controls on a black background might
be cool if you play in a plutonium rock band
from the Gagrakacka Mind Zones, but for the
rest of us its helpful if the controls are
slightly more visible.
A bit of hacking with style sheets and the controls
now change color to contrast with whatever background
color is selected.