Commit Graph

62 Commits

Author SHA1 Message Date
Joern
9799e8774f Gear Ratio - Coloring in PvPV plot
... option to show the datapoints depending on a gear ratio intervall
... gear-ratio 0 to 1 -> Red
... gear ratio 1.01 to 2.49 -> Yellow
... gear ratio 2.5 to 3.99 -> Green
... gear ratio 4 to max (7.00) -> Blue
2014-10-24 16:37:15 +02:00
Mark Liversedge
e320e276a1 PfPv Plot Quadrant Markers Colors
.. when in compare mode
2014-07-06 12:01:30 +01:00
Mark Liversedge
092c60fe37 Add pointHover to ScatterPlot
.. the last of the ride plots for hover mode

phew.
2014-03-31 20:01:26 +01:00
Mark Liversedge
db2c758802 Don't define a class inside a method
.. some compilers don't like it.
2014-03-21 07:28:51 +00:00
Mark Liversedge
c202a6256c Added Hover on PfPv
.. interval highlighted when hover over its marker
   on the PfPv plot.
2014-03-20 15:59:58 +00:00
Mark Liversedge
eec36971d3 Fix Time In Quadran Marker Color
.. when plotting on a dark background
2014-03-20 15:44:18 +00:00
Mark Liversedge
6f2f19f826 PfPv hover color to interval color
.. instead of gray, there is no value in doing anything
   else (aside from consistency) and the marker is in the
   color too, so we should match.
2014-03-20 15:25:57 +00:00
Mark Liversedge
94715c91f7 Add Interval Markers to PfPv
.. mark the center of an interval (i.e. the average aepf/cpv
   for that particular interval).

.. this is in preparation for mouse over the interval causing it
   to be highlighted on hover.
2014-03-20 15:18:43 +00:00
Mark Liversedge
741b725de2 Bit of transparency on PfPv
.. so we can see overlapping intervals.
2014-03-20 07:50:22 +00:00
Mark Liversedge
20367a312f PfPv fixups
.. hide hover curve when change ride
2014-03-19 20:09:40 +00:00
Mark Liversedge
35a66f0237 Implement Interval Hover in PfPv
.. only from interval list
.. need to also implement from chart hover too
2014-03-19 20:02:02 +00:00
Mark Liversedge
ebc21f0f88 PfPv dots brush
.. been meaning to do this for AGES. the dots in the PfPv
   chart are now filled rather than hollow.
2014-03-19 19:04:10 +00:00
Mark Liversedge
4b460fa9c8 PfPv Compare Nits
* clean up refresh when changing tabs etc
* update the quadrant % markers
2014-01-05 15:17:10 +00:00
Damien
1caedcac06 PfPvPlot: Correct last commit 2014-01-04 10:48:56 +01:00
Damien
d87d9b505b PfPvPlot: Fix Color for intervals 2014-01-04 10:34:15 +01:00
Damien
9ca4691464 PfPvWindow: Add Compare Mode 2014-01-04 00:42:51 +01:00
Mark Liversedge
6bfb1ba701 Fix crash in select intervals in PfPvPlot
.. we delete the curves after they are detached which
   causes a SEGV as they are already deleted.
2013-12-16 18:16:15 +00:00
Mark Liversedge
ddff82ffdf PfPvPlot honour ride plot background
Similar to fixups to CP plot for user defined plot backgrounds
this update updates the PfPv plot to also re-use the user prefs
when setting axis / canvas and marker colors.
2013-12-15 18:23:22 +00:00
Mark Liversedge
e80243eea1 QWT 6.1 canvas() revert and LTM ToolTip fixups
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.
2013-12-11 17:58:35 +00:00
Mark Liversedge
c3a189b25c QT5 -- 2 of 3
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.
2013-12-09 12:26:55 +00:00
Mark Liversedge
aa8605e8d5 QT5 -- 1 of 3
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.
2013-12-09 09:57:13 +00:00
Mark Liversedge
35a179be34 UI Nits: Back to black in QA
.. the washed out grey was unpopular and is too
   hard to read.
2013-11-11 22:53:49 +00:00
Mark Liversedge
623dca7a26 UI Nits: Less is more
Further removal of chart decorations ala the recent
changes to the ride plot, now applied to the other
charts.
2013-11-11 22:04:06 +00:00
Mark Liversedge
a2a962120c A lot less assert
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.
2013-08-04 11:06:07 +01:00
Mark Liversedge
c8203fa566 A little less MainWindow.h
.. slowy removing it everywhere.
2013-07-18 09:37:32 +01:00
Mark Liversedge
d21ca376be MainWindow Refactor Part 3 of 5
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.
2013-07-13 19:46:03 +01:00
Mark Liversedge
05f1d577db Refactor MainWindow Part 2 of 5
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
2013-07-11 14:02:02 +01:00
Mark Liversedge
90942e0199 QA/2d customise symbol color
Let the user define the color used for the symbols on the PfPv
and Scatter plot when framing intervals.
2013-02-24 17:30:58 +00:00
Mark Liversedge
9a2067955a Framing color less in your face
.. when plotting QA or Scatter plots we frame
intervals with all points of data. By default this
has been black.

.. this tones it down to be less high contrast. But
really we should make it a configurable color longer
term.
2013-01-24 18:58:32 +00:00
Alejandro Martinez
3afc4228af Enable PerfPlot and PfPvPlot translations
Also includes a minor change in LTMSidebar
2012-12-07 13:40:34 -03:00
Damien
c44758c5ad Qwt 6.0.1 Support
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.
2012-02-12 10:43:15 +00:00
Mark Liversedge
256b0336a8 Constrain AEPF to 2500N on PfPv plot
Low cadence values (<30) lead to very high
AEPF values. In reality, these very low
cadences are sprious, since they can occur
after freewheeling (the sensor cannot
differentiate).

We restrict the AEPF scale on the PfPvPlot
to 2,500N which should be meaningful for
most humans.
2012-01-14 19:21:18 +00:00
Mark Liversedge
ec64007f6b Fix PfPv refresh bug
Fixes #520.
2011-12-06 10:01:58 +00:00
Mark Liversedge
cf8c6f40a5 PfPv plot adjust axis for track sprinters
Higher values for AEPF/CPV have been observed with
track sprinters. The fixed axis on the PfPv (QA)
charts truncate the display.

This patch adjusts the axes to suit the data and will
also ensure the zone shading and labels are extended
to the new maximums.

The PfPv code also contained a lot of tab characters
and the general style was quite dense, making it
difficult to read and understand. I have adjusted
to use a 4 space tab-stop and adjusted to match the
general style of the rest of GC.

Fixes #463.
2011-10-22 12:06:40 +01:00
Mark Liversedge
4ab96e16d1 Sidebar, Ride List and Aeshetics
An update to the ride list on the left hand side
to enable the user to choose and sort or group-by
metrics, metadata fields and ride information.

In addition, the sidebar has been 'improved'
cosmetically and to require less screen estate.

Also, the ticks and frames on plots have been
adjusted to be more aesthtically appealling.

There is more to come on the look-and-feel front,
but this patch heralds some work on the sidebar
which needs to be resolved.
2011-06-01 16:34:24 +01:00
Mark Liversedge
3aba7dd788 Inital V3 Branch 2010-12-30 17:35:23 +00:00
Mark Liversedge
de0b28f9dc Fix gcc 4.5 compile errors
Gcc 4.5 considers explicit calls to object constructors to
be errors. This patch corrects these to enable building using
this current release of the GNU C++ compiler. This is required
to support building on Windows with the current Qt 4.6 sdk
since it includes gcc 4.5.

It is worth noting that this relese of the GNU compiler also
spots two or three uninitialised variables too, I will correct
these at a later date.
2010-08-04 21:35:09 +01:00
Mark Liversedge
38df7c28bd User Configurable Colors
A new config pane for defining color preferences for chart
curves, shading, background and grid lines et al. Default values
echo the current hard-coded values.
2010-04-01 10:29:13 -04:00
Mark Liversedge
fbd5238e4e Frame PvPf Plot
When working with smaller intervals it is difficult to see the
highlighted points when all the points are shown in black. This
patch adds a 'Frame Intervals' checkbox to enable the user to
turn off all the points when looking at specific intervals.

If no intervals are selected then this setting has no net effect.
All datapoints are shown.
2010-02-01 08:01:02 -08:00
Mark Liversedge
391fc7b9c9 True Interval Patch, second part
The best interval dialog rounded intervals to the nearest second
due to a casting of a double to int. This was introduced by Mark L
during the intervals code patch and is an error.

All the plots have now been adjusted to correctly determine if a ride
point is within an interval. Related cropping and binning issues in
3d plot an Histogram plot have also been corrected.

fixes #15
2010-01-20 08:28:42 -08:00
Mitsukuni Sato
2d3f26fed2 translate to japanese (5 Jan 2010) 2010-01-10 10:03:08 -08:00
Mark Liversedge
32b94d954f add bring to front/send to back to PfPvPlot
Another rightclick menu for intervals, adding a bring to front and send to
back option but only when viewing the pfPvPlot, additionally the algorithm in
PfPv plot for determining which interval a point is used for has been adjusted
to fully populate every interval curve where appropriate (and incorrect
comments and redundant code have been removed).

IntervalItems now have a display sequence number so when you have
overlapping intervals you can bring to front and send to back on the
PfPv plot. The display sequence could be used on other plots if/when
they distinguish between intervals.

Previously, the coloring of intervals on PfPvPlot was determined solely
by the order they were defined which could be quite confusing.
2009-12-22 09:51:02 -05:00
Mark Liversedge
feb111a4ff RideFile reading refactoring
With the introduction of the rideSelected signal the RideFile was
opened (as previously) by the RideSummaryWindow::htmlSummary()
member. In some cases, this signal was processed by RideSummary window
AFTER the other charts (AllPlot etc) this results in 'No data' being
shown on other charts.

This patch moves the file reading to RideItem::ride() which was previously
a public RideFile * (that is now a protected member ride_). As a happy by
product it removes the need to check if the file has already been read
across all other functions ensuring in-core values are not accidentally
overwritten. The read errors are made available by a new RideItem::errors()
member.

This modification is required to support the RideImportWizard in freeing
loaded RideFiles during batch import to ensure virtual memory is not
exhausted when large numbers of files are imported at once. This modification
is also included in this patch.
2009-12-18 19:39:29 -05:00
Sean Rhea
9b6b1ba085 remove global ptr to main window from PfPvPlot 2009-12-13 12:46:50 -05:00
Mark Liversedge
a0c839514a PfPvPlot Display Fixes
The new intervals code removed some replots() to stop flickering but
they also removed critical refreshes after CP and Cadence values
are updated by the user using the entry fields on PfPvWindow.

Additionally, the setData() function was used to refresh all curves
when intervals were selected which caused user entries to be reset.

This patch introduces PfPvPlot::showIntervals() to only refresh the
intervals curve and fixes replots() to a) replot when neccessary
after a user entry but b) to not replot mid-refresh in the zones
background function.

The PfpvPlot::setData() function only sets the main curve (all the
black points).

When the user changes CP, CAD, CL in the window dialog they call
replot() explicitly rather than assuming the utility functions will
do it for them, since the utility functions are called within
setData (amongst others) and results in multiple replots() that are
ugly, but more importantly make it difficult to spot the deltas on
the plot as new intervals are overlayed because they all disappear
for a split second.
2009-12-13 10:59:10 -05:00
Mark Liversedge
29a9e41444 Interval features and new GC file format 2009-12-12 11:41:35 -05:00
Sean Rhea
95b44b7752 make zones ptr const 2009-12-10 10:16:57 -08:00
Sean Rhea
772de9f364 RideItem::zones is just a pointer
...not a pointer to a pointer.
2009-12-10 10:16:57 -08:00
Sean Rhea
522824bb40 switch RideFile::dataPoints to QVector
...so that we can binary search within them.  Also, switch a lot of
QListIterators to Qt foreach.
2009-11-01 11:51:26 -05:00
Greg Lonnon
243a28bb87 the settings code was leaking and it was copy/pasted in a few files.
created a method to find QSettings (settings.h) and stopped it from leaking.

The leak looked like this...

==7800==    at 0x4C2726C: operator new(unsigned long) (vg_replace_malloc.c:230)
==7800==    by 0x64FD232: (within /usr/lib/libQtCore.so.4.5.0)
==7800==    by 0x64FDB62: QSettings::QSettings(QString const&, QString const&, Q
Object*) (in /usr/lib/libQtCore.so.4.5.0)
==7800==    by 0x4738E5: PfPvPlot::setData(RideItem*) (PfPvPlot.cpp:361)
2009-09-11 08:49:20 -04:00