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.
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.
The interval view now allows the user to drag and drop intervals
up and down in the list.
We could extend the drag and drop of intervals to support analysis
of segments/intervals from multiple rides in the future too.
Fixes#405.
This is a perennial issue for new users. The default
action when click dragging on a chart is to Zoom -- this
was probably right when we had no span sliders or stack
view (and no facility for marking intervals either).
But now, most users will expect click and drag on a metric
chart or ride plot to mark an interval or date range.
We get regular feature requests and bug reports related to
this -- basically the mouse actions are not intuitive.
Where selection is not meaningful (e.g. histogram) then
left click will zoom. This should be reasonably intuitive
to most users.
Fixes#398.
Added a new signal to MainWindow to trigger
a zoom to interval. This signal has been trapped
in AllPlot (Ride Plot), but will also need to
be supported in;
* Ride Editor - highlight/zoom to interval data
* Aerolab - Same as ride plot
* Maps - Zoom in to section