Commit Graph

56 Commits

Author SHA1 Message Date
Damien
ea895f169b Implements WattsKg in histogram
fixes #362
2012-12-01 23:52:50 +01:00
Mark Liversedge
ce83db017f UI Nits: Fix fugly LTM settings dialog
Slightly better. Still room for improvement in the
workflow for working with the preset charts.
2012-12-01 22:02:59 +00:00
Mark Liversedge
bb822fade8 Histogram nointerval curve on season chart 2012-11-28 19:53:47 +00:00
Damien
8eee2ddb25 Choose Metric/Imperial units in New Athlete dialog
fixes #34
2012-11-26 23:35:35 +01:00
Mark Liversedge
d0b009c922 Data Filter (Part 3 of 3)
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.
2012-11-05 15:44:01 +00: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
Damien
0d8e923b83 Correct heartrate zone labels position for X axis not beginning at 0
Fixes #426.
2012-01-13 21:42:43 +00:00
Walter Bürki
bcd7dc07e4 Fix Histogram Crash
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.
2011-12-18 14:39:10 +00:00
Mark Liversedge
3577fde503 Fix Torque/Speed binning in Histogram Window 2011-08-28 15:36:54 +01:00
Mark Liversedge
ffce32fc29 Fix PowerHist coloring bug. 2011-08-28 12:57:46 +01:00
Mark Liversedge
98c1b95820 Prettify Histogram by Zone
When displaying histogram data in zones for
HR and Power remove the pen to make the bars
'prettier' like they are in the metric charts.
2011-08-28 10:51:13 +01:00
Mark Liversedge
fa08db6a3a PowerHist HR x-axis
Needed to take into account that the HR of zero
may be present (no signal) and only set the x-axis
to zero if user has selected with zero.
2011-08-27 16:46:02 +01:00
Mark Liversedge
d8642964a8 Fix HR Histogram x-axis
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.
2011-08-27 11:33:32 +01:00
Mark Liversedge
c045e40749 Fix LogY Intervals on Histogram
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]
2011-08-06 12:03:19 +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
a48f7c00d1 Clean compile time nits
Lots of nitty fixups, largely for uninitialised temporary
variables.

I have left the use of boost::function and boost::bind in the
DownloadRideDialog alone, so it will vomit when compiled
with boost 1.46 and gcc 4.5 or higher. Will look into this
more carefully at a later stage.

I am working up to resolving issues identified from -pedantic next.
2011-05-12 22:12:36 +01:00
Mark Liversedge
c1a8945a11 Histogram plot by zone for seasons
The recent update to plot histograms for seasons or other
date ranges did not support displaying by zone since the
cache did not contain zoned data. This patch fixes that
with an update to RideFileCache to pre-compute and to the
PowerHist class to retrieve and plot.

There are some minor issues that need to be addressed:

* Handling aggregation with different zone schemes

* Deciding which zone scheme to use for the bar labels
  when multiple differing schemes have been used within
  the date range selected.

* Showing a break down of time in zone by range i.e.
  how much time was spent at Threshold when CP was X
  as opposed to when it was Y (hint: do it like we
  currently display intervals when plotting a single
  ride).

* Refreshing the Time In Zone data in the .cpx file
  when CP/LTHR changes is not implemented.

The RideFileCache now checks the version of the cache to
determine if it needs to be refreshed -- so no need to
delete old .cpx files before running GC with this patch.
2011-05-03 16:26:40 +01:00
Mark Liversedge
f4fb11b9c2 Plot seasons / date ranges on Histogram Plot
The recent RideFileCache patches added functions to
pre-compute mean-max and distributions. This enabled
this patch to add plotting histograms for a date
range rather than a specific ride.

It supports all the same data series as before but will
allow you to select a season from a new combo box.

I have refactored a fair amount of the code, but kept the
original code in PowerHist as close to unchanged as I could
since I did not want to disturb existing functionality.

There is no support for Zoning historic data -- this requires
an update to the RideFileCache.
2011-05-02 19:39:39 +01:00
Mark Liversedge
41eaaa866b Plot more data on the CP plot and use a binary cache file
This patch enables more data series to be plotted on a CP plot.
We can now show curves for heartrate, cadence, speed and torque
as well as the original power and energy.

The CP code is refactored into the plotting functions and a new
RideFileCache that precomputes the mean-max as well as distribution
data (for a later patch to show histograms across date ranges).

The code for computing mean-max values has been re-written and
significantly optimised by;
* computing 1s intervals up to 5mins only
* computing 20s intervals for the remainder of the ride
* downsampling data to 5s samples for longer durations
* using a binary file format (cpx) for faster read/aggregation
* using multiple threads

Testing on an old Athlon dual-core showed an increase in performance
over the old cpi code of approximately x20, but since new data series
are now computed it is only x4 faster. Quad/Octo core systems will
show a greater performance increase though.
2011-04-25 02:20:19 +01:00
Mark Liversedge
4660a368ca Fix Crash in Histogram for show in Zones before Zones configured
Fix an assert crash in Zones if you choose to chart power by zone before the cyclist CP
configuration has been set.

Fixes #300.
2011-04-17 14:31:50 +01:00
Mark Liversedge
3aba7dd788 Inital V3 Branch 2010-12-30 17:35:23 +00:00
Mark Liversedge
9d9b447044 HR Zone Shading on Histogram
Last piece of the TRIMP/HR enhancemens to the
hisogram plot; enables HR zone shading, HR zone
colors in options and also fixes the axis to
start at the lowest HR value present rather than
zero.
2010-11-01 11:26:10 +00:00
Damien GRAUSER
830e4efd3d HR Zones and TRIMP Metrics
This patch introduces new functionality for working with
Heartrate based data.

* HR Zones can be defined, from Resting, Maximum and Lactate HR
* TRIMP metrics are calculated; TRIMP, TRIMP100 and Zonal TRIMP
* TRIMP metrics can be used to drive the PMC
* Time In Zone metrics for HR have been added
* Histogram window will now work with Power/HR zones
* User Settings have been added to record gender, weight and others
* RideFile has a new tag "Athlete" which is set to the athlete name

Fixes #140
2010-10-31 18:08:48 +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
Sean Rhea
da28b43d40 remember chosen histogram bin width across restarts 2010-02-07 09:41:52 -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
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
4a79c95d37 remove global mainwindow pointer from PowerHist 2009-12-13 11:02:33 -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
Berend De Schouwer
de96ee2f16 fix PowerHist zoom out with a call to setZoomBase 2009-10-03 18:13:09 -04: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
Sean Rhea
dc8877eb6a turn off tooltips in PowerHist
With some versions of Qt/Qwt, tooltips cause an infinite recursion.  We don't
know why this happens yet, but this patch at least prevents crashes while we
figure it out.
2009-09-06 14:13:31 -04:00
Sean Rhea
fbc3c939e2 remove unused functions 2009-09-06 14:08:19 -04:00
Justin Knotzke
656f548896 This should never have made it to github.
Revert "Revert "guard against all negative values in PowerHist""

This reverts commit d785ca5a0f.
2009-09-05 22:31:47 -04:00
Justin Knotzke
d785ca5a0f Revert "guard against all negative values in PowerHist"
This reverts commit df33fe2301.
2009-09-05 22:24:01 -04:00
Sean Rhea
df33fe2301 guard against all negative values in PowerHist
This patch unifies the way in which we handle negative values in the Power
Histogram by ignoring all values (speed, hr, cadence, power, and torque)
less than zero.

I'm not sure if this is the right way to handle such values long term, but
it sure beats dumping core.
2009-09-04 19:52:33 -04:00
Sean Rhea
dc50cf79e6 PowerHist cleanup: trust QVector::resize()
QVector::resize() already does exponential capacity growth and zero fills new
elements, so there's no reason for us to be doing either by hand.  This change
simplifies our code substantially.
2009-09-01 06:19:54 -04:00
Robert Carlsen
a970b12f68 Fix for PowerHist crash with HR of -1 2009-08-26 10:47:50 -04:00
Justin Knotzke
5a453fb210 Misc fixes by Julian Simioni.. Thanks. 2009-08-21 20:22:59 -04:00
Robert Carlsen
e8a7a4bf4d Fixed constructor bug when using a NULL value and qwt5. ie. unit(NULL) -> unit(0) 2009-08-11 17:15:54 -04:00
Justin F. Knotzke
622516b63d This code should now allow GC to be run off a USB stick.. or the Qollector. If GC finds a Library/GoldenCheetah next to the executable, it will use that location to store all of its settings and Libraries. Otherwise, it reverts to how GC handled settings previously. 2009-08-11 06:07:36 -04:00
Sean Rhea
e9bae94b83 fix unused variable warnings 2009-08-08 10:39:22 -07:00
Sean Rhea
ad8e5015e1 fix zero-torque bug in PowerHist 2009-08-01 14:04:48 -07:00
Justin F. Knotzke
8d3fbf85e1 Berend De Schouwer
A little tooltip highlighter to let you know power what you are looking at.
2009-06-22 03:18:05 +00:00
Justin F. Knotzke
af633953ec Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 03:10:46 +00:00
Justin F. Knotzke
13deea6f31 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:26:35 +00:00