Compare commits

...

2824 Commits

Author SHA1 Message Date
Mark Liversedge
f07163689b V3.1 SP1 (3.0.1) released
.. updated versioning and upgrade ids.
2013-12-21 18:27:26 +00:00
Mark Liversedge
c1cca280c3 Fix SEGV if metric not available
.. in RideSummaryWindow if a metric is specified that
   doesn't exist .. because you configured it in a future
   release (e.g. 3.1)
2013-12-21 18:26:05 +00:00
Mark Liversedge
f9ad0c4da2 Fix 3d grid when users specify background colors 2013-12-16 23:34:54 -05:00
Mark Liversedge
a82909062f Batch Export remembers last format/dir
.. but will only default to the last used dir
   if it still exists.
2013-12-16 23:23:41 -05:00
Christian Stade-Schuldt
72d1714e5a Updated Tacx Satori Virtual Power values 2013-12-16 23:17:02 -05:00
Mark Liversedge
3d66855a2e Merge branch 'release_3.0.0' of https://github.com/GoldenCheetah/GoldenCheetah into release_3.0.0 2013-12-08 20:17:24 +00:00
Damien
74fb7f31f5 FitRideFile: - Add Left/Right TorqueEff and Left/Rigth PedalSmooth
- Open Truncated file
2013-12-08 20:08:29 +00:00
Jon Escombe
155f7b4fe7 Don't reset ANT channel settings on search timeout
Wiping out these settings prevents a successful reconnection
of the device if it comes back into range

Fixes #514
2013-12-07 16:29:47 -05:00
Jon Escombe
87cef3f412 Don't reset ANT channel settings on search timeout
Wiping out these settings prevents a successful reconnection
of the device if it comes back into range

Fixes #514
2013-12-07 21:19:39 +00:00
Mark Liversedge
a83c3bfeee Fix findBests when no speed/gps
.. flawed logic. Same fix also applied to master.
2013-12-06 22:52:23 +00:00
Mark Liversedge
96e006be90 Fix LC_LOCALE on Xcode 5
by including "locale.h".

Fixes #734
2013-12-05 20:57:45 -05:00
Damien
2318ea0b08 FitRideFile: Correction for last Garmin firmware updates
In last Garmin firmware there is some (unknow) fields with multiples values

Fixes #724
2013-12-02 19:04:01 +01:00
Mark Liversedge
680adb2421 V3.0 SP1 RC1 Update
.. cleans out index and metricDBv3 to get a rebuild as
   there is a conflict between the version of clucene used
   in the v3 sp1 build
2013-12-01 19:41:09 +01:00
gcoco
843ac13a98 Add Garmin Forerunner 910XT 2013-11-21 07:47:15 -05:00
Damien
3b62333880 ShareDialog: Add upload to CyclingAnalytics and SelfLoops 2013-11-02 23:13:48 +01:00
Mark Liversedge
7ef01eacd8 Merge pull request #713 from gcoco/qwt-fix
Get rid of qwt compile error about format string.
2013-11-01 10:07:12 -07:00
gcoco
83a89c2b9f Get rid of qwt compile error about format string.
Author: KURASHIKI Satoru <lurdan@gmail.com>

Taken from Debian patches for GC 3.0.3
2013-11-01 11:44:43 -04:00
Mark Liversedge
e880b6adba Add /dev/cu.usbserial as a serial device
Useful on Mac with Sewell adapter for the CT.
2013-10-29 15:34:15 +00:00
Mark Liversedge
6591d09f58 Interval Summary Off By 1 Error
Intervals are off by 1 sample because when the temporary
ride is created it stops short of the last sample in both
the ride and interval summary window code.

Fixes #623.
2013-10-29 15:34:02 +00:00
Gareth Coco
4fdc533491 Update translation source files 2013-10-29 00:26:54 -04:00
Mark Liversedge
b4d7731f2d Truncate Altitude values
We know the highesst point on Earth, so any activity that
contains an altitude greater than that is definitely incorrect.

This patch truncates the altitude to the maximum possible, this
has the happy by product of curing a major mem alloc crash in QWT
when trying to plot altitudes with very large values.

Fixes #700

[cherry-picked from master cc2a0efe3e]
2013-10-27 20:12:11 +00:00
Damien
9527161f9b ShareDialog: Manage null error message 2013-10-27 00:08:23 +02:00
Damien
33e0702b35 OAuthDialog: Remove qDebug() 2013-10-21 22:23:50 +02:00
Damien
095a8a9290 AllPlot: plot references lines 2013-10-21 00:09:36 +02:00
Damien
2fc23b7041 Correction for release_3.0.0 branch 2013-10-20 23:38:17 +02:00
Damien
40818876e8 FitRideFile: Add Calibration Event parsing 2013-10-20 23:32:44 +02:00
Damien
851ad96801 ShareDialog 2/3 : For version 3.0.1 2013-10-20 17:13:56 +02:00
G Coco
91789a3dca Merge StraveDialog and RideWithGPSDialog
Add OAuth for Strava (Release version only)

Based on the work by D Grauser in commits #f0c2c2b840 and #3a1449231c
2013-10-20 16:44:30 +02:00
Damien
c5b3d56198 GoogleMap: Little fix 2013-10-14 21:32:54 -04:00
Damien
506caf89dc Aerolab: Add a constant altitude option 2013-09-26 07:12:51 -04:00
Damien
847fd004e1 JouleDevice: Remove debug lines 2013-09-25 22:47:42 -04:00
Damien
5b69552f4f JouleDevice: Remove debug lines 2013-09-25 22:47:19 -04:00
Mark Liversedge
7588eb6a28 Merge pull request #694 from gcoco/release_3.0.0
assert cleanup
2013-09-24 12:24:12 -07:00
Gareth Coco
03509108b6 assert cleanup
Based on commit# a2a962120c
2013-09-24 04:37:30 -04:00
Jon Escombe
cc566e92ab Detach kernel driver before claiming USB2 ANT+ interface.
Kernel 3.11 exposes the Suunto ANT+ stick as a USB serial device,
this prevents GC from opening it in training mode unless the
kernel driver is detached first.

Only detach kernel driver if compiling under Linux (not a portable function)..
2013-09-22 22:07:03 -04:00
Eric Johnson
eebc36a618 Use float division when converting wheel size
In training mode, calculations of speed using wheel size and RPM from
a speed sensor used integer division. This truncated all wheel
circumferences to an integral number of meters. 2100mm wheels were
treated as 2 meters and 1960mm wheels were treated as 1 meter,
effectively reducing calculated speeds by roughly 5% and 50%
respectively.

Fixes #585
Fixes #651
Fixes #669
2013-09-22 00:33:20 -04:00
Walter Bürki
7b91f18d86 adding hr,cad,power,temp of Suunto Ambit gpx files 2013-09-19 15:04:04 -04:00
gcoco
dd6eaf0bd0 Kurt Kinetic Road Machine PowerCurve fix
Fixes #685
2013-09-19 14:34:11 -04:00
Damien
a4db59e422 Bin2RideFile: correct bug for some GPS data 2013-09-18 14:44:48 -04:00
G Coco
eea7776260 Reinstate Twitter functionality
Fixes #
2013-09-14 22:51:13 -04:00
Dave Waterworth
5fbda61a90 More Fortius Fixes
Including:
   * Fixed a type with slope mode updating the wrong byte array
   * Transposed bytes in the definition of the erg and slope messages
   * Added power smoothing

Note:
   It appears the Fortius is supplying torque not power, some more
   testing is being performed but expect to see an update shortly
   once this has been fully tested.
2013-09-14 21:30:28 -04:00
Dave Waterworth
7ca196481e Fix Tacx Fortius Device Support
Multiple fixups for Tacx Support -- as a result the support
is now pencilled in for full support in 3.0 SP1.

Fixes #24.
2013-09-14 21:29:39 -04:00
Jaime
b71be203f8 Work around to ensure controller key presses aren't missed. Borrowed from Fortius.cpp 2013-09-12 02:42:50 -04:00
Rainer Clasen
c81f899d18 use pwx for Trainingstagebuch upload
as current tcx writer currently doesn't support laps (and tcx doesn't
allow non-linear/overlapping intervals, at all) this patch makes GC upload
exercises as pwx.
2013-09-12 02:41:37 -04:00
Rainer Clasen
4dbe3960b8 PWX: read/write temperature
added temperature to read/write
2013-08-27 07:12:23 -04:00
Rainer Clasen
a84869ad76 PWX export: keep timestamp + distance precision
Pwx does support for arbitrary sample lengths. No need to chop off
timestamp precision and introduce bad data + jitter.

Instead we should look at fixing data import and consider resampling on
read.

Distance is defined as double, aswell - so, let's keep the precision,
aswell.
2013-08-27 07:12:23 -04:00
Rainer Clasen
527e8e01fd fix PWX export: always write summarydata
xml schema is requiring summarydata to exist. Otherwise upload to
trainingpeaks fails.

Block was omitted when no intervals were defined.
2013-08-27 07:12:23 -04:00
Rainer Clasen
ee4b2221f7 fix PWX export: handle end of gaps gracefully.
As I got it pwx by itself has no concept of recording intervals. "smart
recording" and other strange data require variable recoring intervals.

On the other hand it's not recording the duration of a sample explicitly.
This means the duration needs to be derived from the previous samples
timestamp (assuming the sample timestamps are referring to the end of the
sampled period).

This diff writes an empty timestamp at the end of each gap so that the
next real sample/ridepoint can calculate the correct duration.

Please note that this may unhide some deficiencies in GCs file reading in
exports.
2013-08-27 07:12:23 -04:00
Rainer Clasen
e57ab8a689 Tcx: fix speed in summary information
When exporting files to Tcx, it's writing an ActivityExtension to the end
of the file with calculated AvgSpeed and MaxSpeed. Unfortunatly it's using
the km/h values - while Tcx is using m/sec. Schema is a bit unclear about
this, as the ActivityExtension uses "double" as type for both values, but
original Tcx v2 Schema only uses m/sec, GTC exports as m/sec and some
other software is expecting m/sec, aswell.
2013-08-26 21:14:56 -04:00
Damien
8dfddb4052 Bin2RideFile: Changes in Summary pages for Data version 5 2013-08-26 20:56:42 -04:00
Damien
21449f82b2 CsvRideFile: add temperature and hill slope (%) parsing for ibike csv file 2013-08-26 20:56:13 -04:00
gcoco
758bbe4635 Twitter API change
Just matching the version in master branch.
2013-08-10 23:51:00 -04:00
gcoco
1e70b58672 Support Twitter API 1.1 2013-08-10 23:45:36 -04:00
Mark Liversedge
a9b84ad1bc Recognise Dave Waterworth
.. in the about box contributors list.
2013-07-09 20:09:15 +01:00
Mark Liversedge
868dce94d7 Fix allplot crash on daft power value
Incredibly high power value in ride file causes a memory
error when setting up plot ticks.

Fixes #658
2013-07-07 20:02:49 +01:00
Mark Liversedge
34f7498592 Deprecate Strava Support
No API v3 access.

Fixes #656.
2013-07-06 00:13:55 +01:00
Mark Liversedge
2dc2151103 Fix PWX export SEGV
fixes #654.
2013-07-01 19:15:39 +01:00
Rainer Clasen
4b19b2bb99 make srmio details in version dialog conditionally
... so that GC keeps building with older srmio versions.

[cherry picked from master]
2013-06-25 16:18:41 +01:00
Mark Liversedge
d8a5a62f71 Fixup Fit File issue
Fixes #646

- not cherry picked from master because there is a small
  update in the patch related to a 3.1 development.
2013-06-23 16:57:33 +01:00
Rainer Clasen
7831d01c1a inlude srmio version + commit in about dialog 2013-06-23 16:56:27 +01:00
Rainer Clasen
51669b4913 SrmDevice: fix writing srmio data
fopen() was missing 'b' flag, so that mingw and other platforms doing
LF/CR translation screwed data.

This is fixing the astronomic values of direct SRM downloads.
2013-06-23 16:56:00 +01:00
Gareth Coco
d8f3f58fd3 Website updates for Version 3.0
(cherry picked from commit fb339a527b)
2013-06-10 09:46:39 +01:00
Mark Liversedge
cd105850e5 Version 3 Release
.. update of build and upgrade processing for
   release 3 final update.
2013-06-07 08:53:24 +01:00
Gareth Coco
1eff9a76cc Minor website update. 2013-06-07 01:49:34 -04:00
Mark Liversedge
d0ddeab173 New LTM Chart Setup Mockups
.. to support measures, metrics, bests and user defined
   (formula). For v3.1 development.
2013-06-06 22:07:42 +01:00
Mark Liversedge
c90d9a433e Merge pull request #630 from amtriathlon/master
Last update to spanish translation
2013-06-04 23:03:56 -07:00
Mark Liversedge
dc65c5f5c5 Remove Column Chooser from Chart Settings
Because the chart settings are modal its a really bad
idea to open up a column chooser from there. So, by
default, we don't have a column chooser option on the
search/filter box -- it must be explicitly requested.

We therefore explicity set the column chooser from the
mainwindow and also from the ride navigator window.
2013-06-05 07:01:36 +01:00
Alejandro Martinez
3269ce7148 Update spanish translation with event creation warning 2013-06-04 20:24:55 -03:00
Mark Liversedge
8f5952d1be Fixup reset layout for tile mode
The show() is needed them, for each chart.
2013-06-04 19:42:48 +01:00
Mark Liversedge
3eacee9602 Fix reset layout 'crash'
Fixes #629.
2013-06-04 19:18:29 +01:00
Mark Liversedge
c6d30ef0fd Fix ScatterPlot setTime() SEGV
At first it seemed this was caused by setting the time to
a value greater than the length if the ridefile.

It was actually a constructor error, since the settings
class didn't initialise the ride variable.
2013-06-02 12:21:14 +01:00
Mark Liversedge
a88b0b593d Update for RC7
.. version number / build id.
2013-05-31 20:33:31 +01:00
Mark Liversedge
e471df6e08 Add alpha support for Dynastream OEM USB ant+
.. different pid of 1009 to the garmin usb2 stick
   but probably works the same .. lets see!
2013-05-31 20:05:58 +01:00
Mark Liversedge
130c1d6633 Add Darren Hague copyright message
.. to the ANTLogger code.
2013-05-31 19:02:57 +01:00
Mark Liversedge
80e278a3ba Warning on add event
.. to explain they belong to a season.
2013-05-30 22:17:17 +01:00
Mark Liversedge
47d5614f35 Fix delete ride SEGV
Ridesummarywindow was using rideitem to get zones to use when
summarising for a date range which was bad because a) the ride
might not be for the date range selected and b) it might have
been deleted.

This fixes that and means we get a summary that is more accurate
and no crashing when rides are deleted.
2013-05-30 21:11:24 +01:00
Mark Liversedge
6c94d309f8 Only refresh calendar if visible
Speeds things up and also removes problem of refreshing
when referencing a deleted ride.
2013-05-30 20:26:06 +01:00
Mark Liversedge
6f0b2148dd Diary Sidebar Calendar ignores first ride
Fix to check the first (0th) ride when clicking left
for previous ride rather than >0th.
2013-05-30 19:49:51 +01:00
Mark Liversedge
894cbcc4e7 Fix first file SEGV
If you delete and readd an activity after showing it on
the diary view you get a SEGV.

This is an edge case related to deleting the last activity
and going back to the blank state before importing another.

Actually there are 3 technical issues;

1. GcCalendar doesn't get notified by MainWindow when
   there are no rides -- so it crashes on refresh

2. RideSummaryWindow doesn't get notified by home window
   if its not visible

3. RideSummaryWindow should check rideItem isn't NULL before
   trying to plot zones (but only for date range summaries)

Fixes #622
2013-05-30 19:31:26 +01:00
Mark Liversedge
3c62ac98b4 Deprecate overwrite existing files on import
.. just for release 3.0 until the major bugs are fixed.

Fixes #620
2013-05-30 11:42:52 +01:00
Mark Liversedge
73c3fd7914 Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2013-05-30 10:42:45 +01:00
Mark Liversedge
ceed365782 Fix Editor find results sorting
.. it was sorting as a string not a number
2013-05-30 10:29:29 +01:00
Damien
c45933fa0d JsonRideFile: add support to the references for forward compatibility 2013-05-29 23:55:26 +02:00
Mark Liversedge
798f457602 Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2013-05-29 20:36:09 +01:00
Mark Liversedge
f5380df80c Fix date range popup for cycles/adhoc
Its RC6 and we only just caught this bug!!! It was not
possible to delete or edit date ranges of type 'Cycle' due
to a cockup with the type() values.

Thanks to Martin Wifling for finding this one!
2013-05-29 20:34:01 +01:00
Damien
4d0bef751a BinRideFile: Support for left-right pedal balance
Test ride file : test/rides/2013_05_15_18_38_30.bin
2013-05-28 22:15:18 +02:00
Mark Liversedge
ed3ca8411a Documentation: How to create/edit Seasons/Events
.. added to the FAQ for v3.0.
2013-05-28 17:51:37 +01:00
Mark Liversedge
b669781001 Documentation: Withings setup in FAQ
.. to explain where to get the user id and public key
   from (it foxed me for a while).
2013-05-28 17:45:44 +01:00
Mark Liversedge
40fec98142 UI Nits: AllPlot interval too hard to see
.. the interval highlighter is so feint that it can hardly
   be seen -- increased the alpha from 64 to 128.
2013-05-28 14:55:19 +01:00
Mark Liversedge
e386a4314e Fix RidePlot draw performance
.. 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.
2013-05-28 12:11:10 +01:00
Mark Liversedge
2ff391dfc7 Move tests to top level directory
.. they don't belong in the src directory!
2013-05-28 10:23:57 +01:00
Mark Liversedge
d03cea5ff8 Support gpxtpx:hr elements in GPX files
.. thanks to Joaquin Ricarte for the sample file
2013-05-27 21:49:23 +01:00
Mark Liversedge
22ab1d291f Calendar Sidebar on no ride
.. default to this month, so at least there is a month
   displayed rather than lots of 1s and no month name.
2013-05-27 21:23:41 +01:00
Mark Liversedge
087f612e8c GcCalendar - setRide on show
.. because the old value may be out of date if
   e.g. you deleted it in analysis view and then
   switched back
2013-05-27 21:10:03 +01:00
Mark Liversedge
af0051a7a3 Don't publish Withings key in crash report
.. it is personal data and should not be shared
2013-05-27 21:00:09 +01:00
Mark Liversedge
e9a90760ac Fix QFile/Fclose conflict in RawRideFile SEGV
On Windows QFile crashes trying to close a file that has already
been closed by fclose() since it maintains its own state and doesn't
handle the return code of -1.

We just reverse the order we close via QFile and fclose() to avoid
the conflict. We need to do both since fclose needs to release the
stream buffer (they get exhausted on Mac OSX) but QFile needs to
maintain its state too!

Longer term the RawRideFile reader needs to use QFile methods. But
at this stage in the release cycle I'm not going to make such a
dramatic change.
2013-05-27 11:11:22 +01:00
Mark Liversedge
4c373e1dc7 Added very short (12s) test ride
.. to check bounds checking in array processing
.. especially in the histogram/HrPw charts and metrics
2013-05-27 09:00:30 +01:00
Mark Liversedge
5378951cb8 Fix HrPw array offset SEGV
On very short rides the array bounds checking in HrPwPlot
and HrPwWindow was missing. This meant that attempts to
find delays or apply delays that were longer than the
ridefile itself generated negative array offsets, and thus
a SEGV.
2013-05-27 08:48:57 +01:00
Mark Liversedge
3a49a408b4 Build Id and String update for RC6
.. this should be the last RC!
.. won't tag for RC6 until end of today
2013-05-26 11:31:32 +01:00
Mark Liversedge
7652c4b6f5 Recognise Tilman Schmiedeberg
.. he has performed the entire v3 German translation
.. added to the contributors About box
2013-05-26 10:30:23 +01:00
Mark Liversedge
58247913a9 Recognise Okano Takayoshi
.. he has fixed up the v3 Japanese translation
.. included in the Contributors about box
2013-05-26 10:10:02 +01:00
Mark Liversedge
0d38427a6e Merge pull request #612 from amtriathlon/master
Updated German Translation by Tilman Schmiedeberg
2013-05-24 14:11:48 -07:00
Alejandro Martinez
aa8557aba4 Updated German Translation by Tilman Schmiedeberg 2013-05-24 18:07:01 -03:00
Mark Liversedge
8bbf18bcb6 Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2013-05-23 06:48:22 +01:00
Mark Liversedge
b6d4a538f5 More WPK interval SEGV fixing
.. in interval summary
.. and workout wizard

There aren't any other computeMetrics() pieces of code
left. I also scanned for new RideFile() code and it was
limited to the RideFileReaders which are managed by the
openRideFile() base method, so all should now be well.
2013-05-23 06:38:54 +01:00
Mark Liversedge
e523203314 Merge pull request #610 from amtriathlon/master
Updated Translations
2013-05-22 22:29:29 -07:00
Alejandro Martinez
4bd379f62d Updated translations
Italian by Marco Piccirilli
Japanese by Okano Takayoshi
2013-05-22 20:28:12 -03:00
Mark Liversedge
3cae674b6a Clean up measures.xml
.. remove it as part of the upgrade.
.. use built-in version for db schema
.. don't re-read it when doing getAllMeasuresFor()
2013-05-22 21:18:57 +01:00
Mark Liversedge
c56786683f Ready to publish v3.0-RC5X
.. updated version string.
2013-05-22 19:03:24 +01:00
Mark Liversedge
bea0b1a7d1 Fix WPK interval metric crash
.. recent update to use getWeight() in the ride file
caused a SEGV as interval metric computation is done
on the fly against a 'manufactured' ride file.

.. That ridefile doesn't have a mainwindow reference in
it, so when getWeight() references mainwindow->metricDB
a SEGV occurred.
2013-05-22 18:50:49 +01:00
Mark Liversedge
92e7ed0d23 UI Nits: Defaut sidebar settings
When a new athlete is created or when running v3 for the first
time for this user the sidebars shown are yucky. This just updates
the settings to make sure you start up with a simple sidebar for
the four views.
2013-05-22 15:58:01 +01:00
Mark Liversedge
98e3931ad0 No CLucene optimise on Windows
.. it looks like it crashes.
2013-05-21 15:41:08 +01:00
Mark Liversedge
193117646e RC5 Update Build ID and String
.. build 3005.
2013-05-21 11:24:29 +01:00
Mark Liversedge
ac4962bc89 Upgrade should only try once
.. since it prohibits startup when fails.
.. suspect there is an issue with optimise() on a new index
.. have also added more logging to watch this.
2013-05-21 06:54:53 +01:00
Mark Liversedge
eefcca677a Merge pull request #605 from amtriathlon/master
Updated spanish translation
2013-05-20 00:35:05 -07:00
Mark Liversedge
4021cee942 FitRideFile fix truncated read crash
.. caused by an eager file.close() recently introduced.
.. and add some more when returning from error.
2013-05-20 08:29:16 +01:00
Alejandro Martinez
e3afd26232 Enabled translation of Cancel/Save in NewCyclistDialog 2013-05-19 19:50:06 -03:00
Alejandro Martinez
f7911f0faf Updated spanish translation 2013-05-19 19:33:47 -03:00
Mark Liversedge
63253d9cba Upgrade: Set default weight to non-zero
As part of the upgrade, if the default weight is zero
set it to 75.
2013-05-19 21:09:17 +01:00
Mark Liversedge
44a023a30c getWeight() always sets weight_ to non-zero
Just in case .. to avoid threaded db access in RideFileCache.
2013-05-19 21:00:06 +01:00
Mark Liversedge
d28f29dd71 RideFileCache dbaccess thread ...again
Need to call getWeight() in the RideFileCache when it
opens the ride there rather than in MetricAggregator.

Oopsie.
2013-05-19 19:45:43 +01:00
Mark Liversedge
1aadc19f36 Fix RideFileCache threaded db access
The call to RideFile::getWeight() in RideFileCache
computation ends up with a call the read the measures
table in the DB. This is BAD since it is called from
a thread.

We now call getWeight() in the metric aggregator before
launching the ridefilecache computation -- this will cache
the weight and avoid db access.

I've also removed the duplicate code in the w/kg metric code
too and it should be marginally faster at computing metrics
now.

BIG THANKS TO ILJA BOOIJ FOR HIGHLIGHTING THIS, DESPITE MY
INITIAL SCEPTICISM. I OWE HIM A PINT (OR TWO) :)

Fixes #604
2013-05-19 19:06:28 +01:00
Mark Liversedge
a89dc3bb97 v3.0 RC4
.. update GcUpgrade.h
2013-05-19 16:08:41 +01:00
Mark Liversedge
bbec5e3dd2 More File Closing
Shocked at the lack of file closing in the rest of the
ridefile readers.
2013-05-19 16:00:27 +01:00
Mark Liversedge
fdabbf632a Fix RawRidFile fdopen assert crash
Rather than assert it might be better to handle fdopen()
calls that fail with more grace.  Especially since the
file wasn't being closed.

Ugh.
2013-05-18 11:14:20 +01:00
Mark Liversedge
9c3ba8fd5c Recognise Satoru Kurashiki
Who has maintained the GoldenCheetah Linux package since v2.1.
Now added to the contributors in the About dialog and also
recognised in the release notes for v3.0
2013-05-16 19:54:28 +01:00
Mark Liversedge
2ad917326b ANTLogger farce continues
Fixups after testing this evening - the meta object types
are now registered and the file open/close is called as
needed.
2013-05-14 21:57:52 +01:00
Mark Liversedge
febd10a4c3 ANT Logging Fixups
.. accidentally committed the first half of this update
   alongside some changes to the documentation.

.. basically we now pass ANT messages on the stack rather than
   as a pointer (fixes memory corruption issues).

.. the log file is explicitly opened and closed with status maintained
   alongside that to ensure we only log messages when the logfile is open.

.. This is an alternative fixup to the fix proposed by Jon Escombe in
   pull request #597.
2013-05-14 13:33:06 +01:00
Mark Liversedge
d8425c9adf Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2013-05-14 10:05:41 +01:00
Mark Liversedge
732171b57d Documentation: Makeinfo compatibility
.. only use the @input macro if we're not running info -- we only do that
   to get nice fonts in printed output anyway.
2013-05-14 10:00:00 +01:00
Mark Liversedge
56eedf224e BasiRideMetric handle no speed/distance gracefully 2013-05-13 20:05:32 +01:00
Mark Liversedge
62a687b815 HUD fix Avg HR and Max Cadence
.. they always displayed zero even when the data is available.
2013-05-13 19:30:56 +01:00
Mark Liversedge
63b1ff0b33 Add version details to Crash report
By refactoring out the version stuff from the about dialog
and making it part of the crash report (and reused).
2013-05-12 13:27:08 +01:00
Mark Liversedge
ce277baca4 Crash Reporting
We now use a per-athlete setting to track if the last
time the athlete was opened GC shutdown gracefully.

If it didn't then we show a dialog box with some basic
data to use to debug / diag the problem. For now it is
just limited to;

* metric.log
* athlete directory listing (by modified time)
* app settings

We explicitly DO NOT include personal information such
as DOB, Weight, Sex nor critical information such as userids
or passwords.

This is a first stab at this, and we will almost certainly
improve it to include other .xml config files as well as
automatically posting an email (or similar).

Fixes #596.
2013-05-11 22:50:40 +01:00
Mark Liversedge
f6f87e0e32 Translation: German Analysis -> Analyse
TE Analyse is too much for such an important phrase, so
shortened it to Analyse.
2013-05-11 15:00:32 +01:00
Mark Liversedge
277dce4ba1 UI Nits: Fixup ScopeBar button widths
.. for different font sizes and as importantly to make the
   buttons large enough for the translated button texts -- this
   is particularly important for Deutsch.
2013-05-11 11:42:50 +01:00
Mark Liversedge
89054a826b LTM Show top 1 not 5 by default
.. Top 5 is a bit much, in reality defaulting to highlight
   just the top value is more useful and shouldn't lead to
   an ugly chart.
2013-05-09 20:16:20 +01:00
Mark Liversedge
a8fdada555 Add Fatigue Profiling Peak Power Durations
.. added for 2,3,8 and 90m peak power

.. user defined intervals for peak power/vam/np et al
   are still planned for v3.1

Fixes #595
2013-05-09 20:10:54 +01:00
Mark Liversedge
dbdb5c0ff6 PWX support make/model for TP.com upload
.. on request from TrainingPeaks we now add the make and model
   elements to a PWX file.

Fixes #593
2013-05-09 19:25:03 +01:00
Mark Liversedge
1ef7194542 DBSchema increment to 44
.. was missed in April, no biggie but need to make sure
   it matches the metric definitions and comment in DBAccess.cpp
2013-05-06 18:24:04 +01:00
Mark Liversedge
9d42caf998 Left/Right Balance in DataFilter
.. need to make a special case as the symbol name contains
   a / character. Lexer handles it as a special case.
2013-05-05 18:45:18 +01:00
Mark Liversedge
196d8ce00a TRIMP(100)_Points in DataFilter
.. the parenthesis caused problems so now treated as a
   special case in the lexer.
2013-05-05 18:36:51 +01:00
Damien
2c12d19982 BinRideFile: correct altitude
handle negative value for altitude
2013-05-05 08:42:38 +02:00
Mark Liversedge
a80d50c9d8 Update QT install instructions INSTALL-LINUX
.. since Qt changed the name back to Qt 4.8 rather
than SDK 1.1.
2013-05-04 18:26:24 +01:00
Mark Liversedge
53f6689d11 About Dialog Config Tab
.. should only be shown on developer builds. When building
   releases or release candidates and GC_VERSION is being defined
   then don't add the config tab -- it is too `geeky' for the average
   end user and not at all useful for debugging.
2013-05-04 12:01:31 +01:00
Mark Liversedge
bef0370f24 Merge pull request #589 from dresco/ANT
ANT+ reliability fixes
2013-05-04 02:52:45 -07:00
Jon Escombe
a9fae9bd0e Whitespace cleanup (tabs to spaces) 2013-05-04 10:42:46 +01:00
Jon Escombe
2108f917a0 Postpone ANT debug log close
Don't stop debug log until the end of the receive thread (else the
traffic from the close channel messages can re-open the log file).
2013-05-04 10:33:10 +01:00
Jon Escombe
d5e5dbc2a6 Close ANT channels before stopping session
This appears to resolve an intermittent issue with the USB2
stick not responding to reset messages when re-opened.
2013-05-04 10:33:09 +01:00
Jon Escombe
b1cb917e03 Move early ANT setup after receive loop is started
Moves the early setup code so that the receive loop is already
running when these messages are transmitted. Doesn't achieve much
at this point, but can visualise the send and receive packet flow
better, and will enable the responses to these messages to be
checked in the future.
2013-05-04 10:33:09 +01:00
Jon Escombe
5dad281181 Change usb_bulk_read() timeout back to 125ms 2013-05-04 10:33:09 +01:00
Jon Escombe
be47abf45b Add delay after ANT reset message
Wait 500ms after sending reset message (as per ANT+ spec), before
sending any more host commands.
2013-05-04 10:32:03 +01:00
Mark Liversedge
a2e1928188 Added Jon Escombe to Contributors
.. in about dialog.
2013-05-04 10:04:55 +01:00
Mark Liversedge
6ac25c87de UI Nits: Add chart frame on chart
The frame on the chart wasn't shown and it looked ugly
in the add chart dialog.
2013-05-04 09:29:33 +01:00
Mark Liversedge
cd864c5ff2 Added Upgrade processing
We now maintain a build id which correlates to a release
version (or development version if we want).

Most importantly, when we increment the build id we get to
run some processing when the cyclist is opened to clean/prep
for this release.

I have added V3 RC3 as the first build id and it will
remove *.cpi and *.bak files as well as removing the
clucene index and metricDBv3 file.

Fixes #584.
2013-05-02 16:18:04 +01:00
Mark Liversedge
1f1d581f67 ModelPlot (3d) redraw
We now redraw whenever plot properties change so the user doesn't
have to click on the replot button. This was originally introduced
because rendering was slow, but this was more to do with the original
code and is no longer a performance issue.
2013-05-01 20:42:48 +01:00
Jon Escombe
695cf78659 Fix QIODevice errors in ANTLogger
Darren Hagues logging code causes issues since the state
of the logger is not reset on close.
2013-04-29 19:18:20 +01:00
Mark Liversedge
2bcc88235c Named Search Menu
Better UX to put less used options at bottom of the menu.
2013-04-27 20:53:39 +01:00
Mark Liversedge
aeec2afced UI Nits: Scope Bar Font on Mac 2013-04-27 18:43:47 +01:00
Mark Liversedge
f31aea1b86 UI Nits: Edit Faves on a Mac
.. geometry was not 'quite right'.
2013-04-27 18:03:37 +01:00
Mark Liversedge
8b1d680682 Edit Named Searches
Fixes #577
2013-04-27 13:49:27 +01:00
Mark Liversedge
52bfcc9f9a Fix Filter on BikeScore and 95% heart rate
As the parser fell over on them due to special characters
and having to convert the TM symbol to an HTML escape.
2013-04-26 17:13:16 +01:00
Mark Liversedge
42325ea193 Fixup CLucene OPTIONAL!
.. CLucene is optional, but some recent updates didn't
   honour that and cause compile time errors if CLucene support
   is not available.
2013-04-26 13:21:08 +01:00
Mark Liversedge
fdf2149087 Visual cue for filter
.. by highlighting chart title too if a filter is
   being applied.

This is important to warn users that the data being plotted
is adjusted to the search/filter (either globally or in the
chart settings).
2013-04-26 12:44:51 +01:00
Mark Liversedge
c79d18fd03 Add Column Chooser for SearchBox
.. so you can drag and drop fields in when creating a filter.
2013-04-25 21:57:44 +01:00
Mark Liversedge
52e22555c7 Fix 2 Google Map SEGV
.. webBridge crash in QtWebKit for 4.8.4 (qt-bug 30403)

.. delete GoogleMap leaves webBridge orphaned which will
   crash if intervals are created or removed.

We need a proper fix for the webkit issue which we will get
when we migrate to Qt5.
2013-04-25 21:18:33 +01:00
Mark Liversedge
3d5ace45a0 Visual signpost for search/filter
.. scope bar colors update
.. needs fixing up for the Mac
2013-04-24 21:01:50 +01:00
Mark Liversedge
1874b5a1a1 Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2013-04-23 21:39:53 +01:00
Mark Liversedge
162705e6ba Fix urls in FAQ document 2013-04-23 21:39:10 +01:00
Mark Liversedge
34a58dbc52 Column Chooser Still Too Big
.. made font smaller so now just about squeezes onto
   a netbook 800x600.

.. we need to make it a scrollarea so it can be much
   smaller.
2013-04-23 07:02:08 +01:00
Damien
a434e4f3d4 AllPlot: Save last showTemp value for ridePlot 2013-04-22 22:21:51 +02:00
Mark Liversedge
c1dab28ccd Choose Columns Matrix on Netbooks
The choose columns matrix is to big for a typical notebook display.
This little update makes it wider and not so tall.
2013-04-21 22:07:00 +01:00
Mark Liversedge
85a40acd09 Fix FitRideFile 'hangs'
We now only interpolate for gaps less than 30 minutes since
some corrupt files may be longer (or forgot to press stop).
2013-04-21 18:02:00 +01:00
Mark Liversedge
88eba3ec73 Update v3 release notes
.. to include metric histogram plot.
2013-04-20 17:50:03 +01:00
Mark Liversedge
a57a2fd50f Metric Distribution
Show BlankState when no results for date selection.
2013-04-20 11:18:01 +01:00
Mark Liversedge
2b1eac92ca Fix array bound SEGV
.. double to int conversion rounded up and caused an
   array bounds segv. just added 1 to the initial resize
   of the array to avoid.

.. annoying since I performed considerable testing of the
   metric histogram on Mac, but this crashed almost immediately
   on Linux. Bah.
2013-04-20 11:08:02 +01:00
Mark Liversedge
c2adffe0da Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2013-04-20 10:42:14 +01:00
Marc Boudreau
2ad83a8aa8 Notes (<cmt/>) from PWX files not added as RideFile tags... 2013-04-20 10:40:21 +01:00
Alejandro Martinez
c1b05703af Enabled progress translation in PowerTap download
Updated spanish translation
2013-04-20 10:40:21 +01:00
Mark Liversedge
10ed9af555 Metric Histogram Plot
Update to the histogram plot to now plot long term metrics.
It enables you to plot distribution of say, Intensity Factor
for a season or cycle.

You can select the y-axis metric too, so rather than just
plotting duration you could plot say, TSS accumulated for
different ride intensities.

Fixes #560
2013-04-20 10:35:44 +01:00
Mark Liversedge
38eadcca55 Merge pull request #579 from MrMarc/master
Comments in PWX files not visible in RideFile Tags
2013-04-20 00:20:17 -07:00
Marc Boudreau
d23b7254b3 Notes (<cmt/>) from PWX files not added as RideFile tags... 2013-04-19 23:53:47 -04:00
Mark Liversedge
18fa59cce2 Merge pull request #574 from amtriathlon/master
Enabled progress translation in PowerTap download
2013-04-16 23:26:33 -07:00
Alejandro Martinez
32615c39fa Enabled progress translation in PowerTap download
Updated spanish translation
2013-04-16 19:02:44 -03:00
Mark Liversedge
31959b8c0b Merge pull request #571 from amtriathlon/master
Use Distance as a PMC metric
2013-04-15 02:37:27 -07:00
Alejandro Martinez
b28ef13b3c Use Distance as a PMC metric
Fixes #570
2013-04-14 18:10:12 -03:00
Mark Liversedge
c3df6184aa Fix PerformanceManager curve disappear
.. truncating the front of the sts/lts arrays also
   truncated the xday array which mean't it didn't
   start from 0.

.. left code in there, but commented out with a
   comment to explain in case anyone is tempted to
   add it back in the future.
2013-04-12 23:29:52 +01:00
Damien
8c3802103f Restore sizes after sidebar reshow
fixes #568
2013-04-12 19:32:41 +02:00
Damien
f0a81b115f No resize of left sidebar after reshow 2013-04-12 17:04:45 +02:00
Mark Liversedge
edb93e96e0 Use Work as a PMC metric
.. twas very trivial to add.

Fixes #564.
2013-04-11 19:39:35 +01:00
Mark Liversedge
b23a678149 Merge pull request #567 from amtriathlon/master
Enabled translation of GroupBy labels and formats in RideNavigator
2013-04-11 07:50:59 -07:00
Alejandro Martinez
1b078c08fe Enabled translation of GroupBy labels and formats in RideNavigator 2013-04-11 11:46:45 -03:00
Mark Liversedge
8ab9164e7e Fix repaint of intervals when one changes 2013-04-10 21:31:51 +01:00
Mark Liversedge
e435c5d6f6 Merge pull request #566 from amtriathlon/master
Enabled translation of BatchExportDialog
2013-04-10 11:58:32 -07:00
Alejandro Martinez
053a39e028 Enabled translation of BatchExportDialog
Updated Spanish Translation
Updated Italian Translation (by Marco Piccirilli)
2013-04-10 15:55:57 -03:00
Mark Liversedge
fedc2acfc5 Fix CP chart SEGV on delete ride
.. referencing combo box when in range mode.
2013-04-10 19:29:06 +01:00
Mark Liversedge
a4984fd352 Version String Error
.. in aboutdialog.cpp, accidentally commited earlier
   this month in prep for V3.0 release candidates.
2013-04-10 18:53:48 +01:00
Mark Liversedge
f098d25fa6 Further updates for Windows NSI script
.. to add in MingW32 dlls and dependencies
2013-04-10 18:31:01 +01:00
Mark Liversedge
8c6d834cb9 Fix StressCalculator SEGV
.. when season starts before first ever recorded ride.
2013-04-10 17:37:21 +01:00
Mark Liversedge
1389530cd5 RideImport MUST notify charts
Essentially reverting the commit 0ba93fe61
2013-04-10 12:43:20 +01:00
Mark Liversedge
1d0c8c5ae8 Deprecate the old INITIAL[SL]TS settings
Since you can no longer edit them but they were
still being used by stress calculator to seed initial
Short Term and Long Term Stress.
2013-04-09 14:35:31 +01:00
Mark Liversedge
80da7e837a Fix LTM useToToday bug
If you change the date setting toa/from and back to
useToToday then refreshes never happen.
2013-04-09 13:48:13 +01:00
Mark Liversedge
796ecf7aaa New chart dialog no stay on top
.. to avoid clashing with dialogs opened from the chart
   settings.

Fixes #562.
2013-04-08 19:45:06 +01:00
Mark Liversedge
7750b5949e Merge pull request #561 from amtriathlon/master
UI Nits: enlarge Aerolab Crr box to fit the allowed 6 decimal places
2013-04-07 06:24:29 -07:00
Mark Liversedge
7ca5bd2338 Color fixups for Windows
.. tested on Windows 8.
.. still needs foxus rectangle on the search box
   in Mac to be drawn properly.
2013-04-07 13:34:56 +01:00
Mark Liversedge
66e352f483 Minor focus/highlight fixups Linux
Search box gets a focus and the calendar highlighting uses
the default palette highlight -- only good for new installs
or if the user resets their colors but at least it now does
the right thing.

Need to test and fixup on Mac and Windows.
2013-04-07 13:19:40 +01:00
Gareth Coco
0ccd57c240 Appearence fixes
Allows Popup Text color to be set on certain OS.
Sets current day in calendar to a color you can see the date with.

Fixes #552
2013-04-06 19:31:00 -04:00
Alejandro Martinez
89066f1d35 UI Nits: enlarge Aerolab Crr box to fit the allowed 6 decimal places 2013-04-06 19:42:19 -03:00
Damien
e4ea81dcd8 RideFile: If we have temperature but the first point have no value use 0 insteed of noTemp value. 2013-04-06 22:40:23 +02:00
Mark Liversedge
8a2c04b626 UI Nits: Move searchbox toolbutton
.. to the right 2 pixels on Windows/Linux
   Seems obsessive but if I'm gonna look at this for the
   next year I want it to be perfect.
2013-04-06 15:36:25 +01:00
Mark Liversedge
a52cbdf83a Fix white specs on Download Icon
.. only affected Windows and Linux.
2013-04-06 15:27:37 +01:00
Mark Liversedge
ce6ad8534b UI Nits: Search box clear icon
.. more like a Mac and better suited to rounded edges.
2013-04-06 14:59:18 +01:00
Mark Liversedge
808b4688a0 Deprecate QtMacSearchBox
We now only use the SearchFilterBox on all platforms.
2013-04-06 14:22:41 +01:00
Mark Liversedge
d5400c0c51 UI Nits: Activity list cosmetic
Drives me mad, but the separator line was over painted
and it just looked amateurish. Been meaning to fix it for
absolutely ages!
2013-04-06 12:57:16 +01:00
Mark Liversedge
46d9724c8f Remove bubble from DiaryWindow
Now we have a decent sidebar calendar it is redundant
and furthermore it is fugly!!
2013-04-06 11:44:24 +01:00
Mark Liversedge
3d3e4164a3 Don't start in full screen]
If you close or crash in fullscreen mode then it is
restored on startup but not in fullscreen mode. So
it is impossible to shrink -- this is particularly
relevant on Windows 8.

We now restrict the initial size to always be 60px
smaller in x and y than the actual screen size.
2013-04-06 10:55:46 +01:00
Mark Liversedge
404ee7bf71 Fix calendar hide/show crash
.. by hiding not deleting minicharts. Its better this
   way since deleting and recreating them all is very
   expensive and the layout code breaks as a result.
   It is an edge case for optimisation anyway.

.. so if you expand out the sidebar and have lots of
   minicalendars then shrink it down again then it
   will be slow to update.

Fixes #550.
2013-04-06 10:40:34 +01:00
Damien
7fefee1b2a FitRideFile: Use the slope value 2013-04-06 09:51:11 +02:00
Damien
e53fcf973e FitRideFile: Correct wrong copy-past 2013-04-05 23:04:11 +02:00
Mark Liversedge
765531b678 UI Nits: SearchBox icon/tool position tweak. 2013-04-05 20:26:34 +01:00
Mark Liversedge
d8a0cde25e UI Nits: Search Box Height 21px 2013-04-05 20:20:29 +01:00
Mark Liversedge
8a2ffa7647 Merge pull request #559 from amtriathlon/master
Enabled translation of Season and Event details
2013-04-05 12:05:52 -07:00
Mark Liversedge
bfe79f7ead Search Box Rounded Corners for Linux/Windows
.. it looks ok.
2013-04-05 19:54:38 +01:00
Mark Liversedge
46f10323cf Images missed off on 2 prior commits 2013-04-05 19:47:52 +01:00
Alejandro Martinez
e01d98677c Enabled translation of Season and Event details
Updated spanish translation
Updated german translation (by Tilman Schmiedeberg)
2013-04-05 15:46:56 -03:00
Mark Liversedge
056b366822 UI Nits: Searchboxm on a Mac cosmetics
.. just rounded corners and slightly different icons.
2013-04-05 19:45:37 +01:00
Mark Liversedge
e0e4a52cb1 Mac allow search AND filter on toolbar
.. to support the recent update to allow search filter across
   the charts as well as the sidebar.
2013-04-05 19:04:40 +01:00
Alejandro Martinez
9f930badd8 Merge branch 'master' of https://github.com/GoldenCheetah/GoldenCheetah 2013-04-05 14:46:40 -03:00
Mark Liversedge
b84747cbb1 Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2013-04-05 18:30:04 +01:00
Damien
d0cd976117 SyncRideFile: Uniformise manufacturer name 2013-04-05 18:46:34 +02:00
Damien
8ed84b0fbf FitFile: Add O Synce in manufacturer and navi2coach in product 2013-04-05 18:34:14 +02:00
Mark Liversedge
01c4b436e6 Search/Filter on toolbar applies to Charts
When the user free text searches or applies a data filter in
the top right toolbar search box it gets applied to any charts
that plot data from many rides, including;

- CP curve
- Calendar
- Histogram
- LTM
- TreeMap
- Summary

I need to update on a Mac to no longer use a Mac text search box
but now use a search filter box on the top right.
2013-04-05 16:23:16 +01:00
Mark Liversedge
493e283378 Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2013-04-05 09:17:25 +01:00
Mark Liversedge
396717135a Fix filtering on ridesummary window
.. to apply to the list of activities too.

Fixes #556.
2013-04-05 08:38:54 +01:00
Mark Liversedge
cd986739cb Merge pull request #555 from amtriathlon/b7f7b3aa3729366f0f3ee1a17aefcb04a2f8880a
Enabled translation of Search and Group By
2013-04-04 12:25:59 -07:00
Alejandro Martinez
8ea209e77a Merge branch 'master' of https://github.com/GoldenCheetah/GoldenCheetah 2013-04-04 11:12:19 -03:00
Alejandro Martinez
b7f7b3aa37 Enabled translation of Search and Group By
Update spanish translation
Update italian translation (by Marco Piccirilli)
2013-04-04 11:10:41 -03:00
Mark Liversedge
9141fcc5d6 Merge pull request #554 from cleeland/master
fix issue #553
2013-04-03 22:15:37 -07:00
Chris Cleeland
23a5b77bb0 Fix issue #553: take metricDetail->fillCurve from the checkbox state
rather than using the pointer.
2013-04-03 23:00:14 -05:00
Damien
d487ba101f RidePlot: Correct min value for altitudes less than zero
fixes #527
2013-04-04 00:16:23 +02:00
Mark Liversedge
addf95e7b6 Merge pull request #551 from amtriathlon/1fedaf4e7233af54c5441f77cb46744581cc36f1
Enabled ScatterPlot axis legend translation
2013-04-03 08:25:27 -07:00
Alejandro Martinez
17f84fa230 Merge branch 'master' of https://github.com/GoldenCheetah/GoldenCheetah 2013-04-03 11:54:51 -03:00
Alejandro Martinez
1fedaf4e72 Enabled ScatterPlot axis legend translation 2013-04-03 11:53:30 -03:00
Mark Liversedge
3a302ee841 Fix stresscalculator 2-a-day bug.
If >1 rides per day stresscalculator ignores after the first
ride, this was caused by a flawed strategy for seeding the STS
and LTS with non-zero values.

We now seed with negative values and switch signs as we pass over
the date during calculation.

Fixes #549.
2013-04-02 14:11:45 +01:00
Mark Liversedge
31f55414c8 Merge pull request #547 from amtriathlon/master
Enabled translation of supported devices legend in DeviceTypes.cpp
2013-04-01 23:14:28 -07:00
Alejandro Martinez
771e34d89b Enabled translation of supported devices legend in DeviceTypes.cpp 2013-04-01 20:18:44 -03:00
Mark Liversedge
e8ff843283 WIN32 NSI missed off libusb0.dll 2013-04-01 20:32:10 +01:00
Mark Liversedge
ccf003518b Merge pull request #544 from amtriathlon/master
Enable translation of welcome text in BlankState.cpp and Wheelsize in Pages.cpp
2013-04-01 12:29:10 -07:00
Mark Liversedge
56f6cfb3b4 WIN32: NSI build script updated
.. to include new V3 dependencies.
2013-04-01 19:25:44 +01:00
Mark Liversedge
cc345f7f81 CLucene is optional!
.. and link with -lclucene-core not -lclucene

Fixes #543.
2013-04-01 17:56:00 +01:00
Alejandro Martinez
c54da50cd4 Enable translation of welcome text in BlankState.cpp and Wheelsize in Pages.cpp 2013-04-01 13:12:38 -03:00
Alejandro Martinez
250fd06252 Merge branch 'master' of https://github.com/GoldenCheetah/GoldenCheetah 2013-04-01 13:03:37 -03:00
Mark Liversedge
85ef4e24c4 RideSummary summarise Activities
When summarising a date range we now list the rides
where on a ride summary it would list intervals.

Fixes #542.
2013-04-01 11:54:33 +01:00
Mark Liversedge
b93fe8257a Merge pull request #541 from amtriathlon/27740dbe5c3c23d2f2f5112b926b2fae0955e8bc
Update Spanish Translation and enable additional translations in Devices
2013-04-01 00:46:05 -07:00
Alejandro Martinez
5a8d26c85f Merge branch 'master' of https://github.com/GoldenCheetah/GoldenCheetah 2013-03-31 21:12:01 -03:00
Alejandro Martinez
27740dbe5c Enable translations in Devices and update spanish translation 2013-03-31 21:10:58 -03:00
Mark Liversedge
828e2fc379 Documentation: Manual Chapter 3 WIP
.. committing for the day.
2013-03-31 22:01:38 +01:00
Mark Liversedge
badec27060 Added CLucene patch for Win32
It corrects removal of threading support against the 2.3.3.4
head. This is required for Windows builds at present.

I also added an INDEX in the contrib directory for all the
other things we've snaffled into the repository.
2013-03-31 18:11:53 +01:00
Mark Liversedge
3d8c2c00be Update gcconfig.pri.in for latest libkml
.. minimum versions (i.e. 64bit)
.. additional dependencies (minizip etc)
2013-03-31 16:01:44 +01:00
Mark Liversedge
1769818d2b Repaint in DiaryWindow
.. now we've optimised out the model resets the diary window
   (calendar chart) needs to explicitly repaint when a ride is
   selected because the model won't reset unless the ride selected
   is for a different month to the one currently shown.
2013-03-31 14:46:34 +01:00
Mark Liversedge
784275256b GcCalendar optimizations
Updated GcCalendar and GcCalendarModel to reduce model
refreshe and redraws when not visible or the month/year
hasn't changed.

Fixes #538.
2013-03-31 13:10:54 +01:00
Mark Liversedge
62304c5a4c Clear stale flag when update!
.. last commit missed the critical line of code.
2013-03-31 02:05:06 +01:00
Mark Liversedge
25fd7ec68d GcCalendarModel optimise updates
.. don't reset if the current month and year are the same as
   the current selection and no rides have been added or deleted.
2013-03-31 00:59:32 +00:00
Mark Liversedge
34bdbab199 MultiCalendar updateEnabled setting
.. in setRide() to avoid 'flickery' update.
2013-03-31 00:32:30 +00:00
Mark Liversedge
1adfc9e145 Multicalendar double update fixups
.. lots of unneccessary setting of dates and refreshing optimised out.

.. but probably more lurking coz we handle updates from all over the
   place and worse to miss one than do it twice in most cases.
2013-03-31 00:23:14 +00:00
Mark Liversedge
61a144d705 Revert "Code Cleanup: RideFileCache remove mallocs"
This reverts commit 6fdc55528f.

The performance decrease is considerable. Using mallocs across
my personal ride collection takes 5:19 to compute all the caches.
Using the QVector equivalent took 22:40.

Need to consider looking at QVector across the GC codebase.
2013-03-30 21:33:01 +00:00
Mark Liversedge
0ba93fe619 Defer metric refresh till end RideImportWizard
.. speeds up large imports considerably.
2013-03-30 20:33:36 +00:00
Mark Liversedge
b1db3dbe93 DataFilters: Summary should have a filter
Missed off by accident when filtering was added.

Fixes #536.
2013-03-30 09:54:58 +00:00
Mark Liversedge
093c562d07 Translation: More texts now available
Including
* ScopeBar 'Home', 'Analysis' selection names
* Downloaders: Powertap, Calendar
* Wizards: Split, Add device
2013-03-30 08:12:44 +00:00
Mark Liversedge
440bbd203f Refresh all curve when spikes edited and saved
.. 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.
2013-03-29 19:33:43 +00:00
Mark Liversedge
81ecdf8d04 Invalidate incore cache when refreshing
If an incore cache of an aggregated RideFileCache is invalidated
by a ride in the same period being edited it does not clear
until the cache array is cleared (25 of them so likely to be
never) or upon a restart.

This fixes them being invalidated by refreshCache.
2013-03-29 18:15:34 +00:00
Mark Liversedge
66daab662f Add Timex PWX file to test rides
.. used to recreate 2s recording bug #533.
2013-03-29 15:38:17 +00:00
Mark Liversedge
3f4f88b259 Improved deduction of PWX recording interval
Fixes #533.
2013-03-29 15:33:14 +00:00
Mark Liversedge
1de93d28a0 Merge pull request #532 from dresco/geometry-fix
Fix for 'stuck in full screen' issue
2013-03-28 14:43:41 -07:00
Jon Escombe
e915d9b04c Fix for 'stuck in full screen' issue
When GC is restarted after being closed full screen, the saved geometry
is larger than the actual screen size - resulting in the title bar being
drawn off screen & not easily reachable.

This patch checks whether the saved geometry is larger than the current
screen size, and resizes to the screen size instead of the saved values.
2013-03-28 19:44:35 +00:00
Mark Liversedge
8ad606c582 UI Nits: Use a toolbutton on the handle
The animation on clicked for a pushbutton was fugly on a Mac.
2013-03-28 13:16:57 +00:00
Mark Liversedge
1dcc84671d Documentation: Chapter 3 update
.. menu bar documented, still need to do remaining elements of
the main window.
2013-03-27 21:23:43 +00:00
Mark Liversedge
10078fd7da Fix color bug "in Italian"
.. actually it was an uninitialized variable bug introduced
by the earlier fix for the calendar model.

Caused by new code checking if an index was -1 before setting
it, but forgetting to initialise it to -1 to begin with.

Fixes #531.
2013-03-27 20:23:33 +00:00
Mark Liversedge
7804e510e2 Fix searchbox dropdown alignment
Fixes #528.
2013-03-27 19:32:12 +00:00
Mark Liversedge
4e8f85925a Fix calendar issue for Italian translation
.. it turns out the translation for Data and Date are both
Data!

.. we now use the first column that matches when seeking special
fields. This is a bit of a hack, but good enough for now.

Fixes #530.
2013-03-27 09:08:56 +00:00
Mark Liversedge
27c43d9106 Fix foreign characters (e.g.Umlaut) in JSON parser
Thanks to Walter Burki.

Fixes #529.
2013-03-26 20:54:51 +00:00
Mark Liversedge
f334dade78 Documentation: Palatino Fonts
Prettify the pdf output to use palatino fonts from the GNU Press.
Also started to work on chapter 3 of the user guide, but it is
far from finished.
2013-03-26 16:28:34 +00:00
Mark Liversedge
ed736666da Documentation: Manual Chapter 2 Completed
.. very basic quick start guide
.. but doesn't cover train view, perhaps it should
2013-03-25 21:39:10 +00:00
Mark Liversedge
92a79bad27 Documentation: Indentation and Item Lists
.. minor tidy up
2013-03-25 14:09:18 +00:00
Mark Liversedge
0901fafec1 Documentation: Manual Chapter 1 completed.
.. bit of an intro, no screenshots.
2013-03-25 12:57:34 +00:00
Mark Liversedge
70b3acd204 Datafilter support older versions of Flex
.. just like JsonRideFile and Withings parsers.
2013-03-24 20:40:51 +00:00
Mark Liversedge
38597b0ed9 UI Nits: RideMetadata clean look on Windows
.. remove the ugly frame.
2013-03-24 17:34:35 +00:00
Mark Liversedge
13ca13bcf1 UI Nits: Bubble use antialias
.. looks MUCH better.
2013-03-24 17:21:21 +00:00
Mark Liversedge
3017c63e71 UI Nits: Splitterhandle cosmetic on Linux
.. no orange focus rectange thanks.
2013-03-24 16:42:40 +00:00
Mark Liversedge
034fd40ef7 UI Tweaks: Splitter pushbuttons problem
.. attempt to resolve issues on Linux Mint reported
by Tom Weichmann.
2013-03-24 16:30:25 +00:00
Mark Liversedge
72c0a6e0ae Deprecate 'Save CP' button on CP curve
Since it is flawed and confusing to almost all users.
2013-03-24 15:43:07 +00:00
Mark Liversedge
d10262113e Documentation: Makefile adjusted
.. to add a clean rule
.. to remove need for html version
2013-03-24 13:07:08 +00:00
Mark Liversedge
7d015bfa32 Fix Diary view refresh on first select
When youi switch to Diary view no date range is known by the
charts because they have just been created. Since we have a
lazy create we need to resignal the date range after they
are created.

This was already in MainWindow with a call to GcCalendar::refresh
but a recent update optimised that out.
2013-03-24 12:44:09 +00:00
Mark Liversedge
cd5cadbdf4 UI Nits: Sidebar calendar expanding
.. add more minicalendars if the sidebar is expanded -- so
you can show calendars in columns and rows.
2013-03-24 10:56:58 +00:00
Mark Liversedge
d7ad25b49b Add FAQ for close chart and find preferences pane
.. maybe the menu tick should be more blatant.
2013-03-23 22:45:40 +00:00
Mark Liversedge
36fed3e703 Calendar highlighting tweaks
.. personal tastes, so should make configurable. But its nice to
make it the same as the a focus rectangle on Mac.
2013-03-23 21:34:55 +00:00
Mark Liversedge
b8b21829ee Search highlighting on Calendar
.. hover color changes to differentiate.
2013-03-23 21:23:02 +00:00
Mark Liversedge
c5afd227da Fixup search highlighting
.. on Linux/Windows since its slightly different.
.. also fixes a SEGV
2013-03-23 21:06:10 +00:00
Mark Liversedge
240f12d6f1 Search/Filter applies to Calendar
The search/filter selects in the activity list but doesn't
highlight the rides on the calendar.

This patch highlights the dates that have activities that
match with a red border and a red number.
2013-03-23 20:45:13 +00:00
Damien
23ba4286e6 Strava upload : send selected channels only in TCX mode 2013-03-23 17:54:07 +01:00
Mark Liversedge
33171ee87c Strava download fix SEGV
After download fails a .strava file is left in the
athlete directory. This is picked up on restart and
causes a crash.

We now create the temporary file in a temporary
directory to avoid this issue.

Fixes #525.
2013-03-23 10:53:58 +00:00
Mark Liversedge
4065919f9f Documentation: Manual images sorted
.. example on the cover page of the manual

.. we need them to follow a naming convention
   if section-keyword.pdf, e.g. 0-icon.pdf for
   the icon on the title page (section 0).
2013-03-23 09:33:12 +00:00
Mark Liversedge
7dfa370a34 UI Nits: Splitter menu button sizes
.. made toolbar larger and icons larger.
2013-03-23 08:57:39 +00:00
Mark Liversedge
9db0502949 Fix multicalendar repaint bug
After taking out the double refresh in the previous commit
we got a bug with the last selected date stating highlighted
when clicking on the left and right buttons.

Fixed by signalling date changes after the model has been
queried. Still lots faster than before.
2013-03-22 19:36:17 +00:00
Mark Liversedge
71b51cda2b Fix Sidebar multicalendar refresh bug
.. it didn't refresh properly when a ride was added
removed or edited

.. also fix a double update call, so its a bit snappier
now.
2013-03-22 18:56:49 +00:00
Mark Liversedge
b250427cfa Documentation: Manual fixup and Makefile
.. and added raw PDF with no content.
2013-03-22 18:04:56 +00:00
Mark Liversedge
adacd85adf Documentation: Manual structure and markup
.. but no content or images yet.
2013-03-22 17:35:25 +00:00
Mark Liversedge
bce750cb91 Documentation: Update FAQ for seeding CTL
.. since we have now added it to the season definition.
2013-03-21 22:03:24 +00:00
Mark Liversedge
67d555a907 Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2013-03-21 21:51:41 +00:00
Mark Liversedge
2c86831459 Seed LTS from Season used in PMC
.. StressCalculator updated to use the stress seeded for
the period in question
2013-03-21 21:50:50 +00:00
Mark Liversedge
43acdc7569 Documentation: Full User Manual Structure
.. but no markup yet
2013-03-21 20:38:45 +00:00
Mark Liversedge
23cd849a39 Add Starting LTS to Season
.. so we can seed 'CTL' for the PMC charts
2013-03-21 19:50:18 +00:00
Mark Liversedge
006d921cc2 Fix egregious ommission in the V3 credits
.. the project founder and all round ace guy was missing:
   SEAN RHEA!

.. sorry.
2013-03-20 07:04:30 +00:00
Mark Liversedge
5a6cc45f62 Documentation: V3 Release Notes
.. with key features, credits and a list of contributors.
2013-03-19 21:27:40 +00:00
Mark Liversedge
1b89c00155 UI tweaks: Slightly darker toolbar buttons
.. on Linux and Windows to match the toolbar background.
2013-03-19 17:23:51 +00:00
Mark Liversedge
3edbf08c9d Documentation: Add the doc outputs to git
.. no longer ignored in .gitignore

.. they are committed to the repo in the same
   way that translation .qm files are

.. in this way those without the right tools installed
   (in this case tex and texinfo tools) can still use
   them.
2013-03-19 16:39:21 +00:00
Mark Liversedge
4f7909640e Documentation: Filenames too generic
.. So FAQ becomes GC3-FAQ
.. and Manual becomes GC3-Manual

This is just so they can be distributed and installed in their own
right and still be identifiable as GoldenCheetah v3 files.
2013-03-19 15:35:43 +00:00
Mark Liversedge
bd6f9d98e4 Documentation: Added a Makefile
.. to create pdf, html and info files
.. and .gitignore to ignore outputs
2013-03-19 15:23:59 +00:00
Mark Liversedge
23e223f8c5 Documentation: Fix menu for makeinfo on FAQ
.. the nodes needed next, prev, up set so we could
   create an info file using makeinfo
2013-03-19 14:53:07 +00:00
Mark Liversedge
c80450335d Documentation: Initial FAQ
.. completed and fixed up content
.. initial basic texinfo markup done
2013-03-19 12:16:43 +00:00
Mark Liversedge
45c13661d9 Documentation: Completed FAQ content
.. all questions answered.

.. pulled in R.Chung's paper on VE to reference in
   one of the answers. It gets stored for posterity now.
2013-03-19 10:28:37 +00:00
Mark Liversedge
4cd8ec0580 Documentation: User Documentation Content
.. restructured the doc directory to distibguish between
   website content and user documentation

.. added basic content for FAQ and Manual, but neither
   are complete and contain no markup
2013-03-19 09:46:51 +00:00
Mark Liversedge
a8dc1eab70 Remove rename single interval functionality
.. since it is superceded by the ability to edit all
   the interval details, including start and stop time
2013-03-19 07:05:48 +00:00
Damien
cf3edf5345 Correct min value for speed axis 2013-03-18 21:58:22 +01:00
Mark Liversedge
198473a3b5 Missed ModelPlot for IntervalItem.h
.. after removing it from MainWindow.h
2013-03-17 22:17:15 +00:00
Damien
372f5eee75 Display negative temperatures (and respect temperature units) in AllPlot
fixes #466
2013-03-17 22:51:48 +01:00
Mark Liversedge
39f322ba1f Add interval sort function
.. 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.
2013-03-17 21:29:47 +00:00
Mark Liversedge
fcd34cbae1 Fixup edit interval
.. now updates the ridefile (via updateRideFileintervals)
.. and uses a QTimeEdit rather than raw seconds
2013-03-17 19:42:38 +00:00
Damien
1e635455a6 Edit interval 2013-03-17 15:29:54 +01:00
Damien
9778c21a3f Joule GPS : handle negative temperature 2013-03-17 15:29:54 +01:00
Mark Liversedge
a53fe2f2e4 Fix SEGV on delete first activity
.. the RideFile::data member is used by the ride editor and was deleted
when a ridfefile is deleted, but we have no way of telling the editor.

.. now doesn't delete, which is a small memory leak.
2013-03-17 14:22:44 +00:00
Mark Liversedge
a7d3a39fff Rename/Renumber intervals
.. will use entered text and append 1,2,3 etc
.. or if entry ends with a number, will start from that
.. eg; "Int#3" will result in "Int#3", "Int#4" .. "Int#n"

Fixes #513.
2013-03-17 10:31:41 +00:00
Mark Liversedge
4df7af1f09 Kickr Fixups for WF Api 3.0beta08
.. still has a 20sec connection issue
.. no longer crashes on BTLE reset
2013-03-16 21:48:10 +00:00
Chris Cleeland
3155940155 Pre-patched version of libusb tarball
Primarily for Mac OSX builds.
2013-03-16 17:54:27 +00:00
Claus Assmann
4528fdcf2a OpenBSD support for ANT sticks
.. just sets up another o/s version
2013-03-16 14:27:51 +00:00
Mark Liversedge
5b854c4862 UI Nits: Use our own icons not standardIcons
.. for left and right in the calendar, since the standard ones
are pretty ugly.
2013-03-16 13:51:50 +00:00
Mark Liversedge
6929e84f1a UI Nits: Calendar '<' and '>' icons
.. use the native styling.
2013-03-16 13:14:00 +00:00
Mark Liversedge
5c3a662b29 LTM: Add fill curves option
.. so you can fill below the curve.
.. also added a 'version' field for the file format for metric
   details, so we can add more fields later.
2013-03-16 11:17:09 +00:00
Mark Liversedge
4d5dffbf34 Code Cleanup: Win compile with CLucene 2013-03-16 11:16:56 +00:00
Mark Liversedge
3313e9442d UI Nits: Date Settings "un-scrunched"
.. no space in the layout of the date settings edit
dialog made all the options scrunched up. Just added
some 5px spacing to breath some air into it.
2013-03-15 21:18:10 +00:00
Mark Liversedge
e9aba5a512 UI Nits: Side Calendar border
.. fixed bug in GcLabel::paint that makes a nasty border
on the day which makes it look like a button. yuck.
2013-03-15 21:06:00 +00:00
Mark Liversedge
26d2c0f5f7 Windows: GcLabel/GcCalendar font bug
.. GcLabel::paint didn't honour font settings
.. Fonts too big on Windows .. looks better smaller for some reason
2013-03-15 20:59:59 +00:00
Claus Assmann
66412c0381 Fix typos in FixHRSpikes
.. just changes to text
2013-03-15 20:32:03 +00:00
Mark Liversedge
5b214c7d95 Windows: Tooltips
.. but qtsegmentcontrol ignores them. ugh.
2013-03-15 20:11:37 +00:00
Mark Liversedge
d4d03d1e16 Windows: style selection fixup
.. infinite loop when clicking style selector on Linux or
Windows fixed and signals reconnected.
2013-03-15 19:46:21 +00:00
Mark Liversedge
00f5e45d9f Fix WIN startup SEGV with scopebar no ICAL
.. pesky indexing into scopebar when ical not compiled in
2013-03-15 18:57:48 +00:00
Mark Liversedge
b2baf5b69a Windows: Toolbar tweaks
.. menubar color
.. toolbar smaller since contains menu bar
2013-03-15 18:17:43 +00:00
Mark Liversedge
bb53fcc4a9 Windows: View selection
.. scope bar select item lines up with menu choice now.
2013-03-15 17:38:44 +00:00
Mark Liversedge
ca1ecb919b Windows: Font sizes and cosmetics
.. for the sidebar and scope bar
.. use the same and better fit for windows fonts
2013-03-15 17:15:26 +00:00
Mark Liversedge
e9b3f2660e Windows: Toolbar buttons style
.. use cleanlooks since its very close to the Mac look
we are trying to achieve, but without the metal finish.
2013-03-15 16:52:35 +00:00
gcoco
ee79cd0acd Whitespace cleanup 2013-03-14 22:54:57 -03:00
Mark Liversedge
e818193965 Fix Windows Look and Feel crash on ICAL
.. fixed crash when compiling without ICAL
.. I found because my Windows build doesn't have ICAL
2013-03-15 00:22:48 +00:00
Mark Liversedge
ac62be0764 Windows Look and Feel Mac Fixups
.. fixes the Mac build
.. Windows still crashes
2013-03-15 00:13:48 +00:00
Mark Liversedge
18e53197a8 Windows Look and Feel
.. akin to the Mac look and feel
.. still needs a bit of cosmetic work, but basically sound
.. also added in fixes to native file imports

Fixes #404
Fixes #504
2013-03-14 22:53:37 +00:00
Mark Liversedge
c4542f1e35 GcLabel paint is a CPU hog
.. and for no good reason.
2013-03-13 20:27:32 +00:00
Mark Liversedge
b56e610744 Replace fopen() in JSON ride file reader
.. since it fails to open files with foreign characters in the
path name. We now read via QFile into a buffer.
2013-03-12 08:32:53 +00:00
Mark Liversedge
7e424c88ad Fix JSON reader ignoring open fail
D'oh.

The ridefile reader for JSON files spotted when a file failed
to open but then continued to try and parse it!  Now returns NULL
when fopen fails.

This is particularly relevant when using foreign characters in
a filename passed to fopen(). We need to remove the fopen stuff
and replace if QFile reading to a buffer.
2013-03-12 07:47:58 +00:00
Mark Liversedge
ceedada7cf Fix LTM group by selection
Fixes #499.
2013-03-11 21:15:54 +00:00
Mark Liversedge
81093b81ae Remove big numbers at top of Diary calendar
Especially since the date selected is almost irrelevant on the
diary sidebar anyway!
2013-03-11 20:34:18 +00:00
Mark Liversedge
3d7cf5303e Calendar sidebars now show multiple months
.. if you resize them they will show as many months
as they can fit vertically.

.. also removed the scrollbars in the summarys shown
in the diary and LTM sidebar

Fixes #503.
2013-03-11 19:44:45 +00:00
Mark Liversedge
951bc5c3b5 UI Nits: Splitter handle show/hide button gone
.. taking out last remnants in the code from previous design. This will
also remove the focus block that appears on calendar handle in diary view,
but only really visible on Linux with Gtk/Gnome.
2013-03-11 13:21:05 +00:00
Mark Liversedge
7098a7faf4 More Linux file dialog workarounds
.. for export activity and export metrics.

Fixes #504. (again, it was reopened).
2013-03-11 12:39:29 +00:00
Mark Liversedge
98ce93f27f Reinstate mini calendar on sidebar
This is the first step to reinstating the calendar on the analysis view
sidebar. Next step is to enhance it to show multiple months and then to
refactor the diary sidebar GcCalendar to use it.
2013-03-11 12:14:43 +00:00
Mark Liversedge
89703f69d0 Fix Histogram window custom date selection
.. it wasn't updated properly when fixing custom
date ranges in LTM.

Fixes #509.
2013-03-11 10:06:27 +00:00
Mark Liversedge
cdd0dddc2c Speed up sidebar painting
.. by setting the linear gradient up in advance rather than
on every repaint.
2013-03-11 09:49:34 +00:00
Mark Liversedge
1783099fca Use QT file dialogs on Linux
.. cause native are borked on Ubuntu.
2013-03-11 09:49:34 +00:00
Mark Liversedge
597abedfb8 Explicit memory allocation for CLucene
.. clutching at straws, but more explicit type declaration and usage to
try and resolve Win7 64bit issues with cross-compiled 32bit binaries.
2013-03-09 16:29:51 +00:00
Mark Liversedge
9b677e60f5 Fix sidebar groupby column names error
The visual headings are not reset when the view is reset, for
example after startup. This means the wrong columns are offered
on the activity popup menu for group by.

The resetView() function needed to call columnsChanged() to get
the visual headings reset.
2013-03-09 11:38:04 +00:00
Mark Liversedge
c9dffd2e1a Less right-click on Activity list
.. group by and field chooser now appear on the
popupMenu in the sidebar.
2013-03-09 11:25:32 +00:00
gcoco
c321705672 Added notes on the build
Basically pointed out you need QT 4.8 minimum and that use newer
libs if they exist from Windows except for libusb (0.1.12 required)
2013-03-08 17:20:41 -05:00
Mark Liversedge
06de302ebe Fix custom date range muddle when groupby weeks
.. the start date would progressively change as you selected a
date range in the sidebar. This is because the code to set the date
range to the start of a week looked at the wrong date variable when
using a custom date range.

Fixes #500.
2013-03-08 15:24:03 +00:00
Mark Liversedge
3739d3e734 LTM tooltip for groupby weeks is misleading
.. it lists start date for this week to start date for next week
.. now changed to say 'Week commencing <date>'.

Fixes #501.
2013-03-08 12:50:42 +00:00
Mark Liversedge
020ff72b4c Fix rename interval SEGV
.. when called from popupMenu.
2013-03-08 07:26:27 +00:00
Mark Liversedge
ef87cec451 UI Nits: Splitter interval functions
.. final piece of the jigsaw, interval popup menu.
2013-03-07 20:54:40 +00:00
Mark Liversedge
ff0fb0bef1 Add support for deleting videos
.. but only deletes references and db entry
.. we do not delete from the filesystem -- need to add a dialog
   to ask the user to confirm deleting the file from disk.
2013-03-07 15:23:43 +00:00
Mark Liversedge
b41ff0a020 Add function to delete workouts
.. in train view we could add workouts but never delete.
2013-03-07 14:34:47 +00:00
Damien
87d4630231 LTMSidebar: store/use last selected date range 2013-03-05 22:49:42 +01:00
Mark Liversedge
912613d254 Dumbass spelling mistake. 2013-03-05 20:13:19 +00:00
Mark Liversedge
f266533e1b UI Nits: LTMSidebar Splitter simplify to menu
.. remove the + and - options.
2013-03-05 20:00:54 +00:00
Mark Liversedge
bf2737fde0 UI Nits: Simplify splitter to just one menu
.. instead of + and - and menu.
2013-03-05 19:47:54 +00:00
Damien
3ccfa87325 Strava upload: Use TCX format to handle stationary trainer ride 2013-03-04 23:26:13 +01:00
Mark Liversedge
0315dd2008 UI Nits: Analysis view menu only
.. need to fix up the event but at least got the code in.
.. still needs the menu implementing.
2013-03-04 22:10:12 +00:00
Mark Liversedge
d8bd3fe939 UI Nits: TrainTool splitter shortcuts 2013-03-04 20:42:15 +00:00
Mark Liversedge
9dcbadcc84 UI Nits: Splitter actions for TrainTool Devices
.. add and delete devices.
2013-03-04 16:00:11 +00:00
Mark Liversedge
b41589da42 Fix Home Sidebar Season Editing
.. it broke when we moved from right click to splitter buttons.
2013-03-04 14:25:09 +00:00
Mark Liversedge
2a212878ec Fix SEGV on edit event details
.. part of migration from right click to splitter.
2013-03-04 14:07:17 +00:00
Mark Liversedge
aedbb291c5 Code Cleanup: Strava download Xcode warning
.. adding a number to a string.
2013-03-04 13:48:47 +00:00
Mark Liversedge
f7f143270e Fix SEGV on add/delete event in LTMSidebar
.. need to use selected items, since its not always called via a
right click - there is a button on the handle for that now.
2013-03-04 09:23:41 +00:00
Mark Liversedge
d52176927a UI Nits: Groove highlight line
Seriously OCD / attention to detail, adding the highlight line
on the scope bar, icon bar and splitter handle. Most folks wouldn't
even notice it.
2013-03-03 22:31:05 +00:00
Mark Liversedge
10e7062632 UI Nits: Emboss Splitter + - menu icons
.. changed icons since they don't emboss well algorithmically
(yeah, the algorithm is very basic for now).
2013-03-03 20:03:12 +00:00
Mark Liversedge
a0665e3fa7 UI Nits: Center Icon Bar 2013-03-03 15:23:05 +00:00
Mark Liversedge
84c17cd9f8 UI Nits: Images embossed
.. akin to the NSImage 'template' function we now pre-process
the GcSplitter icons to get a shaded and embossed look. Its a bit
clunky code, but its only run at startup.
2013-03-03 14:58:16 +00:00
Mark Liversedge
eae1e2183d UI Nits: Stop unhiding the sidebar
.. when switching views. It seemed like a good idea at the
time, but now it is really irritating. If I want the sidebar to
be shown I'll select it thanks.
2013-03-02 23:00:32 +00:00
Mark Liversedge
dbd21d35e4 UI Nits: Sidebar remember their state
Rather than relying on the parent to maintain the splitter sizes
and states, the GcSplitter remembers its own state and sizing.

This includes remembering if the children have been hidden via the
icon bar at the bottom of the splitter.
2013-03-02 22:52:41 +00:00
Mark Liversedge
25121f515f UI Nits: Splitter icons adjust
The icons are adjusted via utility function iconFromPNG()
which currently just adjusts the icon color to be a muted
gray as opposed to black.

This is the first pass at recreating the 'template' function
used by the cocoa image functions. Will add an emboss feature
later, but at least now they are less vibrant and when clicked
turn black giving a visual clue that they are clickable.
2013-03-02 20:57:56 +00:00
Mark Liversedge
b06f956924 UI Nits: QSplitter colors on Linux
.. just adjusted to be more Gnome friendly.
2013-03-02 18:15:35 +00:00
Mark Liversedge
12aad7f38d Fixup sidebar cosmetics for Linux
.. embossed offset is 2 there too.
2013-03-02 17:37:14 +00:00
Mark Liversedge
d8af6e36bd UI Nits: QSplitter cosmetics
.. prettified on a Mac.
.. still need to work on icons
2013-03-02 16:57:37 +00:00
Mark Liversedge
be58a768ed Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2013-03-02 09:27:05 +00:00
Mark Liversedge
d385657f29 LTMPlot fix baseline setting
.. it was lost when fixing bar style drawing.
.. maybe we should also allow fill under curves?
2013-03-02 09:26:11 +00:00
Mark Liversedge
efd8cbdac7 Mac Sidebar button in toolbar
Button to toggle sidebar, also changes as we manually close
the sidebar by dragging, similar to behaviour in XCode.
2013-03-01 13:17:05 +00:00
Mark Liversedge
8f3a35fb79 Mac sidebar button image
.. as template image for NSButton
2013-03-01 10:49:29 +00:00
Damien
a4dbb294a2 UI Nits: Sidebar, invisible root item for intervals 2013-02-28 22:49:28 +01:00
Mark Liversedge
e2e0f3cfc4 Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2013-02-28 18:53:03 +00:00
Mark Liversedge
f54a89272f Allow manual collapse sidebar
.. but need to add a toolbar button for Mac since the
old show/hide button on the scope bar has been removed
since it is now in the wrong place.
2013-02-28 18:51:47 +00:00
Mark Liversedge
cdbad94f07 Remove german translations for weekly summary 2013-02-28 09:50:26 +00:00
Mark Liversedge
d1de9d6c28 Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2013-02-28 07:18:30 +00:00
Mark Liversedge
a92ac101a5 INSTALL-MAC libusb instructions
Now include the patch required to get a compilation
going. Thanks to Gareth for the link.
2013-02-28 07:16:10 +00:00
gcoco
424ca4a3d9 Add Garmin Edge 810 2013-02-28 00:37:23 -05:00
Mark Liversedge
68cd0fb40e Splitter menu position and tooltips 2013-02-27 19:21:50 +00:00
Mark Liversedge
d30e4ac8d5 New sidebar splitter on Analysis and Diary 2013-02-27 16:03:56 +00:00
Mark Liversedge
81f7e92316 UI Nits: Splitter decor
Moved icon bar back to the bottom and made Splitter handle
same size as scope bar.

The splitter handle paint artefacts were caused by splitter
size restore from before the "new" splitter. We will need to
rename all the settings to ensure we don't get incorrect sizes
for them in future.
2013-02-27 12:38:18 +00:00
gcoco
f9bb981698 Added Garmin Edge 510 2013-02-27 06:10:59 -05:00
Damien
e39412a984 UI Nits: Sidebar WIP
Move extra menu
2013-02-26 23:12:56 +01:00
Mark Liversedge
77fba1d728 UI Nits: Fix splitter expanding
Since the treeviews didn't fill the space in the sidebar.
This was because the splitter itself wasn't expanding since it
used the sizepolicy of its children.

.. not sure the class hierarchy is right for this stuff, but will
stick with it for now.
2013-02-26 22:04:35 +00:00
Marco Piccirilli
85e8e11ca5 v3.0 Italian Translation
.. all texts translated!
2013-02-26 09:25:16 +00:00
Mark Liversedge
a9ac871ce0 Splitter for Train View
.. icons and basics. Wanted three treeviews to work on the
issue related to treeviews not expanding properly.
2013-02-25 22:41:48 +00:00
Damien
8722d5fd2f UI Nits: Sidebar WIP 2013-02-25 23:33:22 +01:00
Mark Liversedge
80b3fac3e2 Handle button too small on Linux 2013-02-25 19:55:55 +00:00
Mark Liversedge
4088c519b9 Fix SEGV on unsupported device types
.. train tool segvs on device types that were previously
configured but are no longer supported. This fix now silently
ignores any devices that are no longer supported.

Fixes #497.
2013-02-25 13:37:07 +00:00
Mark Liversedge
30259af494 UI Nits: Sidebar WIP
.. some cosmetic and tidy ups for the recent sidebar WIP update
from Damien. Just trying to get clean look before making the icon
bar look more like the one in XCode and make the icons use the
Cocoa "template" look.
2013-02-25 13:19:50 +00:00
Damien
99691fb1e3 Strava download : add error messages 2013-02-24 23:00:17 +01:00
Mark Liversedge
32b41699a0 Minor fixups to new Splitter
.. to compile.
2013-02-24 21:38:39 +00:00
Damien
9e66bb9f9a Add missing images in last commit for sidebar 2013-02-24 22:33:31 +01:00
Damien
9a0b87ce7c UI Nits : Add a splitter control 2013-02-24 22:20:57 +01:00
Mark Liversedge
9bc328ce8c Weight entry honours user preference
.. metric or imperial.
2013-02-24 18:38:39 +00: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
Claus Assmann
1fe982dc64 Poweragent 7.5.7.34 CSV date format
It seems the new PowerAgent version (7.5.7.34) changed the format
of the date/time data in the csv file:

6,2011-01-02 21:22:20|2011-01-02 21:22|01/02/2011 21:22|2011-01-02 21-22-20,0,0, ...

Here are the header lines of the new PowerAgent csv file:

Version,Date/Time,Km,Minutes,RPE,Tags,"Weight, kg","Work, kJ",FTP,"Sample Rate, s",Device Type,Firmware Version,Last Updated,Category 1,Category 2
6,2011-01-02 21:22:20|2011-01-02 21:22|01/02/2011 21:22|2011-01-02 21-22-20,0,0,0,,55.8,807,227,1,CycleOps Joule,18.054,,0,0
User Name,Power Zone 1,Power Zone 2,Power Zone 3,Power Zone 4,Power Zone 5,Power Zone 6,HR Zone 1,HR Zone 2,HR Zone 3,HR Zone 4,HR Zone 5,Calc Power A,Calc Power B,Calc Power C
,0,0,0,0,0,0,148,157,167,172,250,0,-0,0
Minutes, Torq (N-m),Km/h,Watts,Km,Cadence,Hrate,ID,Altitude (m),Temperature (°C),"Grade, %",Latitude,Longitude,Power Calc'd,Calc Power,Right Pedal,Pedal Power %,Cad. Smooth
2013-02-24 15:56:57 +00:00
Damien
ae1dc58600 Add Strava activity download feature 2013-02-23 23:16:53 +01:00
Mark Liversedge
b6ea47808f UI Nits: Less vibrant gradients
.. go back to more GC-like color defaults, which became a little
too vibrant in a recent update to introduce linear gradients to
the CP, Histogram and LTM plots.
2013-02-23 16:34:09 +00:00
Mark Liversedge
243c32d7b5 UI Nits: Diary Sidebar
.. alignment and spacing.
2013-02-21 21:32:04 +00:00
Mark Liversedge
fab9766a48 Support old flex or lex
.. in JsonRideFile.l

Because we added a call to yy_lex_destroy in the parser
but it may not exist in Flex < 2.5.9 or if we are not using
GNU Flex, e.g. good ol' ATT lex.
2013-02-21 18:47:10 +00:00
Claus Assmann
266f6b2648 Update INSTALL-LINUX for needing > Flex 2.5.9 2013-02-21 18:37:20 +00:00
Mark Liversedge
6fdc55528f Code Cleanup: RideFileCache remove mallocs
Mark Rage's superfast meanmax computer works like a charm but
uses stdlib malloc/free for memory allocation.
2013-02-21 13:07:00 +00:00
Mark Liversedge
c1d071ee04 Code Cleanup: Deprecate Train Streaming
We no longer support streaming data from the Train View.
All the source for this has been moved to deprecated.
2013-02-20 22:11:54 +00:00
Mark Liversedge
8bec8ff252 Code Cleanup: RideFile EditorData memory leak
.. when freeing memory for the ridefile we didn't delete
the memory allocated for editor data
2013-02-20 21:11:13 +00:00
Mark Liversedge
1ad9721f10 Code Cleanup: Json lexer memory leak
.. possibly. According to the docs we need to free
the malloc'ed memory in the lexer when parsing completes.
2013-02-20 20:20:32 +00:00
Mark Liversedge
137670aebf UI Nits: Splitter handles cosmetics
Its the OCD in me again. Got rid of the "gap" between the
splitter handles and lined up the labels etc.
2013-02-20 13:30:01 +00:00
Damien
ab53c581fc Sidebar : Use QSplitterhandle 2013-02-18 22:55:21 +01:00
Mark Liversedge
4d4c591312 UI Nits: Font tweaking splitter 2013-02-18 21:24:17 +00:00
Mark Liversedge
b31c0de2cd UI Nits: splitter color
.. black is too in your face. changed to dark gray.
2013-02-18 19:45:27 +00:00
Mark Liversedge
b9ee4a743c UI Nits: Sidebar cosmetics
.. MainWindow splitter color to bring in line with the new work
from Damien.
2013-02-18 19:37:05 +00:00
Mark Liversedge
2f17db764f Fix season drag and drop SEGV 2013-02-18 19:08:35 +00:00
Mark Liversedge
e1ac0e8ce0 UI Nits: Seriously OCD 2013-02-18 17:36:09 +00:00
Mark Liversedge
515cbfbd3c UI Nits: OCD cosmetics for splitter handles
OK, I admit it, I am OCD when it comes to this stuff. The
handles are a WIP and Damien is working hard on it, but for
now I just wanted to get rid of;

- spacing between handle and content
- focus / height of handle toolbar

Its gonna go when Damien finishes his excellent work, but I
just needed to get rid of it temporarily, I was getting bit
of a twitch ;)
2013-02-18 17:31:57 +00:00
Mark Liversedge
e4c86c35be Code Cleanup: Fix yyinput warnings
.. we can tell flex to not generate the yyinput code in the
first place, to remove compiler warnings about emitting yyinput()
2013-02-18 16:24:59 +00:00
Mark Liversedge
d170977776 Merge pull request #492 from Walibu/master
Adding L/R balance saved into ridefile
2013-02-18 02:43:35 -08:00
Walter Bürki
d370fdee42 added left/right balance values into ridefile 2013-02-18 11:06:32 +01:00
Mark Liversedge
96c4acafd6 Code Cleanup: Fix Xcode 4.6 compiler warnings
.. largely about unused member variables in class definitions
2013-02-17 20:26:22 +00:00
Mark Liversedge
031608645d Add script to build xcode 4.6 project files
.. just upgraded to Xcode 4.6 and the project files
created by qmake 4.8 don't work. After scanning the
web I found a workaround in QTBUG-29371 and implemented
it in a little shell script: qmake-xcode.

.. to run, from the src directory invoke it with
$ sh ./qmake-xcode
2013-02-17 19:30:46 +00:00
Jon Escombe
5a27ae15c9 Fix CRS file granularity
Using the CompuTrainer utility to convert GPS logs to a course profile
results in lots of very small segments where the height differences are
less than 1 metre. These were incorrectly handled as the altitude was
being stored as a long.

In fact the double to long conversion was always rounding down, for
instance 200+0.01 is 200 as expected, but 200-0.01 is 199. Therefore the
course would gradually ratchet downhill with every small data point.
2013-02-17 15:56:49 +00:00
Damien
46577ca1c7 Correct : splitters not resizing after expanded 2013-02-17 10:49:36 +01:00
Damien
9426f11fde UI Nits: Add titlebar for splitters 2013-02-16 23:48:00 +01:00
Mark Liversedge
cfdb3037d8 Fixup last commit
.. strange edits lost related to widget layouts.
2013-02-16 14:21:12 +00:00
Mark Liversedge
b58a6e747b Shade Selector on CP chart
- none - no shading on the all curve
- derived CP - as before using the CP value derived from all curve data
- CP - the value of CP for the time of the ride

NOTE: When in rangemode (i.e. on home) the CP is set to the mean CP for
the date range selected.
2013-02-16 13:41:55 +00:00
Mark Liversedge
3670f08bf6 Revert "Code Cleanup: Suppress Xcode warnings"
This reverts commit 6a97d81e4f.
It causes a SEGV.
2013-02-15 11:17:29 +00:00
Mark Liversedge
6a97d81e4f Code Cleanup: Suppress Xcode warnings
.. about yyinput from clang when compiling lex scanners.
2013-02-15 10:47:34 +00:00
Mark Liversedge
2a03cb87b3 Garmin Device Types
.. not so much unknown since we know its a Garmin xxx
2013-02-15 06:33:47 +00:00
gcoco
cf346b18aa Accuracy is important 2013-02-15 00:17:21 -05:00
gcoco
ba2a389ea8 Add some Garmin Device Types
Garmin Edge 200
Garmin Training Center
Garmin Connect Website
2013-02-14 17:35:18 -05:00
Mark Liversedge
05f523f3be Fix VAM on CP chart out by factor of 10
Fixes #489.
2013-02-13 22:01:43 +00:00
Mark Liversedge
fe9e3e00cf UI Nits: remove reveal on 3d plot
.. it doesn't play nice with OpenGL and the dropdown
disappears anyway.

Fixes #488.
2013-02-13 21:00:11 +00:00
Mark Liversedge
2f8eaa9cc3 UI Nits: Manual dialog
swap sport and workout code round.

Fixes #487.
2013-02-13 20:33:23 +00:00
Tilman Schmiedeberg
e234dc067f German Translation for V3.0
Over 1,700 texts translated.
2013-02-13 19:57:50 +00:00
Mark Liversedge
0ffdf84383 Code Cleanup: win32 fixups
.. Bin2RideFile constants might be an issue?
.. otherwise just unused variables
2013-02-13 19:17:56 +00:00
Mark Liversedge
7dd99eeb8b Code Cleanup: TrainTool.h
.. unused context menus for workout and media lists.
2013-02-13 11:59:13 +00:00
Mark Liversedge
623fec73c0 Code Cleanup: SplitActivityWizard.h
.. removed commented out code for markers -- they cause QWT to crash anyway!
2013-02-13 11:57:30 +00:00
Mark Liversedge
8b11552a04 Code Cleanup: Last Xcode semantic warnings
.. unused NSString to QString
.. autorelease not valid in CFStringCreateWithCharacters
2013-02-13 11:32:50 +00:00
Mark Liversedge
a40389fbc0 Fix metric/imperial in LTMSidebar
The code uses the old global metric/imperial selector rather than the
new athlete specific setting.

Fixes #483.
2013-02-13 11:01:14 +00:00
Mark Liversedge
626b4243cc Code Cleanup: RideFileCache
.. static const in class a GNU extension and not used anyway.
2013-02-13 09:26:19 +00:00
Mark Liversedge
8ff28181e3 Code Cleanup: Power Hist
.. static const in class GNU extension.
2013-02-13 09:24:12 +00:00
Mark Liversedge
f8c42ce8c7 Code Cleanup: Workout Wizard
.. semantic warningss on Xcode regarding default constructors
2013-02-13 09:16:13 +00:00
Mark Liversedge
3235233791 Code Cleanup: ? and + operator precedence warnings
.. in RideImportWizard resizing .. nasty bit of code.
2013-02-13 09:09:39 +00:00
Mark Liversedge
d97ae3c38a Code Cleanup: Compiler nits
.. fix further XCode semantic warning messages (still some left)
.. WIN32 gcc builds
2013-02-13 09:01:20 +00:00
Mark Liversedge
6865dd4bfd Code Cleanup: More compile time errors/warnings
.. warnings from Xcode 4.6 (still some remaining)
.. and deprecated Quarqd code (we have native ANT now)
.. and MultiWindow deprecated (it isn't finished)
2013-02-12 22:40:08 +00:00
Mark Liversedge
d30f563aac Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2013-02-12 07:04:47 +00:00
Jaime
9eb6f682ce Code Cleanup: CpintPlot Memory leak
.. kept allocating a new RideFileCache but didn't delete
the previous one. Given their relatively large size this
can lead large amounts of memory lost in a short amount
of time.
2013-02-12 06:57:34 +00:00
Mark Liversedge
6450386070 RideEditor anomaly button enable/disable
.. if there are/aren't any anomalies in the ride.
2013-02-11 20:23:44 +00:00
Mark Liversedge
c6413e352d Fix SEGV on finf intervals on a blank activity
If you try to find intervals on a blank (manual) activity
the dialog will SEGV. It now checks in the same way as split.
2013-02-11 20:01:05 +00:00
Mark Liversedge
e4f426e717 Tacx Flow Virtual Power
Courtesy of Alex Leyland.
2013-02-11 19:25:28 +00:00
Mark Liversedge
53aaf75e7d Less heap more stack
.. for LTMOutliers, just trying to eliminate as much
naked new as possible.
2013-02-11 17:18:10 +00:00
Mark Liversedge
2a094c8fe9 HrPwPlot: Show/Hide fullplot
.. since it doesn't add much now its lost shading.
2013-02-11 16:46:15 +00:00
Jaime
abb6ae82d4 Code Cleanup: HrPw memory leak
.. delete arrays[]
.. small change to code formatting
2013-02-11 16:25:30 +00:00
Jaime
9ab4de339e Code Cleanup: Ride Editor memory leak
.. for LTMOutliers, now alloced on stack not heap.
2013-02-11 15:33:59 +00:00
Mark Liversedge
cd2fca9346 Code Cleanup: Remove #if 0 code
As a personal habit I tend to use the C pre-processor to
comment out code blocks I don't want to remove. This is in
case the code will be required in the future.

I think it is now safe to say the code commented out is not
required -- most of it is legacy and marks the transition from
earlier designs or legacy code.

I've done this in one big commit since in theory it has no
functional change, and in future can look in this commit for any
code we may want to reinstate.
2013-02-11 15:00:00 +00:00
Mark Liversedge
0cb46687ab Code Cleanup: LibUsb
.. removed commented out code.
2013-02-11 14:40:58 +00:00
Mark Liversedge
d1475b4d93 Code Cleanup: RealtimeController
.. lots of confusion about virtual power based upon speed and
using lack of cadence to show no power -- this is invalid since there
may not be a cadence sensor present!
2013-02-11 14:38:21 +00:00
Mark Liversedge
0f4d00dbda Code Cleanup: RideFileCommand
.. fix small memory leak on command stack.
2013-02-11 14:36:05 +00:00
Mark Liversedge
b8f23a14a4 Code Cleanup: Charts
.. comments explain decisions, no action required.
2013-02-11 14:15:43 +00:00
Mark Liversedge
b992739d7b Code Cleanup: Device Downloading
.. all comments are suggestions not mandatory and we have a feature
request system for that.
2013-02-11 14:12:41 +00:00
Mark Liversedge
f5b5668905 Code Cleanup: ErgFile
.. XXX is a suggestion not a TODO.
2013-02-11 14:07:55 +00:00
Jaime
9625afe7a8 Icon Toolbar Memory Management
More minor fixups regarding memory leaks.
2013-02-11 13:50:01 +00:00
Mark Liversedge
8c07c27afe Fix assert SEGV on Trimp Points
Introduced by me when using workout_time for duration.
2013-02-11 13:48:41 +00:00
Mark Liversedge
d2fcc590b9 Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2013-02-11 13:19:59 +00:00
Mark Liversedge
d7ec43633f Code Cleanup: Valgrind Memory
Not sure why, but setting the text on a treewidget item seems to
cost a lot of memory. So we don't bother since it is never used.

In general the valgrind output is ok, quite surprised. There are
very few non-widget items that are alloced but never free'd in the
GC code.
2013-02-11 11:32:23 +00:00
Mark Liversedge
147d9c81ed Code Cleanup: Minor Valgrind grumbles
.. uninitialised variables
2013-02-11 10:40:08 +00:00
Mark Liversedge
dd62b5587f Code Cleanup: Deprecated
MainWindow - AthleteTool - not used.
2013-02-11 10:09:00 +00:00
Mark Liversedge
9f94ba823d Code Cleanup: Deprecating stuff
Train view - race* - out of date and no used
Train view - SimpleNetwork - not used
Analysis view - WeeklySummaryWindow - not used
MainWindow - RideCalendar - deprecated 2 years ago
2013-02-11 10:03:21 +00:00
Mark Liversedge
40baed9272 Code Cleanup: src.pro
Removed deprecated / unused code, includes;
- racedispatcher.cpp
- simplenetworkcontroller.cpp
- simplenetworkclient.cpp

Will look at the network stuff in OpenTrainer.
2013-02-11 09:40:42 +00:00
Mark Liversedge
1baefa0e2f Code Cleanup: Notes deprecated
.. some vestiges from the old notes file.
.. fixes a significant memory leak in MainWindow too.
2013-02-11 09:35:03 +00:00
Mark Liversedge
ca5c92023a Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2013-02-11 09:08:34 +00:00
Mark Liversedge
5a6477d7a3 Code Cleanup: GcCalendarModel
.. wow, nasty memory leak fixed. Leaked memory every
time a ride was selected or calendar was refreshed!

.. tbf it was marked with a 'XXX' memory leak comment
but really lazy to leave it there.

.. was also highlighted by valgrind, which is promising,
since I've been using it to hunt down any memory managment
issues -- most of them are within 3rd party libraries tho.
2013-02-11 09:05:19 +00:00
Mark Liversedge
ad6d6e040f Code Cleanup: Data processors
.. still call ride selected when done.
2013-02-10 21:19:25 +00:00
Mark Liversedge
d8696debb4 Code Cleanup: GUI elements 2013-02-10 21:18:14 +00:00
Mark Liversedge
d6181bca94 Code Cleanup: DBAccess
.. invalid comments about texts which are bwing stored.
2013-02-10 21:14:35 +00:00
Mark Liversedge
1eb06866cc Code Cleanup: CP chart 2013-02-10 21:11:39 +00:00
Mark Liversedge
097651dc5a Code Cleanup: Fix tools
All the fix tools share common code with an empty else
clause markeed with XXX. removed the redundant code.
2013-02-10 21:09:45 +00:00
Mark Liversedge
4e92ec36d5 Code Cleanup: Calendar and Diary
.. comments just reflect current constraints and are not
actionable, so XXX removed.
2013-02-10 21:06:24 +00:00
Mark Liversedge
dd8cb73de1 Code Cleanup: RideFile readers
.. mostly comments about features not yet implemented, but
   not relevant to current feature set anyway.
2013-02-10 11:27:33 +00:00
Mark Liversedge
e4334a1c99 Code Cleanup: MainWindow
.. XXX comments related to CPI files, we no longer have those.
2013-02-10 11:16:28 +00:00
Mark Liversedge
66dff2fc50 Code cleanup: Video player
.. comments don't reflect that we implemented video playback on
Mac using the QTKit API.
2013-02-10 11:14:47 +00:00
Mark Liversedge
92925cca9d Code Cleanup: Stress Calculator
.. wasn't a todo, more a comment.
2013-02-10 11:13:36 +00:00
Mark Liversedge
5c6d1eea31 Code Cleanup: Scatterplot
.. had same comments as model plot, obv from cut and paste!
2013-02-10 11:12:17 +00:00
Mark Liversedge
24697a4372 Code Cleanup: Calendar menu
.. remove unimplemented options for import/export
2013-02-10 11:10:39 +00:00
Mark Liversedge
b457e958ac Code Cleanup: Aerolab
.. unused variable
2013-02-10 11:00:56 +00:00
Mark Liversedge
90f8560da9 Code Cleanup: Model Plot
.. used XXX as warnings rather than todo.
2013-02-10 10:59:54 +00:00
Mark Liversedge
d341943da9 Code Cleanup: Ride Data and Friends
.. cleaning XXX and misleading comments
2013-02-10 10:57:33 +00:00
Mark Liversedge
4ffca1e011 UI Nits: Mac focus rectangle on ErgDB download
.. removed coz it looks ugly.
2013-02-10 10:45:25 +00:00
Mark Liversedge
7cf419a204 Silence CLucene compile time warning
.. Hits->length() is a size_t not an int.
2013-02-10 10:37:26 +00:00
Mark Liversedge
05b60576af Add Tacx Satori Virtual Power
Courtesy of Stephen Dag we now support virtual power
for the Tacx Satori trainer.
2013-02-10 09:21:14 +00:00
Mark Liversedge
aa7f39e30b UI Nits: Mac toolbar tidy
.. a blank widget left from other coding iterations and the
lhs widgets not spacing properly.
2013-02-09 13:52:26 +00:00
Mark Liversedge
eea12e7bd7 Fix split manual ride SEGV
If you try and split an empty/manual ride then the split wizard
SEGVs. The split wizard now is only executed if the ride contains data.
2013-02-09 13:21:12 +00:00
Mark Liversedge
dcf21924ba UI Nits: border on metadata
.. part of moving to GcChartWindow
2013-02-09 12:36:49 +00:00
Mark Liversedge
4408624a19 MetricAggregator less heap
Noticed when looking for memory/stack overflow issues that
the importRide function allocates an aggregator on the heap
for the lifetime of the method. No biggie, but better to use
stack for that.
2013-02-09 11:48:11 +00:00
Claus Assmann
b7f85043ce Add Support for Joule CSV Poweragent Files
Updated CSV support for Joule 1.0 format files in Poweragent
format. Also included a sample ride file.
2013-02-09 11:14:01 +00:00
Mark Liversedge
24ba55a113 Fix mac toolbar icon corruption
Because the image representation was stored in the pixmap
which was allocated on the stack -- it should be allocated on
heap since the underlying data is never actually copied.

This seems to fix the issue, but need to keep monitoring it!

Fixes #477.
2013-02-09 00:41:02 +00:00
Jon Escombe
7c84a1e905 Fix lap number issue
.. lap number jumps around when playing a crs file
2013-02-07 19:28:55 +00:00
Jaime
27216539d2 Mac Buttons Icon Corruption
.. another attempt to fix it.
2013-02-07 17:23:16 +00:00
Mark Liversedge
9f186855ed Code Cleanup: Train
.. TrainDB and TrainTool cleanup, removed references to GC servers
and removed commented #if0 code.
2013-02-07 16:25:34 +00:00
Mark Liversedge
3df4908156 Code Cleanup: TP upload/download
.. just removed commented out code.
2013-02-07 15:53:39 +00:00
Mark Liversedge
03b6832b7b Fix colorpicker focus loss on Mac
.. when editing a custom metric. This is to get around
a QT Bug ().

Fixes #476.
2013-02-07 14:53:18 +00:00
Mark Liversedge
82ec969753 Code Cleanup: Add Device Wizard
.. just comments
2013-02-07 13:23:38 +00:00
Mark Liversedge
d3e6b3cf6c Code Cleanup: Home and GcWindows
Tidy up code, removing XXX and comemnted out blocks
of code in preparation for V3.0 release.
2013-02-07 13:21:15 +00:00
Mark Liversedge
47c58397b5 Code Cleanup: RideNavigator
Remove XXX and commented out code. No functional changes.
2013-02-07 13:08:05 +00:00
Mark Liversedge
d4d457e2db Code Cleaning: ANT+ sources
Removing and fixing 'XXX' code markers across the ANT+
code. Largely this was to confirm against specs and mark
for future support (e.g. burst data, further refactoring
of the quarqd sources).
2013-02-07 12:20:40 +00:00
Mark Liversedge
e191b46205 Code Cleaning: LTM sources
Addressing or removing 'XXX' code alerts across the Long Term
Metrics source files.

This is part of a code cleanup prior to V3.0 release.
2013-02-07 12:04:44 +00:00
Mark Liversedge
96ddf765c3 Kickr connection fail gracefully
.. the code assumes the kickr connection will always work, even
when no BTLE hardware is present.

If no BTLE hardware is available then connections fail immediately
and so do attempts to find devices.

If BTLE hardware is available but the kickr connection cannot be
established in 30 seconds in train view then it returns an error.

Also added better device descriptions to check the device subtype
so we can identify stages, inride and kickr separately.
2013-02-07 09:16:46 +00:00
Mark Liversedge
1426ad1bc2 Fix SEGV in ride editor
When switching between a ride with datapoints and one
without, then back again. Editor data was being deleted
for previous ride edited when selecting a ride with no
data!
2013-02-06 21:48:42 +00:00
Mark Liversedge
31727982b6 Mac buttons retain
.. trying to address corrupted button icons.
2013-02-06 20:20:32 +00:00
Mark Liversedge
0748d6172b Update docs for build
.. to run qmake -recursive from the top level directory
to ensure subdirs Makefiles are regenerated.
2013-02-06 18:56:52 +00:00
Mark Liversedge
de9f3f9e4a replace tabs with spaces
.. in TrainTool.cpp
2013-02-06 16:03:40 +00:00
Mark Liversedge
bd9f87223d Merge pull request #473 from jjofre/master
Restore load/gradient after done with calibration
2013-02-06 07:59:18 -08:00
Mark Liversedge
0134931638 Fix compiler warnings
All are harmless but for the sake of clarity have
fixed them all bar a couple;

- Lucene grumbles about signed/unsigned conversion which
  is/isn't valid depending upon the version of CLucene you
  compile with. Either way it is harmless.

- QxtScheduleView has a bunch of issues, but since it is a
  third party widget its better to leave it unchanged.
2013-02-06 15:54:32 +00:00
Jaime
d6b7e8645e Restore load/gradient after done with calibration 2013-02-06 10:51:23 -05:00
Mark Liversedge
0970abd30d BlankState: Cosmetics
Just changed the icon for add device and tidied up
the icon sizing and button sizing a smidge. As ever,
tastes vary.
2013-02-06 12:35:27 +00:00
Mark Liversedge
82ecce3af6 BlankState: Analysis view more blanks
- Better handling of a NULL ride for most of the analysis charts
- Don't show activity editor if no data rows to edit
2013-02-06 11:48:52 +00:00
Damien
4f3f8701f0 PfPvWindow : Double Click
Update edit values for CP et CAD after double click
2013-02-05 23:37:46 +01:00
Damien
c73bddb128 UI Nits: PfPvWindow double click to change quarters (CP and cadence) 2013-02-05 23:20:11 +01:00
Mark Liversedge
14e2fd97ad BlankState: Minor cosmetics
.. changed the image to be fainter and smaller
.. the text to be larger and bolder
2013-02-05 21:55:32 +00:00
Mark Liversedge
aa7c4180c0 Chart Settings menu is All Chart Settings
.. to differentiate from the reveal settings which
are just a small subset of the chart settings.
2013-02-05 15:59:54 +00:00
Mark Liversedge
41434a7fd6 RideEditor: Stop hiding controls
The find dialog and anomalies list are now available
from the ride editor toolbar and not hidden in the
chart controls.

As a result the ride editor no longer has any chart
controls and so they are removed altogether.
2013-02-05 15:55:25 +00:00
Mark Liversedge
102a35a00d Don't hide Histogram when in range mode
When plotting distribution for a date range instead of
for a specific activity we should not hide when the current
ride has no data (since we are plotting a range not the current
ride).
2013-02-05 13:35:34 +00:00
Mark Liversedge
92df1ce694 Add reveal controls to LTM chart
Allows user to quickly change the settings for
- group by (week, month, year etc)
- shading (power / hr zones)
- show events (chart markers)
2013-02-05 13:23:23 +00:00
Damien
89a70afb69 BlankState : ScatterWindow
Blank state only if no ride or no data point
2013-02-04 22:37:46 +01:00
Damien
1d7242924b BlankState: No data available for PfPvWindow
Use the default blank state in PfPvWindow when data not present
2013-02-04 22:22:49 +01:00
Damien
649a2c3400 BlankState: No data available for AllPlotWindow
Use the default blank state in AllPlotWindow when data not present
2013-02-04 22:12:40 +01:00
Damien
8add4c7fbb BlankState: No data available for HrPwWindow
Use the default blank state in HrPwWindow when data not present
2013-02-04 22:02:51 +01:00
Damien
754e293da4 BlankState: No data available for HistogramWindow
Use the default blank state in HistogramWindow where data not present
2013-02-04 21:54:37 +01:00
Mark Liversedge
570c9af752 LTM Show Events Checkbox
Adds a checkbox to the LTM plot to enable and
disable the plot markers for season and events.
2013-02-04 12:51:30 +00:00
Damien
bb5126030d Blank State : default image for no data available 2013-02-04 07:46:31 +01:00
Damien
edfd2e56aa Blank state : no GPS image for Google Map
Add an image when no GPS data present
2013-02-03 23:11:56 +01:00
Damien
5963feea94 Translation update
Use metric symbol insteed of name for summary metric data
2013-02-03 21:55:05 +01:00
Damien
52567f0732 Re-order seasons with drag drop
fixes #445
2013-02-02 23:28:31 +01:00
Mark Liversedge
b7111bc54e Fix compile time error for WF API 2013-01-30 22:34:25 +00:00
Mark Liversedge
08a77e1ac8 BT40 device discovery fixups
A few fixups for BT40 discovery, we now search for BT40
devices properly.

- delete BT40 properly
- scan for longer
- return count of total found
- a few fixups to logic in AddDeviceWizard

Now need to update the pair screen to let the user
select/deselect sensors that are part of this "device".

Then obviously update the BT40/Controller for runtime
activity (and filter out the RFLKT since it will have
its own device type.
2013-01-30 21:39:16 +00:00
Mark Liversedge
6c583da655 BT40 AddDeviceWizard updates
Just a checkpoint before BT40 pair updates to connect with
each found sensor and display current data on the pair screen.

This is so the user can select the devices they want to be
included in this device definition (if they have lots of
BTLE devices).

I guess this is gonna mostly be dcrainmaker and wahoo employees!
2013-01-30 13:39:07 +00:00
Mark Liversedge
c9571e0d8b BT40 / Kickr device discovery
Ensure the Kickr and BT40 devices can co-exist by
ignoring subtypes.

Also introduced a deviceFound signal so we can get a
device pairing page for BT40 (non-Kickr) devices.
2013-01-30 10:47:01 +00:00
Mark Liversedge
d0e96dcd47 BT40 Skeleton code
To enable support of BTLE (BT 4.0 'smart') devices
as well as the Kickr.

Very basic skeleton code to get started. Will need
to;
- add a BTLE 'pair' in AddDeviceWizard
- use profile not portspec for the uuids
- filter out RFLKT and KICKR as they have their
  own device types
- fixup BT40.cpp which is KICKR code in this commit
2013-01-29 20:28:43 +00:00
Damien
102fb30eae Show picker info in CriticalPowerWindow
Correct previous commit
2013-01-28 23:26:03 +01:00
Damien
204dbe3f48 UI Nits: GcChartWindow for CriticalPowerWindow and ModelWindow 2013-01-28 22:49:02 +01:00
Mark Liversedge
6a39678b26 Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2013-01-28 21:42:13 +00:00
Mark Liversedge
0bdafbd24b WF Api support multiple connections
Changed the WF API wrapper to return a sensor connection
descriptor (int) in the same way open/close system calls
return a file descriptor.

This means we will be able to setup multiple connections
at once .. but not neccessarily in separate threads.
2013-01-28 21:40:00 +00:00
Damien
260d0965e8 UI Nits: GcChartWindow for PfPvWindow and HrPwWindow 2013-01-28 21:40:22 +01:00
Mark Liversedge
b3f3974998 Kickr autorelease pool when scanning
.. in AddDeviceWizard we need an autorelease pool
when doing the scan.
2013-01-28 20:28:39 +00:00
Mark Liversedge
f1cf87fec4 Kickr BTLE connection fixup
No need to scan first, connect directly to
the previouslt paired device uuid.

By no longer scanning we can have multiple
threads connecting at once without conflicting
with each other.
2013-01-28 19:43:00 +00:00
Mark Liversedge
cab24f7383 Fix all plot reveal size
My bad -- added padding at the top a while ago when
trying to fix another issue. Then forgot to remove it
afterwards.
2013-01-28 08:54:50 +00:00
Mark Liversedge
d22baa98ce tabs to spaces
.. in Computrainer.cpp and TrainTool.cpp
2013-01-28 07:17:45 +00:00
Mark Liversedge
9a4c98c92f Merge pull request #469 from jjofre/master
Computrainer fixes for Gradient/Slop Mode and Misc default
2013-01-27 23:16:26 -08:00
Damien
f1ffb45a4f Hide reveal control after animation
Update HistogramWindow reveal controls
2013-01-28 08:04:29 +01:00
Jaime
c1410814f1 Fixes in CT support to ensure Gradient/Slope is being defaulted and updated properly between the CTConroller and TrainTool.
Fix to preselect ERG mode in workoutTree.
2013-01-27 22:02:52 -05:00
Jaime
5b64be2ae0 Noticed that slope was not being initialized to 0.0, so reworked the constructor ro initialize the variables in the order they are listed in RealtimeData.h 2013-01-27 21:57:00 -05:00
Damien
f25cc72894 UI Nits: Reveal controls for GcChartWindow
Add a new Class GcChartWindow with reveal widget and animations
2013-01-27 23:11:18 +01:00
Mark Liversedge
b642332093 Merge pull request #468 from jjofre/master
Added removal of double quotes from Racermate TXT data files
2013-01-27 13:00:22 -08:00
Jaime
2affa21dbc Racermate test TXT file with double quoted data 2013-01-27 15:50:06 -05:00
Jaime
93d9f7cce9 Added removal of double quotes from Racermate TXT data files 2013-01-27 15:48:26 -05:00
Mark Liversedge
9724282ccc Kickr load setting fixups
The load setting was not working properly, this update
ensures the load is set 10 times a second, but will
generate errors even though the device claims to be
connected.

Also added a few new methods to get/singal connection
status in the code.
2013-01-27 19:17:04 +00:00
Mark Liversedge
2917ab8c36 Kickr: Load setting fixup
Fixed up the Kickr code to resend the load if the
user is generating more than 50% over the load or
is only generating 50% of the load.

This is in case the last message was not processed
for some reason (connection being established, or
noise).
2013-01-27 15:49:55 +00:00
Mark Liversedge
cc9ea4dc98 Kickr: Clean WF API
Just cleaning up the WF API code before adjustments to
the recent BTLE support or Kickr to also support other
BTLE devices (e.g. Speed/Cadence and HR straps).

This will mean adjusting the WF API code to use 'handles' to
reference multiple parallel connections since the existing code
assumes a single connection to the Kickr.
2013-01-26 23:03:13 +00:00
Mark Liversedge
dd4735be31 Reveal experiment, faster and in-sync. 2013-01-26 17:25:09 +00:00
Mark Liversedge
3f1ecd2fbf Reveal experiment with Histogram 2013-01-26 17:16:15 +00:00
Damien
5f9d8cf3a9 Wait before controls appear on AllPlot 2013-01-26 16:15:34 +01:00
Damien
9ce5f1207f Animation for AllPlot only for background 2013-01-26 15:55:08 +01:00
Mark Liversedge
eb4976553e Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2013-01-26 14:20:49 +00:00
Mark Liversedge
4d6dcb523f Update install instructions for Mac
.. to explain qmake basics.
2013-01-26 14:20:09 +00:00
Mark Liversedge
f2e2eab802 Fix crash on wake from sleep
.. in WFAPI due to autorelease pool gone.
2013-01-26 14:16:37 +00:00
Damien
cde2c48bbe Change animation for reveal on AllPlotWindow 2013-01-26 15:15:22 +01:00
Dean Junk
656e182dda Updates for XML schema compliance.
Added tags for additional info in TCX file and a tries to use a
valid value for sport type/activity based on user defined meta
data.
2013-01-26 13:50:54 +00:00
Mark Liversedge
fbf13e6956 UI Nits: Style selection wonky
The splash screens broke the setting of the style selector
in the toolbar. They got out of sync. This fixes that.
FWIW, I introduced the bug!
2013-01-26 13:14:32 +00:00
Mark Liversedge
eba229bf90 Clean compiler warnings in WF Api Code 2013-01-26 13:06:10 +00:00
Mark Liversedge
2c47414948 Kickr: Disable firmware Check
It takes ages to check when you connect. But the discovery
also takes 5 seconds.
2013-01-26 13:00:36 +00:00
Mark Liversedge
20bb581fb5 Cocoa Memory Management Fixups
A number of memory management errors fixed, no doubt there
are more lurking in there.

* CocoaInitializer now sets up an application wide NSAutoreleasePool
* Kickr now init/releases an NSAutoreleasePool for its thread
* Local autorelease pools in constructors etc have been removed
* Searchbox and Button no longer release in the constructor

The icon corruption seems to be improved (I think it is a memory
management issue) but has not been totally removed.
2013-01-26 12:36:23 +00:00
Jaime
1ff78e4c45 Fix thread warning exit realtime
Stops any active realtime threads before exiting to
suppress the warning messages about active threads.
2013-01-26 09:25:56 +00:00
Mark Liversedge
a2fd1a9d05 UI Nits: CP today 'gap'
.. when in rangemode.
2013-01-25 18:27:26 +00:00
Mark Liversedge
fe2f96e25c Reveal: Add an easing curve
Just to try different effects. InSine seems the most pleasing.
2013-01-25 18:13:47 +00:00
Mark Liversedge
ea606c240d UINits: QPixmap to NSImage
.. why do those darned icons disappear / corrupt?
2013-01-25 17:56:38 +00:00
Mark Liversedge
1efcdb52aa UI Nits: QA reveal controls
.. needed to be vertically centred.
2013-01-25 16:29:18 +00:00
Mark Liversedge
543e33c6ba Add animation in more charts
Added Damien's animation to;
- Distribution (PowerHist)
- QA (PfPv)
- 2d (Scatter)
2013-01-25 16:05:28 +00:00
Mark Liversedge
bfb7fbbd9b Reveal slow, unreveal instant
Just playing with Damien's animation code :)
2013-01-25 15:52:01 +00:00
Mark Liversedge
14fb41fb27 UI Nits: Allplot reveal
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.
2013-01-25 15:20:32 +00:00
Mark Liversedge
3768c3735e Merge pull request #464 from jjofre/master
Fixes for side bar icon toggle when switching modes
2013-01-25 06:37:12 -08:00
Damien
0c458768ba Animation for reveal controls 2013-01-25 15:21:46 +01:00
Jaime
2393080f4f Fixed side bar to properly toggle the Hide/Show state when switching modes
Minor fixes to #defines for Q_OS_MAC on side/scopebar
2013-01-25 09:01:50 -05:00
Mark Liversedge
40e527d022 UI Nits: Reveal Controls Cosmetics
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.
2013-01-25 09:28:20 +00:00
Mark Liversedge
9a440ba33c Merge pull request #463 from jjofre/master
Fixed CP chart title blanking out after first showing
2013-01-25 00:25:28 -08:00
Jaime
ef1bcbbaa4 Move initialization of curveTitle to CpintPlot constructor from calculate() so the Cp title doesn't get overriden to blank after its first showing. 2013-01-24 21:15:34 -05:00
Mark Liversedge
a5bb6947a7 TRIMP fallback to workout time if time riding 0 2013-01-24 21:42:23 +00:00
Mark Liversedge
290850da06 Cleanup tabs and whitespace
Not sure where it came from, but cleaned up anyway.
No functional change.
2013-01-24 21:24:49 +00:00
Mark Liversedge
9542667db4 Merge pull request #461 from jjofre/master
Fixes to properly resume plotting after calibration
2013-01-24 13:13:13 -08: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
Jaime
00ac77f120 Logic changes to enable real time plotting to resume properly after calibration.
Minor cosmetic fixes of missing #defines for media support
2013-01-23 21:29:32 -05:00
Jaime
e1155de353 Changes to fix CT calibration issues with the real time Train plot. 2013-01-23 21:26:25 -05:00
Mark Liversedge
c25fda7701 Kickr BTLE Support (Beta)
This finalises beta support for the Wahoo Kickr
using their WFConnector API for BTLE.

This support will only work on Mac OSX - pending
ANT+ support to be available and/or BTLE support
is made available on Windows and Linux.

Fixes #446.
2013-01-23 22:08:10 +00:00
Damien
b81943ffe0 Add reveal controls for ScatterWindow 2013-01-23 22:40:05 +01:00
Mark Liversedge
0ba20ca05a Previous pull request missing commit
.. only a couple of line so made the change again.
2013-01-23 19:43:29 +00:00
Mark Liversedge
a41a0b1d04 Merge pull request #458 from johnnye/master
fix for #457
2013-01-23 11:39:21 -08:00
Mark Liversedge
33946c9012 Kickr mutex for thread safety
Ensure the member variables are only maintained in
one thread at a time.
2013-01-23 08:44:53 +00:00
John Nye
24d27b840b update to fix ticket #457
This caps the wattage at 4kW, and hence the torque values also. It's fairly safe to assume that no-one will be producing 4kW on a PowerTap
2013-01-22 22:57:54 +00:00
Mark Liversedge
f8e2907fa0 Kickr speed calculation
.. using device configuration and wheel RPM.
2013-01-22 22:19:30 +00:00
Mark Liversedge
79be79d563 Kickr basic functionality
.. connects and disconnects to the Kickr
.. gets instant telemetry

Still need to sort the other channels (are there
any?) and also set load and gradient.

Pretty close and need to then clean up the qDebug
messages and we have a first pass at Kickr support.
2013-01-22 21:10:18 +00:00
Mark Liversedge
2474332212 Fix SEGV when pairing ANT+ Speed
Recent update broke this, forgeting that when you are
configuring a device the device configuration will be
null.
2013-01-22 13:24:55 +00:00
Mark Liversedge
2228c2775f Kickr connect should fail if no BTLE hardware
Returns immediately if trying to connect when there is no
BTLE hardware available.
2013-01-22 13:09:02 +00:00
Mark Liversedge
ed40f0338b Fixed initial Kickr connection issues
It was because the connector was still searching when
asked it to connect to a sensor. We now cancel any
search before attempting to connect.

But sadly, the connection is dropped and a bunch of
error messages popup about firmware.
2013-01-21 21:36:37 +00:00
Mark Liversedge
82f8c7f3d3 Kickr checkpoint, connect errors
Can discover device but cannot connect. Checkpoint
commit as done for the night.
2013-01-21 20:27:55 +00:00
Mark Liversedge
302cae779a Fix another compile error if WFAPI not available 2013-01-21 17:07:14 +00:00
Mark Liversedge
2fe0644b9a Kickr device configuration complete
The code to discover and setup a Kickr device has
been finished. The portspec is used to hold the device
UUID for later connection.
2013-01-21 16:24:14 +00:00
Mark Liversedge
91514835e8 Device scanner delay accidentally set to 5s
.. when it should just be 1s to avoid being a
cpu hog.
2013-01-21 15:11:29 +00:00
Mark Liversedge
48832ff962 AddDeviceWizard cannot be modal
.. because it blocks the event loop that hosts the WF API
class. And we definitely want it to stay on the main event
loop along with the native WF classes and delegates.
2013-01-21 13:59:31 +00:00
Mark Liversedge
65e7faacba Kickr Checkpoint Commit
.. device discovery working after a bit of
heartache with blocking threads and signals.
2013-01-21 13:05:49 +00:00
Mark Liversedge
fb654464e4 Merge pull request #456 from andybryson/QNetworkProxyQuery
Fix build error on Arch Linux
2013-01-20 23:45:55 -08:00
Andy Bryson
ab9b0ed618 Fix build error on Arch Linux 2013-01-21 07:40:09 +00:00
Mark Liversedge
44e3155cf6 UI Nits: Allplot reveal controls
.. fixups for positioning and translucent
background looks a bit naff.
2013-01-21 07:16:21 +00:00
Mark Liversedge
d41a41ba7d Fix Kickr compile error
.. in TrainTool too.
2013-01-21 07:07:37 +00:00
Mark Liversedge
8852479d5e Fix Kickr compile error
.. in adddevicewizard when WF API is not
available
2013-01-21 07:02:58 +00:00
Mark Liversedge
097dedae14 Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2013-01-20 23:03:36 +00:00
Mark Liversedge
ace5a45822 Drag n Drop on Splash Train Vew
.. because we didn't maintain the currentWindow when
showing blankstate pages the drag and drop functionality
didn't work.

This is kinda key when you have no videos and workouts, its
the simplest way of providing the files needed.
2013-01-20 23:01:40 +00:00
Damien
5f1627bd57 Add reveal controls for CP Plot and PfPv Plot 2013-01-20 23:36:31 +01:00
Mark Liversedge
0479a1aa0d remove WFAPI hack code in mainwindow
.. accidentally committed earlier
2013-01-20 19:40:40 +00:00
Mark Liversedge
4a42337fa2 Kickr Skeleton Code
Added Skeleton code for device discovery, config
and runtime. Now need to develop the WFApi class
to support each function.
2013-01-20 19:11:16 +00:00
Mark Liversedge
cbb53fd3f7 Fixed WFAPI Crash
.. needed to manage autorelease pool

Lets not talk about the hours wasted trying
to fixup the code whilst BT was disabled via
OSX and the Kickr wasn't actually plugged in.
2013-01-20 16:00:42 +00:00
Mark Liversedge
f08e83210b UI Nits: Tile Mode cleaner
Made the spacing in tile mode smaller and cleaned up
the decorations to make them cleaner and more in line
with modern UIs like Win 8 and OSX.

Also parameterised the spacing / margins in HomeWindow
in case we want to add a slidebar to adjust them or
maybe even a zooming.
2013-01-20 12:58:23 +00:00
Mark Liversedge
e140f7f8f1 Kickr linker fixups, still crashes
.. on CBCentralManager delegate didUpdateState. Not
sure if this is internal to the WF API or if QT is
getting upset at unexpected events.
2013-01-20 12:44:08 +00:00
Mark Liversedge
fced16d6e2 State Changed missed.
.. unedited from previous commit
2013-01-19 19:55:41 +00:00
Mark Liversedge
cb2cced952 Wahoo Fitness API Abstraction Part 2
First pass of using latest WF API (3.0.beta2) but
there are event exception problems within the WF API
so committing a checkpoint.

This has BTLE status and Scan functions implemented,
I also updated About dialog top include the WF version.
2013-01-19 19:38:37 +00:00
Mark Liversedge
12e0aadb94 Wahoo Fitness API Abstraction Part 1
Just the framework for the abstraction layer. I
wanted to commit this since its the blank state
and clean.

Now to implement;
1 hasBTLESupport and friends
2 scanForDevices
3 connect/disconnect device
4 getRealtimeData
5 setLoad/setGrade

Once thats done should be easy to write a controller
and runner for TrainView.

Last step will be to add a configuration pane -- but
might wait until I have a BTLE HR strap to include
the 'multi-device' stuff.
2013-01-19 14:56:50 +00:00
Mark Liversedge
c75575834e UI Nits: Reveal controls on black bg
.. 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.
2013-01-19 09:44:17 +00:00
Mark Liversedge
b03f565ccf Tone down "HUD" close button
.. and this is the last of the Mac OSX native look
and feel stuff for v3.0
2013-01-18 23:21:18 +00:00
Mark Liversedge
a13f78e9c7 Autorelease pool on Mac
.. fixup re button icons going missing.
2013-01-18 23:11:10 +00:00
Mark Liversedge
94850107c5 Wahoo Fitness API Framework
gcconfig.pri.in and src.pro updates to
add WFConnector framework for BTLE and
Kickr APIs on Mac only.
2013-01-18 18:58:38 +00:00
Mark Liversedge
cb7e8ee5a6 About cosmetics
.. for the config tab; no focus rectangle
on a Mac and get rid of all those frames.
2013-01-18 16:30:57 +00:00
Mark Liversedge
6c06c6758e Added gcconfig.pri tab to About
.. so we can see what the gcconfig
setup was for a particular build when
trying to debug build issues.
2013-01-18 16:15:00 +00:00
Mark Liversedge
1958242689 Added contributor
Dean Junk
2013-01-18 15:58:41 +00:00
Dean Junk
3443352741 Enhance TCX export
Provide more data to Garmin Training Center and
also makes the export compliant  with the latest
TCX schema. It displays correctly in GTC.

As an avid runner and biker I use GTC to combine
the data from both sports for additional analysis.

I'm sure others would benefit from the additional
data in the TCX file when importing to other tools.

The following derived/computed metrics have been
added to the export:

   1. Added MaximumSpeed
   2. AverageHeartRateBPM
   3. MaximumHeartRateBPM
   4. MaxBikeCadence
   5. AvgSpeed
   6. AvgWatts
   7. MaxWatts
   8. HeartRateBPM defaults to 1* (if not present or zero value)

*Garmin training center won't display the HeartRate
charts if the tag isn't part of every TrackPoint and
greater than zero.
2013-01-18 15:50:49 +00:00
Mark Liversedge
34f39c5b87 Add Jaime Jofre as a contributor 2013-01-17 21:16:25 +00:00
Mark Liversedge
a162721e27 Merge pull request #452 from jjofre/master
Fixed issue with updating real time plot (Issue #437)
2013-01-17 13:12:01 -08:00
Jaime
ba33f01b52 Merge remote-tracking branch 'upstream/master' 2013-01-17 15:53:15 -05:00
Jaime
0152a38d21 In guiUpdate(), fixed an issue with updating now to current time so that it is updated about every 1 second. 2013-01-17 15:52:16 -05:00
Mark Liversedge
db7b46e43a Merge pull request #451 from jjofre/master
Added Tool to fix heart rate spikes and dropouts
2013-01-16 11:51:35 -08:00
Jaime
713c2cfc72 Add support to Fix hear rate spikes and dropouts 2013-01-16 14:34:40 -05:00
Mark Liversedge
72c921cf13 fix compiler warning in LTMPlot
.. about unused variable 'middle'.
2013-01-16 19:19:42 +00:00
Mark Liversedge
c8c56a271d UI Nits: LTMPlot remove old markers
.. when there is nothing to plot between the
date ranges selected.
2013-01-16 19:08:30 +00:00
Jaime
2af5fe9d14 Added FixHRSpikes.cpp 2013-01-16 13:51:01 -05:00
Jaime
b4ac1a035c Added GC_DPFHRS_MAX to support fixing HR spikes 2013-01-16 13:50:09 -05:00
Mark Liversedge
69916cf4d6 UI Nits: Aerolab title
Removed the "date" title on Aerolab, thought I'd removed
those a long time ago. Last vestige of the 2.x style.
2013-01-16 11:43:58 +00:00
Mark Liversedge
44a46d74c4 Reveal Controls: HrPw update
Moved the fullplot to the bottom since it clashes with
the new reveal controls. Also changed the contents
margins to 2 to allow resize in tile view.
2013-01-16 11:06:16 +00:00
Mark Liversedge
80f6171ff3 Reveal Controls: AllPlot update
To allow user to turn on/off the fullplot at the
bottom of the chart.
2013-01-16 10:57:37 +00:00
Mark Liversedge
fcb5bf0a67 UI Nits:Histogram Window border
.. I broke this in an earlier commit where I set
contents margins to 0, thus making it impossible
to resize in tile mode and also making the chart
overlap with the border.
2013-01-15 23:08:32 +00:00
Damien
00e9187d05 Transparent background for reveal controls
Add controls for HrPwWindow
2013-01-15 23:40:39 +01:00
Mark Liversedge
1b5fcdd84a Change 'hotspot' for reveal/unreveal 2013-01-14 23:12:28 +00:00
Mark Liversedge
85ab604c1b UseThruToday: TreeMap 2013-01-14 10:05:48 +00:00
Mark Liversedge
b250d663b0 UseThruToday: Summary 2013-01-14 09:58:34 +00:00
Mark Liversedge
ab0111f195 UseThruToday: Fix Histogram chart 2013-01-14 09:50:57 +00:00
Mark Liversedge
7bdeb82d71 UseThruToday: Fix CP chart 2013-01-14 09:44:46 +00:00
Mark Liversedge
68d2b94dd3 Fix thru today date selection on LTM
.. it needs to be applied every time a
date range is selected, so need a new bool
useToToday to flag that up.

Will need to fix the other date range charts
to do the same.
2013-01-14 09:06:04 +00:00
Damien
fae694ce3d Initialisation of reveal controls 2013-01-13 23:46:24 +01:00
Mark Liversedge
023a0b6ea7 Reveal Controls: AllPlot
Added smooth slider and stack selection as the
reveal controls on the ride plot.
2013-01-13 21:55:25 +00:00
Damien
07bbf8860c initialise default value for reveal control
synchronize reveal slider with standard slider
2013-01-13 22:49:57 +01:00
Dean Junk
bbe805321a Fix TCX Export Schema Compliance
Write a valid TCX file, that conforms to its
schema, including;
- ProductId is ProductID
- Watts must be an integer
- Language ID is required
- PartNumber has a specific format
2013-01-13 19:44:41 +00:00
Mark Liversedge
bd86206b56 Reveal Controls: Histogram
Add reveal controls to the histogram window, using
the new reveal framework.

I only added a small number of controls, we should
be careful not to overload this feature with a zillion
controls "because one user wants it".
2013-01-13 18:31:10 +00:00
Mark Liversedge
26821226f3 Chart settings reveal adjust mouse positions
.. have a larger area to activate and deactivate the
revealed chart controls.
2013-01-13 18:30:13 +00:00
Mark Liversedge
0fe044cc50 Autohidden chart settings framework
Setup code to enable revealed chart controls. When
in tabbed mode, if the cursor is towards the title
then the chart controls are revealed, as the cursor
moves away or off the chart the controls are hidden.

Each chart, that wants revealed controls must implement;

bool hasReveal() -- return true if controls are available
void reveal()    -- show controls (must be at top of chart and a single line)
void unrveal()   -- hide controls

Will now work through each chart adding the controls as needed.
Will also probably end up with a 'standard' flat stylesheet for
the controls, can implement this later.

See description for this feature here:
https://github.com/GoldenCheetah/GoldenCheetah/issues/31#issuecomment-12040318
2013-01-13 14:55:16 +00:00
Mark Liversedge
b8e8101f79 BlankState basics completed
.. now closes train view blankstate when device added
and workouts have been imported.

.. and made the home and diary views have same buttons
as the analysis view. That may change in later releases
when we have planning functions.
2013-01-12 23:28:59 +00:00
Mark Liversedge
b7502b80bd Clear blankstate screen if conditions change
The diary, home and analysis blank state screens will
now close if rides are added.

Still need to make the train view blank state screen
close when devices and workouts are added.
2013-01-12 21:52:38 +00:00
Mark Liversedge
0a4daa0072 Don't export HR if it is zero
Tcx XML HR must be positive, so if there is no
value (i.e. it is zero) then don't write it.

Thanks to Dean Junk for diagnosing this and
posting his findings to them mailing list.
2013-01-12 14:45:37 +00:00
Mark Liversedge
4a05287406 Let user close blank state
The user can close the blank state screen and
can also click a checkbox to ensure it is not
shown again for this athlete.
2013-01-12 13:01:37 +00:00
Mark Liversedge
0824b68d9e UI Nits: default chart fonts smaller
.. the chart labels need to be smaller especially
on small screens, and better to err on the side of
caution and make them smaller.
2013-01-11 20:39:54 +00:00
Mark Liversedge
dd6535b6d4 Remove BlankState menu 2013-01-11 19:41:16 +00:00
Mark Liversedge
5afdab9b84 Fix delete intervals
If multiple intervals are selected then the delete interval
menu item should delete all the ones that are highlighted.

Fixes #442
2013-01-11 15:19:47 +00:00
Mark Liversedge
8df5b6ae7d Merge pull request #439 from jjofre/master
Made color of x and y axis in the ErgPlot Window configurable
2013-01-11 06:35:52 -08:00
Jaime
72d6cc7985 Merge remote-tracking branch 'upstream/master' 2013-01-11 08:23:51 -05:00
Mark Liversedge
a959f7c9d4 Use the device wheelsize!!!
Bug reported by many users, should know better than to
dismiss it so out of hand. There was a bug. The ANT+
code used an old global setting and not the per device
configuration.

Fixes #441
2013-01-11 09:08:31 +00:00
Mark Liversedge
694dcb1731 Fix pause/unpause bug
When you press stop it should clear the paused flag.

Fixes #440.
2013-01-11 08:57:36 +00:00
Jaime
5d1908ea41 Merge remote-tracking branch 'upstream/master' 2013-01-10 22:28:16 -05:00
Jaime
dfacbcb037 In ErgFilePlot(), made the X and Y axis color configurable. 2013-01-10 21:34:06 -05:00
Jaime
71ef126b75 Added Ride Plot X and Y Axis color configuration. Default to blue and red. 2013-01-10 21:32:36 -05:00
Jaime
71c5632037 Added CRIDEPLOTXAXIS and CRIDEPLOTYAXIS for ErgFilePlot axis color configuration 2013-01-10 21:31:44 -05:00
Mark Liversedge
8d13576fca UI Nits: Hist chart controls errant label
If we are not in date range mode (i.e. on the home or
diary view) then we shouldn't add the 'date range' label.
2013-01-10 23:16:05 +00:00
Mark Liversedge
3a5ce262cf UI Nits: Reformat allplot chart settings
To be a little easier on the eye. But still some
room for improvement.
2013-01-10 21:17:10 +00:00
Mark Liversedge
1cabb843fc Merge pull request #434 from jjofre/master
Remove hard-coded colors for Load, TSS and BikeScore
2013-01-09 09:13:04 -08:00
Jaime
1094fb66df Added support for configurable colors for Load, TSS and BikeScore 2013-01-09 11:09:22 -05:00
Jaime
bfc42d104a Added use of CNUMOFCFGCOLORS macro in ColorList and DefaultColorList arrays
Added Load, TSS and BikeScore support in setupColors()
2013-01-09 11:08:30 -05:00
Jaime
2b68decf37 Added CNUMOFCFGCOLORS macro to define the number of configurable metric colors are available
Added macro entries for Load, TSS and BikeScore
2013-01-09 11:06:39 -05:00
Mark Liversedge
de53ea3ffb UI Nits: BlankState cosmetics
Just wordwrap the labels gives more screen estate to
the right side image making it less likely to be out
of proportion with the text size.

Also changed disc to disk in one of the narrative
texts. Maybe its a 'British English' thing tho ;)
2013-01-08 21:22:56 +00:00
Mark Liversedge
3d60c9e4a5 Fix conflict with Qwtplot3d
The struct Appearance conflicts with a class
in the QWT3D namespace. So renamed it. Fixes
a compile time error.
2013-01-08 19:02:15 +00:00
Mark Liversedge
8bf4b18a1b UI Nits: Sensible defaults for screen/font size
Set the default size of fonts and screens based upon the
screen size we're running on.

We may need to think about retrospectively adjusting the
font size for users that have not realised they can change
from the defaults (which may not be valid for their hardware).
2013-01-08 15:03:15 +00:00
Mark Liversedge
672e442176 UI Nits: Cosmetic gui updates
- searchbox border
- LTM controls - make search box expand
- Histogram controls - make slider expand
2013-01-08 09:48:37 +00:00
Mark Liversedge
26ff774ba3 UI Nits: Choose Athlete Dialog Buttons
.. order of New, Cancel, Open and a bit of stretch
to stop ugly elongated buttons.
2013-01-07 20:27:04 +00:00
Mark Liversedge
7da2ed7938 Linux fixup for BlankState
Nothing major, just setting no focus on buttons since
it gives them a salmon pink color, which is pretty nasty
on the 'img' button.

Did I mention that I love this new feature?
2013-01-07 19:37:08 +00:00
Mark Liversedge
3fec144334 No chart menu in blank state 2013-01-07 16:44:24 +00:00
Mark Liversedge
41d27d3059 Blank state for train view
Only show blank state for train view when we have
no devices configured -or- there are no workouts
imported into the library.
2013-01-07 15:32:32 +00:00
Tilman Schmiedeberg
c5c6e712b3 Initial v3 German Translation
First translated texts.
2013-01-07 14:26:17 +00:00
Mark Liversedge
1ac0894295 Add ErgDB to train view blank state
Allow the user to download workouts as well as
scan disk for workouts (they are not likely to
have any workouts of their own).
2013-01-07 13:37:37 +00:00
Mark Liversedge
db294f6457 Blank state train view action
Changed the second action to search for videos and workouts
rather than import. It makes more sense to setup the library
rather than import a single file.

We still need to change the conditions for the train view blank
state to no devices or no videos/workouts.
2013-01-07 13:23:36 +00:00
Mark Liversedge
9b573f510a add images back to qrc file 2013-01-07 12:07:06 +00:00
Damien
47a22999fd Add images for BlankStatePages 2013-01-07 12:49:55 +01:00
Mark Liversedge
1b63fb0988 Temporary - remove missing images from qrc file 2013-01-07 09:00:01 +00:00
Damien
db39db5ea4 Blank state
Add a blank state for analysis window
2013-01-06 22:21:22 +01:00
Damien
954e15a8fb ISODate format for UTC date end by "Z"
fixes #419
2013-01-06 22:00:30 +01:00
Mark Liversedge
559ad9e672 Fix date selection in Tile Mode
Fixes #424.
2013-01-06 19:02:00 +00:00
Eamonn Doyle
843fe74839 Fix Linux README
.. to refer to /etc/udev not /dev/udev
2013-01-06 12:43:09 +00:00
Mark Liversedge
514a737899 Fix zooming in histogram
Fixes #416
2013-01-05 17:35:48 +00:00
Mark Liversedge
34eb963213 Show Pace in Summary as mm:ss
Fixes #423
2013-01-05 15:00:06 +00:00
Mark Liversedge
e4adfefdb9 clang 4.1 fixups
remove casts to keep clang 4.1 happy on
Mac OS X. Now produces a number of warnings
on clang 4.0.

Fixes #420
2013-01-05 14:30:26 +00:00
Mark Liversedge
3bf8b8d721 Edit times using a QTimeEdit in Metadata
When overriding the duration, time riding and other
time based metrics in the metadata screen it asks
the user for the time in seconds.

This update offers a QTimeEdit to edit them, a little
more user friendly.

Fixes #422
2013-01-05 12:43:48 +00:00
Mark Liversedge
2c8436ca03 Fix KML needing boost in gcconfig and src.pro
Fixes #421
2013-01-05 12:08:35 +00:00
Mark Liversedge
7b8eca07bb Chart Dates: Part 3d of 3 (final)
Added chart date selection to the Histogram chart.
This now completes the updates to enable custom date
ranges to be defined in charts that support date
ranges.

Any further 'ideas' for setting custom ranges can be
added into the DateRangeEdit widget and will be re-used
across all the charts.

Fixes #417
2013-01-05 11:50:04 +00:00
Mark Liversedge
a312c28bb6 Fix date settings needed a restart
To get the date settings to register user interaction
you needed to restart gc after adding the chart. This
was caused by an initialisation error, setting the active
flag to true on object creation -- it should have been
set to false.
2013-01-05 11:16:09 +00:00
Mark Liversedge
8b2a04b52b Chart Dates: Part 3c of 3
Added chart date selection to the Summary chart.
Still need to add this to;
        - Histogram
2013-01-05 10:49:00 +00:00
Mark Liversedge
a0a07e8b07 Chart Dates: Part 3b of 3
Added chart date selection to the CP chart.
Still need to add this to;
    - Summary
    - Histogram
2013-01-04 23:43:37 +00:00
Mark Liversedge
538386bfe6 Chart Dates: Part 3a of 3
Added chart date selection to the
Treemap chart. Still need to add this
to;

- Summary
- CP
- Histogram
2013-01-04 20:20:42 +00:00
Mark Liversedge
9490708729 accidentally left in qDebug() statement 2013-01-04 19:29:10 +00:00
Mark Liversedge
1eb6093733 Chart Dates: Part 2 of 3 update
.. added a 'This' option to choose a date range
such as this month, week, year. I also added the ability
to specift a 'prior' period.

So in July you could plot for this month prior 1 to choose
a date range for June.

This allows folks to have a static setup of charts for this
this-1 and this-2 months and data to change over time.
2013-01-04 12:39:25 +00:00
Mark Liversedge
e7968874e7 Chart Dates: refresh a bit less often
.. the plot is redrawn as the user enters a date or
number which is slow and annoying -- far better to
wait for the editingFinished() signal.
2013-01-03 14:36:26 +00:00
Mark Liversedge
8b3a30b232 Chart Dates: Part 2 of 3 fixup
Refactor of the date settings into its own
widget so we can re-use it across any chart
that supports date ranges.
2013-01-03 14:29:45 +00:00
Mark Liversedge
b33aec2cc0 Chart Dates: Part 2 of 3
Updated LTM chart date range to allow the
user to specify a number of alternative
ranges;

- use current selected
- use current selected thru today
- between x and y
- last n days/weeks/months/years
- from - today
2013-01-02 20:52:41 +00:00
Mark Liversedge
ee36317b0f Chart Dates: Part 1 of 3
An update to allow users to define a specific date
range for a chart on the home window. This update
only applies to the LTM chart and only allows a
date range from/to to be defined.

It would be nice to also support a last 'n' 'period'
selection too (i.e. last n days/weeks/months).

Also, further updates are required to add similar
functionality to TreeMap, CP, Dist and Summary charts
when they are on the home window.
2013-01-02 14:34:17 +00:00
Mark Liversedge
2c300c0e82 Merge pull request #414 from amtriathlon/fields
Enable fieldChooser and field types translation
2012-12-31 02:43:11 -08:00
Alejandro Martinez
d41ec90fe4 Enable fieldChooser and field types translation 2012-12-30 22:25:35 -03:00
Mark Liversedge
354c138022 Merge pull request #412 from amtriathlon/translations
Fix minor translations related issues
2012-12-30 09:53:12 -08:00
Alejandro Martinez
f0a35a93eb Fix minor translations related issues 2012-12-30 14:48:46 -03:00
Mark Liversedge
1a7bbf5472 remove boost from docs
.. it is no longer needed.
2012-12-30 17:13:11 +00:00
Mark Liversedge
54ed94ed13 Merge pull request #409 from andybryson/boost_crc
Remove Boost
2012-12-29 16:02:13 -08:00
Andy Bryson
5a345477fb Remove Boost
Replace boost checksum stuff.
Remove boost from versions
Remove Boost from src.pro
Remove Boost from gcconfig.pri.in
2012-12-29 22:59:28 +00:00
Mark Liversedge
8512097c65 Merge pull request #408 from amtriathlon/options
Options Toolbar & Keywords Translations
2012-12-29 11:38:04 -08:00
Alejandro Martinez
14a2fe5bd5 Options Toolbar & Keywords Translations 2012-12-29 16:08:03 -03:00
Rainer Clasen
5d1e67b5f5 Remove Boost - SrmDevice
converted SrmDevice to use signals instead of callback.
Also add missing erase connections.

Signed-off-by: Andy Bryson <agbryson@gmail.com>
2012-12-29 18:32:22 +00:00
Andy Bryson
356a80a448 Remove Boost Dependency - Devices
All devices no longer need boost (use signals and slots instead), other
than SRM.
2012-12-29 18:32:22 +00:00
Mark Liversedge
9039fca136 Merge pull request #407 from amtriathlon/RideNavigator
Fix RideNavigator Translation
2012-12-29 10:27:26 -08:00
Alejandro Martinez
bf2239d333 Fix RideNavigator Translation
column names from xml file need to be translated to match translated headings,
other posibility would be to match before translation, but this option needed
fewer changes.
2012-12-29 15:16:27 -03:00
Mark Liversedge
d1d5b872c1 Merge pull request #406 from amtriathlon/measures
Enable Measures Translation
2012-12-29 08:57:02 -08:00
Alejandro Martinez
ad1dada229 Enable Measures Translation
For use in LTM metrics list
2012-12-29 13:46:43 -03:00
Mark Liversedge
b24d34049e Merge pull request #405 from amtriathlon/units
Translate axis labels LTMPlot
2012-12-29 05:41:28 -08:00
Alejandro Martinez
f46952bee2 Translate axis labels LTMPlot
Fixes #29
2012-12-29 10:27:32 -03:00
Mark Liversedge
f32ce83981 UI Nits: Autorepeat on open is wrong
.. it makes the menu flicker.
2012-12-28 19:55:57 +00:00
gcoco
6c523827b4 D2XX.cpp requires #include <assert.h> 2012-12-28 11:41:59 -05:00
Mark Liversedge
e26a281dee Measures on LTMPlot got lost
When optimising for performance the measures
refresh was lost in LTMPlot. This reinstates
them.

Additionally, measures are now shown on the
metric list with a "(m)" after their name to
help differentiate them.
2012-12-28 10:32:20 +00:00
Mark Liversedge
f51a582330 UI Nits: Metadata TextEdit double frame
For example the notes field on its own tab looks fugly
with a frame inside a tab (especially on a Mac). So this
patch removes the frame and background for a cleaner look.
2012-12-27 23:58:03 +00:00
Mark Liversedge
d1583084b9 Missing break. 2012-12-27 21:04:00 +00:00
Mark Liversedge
1eb79795be UI Nits: Download/Compose Mac button icons
.. follow up to earlier fix, but this one covers
the download and compose buttons too.
2012-12-27 20:45:17 +00:00
Mark Liversedge
5e39a74123 Fix Batch Export Dir choice on Mac
For some reason when selecting a target directory
for batch export on the Mac the returned value was
always the same as the supplied value.

Fixed via temporary variables, but not sure why it
fixes the problem, tbh.
2012-12-27 20:28:52 +00:00
Mark Liversedge
6a73b0e650 UI Nits: Fix Mac button icons weirdness
The Mac button icons would go a bit odd, this seems
to be caused by not setting an alternate image for
buttons (they have two images one for each state).
2012-12-27 20:18:42 +00:00
Mark Liversedge
dfd6741cc4 Saris Powerbeam PRO Virtual Power
.. using constants supplied by Tom (ATucker) on the
golden cheetah google group.
2012-12-27 19:44:53 +00:00
Mark Liversedge
0edeef648f Fix -Wdelete-non-virtual-dtor warnings
Base classes should have virtual destructors to
ensure derived classes destructor is also virtual.

This is not a major issue, since in all of the
warning cases there is no base destructor, but
its nice to shutup the compiler warnings.
2012-12-27 19:10:05 +00:00
Mark Liversedge
58b21e1c20 Merge pull request #403 from andybryson/rem_boost
Remove Boost Dependency - The Easy Bits
2012-12-27 09:51:30 -08:00
Andy Bryson
53391f76fc Remove Boost Dependency - The Easy Bits
Replace boost stuff with QT or C++ equivalents
2012-12-27 17:04:36 +00:00
Mark Liversedge
7bcf1d6aab UI Nits: Mac + chart button too wide
.. broken in earlier commits today.
2012-12-26 22:35:35 +00:00
Mark Liversedge
4adb26a8fd UI Nits: Add Chart on Linux/Windows
.. now just a "+" sign like on Mac.
2012-12-26 14:50:20 +00:00
Mark Liversedge
d73017b637 UI Nits: Non-Mac Toolbar
Fix differing icon sizes and click animation fugly. Still
need some professional looking icons to replace the
temporary ones.
2012-12-26 14:36:25 +00:00
Mark Liversedge
98c16369e5 UI Nits: Color prefs
Column sizing on appearance pref pane was
too small. Simple fix.
2012-12-25 15:50:08 +00:00
Mark Liversedge
593cee1746 Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2012-12-25 12:04:51 +00:00
Mark Liversedge
a0f117d6a0 LTM Sidebar add season
It wasn't possible to add a season until a user
defined season was available!! This fixes that.

We need to make the sidebar Splitter have titled
handles with actions like this on it (ala QtCreator).
There is a feature request open for this.
2012-12-25 12:03:18 +00:00
Mark Liversedge
a6fb7a7f86 UI Nits: QMactyle QToolButtons are ugly
I really hate the way QMacStyle changes the style of
a button based upon its size. Its really annoying, especially
since you cannot override it.

Updated last couple of commits to have no effect on Mac where
they make some of the buttons in the preferences pane look ugly.
2012-12-25 11:34:16 +00:00
Mark Liversedge
b6635af3ad UI Nits: Pref Pane Fields page
Column widths set to avoid horizontal
scrollbar from appearing.
2012-12-25 10:42:51 +00:00
Mark Liversedge
894a88a879 UI Nits: Prefs pane cosmetics
Made the up,down,left,right,add,del buttons
smaller and used icons where appropriate.
2012-12-25 10:15:22 +00:00
Mark Liversedge
edeb7a33fa Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2012-12-24 19:14:38 +00:00
Mark Liversedge
c04066e29f Add Chart on Scope Bar
Put a button on the scope bar to add a chart. This is more
intuitive than the right click menu. The style could be
better but ok for now.

Deprecated the right-click menu option since it is unintuitive
and hidden from the user (i.e. bad UX).
2012-12-24 19:13:12 +00:00
Mark Liversedge
ea174a758e VLC is Optional - don't SEGV
Ugh. Fixed a couple of SEGV when library importing
is used with video but no video support is compiled in.
2012-12-24 16:45:44 +00:00
Mark Liversedge
4915d2e21a CP Calculator is really and Estimator
.. and the dialog was a bit ugly too.
2012-12-24 16:23:16 +00:00
Mark Liversedge
274c2c5a71 Workout Library fixups
Remember the selected video or workout when refreshing list
on data change. This is particularly relevant when dragging
and dropping in videos and workouts.
2012-12-24 16:05:07 +00:00
Mark Liversedge
a9a6f9ffb8 Further Workout Library Fixups
- Added drag and drop dialog and functionality
- if only 1 video/workout imported it is imported and selected
- if multiple they are imported with a dialog
- now shows any references in the scan function

The use of references to avoid making copies of videos is
a touch complicated -- the workflow could be friendlier.
2012-12-24 15:23:16 +00:00
Mark Liversedge
16aff3cf19 Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2012-12-24 09:21:44 +00:00
Mark Liversedge
ba15e1d9f8 Further Workout Library 3 fixups
Now need to write the workout import dialog.
2012-12-24 09:20:56 +00:00
Mark Liversedge
237dc6b330 Merge pull request #402 from objectiveous/master
Inclusion of macports usage for builds on Mac
2012-12-23 13:21:20 -08:00
Robert Evans
f07871ef9a Adding macports instructions for qt dependency install
It's possible to use macports to install the qt dependencies and this change introduces language to that effect. It describes how to install both qt and the qt-sqllite dependencies.
2012-12-23 11:48:57 -08:00
Mark Liversedge
0b29dc5bd8 Support PC7 /dev entry
As reported on the list the cu/usbserial device contains
a non-hexadecimal number (given example cu.usbserial-A2QYN3QJ)
this update changes the regexp to match.
2012-12-23 18:46:34 +00:00
Mark Liversedge
2a149bd454 Workout Library Part 3 fixups
Some fixups to recent update for the workout
library support;

- ergDB download now updates the DB
- mainwindow menu options names more consistent
- sort order in the video and workout list
- hooks for import/drag and drop

Will now write the importer for drag-n-drop and
import workouts menu option.
2012-12-23 17:56:41 +00:00
Mark Liversedge
bc0489f33e Fix Z-order for chart settings
Always on top hint is not appropriate for the
chart settings since the LTM chart settings
open another dialog -- which then appear behind
the dialog and cannot be moved.

Fixes #401.
2012-12-22 19:10:41 +00:00
Mark Liversedge
a603dd5b5b Workout Library Part 3 of 3
Linked up the training db to the train tool to
allow users to select from the db.

Further enhancements to the list could be made,
but leaving this till we move to OpenTrainer.

Still need to add drag and drop to copy into
the library or add reference to the file.

Fixes #301.
2012-12-22 19:05:36 +00:00
Mark Liversedge
cf23bd2e89 LTMPlot linear gradient was upside down 2012-12-22 11:12:27 +00:00
Mark Liversedge
162dd3df55 CP 'this' curve more prominent
Made 2px line rather than 1px to make it more
prominent on the CP chart.
2012-12-22 11:05:04 +00:00
Mark Liversedge
46ab95ad2c Tone down CP linear gradient
My eyes started to bleed at the burst of color
on the cp plot after the introduction of a
linear gradient there. Just toned it down a bit
for the "rainbow" all curve.
2012-12-22 10:53:19 +00:00
Mark Liversedge
56c58a45dd UI Polish: More linear gradient on CP curve
Added linear gradient shading to the CP curve
2012-12-22 10:35:17 +00:00
Mark Liversedge
386504666b UI Polish: More linear gradient on histogram
Added linear gradient shading in the histogram charts.
2012-12-22 10:23:17 +00:00
Mark Liversedge
cdf50ff56c UI Polish: Bit more linear gradient
Add s subtle linear gradient to the bars on the
LTMPlot.
2012-12-22 00:00:25 +00:00
Mark Liversedge
995b066411 Library Part 2 fixups
Kept recreating the db tables due to an error
in checkDBVersion.
2012-12-21 21:58:59 +00:00
Mark Liversedge
2756a678c7 Workout Library Part 2 of 3
Add trainDB sqlite database of workouts and videos
found during a library search. A bit ghetto but
works well enough.

Part 3 will need to;
- update traintool to list contents from db
- allow drag-n-drop of files into db (and worry
  about copy to library vs add path).
2012-12-21 16:27:49 +00:00
Mark Liversedge
2d73924f25 ErgFile lookup CP
Instead of passing the CP value for the rider
when opening an ErgFile it now looks up the CP
value itself. Simplifies the API.
2012-12-21 11:09:52 +00:00
gcoco
89de9da7ff Reset defaults 2012-12-20 23:11:25 -05:00
gcoco
20335c4f07 Reset defaults 2012-12-20 23:10:18 -05:00
gcoco
f936dc3ee4 Remove data from default settings 2012-12-20 18:57:31 -05:00
Mark Liversedge
28a9668b89 AVI isn't supported by Quicktime
Which sucks hoops.
2012-12-20 21:58:57 +00:00
Mark Liversedge
b35ca9f945 Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2012-12-20 19:59:44 +00:00
Mark Liversedge
29e8236b27 UX: Chart Setup simplified
Don't ask about height/width factor, no-one knows
what they mean and ou can adjust it once added to
the view anyway.

Also, if there are not chart controls don't reserve
the space for them.
2012-12-20 19:57:58 +00:00
Mark Liversedge
2ce2d275a5 Merge pull request #399 from amtriathlon/ridefile
Enable RideFile seriesName translation
2012-12-20 11:17:39 -08:00
Alejandro Martinez
dd17383ebe Enable RideFile seriesName translation
Also changed all references to QObject::tr for a version with the proper context
2012-12-20 15:55:47 -03:00
Mark Liversedge
72ae863b30 More Library Part 1 fixups
- honour the checkboxes
- fix screen flicker
2012-12-20 16:54:49 +00:00
Mark Liversedge
9d1e088088 Library Part 1 fixups
- vlc is optional on Linux/Windows
- summary of found items was out by 1
2012-12-20 15:05:25 +00:00
Mark Liversedge
030fa04b0c LTMPlot refresh optimisation
Only refresh when dateRange actually changes
within dateRangeChanged() since it is a signal
used by the HomeWindow to ask a replot when
a tab is selected.

Should speed up navigation across diary and
home view.
2012-12-20 14:50:10 +00:00
Mark Liversedge
1e9f72ab3e Stop double updating LTM Plots
When dateRange was implemented in LTMSidebar and the property
dateRange was introduced to LTM charts a nasty double and
triple plot bug was introduced.

This update ensures the chart is only plotted once when it is
selected.
2012-12-20 14:27:53 +00:00
Mark Liversedge
2ac13f3867 Fix user units lost in translation
LTMPlot translation lost the user defined units
which made the default PMC (amongst others) look
odd since each data series used a different axis.
2012-12-20 14:07:08 +00:00
Mark Liversedge
5eb100f923 Oops: left in a qdebug 2012-12-20 13:50:01 +00:00
Mark Liversedge
437f65ba85 Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2012-12-20 13:34:38 +00:00
Mark Liversedge
d2ebedac20 Workout Library Part 1 of 3
Implementing a workout library that keeps
track of media and workouts that can be used
in train view.

This first part implements;
- library.xml to record search paths
- search dialog to find media/workouts

Part 2 and 3 will bring:
- Sqllite libraryDB to store found details
- Update traintool to use libraryDB and display
  icons, duration/distance, IF and TSS in list
- import and drag-n-drop of new media/workouts
2012-12-20 13:30:49 +00:00
Mark Liversedge
48ca23b6c9 Merge pull request #397 from andybryson/stacking
Stacked Plot Improvements
2012-12-20 05:21:57 -08:00
Andy Bryson
ff27c24f32 Stacked Plot Improvements
Make first plot the same size as the others in stacked view
Stop RPM scale clutter
2012-12-20 12:59:48 +00:00
Gareth Coco
e222bd90eb Allow make to compile translations before building
Fixes #388.
2012-12-20 10:26:10 +00:00
Mark Liversedge
a6de662ed7 Trimmed PMC/Manual Preferences
There were a bunch of preferences that really
weren't needed; STS/LTS starting values were not
being used (and logic flawed anyway).

The mode/days to estimate bikescore were only used
in one place (manual ride dialog) so moved there
instead.

Fixes #396.
2012-12-20 10:14:41 +00:00
Mark Liversedge
11e4054ef6 Merge pull request #395 from amtriathlon/navigator
Enable RideNavigator Translation
2012-12-19 14:35:02 -08:00
Alejandro Martinez
4e8b398c63 Enable RideNavigator Translation 2012-12-19 19:31:54 -03:00
Mark Liversedge
1fd01aa473 Merge pull request #391 from dhague/master
Pre-work for coastdown calibration
2012-12-18 13:31:13 -08:00
dhague
8c06532465 Refactor antlog.bin output into ANTLogger class
ANT.cpp now emits a signal for each ANTMessage
ANTlocalController wires up this signal to a slot in ANTLogger which
writes the message to antlog.bin

Signed-off-by: dhague <darren.hague@fortybeans.com>
2012-12-18 21:22:34 +00:00
Mark Liversedge
7d8d2932a7 Merge pull request #390 from amtriathlon/chartname
Enable chart names translation
2012-12-18 10:15:03 -08:00
Alejandro Martinez
3df4211d1f Enable chart names translation 2012-12-18 14:32:03 -03:00
Mark Liversedge
883d728318 Merge pull request #389 from amtriathlon/calendar
Enable Diary Translations
2012-12-17 22:54:46 -08:00
Alejandro Martinez
f2342847d7 Enable Diary Translations 2012-12-17 23:41:18 -03:00
Damien
649ebaf48b ISODate format for UTC date end by "Z"
fixes #387
2012-12-17 21:49:49 +01:00
Mark Liversedge
05c96f3265 UI Polish: Linear gradient in ErgFilePlot
Use a linear gradient to fill the load curve in the train view.
2012-12-17 11:26:40 +00:00
Mark Liversedge
6abbda2f89 Merge pull request #378 from amtriathlon/home
Enable HomeWindow Translations
2012-12-16 14:08:48 -08:00
Alejandro Martinez
5b7131b283 Translate metrics names and units 2012-12-16 18:41:23 -03:00
Mark Liversedge
90f6fe7708 Merge pull request #386 from andybryson/chart_settings
Chart Settings (show legend and shade zones) do not persist.
2012-12-16 11:20:07 -08:00
Andy Bryson
55a80dba5e Chart Settings (show legend and show zone) were not persistent. 2012-12-16 19:02:21 +00:00
Mark Liversedge
5979546307 Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2012-12-16 12:51:19 +00:00
Mark Liversedge
c1b772fd5a UI Nit: toolbar selection wrong
When using the view menu to switch between
diary, analysis and home view the tab widget
was not updated.

Fixes #383.
2012-12-16 12:49:51 +00:00
Mark Liversedge
31977c20f4 Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2012-12-15 18:42:25 +00:00
Mark Liversedge
136d7ace00 Added Blank GC Icon 2012-12-15 18:41:57 +00:00
Damien
6ed7585eec Remove some warnings 2012-12-15 17:18:44 +01:00
Mark Liversedge
14859d8a51 Context Menu for Devices in Train View
Right click to add/delete a new device on the device list
in the train view sidebar.

It is temporary to bring the train view in line with the rest
of GC, but will then be updated as we remove functionality that
is hidden behind a right click.
2012-12-15 14:07:45 +00:00
Mark Liversedge
e6e84dfd2f Manual Ride Dialog Fixups
- default size on Linux/Windows
- initialise the seconds/totalseconds variables
2012-12-14 15:05:50 +00:00
Damien
a08206d017 Update French translation for V3.0 (3/3) 2012-12-13 23:23:06 +01:00
Mark Liversedge
2df222f9ff Fix SEGV in CPPlot when ride added/deleted
The recent update to allow CP charts to be added to the home
view and display the cp chart for the range selected did not
update to cater for ride/add delete whilst the season combo
is not set.

As a result when a ride was added/deleted the current index for
the combo was used (-1) to reference the season array resulting
in an fatal assert on array bounds.
2012-12-13 14:44:09 +00:00
Mark Liversedge
1608856032 UI Nits: Manual Ride Dialog fugly
Tidied up and enhanced the manual ride dialog. It now
lets users add Sport, Workout Code and Notes (or leave
them blank if they don't use them).

Also added Average HR, Cad, Watts and Speed as well as
deriving TSS and Work.

If there are no rides in the last 'n' days it falls back
to the default for all rides logged.

It also now writes json format files.
2012-12-13 14:14:25 +00:00
Alejandro Martinez
ac44836414 New metricsDetails method in LTMTools 2012-12-12 10:56:28 -03:00
Mark Liversedge
91f0ab9573 Fix Split Ride SEGV
Appears to be related to add/removing labels during a paint event,
which is pretty bad practice anyway. To get past this crash the
labels have been removed -- the chart still shades areas to show
the parts of the ride that will be split out, but no longer shows
the number for each segment.

Fixes #379.
2012-12-11 11:47:51 +00:00
gcoco
6b23133b5b Fix
Recent commit 8eee2dd got some of the logic
the wrong way round for switching between metric
and imperial units in Weight.
2012-12-11 01:43:36 -05:00
Alejandro Martinez
32c53fcdca Enable HomeWindow Translations 2012-12-10 23:49:51 -03:00
Mark Liversedge
35fadf4ea8 ConfigDialog was missing copyright messages 2012-12-10 14:35:11 +00:00
Mark Liversedge
645439e53c UI Nits: Geometry and setUnifiedTitleAndToolBar
The restore / set geometry for the config dialog and mainwindow
was 'adjusted' by setUnifiedTitleAndToolBarOnMac. This meant
that when restoring geometry at startup the window would gradually
decrease in size (by roughly 42 pixels).
2012-12-10 08:51:41 +00:00
Mark Liversedge
c871e159a5 Remove RideFileCache compile time warnings
Just noticed and thought I'd do a quick fix since it
was so trivial.
2012-12-10 07:27:00 +00:00
Damien
baed9f87c5 Remove warnings 2012-12-09 23:03:19 +01:00
Gareth Coco
0b6fc56578 Update binary translations 2012-12-09 16:14:42 -05:00
Mark Liversedge
95efff9c0f Handle -lGLU in qmake for mac where unix is true. 2012-12-09 17:53:41 +00:00
Mark Liversedge
359b52eea9 -lGLU only needed on Unix 2012-12-09 13:08:47 +00:00
Damien
a178604100 Update French translation for V3.0 (2/3) 2012-12-09 10:55:13 +01:00
Mark Liversedge
f072071305 Merge pull request #377 from amtriathlon/3d
Enable 3d chart translations
2012-12-08 15:54:50 -08:00
Alejandro Martinez
acad69ef58 Enable 3d chart translations 2012-12-08 20:26:44 -03:00
Mark Liversedge
b034865b62 Update LINUX-INSTALL for 3D on Ubuntu 12.10 2012-12-08 21:50:14 +00:00
Mark Liversedge
c06dcf1119 Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2012-12-08 21:44:34 +00:00
Mark Liversedge
c37678f8e2 Need -lGLU for 3d link on Ubuntu 2012-12-08 21:44:06 +00:00
Mark Liversedge
ebaaee7236 Merge pull request #376 from amtriathlon/rho
Enable Rho and Twitter translations
2012-12-08 11:56:39 -08:00
Alejandro Martinez
1774f1b3db Enable Rho and Twitter translations 2012-12-08 16:45:41 -03:00
Mark Liversedge
4c622c4c0e Merge pull request #375 from amtriathlon/colors
Enable Colors translations
2012-12-08 09:32:01 -08:00
Alejandro Martinez
b90c59b5ca Enable Colors translations
Includes loading translations for system dialogs and
using default units according to system settings
2012-12-08 14:22:08 -03:00
Mark Liversedge
2b1e26376a Merge pull request #374 from amtriathlon/DataProc
Enable DataProcessor Translation
2012-12-08 09:13:56 -08:00
Alejandro Martinez
f770d6ea09 Enable DataProcessor Translation
Also includes download instructions translation
2012-12-08 12:37:01 -03:00
Mark Liversedge
6301245cc6 Update LTMTool chart translation table
To reflect new charts.xml that is now the default
chart setup for v3.
2012-12-08 14:38:12 +00:00
Mark Liversedge
19a390362a Fix Ridesummary SEGV 2012-12-08 14:13:30 +00:00
Mark Liversedge
a49a3ac3d8 Default Configuration Files
This represents the default configuration for
charts, layouts and metadata. This is now frozen
for the V3 release to allow translations to be
made.
2012-12-08 14:02:28 +00:00
Mark Liversedge
881fda573f Merge pull request #373 from amtriathlon/ltm
Enable LTM Translations
2012-12-07 16:12:14 -08:00
Alejandro Martinez
1a56d01fef Enable LTM Translations
Includes translation of default chart names, these
should be in sync with those defined in charts.xml
2012-12-07 21:04:21 -03:00
Mark Liversedge
1370abb560 Hysteresis label too long. 2012-12-07 22:26:50 +00:00
Eric Murray
8ab7c90feb User Configurable Hysteresis
Still defaults to the original value of 3 meters. Because
the metrics need to be recalculated when it changes we also
add the hysteresis factor to the zone fingerprint CRC.
2012-12-07 21:56:11 +00:00
Mark Liversedge
6c7cb13101 UI Nits: Simple frame for tab mode
Will look at drop shadows tomorrow.
2012-12-07 21:21:36 +00:00
Mark Liversedge
5e415675ab UI Nits: GcBubble border color 2012-12-07 18:59:14 +00:00
Mark Liversedge
67ddf09ad4 UI Nits: Config Dialog Cosmetics 2012-12-07 18:24:53 +00:00
Mark Liversedge
a21c5192be UI Nits: Config Dialog toolbar not movable 2012-12-07 17:17:20 +00:00
Mark Liversedge
98a4c57537 Merge branch 'pmc-qa' of https://github.com/amtriathlon/GoldenCheetah into amtriathlon-pmc-qa
Conflicts:
	src/translations/gc_fr.ts
2012-12-07 17:05:31 +00:00
Mark Liversedge
9a271ba83d UI Nits: Config Dialog Size on Linux 2012-12-07 17:00:12 +00:00
Mark Liversedge
5198cbd9b6 Image missed from last commit. 2012-12-07 16:47: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
Mark Liversedge
ba2146110b Merge pull request #371 from amtriathlon/aerolab-allplot
Enable AllPlot and Aerolab translations
2012-12-07 08:37:05 -08:00
Mark Liversedge
2a13ed045c Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2012-12-07 16:36:22 +00:00
Mark Liversedge
47edb7ac29 Tidy up Preferences Dialog
Big refactor of the code since it was really messy
and also moved to a Mac style config dialog with
a bit of Mac UI polish.

Moved many of the pages around to make it more user
friendly.

Removed the fortius and proxy code altogether
and removed the measures config since we will need to
look at this in v3.1 and don't want to have to add
backward compatibility support for users that change it.

Fixes #358.
2012-12-07 16:32:58 +00:00
Alejandro Martinez
efbea03610 Enable AllPlot and Aerolab translations
Also update spanish translation
2012-12-07 11:54:09 -03:00
Damien
2649248eed Update French translation for V3.0 (1/3)
2
2012-12-07 14:35:45 +01:00
Mark Liversedge
9946ef2175 Merge pull request #370 from amtriathlon/ridesummary
Enable translations in RideSummary
2012-12-06 14:28:47 -08:00
Alejandro Martinez
d9dd24cb72 Enable translations in RideSummary
Includes default zone descriptions
2012-12-06 19:19:18 -03:00
Mark Liversedge
1ab0d147d5 LTMSidebar: Add season
Makes sense to let the users create seasons in the LTM sidebar
rather than have to go into preferences to do it.
2012-12-06 11:52:40 +00:00
Mark Liversedge
070719a15b Merge pull request #369 from amtriathlon/aerolab
Add error reporting to Estimate CdA and Crr
2012-12-05 10:12:17 -08:00
unknown
6ed8675c73 Add error reporting to Estimate CdA and Crr 2012-12-05 14:57:07 -03:00
Mark Liversedge
805de260ac Merge pull request #368 from amtriathlon/metadata
Enable Metadata translation
2012-12-04 23:07:19 -08:00
Alejandro Martinez
c0372290d7 Enable Metadata translation
This patch keeps the original english name of SpecialFields and SpecialTabs
as internalName, to preserve compatibility, while it uses a translated
displayName for user interfase in other languages.
2012-12-04 22:00:59 -03:00
Damien
437c333ac6 Mismatching allocation and deallocation 2012-12-04 23:38:13 +01:00
Damien
cc8863130d Add label for seasons with same start date 2012-12-04 23:18:50 +01:00
Mark Liversedge
68cd9f7090 Merge pull request #367 from amtriathlon/metrics
Enable translation on LeftRight metric
2012-12-04 12:00:05 -08:00
Alejandro Martinez
18413ab114 Enable translation on LeftRight metric 2012-12-04 16:51:04 -03:00
Damien
a8f741a088 Correct invalid json if no hr in Strava upload 2012-12-04 20:39:07 +01:00
Mark Liversedge
193a5b01f1 UI Nits: Fixup after ridelist scrollbar 2012-12-04 19:04:43 +00:00
Mark Liversedge
921dd66ba0 Merge pull request #366 from amtriathlon/metrics
Enable metrics translations
2012-12-04 10:32:56 -08:00
Alejandro Martinez
2db48cc1a4 Enable metrics translations
The code setting metric names and units was moved from constructors to
an initialize method, to be called after translator initialization.
English Name is preserved as InternalName for metadata.xlm compatibility
in metric override.
Q_DECLARE_TR_FUNCTIONS(class-name) macro is used to set tr() context
when class-name is not QObject sub-class.
2012-12-04 13:59:49 -03:00
Mark Liversedge
aff76bfde0 UI Nits: Ride list scrollbar on Mac
Style was all wrong and when rides were filtered
the scrollbar disappeared by the space was left
un painted.
2012-12-04 15:58:27 +00:00
Mark Liversedge
b0c69b00dc TreeMap show rides when cell clicked
When a cell in the treemap plot is clicked they are displayed
in the popup pane also used by the LTM charts.

We do need to tart up the popup, but at least now the treemap
plot does something meaningful.

Fixes #364.
2012-12-04 15:13:46 +00:00
Mark Liversedge
c0574c4a81 TreeMap Chart - refactor away LTM
The treemap chart was developed as a variation of an LTM
chart and as a results has the same chart settings etc.

It has now been refactored to be a standalone chart with
no need to re-use the LTM settings and code.

This is also in preparation to support click through on
the cells to show a popup of rides.
2012-12-04 14:01:33 +00:00
Mark Liversedge
96fdb753e6 TCX Parser: Strtod is locale specific
When parsing in locale's where numbers use a
',' as a decimal point, strtod fails to parse
lon/lat values.

Thanks to Horst Huschauer for the fix.

Fixes #365.
2012-12-03 21:51:05 +00:00
Mark Liversedge
c73dccdd22 UI Nits: LTM popup stretch
Remove stretch in LTM popup, makes it much more space
efficient. Will not look to make it more of a HUD popup.
2012-12-03 20:37:13 +00:00
Mark Liversedge
23969f9978 UI Nits: Remove unused LTM metric options
There were a few metric options on the LTM
chart that were introduced a looooong time
ago when playing with filter ideas.

They don't do anything and will confuse the
hell out of users. They are now removed.
2012-12-03 19:15:07 +00:00
Mark Liversedge
d13b7bd979 UI Nits: Ride Navigator weird gap fix
Workaround that by putting new columns at the left
not at the right and the problem goes away. Suspect
it is related to issues with QT and expandLastColumn()
which also displayed issues.
2012-12-03 16:21:21 +00:00
Mark Liversedge
2a2ef7ba08 W/KG fixup distribution/histogram
The w/kg ridefile cache was not quite right
for distribution charting.
2012-12-03 14:56:43 +00:00
Mark Liversedge
ef8fd292c6 Uncomment code from last commit.
Accidentally pushed some commented out code in the last
commit, which was left from debugging. The code is now reinstated.
2012-12-03 12:12:13 +00:00
Mark Liversedge
98b0fbd90d Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2012-12-03 12:01:33 +00:00
Mark Liversedge
fa424447dc Performance Manager Date Labels
Linker error using different TimeScaleDraw::label but
also a memory leak with unneccesary calls to create a
new ScaleDraw object.

Also applied recent fixes from qwt6 for scale draws. We
should look to pick up some of the other recent fixes
-- especially QT5 support.

Fixes #363.
2012-12-03 12:00:12 +00:00
Damien
eaa84772fc Add shaded power zones for watt per kilogram series in histogram 2012-12-02 23:05:35 +01:00
Damien
28faf74884 Correct binWidth if not valid for the selected series 2012-12-02 22:32:06 +01:00
Mark Liversedge
299885d8ce UI Nits: Fix GcBubble on Mac
Painting artefacts caused by setting native window painting
in main.cpp. It was left in accidentally.
2012-12-02 19:36:57 +00:00
Mark Liversedge
cf8d3b4bd8 UI Nits: LTM add chart use a default date range
When adding a chart to the home view no date range is set.
This update ensures that the last selected date range is
used, so when a chart is selected/configured some data
will be shown.
2012-12-02 18:10:26 +00:00
Mark Liversedge
5193deaf61 UI Nits: New athlete splitter sizes
When a new athlete is setup the splitter sizes are not
defaulted, leading to a sidebar that is way too wide.
2012-12-02 16:07:04 +00:00
Mark Liversedge
e256d3fa6a UI Nits: Importing GTC Export screen updates
When importing a GTC export (which contains multiple ride
files in a single .TCX) the screen update stalls whilst the
file is split. The import dialog is half drawn and looks
ugly to the user for a split second.

We now delay updates until the export has been expanded
into separate files, which means there is a slightly longer
delay as the file is initially processed, but the screen
updates are cleaner.
2012-12-02 08:16:35 +00:00
gcoco
ed7c3100a5 Fix git URLs 2012-12-01 20:59:36 -05:00
gcoco
acee8af0b4 Fit git URL 2012-12-01 20:57:58 -05:00
gcoco
6c4decad76 Fix git URL 2012-12-01 20:57:19 -05:00
Damien
7edb4fca0b Return cached value 2012-12-02 01:00:14 +01:00
Damien
7c9c7d68b8 The getWeight() method should find the last value of weight in measures if the last measure has no weight value 2012-12-02 00:53:05 +01:00
Mark Liversedge
1403dff4e7 Fix Weight stored in KGs
Recent commit 8eee2ddb got some of the logic
the wrong way round for converting weight to KGs
before saving (and when switching between metric
and imperial units).

We always store weight in KGs.
2012-12-01 23:27:57 +00:00
Damien
ea895f169b Implements WattsKg in histogram
fixes #362
2012-12-01 23:52:50 +01:00
Mark Liversedge
e822d5b029 Fix SEGV on cancel remove chart
Recent update to use deleteLater() when removing
a chart in the event loop /always/ deletes the chart
regardless of the user selection, this is because it
is deleted in the wrong place.

It was deleted when the user selected the close menu
option (in GoldenCheetah.cpp) rather than after the
user had confirmed (in HomeWindow.cpp).
2012-12-01 22:19:46 +00: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
48033af594 UI Nits: LTM popup fugly
Small improvement to LTM popup. Need a better
close icon though.
2012-12-01 19:25:49 +00:00
Damien
c8c5d379e6 Change series id for histograms after ids were changed by mistake in commit #b116d3a 2012-12-01 19:35:04 +01:00
Mark Liversedge
e339abd4af UI Nits: RideNavigator honout font metrics
The row height in the ride list is fixed. When the user
selects a different font the row height should adjust
accordingly.
2012-12-01 17:34:52 +00:00
Mark Liversedge
d725d371d7 Fix SEGV on ESC in chart settings
If you press ESC on the chart settings (not add chart) dialog
then the dialog is closed and deleted, causing a SEGV. This
patch overrides reject() to ensure the dialog is just hidden.
2012-12-01 13:12:33 +00:00
Mark Liversedge
4a24166af1 Merge pull request #361 from andybryson/morecharts
Y axis is still unclear
2012-11-30 13:18:24 -08:00
Mark Liversedge
fc6d300a79 UI Nits: Disable GcBubble on Mac
The painting artefacts are a problem only on a Mac. Suspect
it is a QT bug. Disabling the bubble on a Mac for this reason.
Its starting to grate anyway, perhaps there is a better way
of doing this.
2012-11-30 19:14:27 +00:00
Mark Liversedge
dca5635bb3 UI Nits: Fix bubble vanish!
The popup bubble appears and vanuishes on the
diary view. This patch fixes that. Still need
to work out why it goes invisbible on Mac OSX.
2012-11-30 18:25:22 +00:00
Andy Bryson
6d60c154fb 361 - Y axis is still unclear 2012-11-30 12:50:55 +00:00
Mark Liversedge
cce5b9c590 UI Nits: GcBubble positioning
RideNavigator set the GCBubble to the wrong position on
screen which can be confusing when you have a narrow list
of rides. The bubble appeared to be displaying for a totally
different ride.
2012-11-30 10:27:23 +00:00
Damien
b1729525c2 Update translation (ts) files 2012-11-30 07:47:04 +01:00
Alejandro Martinez
6f49bcea16 Add es and pt translation files set lang default according to system default 2012-11-29 23:34:58 +01:00
Mark Liversedge
b1e25f351d Events on LTM work for different group by
The last patch to show events on the LTM chart only
worked when grouping by weeks. This is because the
groupby x dimension is baselined to the starting date;
i.e. groups always start from 0.

This patch fixes displaying events when grouping by
days, months or years.
2012-11-29 17:38:47 +00:00
Mark Liversedge
f24c57e658 I Nits: LTM Sidebar (Part 3 of 3)
Events are now maintainable in the sidebar and this
update now plots them on the LTM plot.

Events and season markers are shown so long as they
fall within the chosen date range.
2012-11-29 16:24:15 +00:00
Mark Liversedge
5da877e305 Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2012-11-29 14:52:05 +00:00
Mark Liversedge
273c4dde1a Mainain Events in LTM Sidebar
Add the ability to create and maintain events in
the LTMSidebar. This is a follow up to adding
support for Events in seasons.xml.

The last step is now to add support for annotating
charts to show the events for the date range selected
and possibly for the seasons within that date range.
2012-11-29 14:49:21 +00:00
Mark Liversedge
0f5441b268 Season preferences don't lose events
If you maintained your seasons in the tools
or preferences pane then all your events would
be lost.
2012-11-29 10:22:24 +00:00
Mark Liversedge
e4411a293f Add Events to Seasons.xml
But bear in mind the season editor in preferences
needs to be updated to support the additional elements.
2012-11-29 09:37:39 +00:00
Damien
b07e689940 Update translation (ts) files 2012-11-28 22:21:49 +01:00
Mark Liversedge
bb822fade8 Histogram nointerval curve on season chart 2012-11-28 19:53:47 +00:00
Mark Liversedge
246c65312a Concise metric names in sidebars 2012-11-28 17:11:24 +00:00
Mark Liversedge
3bbccd47dd Fix split ride SEGV on bad recording interval
When reading a PWX file we try to guess the recording interval
by looking at the first two samples. This can lead to silly
values when there are recording errors.

This patch sanity checks the recording interval and sets it to
1s recording if the derived value is unusual.
2012-11-28 16:08:22 +00:00
Mark Liversedge
cabb30d6ad Merge pull request #360 from andybryson/charts
Issue #357 - Y axis is unclear
2012-11-27 13:12:45 -08:00
Damien
32783685ff Correct Zeo data download : only one message box after new values 2012-11-27 22:08:57 +01:00
Damien
b05c6cca61 Correct crash for Joule 2.0 files without temperature for first seconds 2012-11-27 22:08:57 +01:00
Mark Liversedge
676b6ba52b UI Nits: LTM Sidebar (Part 2 of 3)
The last of a series of recent patches to address performance
degradation from the introduction of the LTMSiebar. This last
patch introduces a CPX aggregates cache to re-use aggregated
CPX data (e.g. for plotting a specific season or date range).

The cache is set to only hold 25 caches, which should be enough
for most folks list of seasons. But won't get unwieldy if they
scroll around in the diary view.

The following will be introduced in the last patch of
this series:

1. Introduce 'events' within a season and plot them on the
   LTM chart -- a form of 'annotation' but also the beginning
   of planned events in the future too.

2. Implement click functionality on LTM charts but decide if
   we use click to annotate or to define a new date range or
   both?
2012-11-27 21:03:19 +00:00
Mark Liversedge
154fbd7986 Fix SEGV on GcBubble 2012-11-27 18:53:11 +00:00
Andy Bryson
2ab9161232 Issue #357 - Y axis is unclear 2012-11-27 18:40:11 +00:00
Mark Liversedge
4bd94e9411 UI Nits: LTMSidebar performance
Don't refresh CP, LTM or Histogram plots when dateRange property
is set, if the dateRange was previously plotted anyway. Will set
to stale if a ride is added or deleted too.

This means the replot of tabs is not performed when simply switching
between tabs. But will if the date range does change or a ride is
added or deleted meaning the aggregate needs to be re-calculated.

There is still one more performance improvement required;

1. get RideFileCache to have a cache of recent aggregations.
   Since (a) the same ranges will be called over and over by
   different charts when a season is selected and (b) there
   are only likely to be 20-30 seasons defined in total, so
   lets cache them instead of recalculating every time.
2012-11-27 13:41:36 +00:00
Damien
8eee2ddb25 Choose Metric/Imperial units in New Athlete dialog
fixes #34
2012-11-26 23:35:35 +01:00
Mark Liversedge
6568a05703 UI Nits: LTMSidebar performance
Remove the double update from HomeWindow and only
update in CP and Histogram when visible.

Still need to:

1. get CP/Histogram to remember what the last update
was to not bother unless something has changed.

2. get RideFileCache to have a cache of recent aggregations.
   Since (a) the same ranges will be called over and over by
   different charts when a season is selected and (b) there
   are only likely to be 20-30 seasons defined in total, so
   lets cache them instead of recalculating every time.
2012-11-26 22:11:46 +00:00
Mark Liversedge
52ab78f903 Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2012-11-26 20:30:21 +00:00
Mark Liversedge
2dea77e1ae UI Nits: LTM Sidebar (Part 1 of 3)
We now have a date range selector in the sidebar.  The
sidebar has a date range selector and summary. It is
used to set the date range for the charts in the view.

As a result we can now add summary charts to the home view
and LTM/CP/Histogram charts to the Diary view. The weekly
summary chart is now deprecated.

Creating seasons has also been disabled on metric charts. We
will need to decide what clicking on an LTM chart should do,
and look at whether we want to keep the popup bubble or
adjust it.

There are some unfortunate performance degradations as a result
of this patch when selecting date ranges and switching between
charts in tab view. This needs to be addressed as a priority.

Follow up patches, part 2 and 3 will need to;
1. address performance degradations & cache results
2. introduce events in sidebar and as annotations on charts
3. implement click functionality on LTM charts (annotate vs
  define a new season/range)

NOTE: existing HOME, ANALYSIS and DIARY chart setups will need
      to be rebuilt since chart ids and properties have changed
      in this patch -- do not raise a bug until you have deleted
      and re-added the offending chart.
2012-11-26 20:20:36 +00:00
Gareth Coco
5ea41a2ff6 HTML formatting 2012-11-26 09:53:41 -05:00
Gareth Coco
d73c98f08e Website updates for broken links. 2012-11-26 09:50:50 -05:00
Mark Liversedge
3559c79434 Fix SEGV on close chart in HomeWindow
Needed to delete outside of the event loop, fortunately this
can be done with QObject::deleteLater().
2012-11-24 20:12:26 +00:00
Mark Liversedge
c75ec41e4b Set Application Proxy from Operating System
Uses the QT proxy query and application wide proxy setting
to allow users behind a corporate firewall to use network
functions (maps, TP.com, ergDB etc).

Fixes #27.
2012-11-24 10:03:39 +00:00
Mark Liversedge
b62fe6a035 UI Nits: Don't delete last column
Don't let the user delete the last column on the
ride navigator. If they do that then there is no
way of adding a column back!
2012-11-23 23:20:03 +00:00
Mark Liversedge
eb30dd9f0e UI Nits: Ride navigator contents margins
When adjusting column widths take into account the
contents margins. Also shows sort indicator on the
columns when not on a mac (this was changed as part
of the recent Mac native polish commits).
2012-11-23 22:27:46 +00:00
Mark Liversedge
6e4a58542e Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2012-11-23 22:07:19 +00:00
Damien
3423c803e4 Another change on date for Joule 1.0 2012-11-23 22:05:37 +00:00
Damien
45a8548187 Modify date reader for Joule 1.0 2012-11-23 22:05:37 +00:00
Damien
147400f492 Modify getUnitVersion for Joule 1.0 2012-11-23 22:05:37 +00:00
Mark Liversedge
1c2fa048f9 UI Nits: Non-Mac searchbox fix
The mac searchbox using a NSSearchField works a
treat on Mac, but the code accidentally removed the
searchbox on Linux and Windows.

This patch reinstates it.
2012-11-23 22:05:37 +00:00
Damien
c76704aece Correct bug with the new virtual column for Ride Time 2012-11-23 22:05:37 +00:00
Mark Liversedge
9bf3e69beb User configure Field to set colors from
The user can now select a metadata text field to use when
setting colors from keywords.

Fixes #32.
2012-11-23 22:01:41 +00:00
Damien
7bc98ea361 Another change on date for Joule 1.0 2012-11-23 22:47:29 +01:00
Damien
008800a7b8 Modify date reader for Joule 1.0 2012-11-23 21:52:19 +01:00
Mark Liversedge
aac9fa629a Merge branch 'master' of github.com:/GoldenCheetah/GoldenCheetah 2012-11-23 19:04:27 +00:00
Mark Liversedge
e029ba5f69 UI Nits: Non-Mac searchbox fix
The mac searchbox using a NSSearchField works a
treat on Mac, but the code accidentally removed the
searchbox on Linux and Windows.

This patch reinstates it.
2012-11-23 19:02:54 +00:00
Damien
45856dcd6d Modify getUnitVersion for Joule 1.0 2012-11-23 20:00:58 +01:00
Damien
d7b1b83038 Correct bug with the new virtual column for Ride Time 2012-11-23 17:35:08 +01:00
Mark Liversedge
1d85018fcb Fix ride navigator crash on search
The ride navigator crashed on search after the new
time column was added. This was caused by incorrectly
setting the groupBy member variable (-1 is used to
indicate no group by, it was set to -2).

In addition to fixing the code to set it to -1 the
array reference now does bounds checking to avoid
crashing for invalid values.
2012-11-23 10:47:50 +00:00
Damien
36fb41c884 Modify Joule download to include Joule 1.0
Need to modify parser now
2012-11-23 07:45:11 +01:00
gcoco
6b2ddb0791 Update doc/developers-guide.content 2012-11-22 22:16:10 -05:00
gcoco
3c4a0a16b4 Update doc/developers-guide.content
Fix the GitHub group and point to Google Groups
2012-11-22 22:13:06 -05:00
gcoco
a792995f27 Update doc/download.content
Update GitHub group
2012-11-22 22:07:07 -05:00
gcoco
91760c0236 Update doc/bug-tracker.content
Point to new GitHub group
2012-11-22 22:05:11 -05:00
Claus Assmann
b9e5de607a Support download for OpenBSD USB Serial devices 2012-11-21 22:46:27 +00:00
Damien
d77c9eeb73 Add a column Start Time in the ride navigator
fixes #33
2012-11-21 22:30:57 +01:00
Damien
9d3cc89ce4 Correct error in last commit 2012-11-21 21:22:41 +01:00
Gareth Coco
8910403337 Sigma 2.1 Test files
For GitHub Issue #356
2012-11-20 17:41:29 -05:00
Mark Liversedge
749a487915 UI Nits: No menu on list view
The menu drop down can appear on the list view. This is
now disabled via a window property "nomenu".

Also set the new attribute to set native widgets on a Mac.
2012-11-20 19:58:10 +00:00
Mark Liversedge
4b412ef14a UI Polish: Show/Hide Sidebar on ScopeBar for Mac
There is now a little button to show and hide the sidebar
just like in Mac Mail. We now only have to add the add chart
button for the toolbar/scope bar changes to be complete.
2012-11-20 19:14:37 +00:00
Mark Liversedge
9ee2eab311 UI Polish: Move train view controls to scope bar
Now we have a scope bar we can move the train view controls
out of the sidebar.
2012-11-20 17:21:22 +00:00
Mark Liversedge
3f01540bb3 the last commit needed one or two #ifdef Q_OS_MACs 2012-11-20 16:06:55 +00:00
Mark Liversedge
1e346f43b6 UI Polish: Scope Bar for Mac Native
Added a scope bar for native mac. The windows and linux
toolbar is a combined toolbar and scope bar, on a Mac it
looks much more elegant to split the two.

We will need to now add a show/hide sidebar control on the
left of the scopebar (like apple mail), the train view controls
in the centre and the add chart to the far right).
2012-11-20 15:46:31 +00:00
Mark Liversedge
3dbc095eb6 UI Polish: Toolbar spacing reduced
In readiness for a scope bar, the Mac unified title and toolbar height
is too large and needs to reduce. It now has very similar margins as the
Mac Mail toolbar.

The scope bar will make it look less compact when it is introduced.
2012-11-20 12:34:39 +00:00
Mark Liversedge
c8c6af6026 UI Nits: Small font in Details Screen
Adjustment sneaked in by accident to reduce the
font size was hard to track down, but this patch
fixes it and also removes some errant (but harmless)
code in the navigator too.
2012-11-20 06:47:11 +00:00
Mark Liversedge
7893be5de5 UI Polish: Diary sidebar hover color
To give the user a bit more feedback when hovering
over the day number in the diary sidebar it gets a
gray background to feedback it is clickable and also
to give a more fluid feel.

This mimics the same approach used in the Mac cal application.
2012-11-20 06:27:04 +00:00
Mark Liversedge
4796f08930 Add OpenBSD compile support
Thanks to Claus Assmann for the fixups;
- RideNavigator double foreach loops used same name for iterator
- N_TTY line discipline is not defined on OpenBSD (possibly)

Would be nice to have a better fix for the line discipline
stuff, but 0 is usually the TTY line discipline. Bit of a
hack, but ok for now.
2012-11-20 06:08:47 +00:00
Mark Liversedge
41796abb43 UI Nits: train labels in white
Last commit accidentally changed the color for the
IF/TSS labels on the train tool to black but this
is only appropriate for the Mac implementation.
2012-11-19 22:31:09 +00:00
Mark Liversedge
1cdb5568d3 UI Nits: Goodbye ToolBox
The left sidebar is now a stacked widget and the toolbox
has been consigned to history. We are now ready to add a
left sidebar for the metric "home" view.
2012-11-19 22:15:35 +00:00
Mark Liversedge
f942026082 Merge pull request #353 from rclasen/pm-now
PM: by default show values up to "now"
2012-11-19 12:51:40 -08:00
Mark Liversedge
356d719c60 Merge pull request #354 from rclasen/bug737
SrmRideFile: handle bad marker start
2012-11-19 12:51:15 -08:00
Rainer Clasen
d9d1608b53 PM: by default show values up to "now"
Main purpose of the Performance manager is to show History up to now -
though, peeking at decline of values in next days is still interesting.

This commit makes the PM show the graph up to today, but still allows to
check the next days.
2012-11-19 21:43:20 +01:00
Mark Liversedge
b82fc3b15e Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2012-11-19 20:04:25 +00:00
Mark Liversedge
51ab7e88ce UI Polish: Mac Style Selector
Added a style selector to the Mac toolbar to toggle
between tabbed or tiled mode.
2012-11-19 20:03:25 +00:00
Rainer Clasen
4f1a2523d0 SrmRideFile: handle bad marker start
Marker start wasn't check - so, it could point to data outside the array
and cause a crash.

This fixes #737
2012-11-19 19:53:02 +01:00
gcoco
93c48a3da4 URL updates
Update URL's for WIKI/Tracker to point to the base pages on main website
2012-11-19 12:30:05 -05:00
Mark Liversedge
88094b1d19 UI Polish: Mac toolbar buttons too narrow
The toolbar buttons for find intervals, split and delete were
too narrow and looked oddly smaller than the buttons to the
left .. perhaps it was an optical illusion but they are now
wider and look more consistent.
2012-11-19 09:03:15 +00:00
Damien
57a5ab8c78 Choose channels (Altitude, Power, Cadence, Heartrate) to upload to Strava
Fixes #351
2012-11-18 22:02:07 +01:00
Damien
edde2c5ac0 Minor changes in Joule GPS download 2012-11-18 18:15:08 +01:00
Mark Liversedge
3fd0993a1e Minor Fixups for Mac Native
A couple of #ifdef Q_OS_MAC needed around
bits of code that are Mac native. To support
the Mac Native patch just applied.
2012-11-18 16:39:44 +00:00
Mark Liversedge
880a3b6725 Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2012-11-18 16:14:54 +00:00
Damien
aeb2fec1e9 Correct error in the erase function for Joule GPS 2012-11-18 16:13:15 +00:00
Damien
0a7895fc06 Refresh metrics for rides after a new weight form Withings download 2012-11-18 16:13:15 +00:00
Damien
335b991e04 Add myzeo data download Add ZQ and sleep time metrics 2012-11-18 16:13:15 +00:00
Mark Liversedge
1f8b49f5cd Fortius 0x1932 added to find logic
Forgot to add update to the find method when
adding experimental support for the 0x1932
revision of the Tacx Fortius.
2012-11-18 16:13:15 +00:00
Damien
4420c5b185 Enable withings weight for Watts per Kilogram metric 2012-11-18 16:13:15 +00:00
Damien
696d5f82e8 Correct copy/paste errors for File Format 2012-11-18 16:13:14 +00:00
Mark Liversedge
f43ac923c5 Mac Native UI (Part 1 of 3)
Part of a series of commits to adjust the UI on a Mac to
look more native and conform better to the Mac UI design
guidelines.

This patch introduces a unified title and toolbar which hosts
a search field and buttons for commonly used functions like
import, split ride, delete etc.

Since it is not possible (or more importantly good practice) to
hide and show toolbar items the Train View controls have now been
moved to the sidebar on a Mac. This is a temporary measure and
will be resolved in future updates.

Further updates planned are;
Part 2 - fixup the preferences pane to be more Mac-like
Part 3 - Spit and Polish around the charts; drop shadows, controls etc
2012-11-18 15:55:07 +00:00
Damien
122b8d59ba Correct error in the erase function for Joule GPS 2012-11-17 16:52:37 +01:00
Damien
fc0c555bfd Refresh metrics for rides after a new weight form Withings download 2012-11-16 23:51:33 +01:00
Mark Liversedge
bef886fd45 Merge branch 'master' of github.com:/srhea/GoldenCheetah 2012-11-16 17:59:39 +00:00
Mark Liversedge
cb25e91c54 Fortius 0x1932 added to find logic
Forgot to add update to the find method when
adding experimental support for the 0x1932
revision of the Tacx Fortius.
2012-11-16 17:58:32 +00:00
Damien
4e101efd9b Add myzeo data download Add ZQ and sleep time metrics 2012-11-15 23:11:27 +01:00
Damien
5cc87f9cd8 Enable withings weight for Watts per Kilogram metric 2012-11-14 22:12:35 +01:00
Damien
7196ce9038 Correct copy/paste errors for File Format 2012-11-14 19:06:45 +01:00
Damien
9425a4b5c2 Add FileType to RideFile
modified:   src/Bin2RideFile.cpp
	modified:   src/BinRideFile.cpp
	modified:   src/Computrainer3dpFile.cpp
	modified:   src/CsvRideFile.cpp
	modified:   src/FitRideFile.cpp
	modified:   src/FitlogParser.cpp
	modified:   src/FitlogRideFile.cpp
	modified:   src/GcRideFile.cpp
	modified:   src/GpxRideFile.cpp
	modified:   src/ManualRideFile.cpp
	modified:   src/PolarRideFile.cpp
	modified:   src/PolarRideFile.cpp
	modified:   src/PwxRideFile.cpp
	modified:   src/QuarqRideFile.cpp
	modified:   src/RawRideFile.cpp
	modified:   src/SlfRideFile.cpp
	modified:   src/SmfRideFile.cpp
	modified:   src/SplitActivityWizard.cpp
	modified:   src/SplitRideDialog.cpp
	modified:   src/SrdRideFile.cpp
	modified:   src/SrmRideFile.cpp
	modified:   src/SyncRideFile.cpp
	modified:   src/TacxCafRideFile.cpp
	modified:   src/TcxParser.cpp
	modified:   src/TcxRideFile.cpp
	modified:   src/TxtRideFile.cpp
	modified:   src/WkoRideFile.cpp
2012-11-14 00:37:24 +01:00
Damien
46c1302f57 Ignore/correct invalid start time for an interval
modified:   src/FitRideFile.cpp
2012-11-14 00:37:24 +01:00
Mark Liversedge
3769788a59 Fix Google Map navigation
Hack to workaround QT webkit pretending to have gestures when
it doesn't is no longer needed. It also now breaks the grab
and navigation in the google map.

Fixes #349.
2012-11-13 20:33:31 +00:00
Mark Liversedge
271dbfe48c UI Nits: Indent first column ridenav
Just to make a little more pleasing on the eye.
2012-11-13 20:09:21 +00:00
Mark Liversedge
ed9485f9dd UI Nits: Ridelist cosmetics
A few minor adjustments to the ride list to make
it a bit easier to ride and less dense.
2012-11-13 19:27:27 +00:00
Mark Liversedge
b6b3f5dd39 Bugfix duplicate temp on summary
Making the column list a static array was a bad
idea since we append to it every time we summarise
a ride with temperature!

Fixes #344.
2012-11-13 18:23:49 +00:00
Mark Liversedge
274662a108 UI Nits: Calendar cosmetics
Make it a bit smaller and easier on the eye.
2012-11-13 18:20:33 +00:00
Mark Liversedge
33d2358277 Revert "UI Nits: Reinstate drop shadow option"
This reverts commit 3c57f01674.

It just doesn't work. Painting and UI responses are lost
and the price is not worth paying for some eye candy.
2012-11-13 16:35:46 +00:00
Mark Liversedge
3c57f01674 UI Nits: Reinstate drop shadow option
But NOT for win32 and ONLY on the sidebar and tabwidget (for
performance reasons). Since most users prefer the tabbed look
anyway this should be ok.

Performance of the graphicseffect has improved remarkably in
the 2 years since we tried it before. Worth experimenting with
since it adds a bit of polish to the look and feel.

Users turn it on and off in options, it is off by default.
2012-11-13 15:22:38 +00:00
Mark Liversedge
fcbff57bac UI Nits: RideNavigator margins to allow resize
The ride navigator has 0 contents margins which made
grabbing and resizing impossible in paned mode. This
was done to make it look beter when it is a ride list.

It now has a constructor argument to specify if its
being put into mainwindow as the ride list or its being
added to a view.
2012-11-13 14:45:27 +00:00
Mark Liversedge
d22777ed74 UI Nits: Daily/Weekly/Monthly Summary
You can now add the summary chart to the diary
view to get a summary of the date range currently
being summarised on that view.

Once the Home view has its own sidebar that selects
date ranges you will be able to add it there too
and summarise seasons etc.
2012-11-13 13:27:36 +00:00
Mark Liversedge
a3a49d8a3d UI Nits: Introducing GcWindow property Daterange
To allow charts to have a property set for the date range
to plot a new property is added. This will work in the same
manner as the "ride" property.

No functional enhancement.
2012-11-13 08:19:03 +00:00
Mark Liversedge
c689a90f54 UI Nits: smaller font in cal sidebar 2012-11-12 21:30:57 +00:00
Gareth Coco
1de3817e07 Needs to be: #include "TimeUtils.h" 2012-11-12 13:31:51 -05:00
Gareth Coco
ad9f6f06f4 Added MAC OSX file for WIKI download 2012-11-12 12:56:28 -05:00
Gareth Coco
1c0b8ffe91 Update website with new issue tracker/WIKI 2012-11-12 12:55:38 -05:00
Gareth Coco
97ba128f81 D2XX Drivers installer for MAC OS
Used to be on the WIKI via Redmine. Now here to be used.
2012-11-12 12:24:49 -05:00
Mark Liversedge
442cad931b UI Nits: Ride list horiz scrollbar
The ride list / navigator gets a horizontal scrollbar
every time it is shown as the columns are resized but
not taking into account the need for a vertical scrollbar.

The reasons behind this are more complicated but this
patch fixes this annoyance.
2012-11-12 16:12:56 +00:00
Mark Liversedge
506908b015 UI Nits: Added Splitter for Diary sidebar
To be consistent with the other sidebars and also
to enable folks to remove unwanted clutter if they
aren't interested in the summary.
2012-11-12 15:38:44 +00:00
Mark Liversedge
ab1a69859f UI Nits: Auto select toolbox
Temporary update just to select the left sidebar whenever
a different view is selected. This will go away eventually
but starts to get closer to the finished concept.

Now need to work on the Home View sidebar.
2012-11-12 14:09:26 +00:00
Mark Liversedge
557bf01018 UI Nits: Add Brief Summary on Calendar Sidebar
To show aggregated summary of effort for the time period. This
is part of a collection of updates to address iritations or
nits in the v3 UI.
2012-11-12 13:21:53 +00:00
Mark Liversedge
564e42a136 UI Nits: Mini calendar use prefs
We have a preference for the color of the currently
selected item in a calendar. This should be honored
in the Diary sidebar (GcCalendar).
2012-11-10 22:57:55 +00:00
Mark Liversedge
3a7b3f0a05 Calendar sidebar cosmetics
It should be white to be in line with the rest of the
sidebars and have some semblance of coherence.

I also put a rectangle around the box so if the day
color is white you can still see there is a ride that day.

A summary ala the interval summary will come next summarising
either day, week or month for the ride selected.
2012-11-10 20:54:17 +00:00
Mark Liversedge
efa6928c2b Use hh:mm:ss format in Allplot tooltip 2012-11-10 17:50:50 +00:00
Damien
3d7aa84d0f add seconds to plot scale label under 5 minutes 2012-11-10 17:40:53 +00:00
Damien
37a1476eb4 Show hh:mm:ss on x-axis in ride plot
Fixes #37 (Old 726)
2012-11-10 10:28:52 +00:00
Mark Liversedge
1a37df1d4b README - update to reflect reality
The readme hasn't been updated for 3 years and needed
to reference the websites with builds and the detailed
build instructions in the INSTALL* documents.
2012-11-08 22:24:13 +00:00
Mark Liversedge
054a515354 UI Nits: Fewer default columns
The ride list had way too many default columns making it almost
impossible to see any info. This makes the default columns
workout code, TSS and Date.
2012-11-08 18:11:25 +00:00
Mark Liversedge
25033cf7cd UI Nits: Metadata gap in tab widget 2012-11-07 21:01:58 +00:00
Mark Liversedge
775ec92cb7 Experiment: Support for Tacx Fortius 0x1932
.. lets see if this actually works.
2012-11-07 20:02:09 +00:00
Mark Liversedge
15eaf53e30 Skip C99 and just use uint_16 2012-11-07 19:04:12 +00:00
Mark Liversedge
f510c07b08 termio not needed for Joule 2012-11-07 17:16:19 +00:00
Mark Liversedge
8cfec2994f Bin2RideFile <stdint.h>
Was needed on Windows as well as Linux and is harmless on
OSX so conditional include removed.
2012-11-07 17:08:49 +00:00
Mark Liversedge
482073b7a8 UI Nits: Move Calendar from RHS to LHS Sidebar
Drop the notion of a rhs sidebar and move the calendar
from the rhs to the lhs toolbox. It will soon be the
context sidebar for the diary view, and also get a
day summary at the bottom, but for now lets just remove
the references to a rhs sidebar.
2012-11-07 12:01:29 +00:00
Mark Liversedge
3cd5efaa28 UI Nits: Save/Restore Splitter sizes 2012-11-07 11:16:16 +00:00
Mark Liversedge
80020e08fa UI Nits: Analysis sidebar rides & intervals 2012-11-07 10:46:52 +00:00
Mark Liversedge
98d070b59b UI Nits: Filter Tooltip colors 2012-11-07 10:24:00 +00:00
Mark Liversedge
0427d022c9 UI Nits: Chart settings and Chart Close Menu
The chart settings are no longer in the side bar and can be selected
from a drop down menu on the chart. This works in tiled and tabbed
mode and allows for further enhancements e.g. custom menu options
for commonly use config options (ala Android).

This is part of a series of updates to migrate away from a sidebar
that is a toolbox of ridelist etc and move back towards a context
sensitive sidebar.
2012-11-07 10:10:56 +00:00
Damien
0a32ce0dd8 Fix Joule GPS time recording gap error. 2012-11-07 06:51:09 +00:00
Mark Liversedge
eee9646605 UI Nits: SearchBox menu and Tooltip
Use the wrong stylesheet and are hard to read. This adjusts
tooltip and menu to make them more readable but may not be
ideal for those with heavily customised setups.
2012-11-06 13:50:04 +00:00
Mark Liversedge
27b540f5aa UI Nits: About Contributors alignment
Alignment of the contributors in the about dialog
was wonky. This patch centers the names within
each column.
2012-11-06 13:31:01 +00:00
Mark Liversedge
c02f124272 UI Nits: Named Search Input Box
The named search dialog box uses the same style sheet as
the search box, which looks odd in a dialog box.

This patch ensures the stylesheet is only applied to the
search box and not any children.
2012-11-06 13:26:40 +00:00
Mark Liversedge
fa03fdeeb4 UI Nits: Ride list column widths fixup
An annoying bug that has been around for far too long.. the ride
list headings are resizable and the user can adjust them. But
when GC restarts the sizes are lost.

This was caused by an error in the code that saved away to column
widths -- it failed to use the logical index for each column (since
columns can be re-arranged).

Now upon restart the columns will be the right size -- but for the
very first launch after this bug is fixed the sizes will still be wrong.
They will need to be reorganised and then restart GC one more time.
2012-11-06 12:55:55 +00:00
Mark Liversedge
f48ae3d2a8 Mac UI Sidebar Cosmetics
The sidebar elements all get a blue focus rectangle on
Mac OSX. This is a platform specific setting. This patch
removes the focus rectangle for sidebar components only.
2012-11-06 11:16:41 +00:00
Mark Liversedge
aecd4737fa missing stdint.h in Bin2RideFile.h 2012-11-06 06:58:19 +00:00
Damien Grauser
6e6b36f2af Joule GPS Support
This is BETA support for downloading ride files
from the new Cyclops Powertap Joule GPS.
2012-11-05 21:33:05 +00:00
Mark Liversedge
07c2bafb08 missed from last commit 2012-11-05 17:51:10 +00:00
Mark Liversedge
5e835810e5 Basic default for the home view
Having used the LTM and Home View for well
over a year I am proposing this default setup
for the home view.

It is just a PMC, Power tracker, CP chart and
a time in zone histogram.

No time and distance etc. But the user can add
these, the charts.xml is there to help.
2012-11-05 17:39:55 +00: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
Mark Liversedge
ebc0fbb7cf Silly cut and paste coding error
DataFilter code for string operations was
duplicated as cut and paste but not edited.
2012-10-29 18:44:53 +00:00
Gareth Coco
b9a49e1c42 Typo fix - F2XX is meant to be D2XX 2012-10-29 12:10:36 -04:00
Mark Liversedge
66668018b0 Data Filter (Part 2 of 3)
Added evaluation of filters and integrated with the ride list, this
means the user can filter the rides listed.

Additionally the search box will highlight the filter in red if
it doesn't parse correctly, and a tooltip describes the errors.
2012-10-29 15:33:08 +00:00
Mark Liversedge
91794f0eba About Dialog Tidy
A bit of tidy up to make the About dialog look a bit
like it used to in terms of size and layout. Is now
an acceptable size for those on netbooks or devices
with a small screen.
2012-10-29 09:52:07 +00:00
Mark Liversedge
58c10727f6 About Dialog too big
The about dialog was 800x600. This patch reduces margins and
spacing around the widgets to make it somewhat smaller. There is
still room for improvement though.
2012-10-29 06:53:16 +00:00
Damien
21824457eb About dialog
About dialog now shows versions and contributors.

Fixes #563.
2012-10-28 22:10:11 +00:00
Mark Liversedge
8993be1ff0 DataFilter fix compile on Mac
Conflicts between yacc symbols (LT) and HrZones.h means we
need to split out the cpp code and yacc grammar code.
2012-10-28 21:01:03 +00:00
Mark Liversedge
4c60268245 Data Filter (Part 1 of 3)
Part 1 of Data filtering, this patch adds the ability
to enter and parse filter statements in the search box
(by clicking on the magnifying glass it becomes a filter
box).

The statements can reference metrics and metadata fields
allowing the user to define boolean expressions to filter
data. An example of the syntax;

    Average_Power > 200 and Duration > 3600

This references the metric Average_Power and ride Duration. But
will also support operations on metadata fields, for example;

    Workout_Code endsWith "SST"

The operators are;
    = <> > >= < <= matches contains endswith beginswith
    ( ) && and || or

Filters are syntactically and semantically validated. But at
this point the resulting tree is not evaluated, i.e. we can
parse the filters, but do not execute them.

Two further updates are pending (once written and tested):
- Part 2 of 3 : Execute filters and apply to the ride list
- Part 3 of 3 : Allow named filters and apply to LTM charts

Further updates will support a visual editor and allowing filters
to be applied to CP and Histogram charts and affect the PMC stress
calculators.
2012-10-28 20:05:12 +00:00
Mark Liversedge
41850aa6be Merge branch 'master' of github.com:/srhea/GoldenCheetah 2012-10-27 08:49:35 +01:00
Mark Liversedge
944b772184 Change Search Strategy
1. Use the whitespace analyzer so its easier to search for
tokens that are a mix of letters and numbers e.g. workout
codes and TT route names.

2. Search as you type. Since we have very small collections
to search across (typically no more than a couple of thousand)
there is no major overhead in searching as you type.

3. Search all texts by default not just the Notes field. This is
a more appropriate default and is less likely to confuse new
users. In addition, it is most likely what most users want to
do anyway.
2012-10-27 08:46:36 +01:00
Mark Liversedge
3dbc866c01 Merge branch 'master' of github.com:srhea/GoldenCheetah 2012-10-24 14:49:33 +01:00
Mark Liversedge
dbe53bce9f Added contributors.txt 2012-10-24 14:49:11 +01:00
Mark Liversedge
f0e3a9cd6b Searchbox toggle search/filter
Clicking the icon to toggle between text search and
data filter mode for searchbox.

As part of filtering implementation.
2012-10-23 21:27:06 +01:00
Mark Liversedge
2854dfe046 Initialise ismultisave variable. 2012-10-22 22:50:44 +01:00
g3rg
cac9d77df5 #381 Prevent statistics from refreshing for each file saved on close, and just run for the last file. Also covers #506 and #656 which are duplicates.
Fixes #381.
2012-10-22 22:30:00 +01:00
Mark Liversedge
4b3425ddcb MAC Lucene added to install notes
The Macports lucene does not work, added instructions
to the INSTALL-MAC for getting and building the clucene
libs from their git repository.

Fixes issues with deleting rides corrupting the index.
2012-10-22 22:12:15 +01:00
Mark Liversedge
7291068a03 Refactoring CLucene
There are some issues with document deletion and support for
the latest release of CLucene which may be related to having
concurrent IndexWriters and IndexReaders.

This refactoring works fine on Linux. Pushed for safety for
any users that may be experiencing issues when deleting rides.

Further investigation is required on mac and windows builds.
2012-10-22 21:40:49 +01:00
Mark Liversedge
5128f64ab3 CLucene better exception handling
QT crashes if exceptions are raised in the event loop. This was
happenning during program exit and also when deleting rides with
a right click.

This patch traps those exceptions and also, since Macports will
install 0.9.23 we can use IndexWriter to deleteDocuments.
2012-10-22 20:14:30 +01:00
Mark Liversedge
913f3e2b41 Fix Crash in Split Wizard
Fixes #687
2012-10-22 15:14:04 +01:00
Mark Liversedge
db711904fa Fix Ride List not refreshing
A bug was introduced by the new search/filter update causing the
ride list to not get refreshed when rides were imported or deleted.
This was due to signals from the source model (sql) not being propagated
upstream (groupby) in the standard implementation of qsortfilterproxymodel.

This patch fixes that.
2012-10-22 11:16:36 +01:00
Mark Liversedge
1acd5ea20d Lucene should be optional
Fixup some of the recent commit for searching with support by
ensuring it is only used if lucene support is available.
2012-10-21 17:31:35 +01:00
Mark Liversedge
d33c337b8f Search/Filter using Lucene
Searching and filtering the ride list using a search box.
This is implemented using a new optional dependency on
CLucene.

Fixes #627.
2012-10-21 15:28:26 +01:00
Mark Liversedge
e137aa5773 Virtual Power for Minoura V100
Added virtual power calculations for a Minoura V100
with one selection for whichever gear it is set to.

Thanks to 'frenchman' on the slowtwitch forums for
working out the formulae.
2012-10-19 22:12:42 +01:00
Mark Liversedge
e534682461 Support "CP" metadata field
When calculating TSS, BikeScore et al the user can
set a ride specific value for CP to override the
default zones set within configuration (power.zones).

This is because some users like to have a different CP
for indoor vs outdoor riding.

To use this the user will need to add an "CP" metadata
field and only enter a value when they want to override,
since by default it will be zero, causing the standard
zone CP to be used.
2012-10-13 20:46:39 +01:00
Mark Liversedge
fe0926ff67 Only set PWX weight from metadata tag "Weight" 2012-10-01 19:07:32 +01:00
Ron Alford
e15b1edc22 Changing TCX export to convert to UTC time 2012-10-01 07:05:12 +01:00
Ron Alford
df4a03c529 Correcting the haversine distance calculation for GPX imports 2012-10-01 06:54:17 +01:00
Damien
45f2b2a2f1 Keep/Save last value for showBalance 2012-09-22 20:22:24 +01:00
Damien
7c3bde52e2 Correct memory leak in HrPw plot 2012-09-22 20:22:24 +01:00
Damien
a1252f4844 Modify TM processing
For some reason the processing of the TM symbol causes a
crash on Mac OSX. This patch fixes that.
2012-09-15 18:38:24 +01:00
Alejandro Martinez
b3da5c7636 Automatic CdA and Crr Estimation in Aerolab
Fixes #851.
2012-08-24 20:45:47 +01:00
Mark Liversedge
e68705c4dd Increment DB version
Last commit added a new metric but didn't increment the DBAccess
DB schema version, causing DB functions to break. This patch just
increments the version to ensure the DB is rebuilt to include
the new metric.
2012-08-19 20:48:10 +01:00
Mark Liversedge
9c7a009f82 Fix (TM) processing
Lost in previous commit somehow.
2012-08-19 20:36:52 +01:00
Damien
d51cb951ce Add Left/Right Power Support
Add Left/Right Power Balance for FIT and Polar HRM parsers
 Add Left/Right Balance metric
 Add Left/Right series to Ride Chart

Fixes #711.
2012-08-19 13:57:24 +01:00
Alejandro Martinez
40321723d8 Change Pace metric to follow metric/imperial units as configured
Fixes #718
2012-07-31 14:15:33 -04:00
gcoco
7acac5cda8 Merge pull request #22 from rclasen/bug715
fix for Bug715: Srm download + Srm file reader issues

Fixes #715
2012-07-31 11:09:01 -07:00
Rainer Clasen
29afd39645 SrmRideFile: handle bad/truncated files
SRM file reader didn't check stream status / values taken from the file.
This could easily lead to segmentation faults.
2012-07-30 18:55:50 +02:00
Rainer Clasen
d19689d8f6 SrmRideFile: don't truncate comment
last character in comment was truncated due to a bad string termination.
2012-07-30 18:55:50 +02:00
Rainer Clasen
08be07b9aa SrmDevice: fix catching broken downloads
broken downloads weren't detected, properly. This caused empty files to be
created.
2012-07-30 18:55:50 +02:00
Mark Liversedge
2e248c3e26 Manual entries compute metrics
A few months ago I commented out the calculation of metrics
for manual ride files. This was a hack to avoid fixing the code
to handle metric calculations from overrides where there are no
data points.

This annoyingly meant that the 'rides' metric was zero for manual
ride files, and any derived metrics similarly were zero.

This patch fixes that.
2012-07-08 16:22:40 +01:00
Mark Liversedge
8dae828da2 Withings Weight and Watts per Kilogram
Fixed up the code to use withings weight when calculating watts
per kilogram and the display on the CP chart.

There will be issues when retrospectively refreshing data from a
withings account, but that is such an edge case we can just ask
people to delete old .cpx files to ensure they are refreshed.
2012-07-08 15:38:53 +01:00
Mark Liversedge
a3d2e84465 Watts per kilo slight changes
Attempt to sort using withings data, but commented out for now. But
it will compile if uncommented. Also changed name to Watts per Kilogram.
2012-07-08 12:24:04 +01:00
Damien
b116d3aac8 Add Watts/Kg in the cpx cache files and in the CP plot
modified:   src/CpintPlot.cpp
	modified:   src/CriticalPowerWindow.cpp
	modified:   src/CriticalPowerWindow.h
	modified:   src/HistogramWindow.cpp
	modified:   src/RideFile.cpp
	modified:   src/RideFile.h
	modified:   src/RideFileCache.cpp
	modified:   src/RideFileCache.h
2012-07-08 11:03:20 +01:00
Mark Liversedge
6ee1b2474c Merge branch 'master' of github.com:/srhea/GoldenCheetah 2012-07-08 10:40:03 +01:00
Mark Liversedge
48a4804ad8 Enable Measures in v3.0
Re-enabled the measures feature, largely to allow donwload
from Withings for folks that track weight.

This is to provide better support ahead of showing watts/kg
on the mean max "CP" chart.
2012-07-08 10:38:28 +01:00
Magnus Gille
fa8bd95cdc Fixed a missing -1 to make non motoactv files parsable again 2012-06-18 02:57:26 -04:00
Magnus Gille
154a225080 Added test files for MotoACTV 2012-06-18 02:57:26 -04:00
Magnus Gille
fed9bd478a Added support for MotoACTV csv files 2012-06-18 02:57:25 -04:00
Gareth Coco
e6a4905ead Added Garmin Forerunner 110 2012-06-17 18:48:25 -04:00
gcoco
1a804ca373 Merge pull request #20 from rclasen/master
bunch of small changes...
2012-05-24 11:21:58 -07:00
Rainer Clasen
30516c3b76 Download: remeber last used device/port
last used Device/Port ist now remembered and automatically selected on
next download.

closes #683
2012-05-04 21:01:22 +02:00
Rainer Clasen
bb10ed9207 added upload to trainingstagebuch.org 2012-05-04 16:08:38 +02:00
Rainer Clasen
a00295d60d PM: show upcoming days, aswell
so far, the Performance manager restricted the view to the latest exercise
or today. So it wasn't possible to see predicted TSB for the upcoming
days.

This patch allows me to get a better forecast on when to do the next ride.
2012-05-02 22:41:47 +02:00
Rainer Clasen
281026cc86 added non-zero average power metric
This might be meaningless for actual analysis, but helps to match numbers
of devices, that exclude time with zero power from the average
calculation.

While it's controversal to be usefull, this leaves the choice to the user.
2012-05-01 22:28:06 +02:00
Rainer Clasen
735de9bf18 main: allow passing athlete as argument
Allow passing initial athlete to open as command line argument.
2012-05-01 22:28:06 +02:00
Rainer Clasen
13bff3f8b8 fix: remember state of showTorque in ride dialog
showTorque wasn't declared as property so HomeWindow::saveState() didn't
save it's setting.
2012-05-01 22:28:06 +02:00
Gareth Coco
e2ea116267 Add back in the ROBOT for Realtime testing 2012-04-18 21:00:54 -04:00
Mark Liversedge
81c9033a6a Link compress libs (-lz) by default
Although you should not link with local compress
libraries if you are using the QT supplied ones, it
has caused a lot of problems for newbies.

We now link with compress by default, we may see some
odd / incorrect behaviour with images and TrainingPeaks
upload if the libs mismatch but the developer can fix
that should it arise.

Fixes #668.
Fixes #6.
2012-04-08 08:34:43 +01:00
Mark Liversedge
6780233b99 Remove 'qollector_interpret' warning
The qollector binary warning message is not relevant to large
numbers of GC users and not sure if the qollector is even still
being sold.

The message is now removed.
2012-04-05 18:14:37 +01:00
Mark Liversedge
cb21257163 Fix Bounds checking SEGV
RideFileCache hogs CPU / hangs with poorly parsed files, whilst
the activity may crash when columns are removed.
2012-04-05 17:18:43 +01:00
Gareth Coco
0e291523ed Fix file name for RideWithGPS.com patch
Fixes #677
2012-04-04 14:17:50 -04:00
Damien
745d255220 Add Upload to RideWithGPS.com
new file:   src/RideWithGPSDialog.cpp
	new file:   src/RideWithGPSDialog.h

	modified:   src/MainWindow.cpp
	modified:   src/MainWindow.h
	modified:   src/Pages.cpp
	modified:   src/Pages.h
	modified:   src/Settings.h
	modified:   src/src.pro

Fixes #677
2012-04-04 14:17:50 -04:00
Gareth Coco
5def7ce573 Documentation updates
1. Fixed doc/Makefile
2. Fixed broken link in doc/download.content
3. Updated Qt required to 4.8.0
2012-03-28 22:54:57 -04:00
Greg Lonnon
25dd78bd27 moved v2.1 doc to master.
Here's my steps.

git checkout master
cd <top dir>
git checkout v2.1 doc
git add doc
git commit
2012-03-25 15:24:44 -06:00
Mark Liversedge
1910a49da7 Merge pull request #19 from rclasen/master
SRM support - several trivial fixes
2012-03-25 01:13:46 -07:00
Rainer Clasen
1c6918b9d4 SrmRide: set Tags
Ride notes, slope, zero offset... were ignored during import of SRM files.
This patch sets the meta tags accordingly.
2012-03-22 19:37:50 +01:00
Rainer Clasen
edbfdefbfd SrmRide: suppress empty intervalls 2012-03-22 11:06:58 +01:00
Rainer Clasen
a375f7a4d0 SrmRide: Import marker names, aswell
so far marker names were ignored. Changed code to pick them up, aswell.
2012-03-22 11:06:58 +01:00
Rainer Clasen
a452ccce1f fix: refuse writing bad power zone settings
power zone settings dialog allowed new entries with CP=0. This was written
to power.zones, but the parser refused to read these files, afterwards.

This patch rejects new zones with CP=0.
2012-03-22 11:05:21 +01:00
Rainer Clasen
8660df3362 fixed duplicate main window hotkeys
- removed *duplicate* binding of Ctrl-O from options
- moved Ctrl-W from disabled code to closeWindow
2012-03-22 11:05:02 +01:00
Rainer Clasen
79fe48c626 SrmDevice: fixed marker offsets
marker offsets were off by one. This could lead to bad indices when adding
an "open" marker at the end of a recording.
2012-03-22 10:58:47 +01:00
Damien
5f5956ea0e Correct typo in peakpower intervals
modified:   src/AddIntervalDialog.cpp
2012-03-21 20:58:08 +00:00
Damien
8490d530d6 Find intervals by time/distance
Find interval dialog will now allow you to add
intervals by time or distance (e.g. add interval for
every 10 minutes or every kilometer).

Since there were three menu options all doing similar
things, they have now been consolidated into a single
dialog.
2012-03-21 06:53:41 +00:00
Marc Boudreau
c1d8c1ca51 Fix:
- incorrect RegEx to read some CRS files
- all files were assumed to be metric - (UNITS = ENGLISH) now converts
- scaling adjusted to not clip the top when some graphs were longer
2012-03-16 12:28:32 +00:00
Andrew Bryson
0430568d99 Allow user to select another video when paused
Fixes #648

Also little play/pause fix.
2012-03-16 12:28:20 +00:00
Tom Weichmann
84cb8541ab Honour units in Realtime Plots 2012-03-16 12:28:05 +00:00
g3rg
aa71b39914 Fixed tab order of fields on New Cyclist Dialog
Fixes #653
2012-03-01 10:39:11 -05:00
gcoco
c7dd76ca01 Merge pull request #9 from gcoco/release_3.0.0dev
Release 3.0.0dev
2012-02-28 12:27:11 -08:00
gcoco
55493bcc81 Merge pull request #12 from glonnon/strava_date_fix
Strava date fix
2012-02-28 11:17:55 -08:00
Greg Lonnon
c5d0dcbf1c Strava Upload date corrected.
fixed the ride date to use UTC and ISO encoding.
2012-02-21 04:45:43 -07:00
Mark Liversedge
abb0ff0166 Add Minute Mile Pace metric
Runners tend to measure speed in minute mile pace and
this is common even if they use metric units.
2012-02-18 17:48:36 +00:00
Mark Liversedge
22d5dfc00b Add Popup Bubble to new Calendar Widget
The right side calendar widget now supports tooltip
popup of the ride bubble in the same manner as the
ride navigator and diary window.
2012-02-17 21:53:53 +00:00
Mark Liversedge
75b1fc21fe Honour wheelsize configuration
Fixes #651.
2012-02-17 14:02:57 +00:00
Damien
f884d21a81 Add torque on the plot
Fixes #245.
2012-02-13 19:34:49 +00:00
Jamie Kimberley
356356f66b fix unit conversion error in max cadence calc
There was a unit conversion from km->miles being applied to cadence. I have
removed the offending line.

I've also changed the precision so the we report cadence as an integer.

Fixes #601.
2012-02-13 06:48:49 +00:00
Damien
259c6daff5 Correct intialisation of altitude for TCX without altitude
Fixes #647.
2012-02-12 19:15:31 +00:00
Damien
00b2ba9aec Plot relative headwind
Fixes #131.
2012-02-12 19:08:30 +00:00
Andrew Bryson
3c1a663f4c Allow more duplicate messgaes in standard mode
This should fix the current issue with Power2Max.
2012-02-12 17:41:24 +00:00
Mark Liversedge
72a2d1094d Fix comment in WKO ride file
We now support all the data series present
in a WKO+ file. So the comment warning about
not supporting Temp, Slope, Wind has been
removed.
2012-02-12 14:25:29 +00:00
Mark Liversedge
57257bfb9a Merge branch 'v3' of git://github.com/rclasen/GoldenCheetah into release_3.0.0dev 2012-02-12 11:38:23 +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
Rainer Clasen
1b8933969a Download: indicate download stage
Indicate what part of download (preview/actual download) is ongoing.
2012-02-11 21:06:37 +01:00
Rainer Clasen
bbcedba429 SrmDevice: use srmio logging callback
use srmios builtin logging functionality. Nuked code copying srmios
logging.
2012-02-11 21:04:15 +01:00
Rainer Clasen
75226c02f4 SrmDevice: fix counting skipped blocks
block counter wasn't increased for skipped blocks. Just a cosmetic issue,
as block counter was used for progress and status messages, only.
2012-02-11 21:03:14 +01:00
Rainer Clasen
a02d6ab774 SrmDevice: fix rideList population
oops, overwrote the startTime, accidently. Wondering how this passed any
testing as this resulted in all blocks being skipped.

Added explicit initialization of wanted field, aswell.
2012-02-11 20:57:05 +01:00
Rainer Clasen
b3b6135834 SrmDevice: moved status reporting to open method
so that it's not limited to downloads, only. Helps investigating erase
issues.
2012-02-11 15:19:24 +01:00
Rainer Clasen
43dfc3eb85 Device: allow status updates from all methods
turned statusCallback into a member of Device (instead of a parameter to
download() and preview(). This allows all methods to access it, directly
and provide better feedback during open/close/erase.
2012-02-11 15:07:31 +01:00
Rainer Clasen
e2fb9c6026 SrmDevice: use srmio win-comm when available
srmio just introduced support for the win32 Comm API. This patch allows us
to use it.
2012-02-11 14:25:26 +01:00
Damien
7a1bf7d038 Change speed to double in Bin parser
Fixes #636.
2012-02-11 12:03:26 +00:00
Andrew Bryspn
e633d3f027 Allow videos to be in subdirectories. They can also be symlinked from the place where videos normally live.
Fixes #637
2012-02-06 20:54:59 +00:00
Mark Liversedge
301d7be38f Revert "Qwt 6 support"
The patch that was applied was missing a number of critical changes
and needs to be recreated and retested. The majority of qwt was not
uplifted and remained at Qwt 5.

This reverts commit e97aac7919.
2012-02-05 22:21:55 +00:00
Andrew Bryson
7b080ef976 Initialise stdNullCount 2012-02-05 19:36:19 +00:00
Damien
e97aac7919 Qwt 6 support
Fixes #634.
2012-02-05 18:30:55 +00:00
Andrew Bryson
e415e3489e Fix power blips from Standard Power with Quarq
Added a check to insure that we don't display the same power event more
than once.

Fixes Bug #635
2012-02-05 13:05:41 +00:00
Mark Liversedge
3dd9f49049 Merge pull request #10 from glonnon/strava_fix
Greg Lonnon fix for Strava and more general GPS precision
2012-02-05 01:57:10 -08:00
Tom Weichmann
1f9d237411 Change GcBubble time format to match Gc standard
Fixes #631.
2012-02-05 09:41:43 +00:00
Tom Weichmann
93c0cae62c Added notes to pwx <cmt> tag
Fixes #630.
2012-02-05 09:39:04 +00:00
Mark Liversedge
097c9caf77 Fix SEGV on empty/dodgy FIT files
Fixes #633.
2012-02-05 09:31:34 +00:00
Greg Lonnon
8ef41d95a5 strava map jagged fix - issue was the conversion of gps coord to string
didn't have enough precision.

Found all (most) of the gps coord to string conversions and used a constant
  to insure all conversions occur with the same precision.


Signed-off-by: Greg Lonnon <greg.lonnon@gmail.com>
2012-02-04 05:46:58 -07:00
Mark Liversedge
82704499a8 Merge branch 'release_3.0.0dev' of github.com:/srhea/GoldenCheetah into release_3.0.0dev 2012-02-03 19:24:27 +00:00
Mark Liversedge
06cb463fcb Fix PWX file intervals
Fixes #624.
2012-02-03 19:23:35 +00:00
Gareth Coco
f6b07cf265 v3.0dev - Allow ride to be added with no Average HR
Fixes #626
2012-02-02 10:49:40 -05:00
Mark Liversedge
7f6f76b48c Merge branch 'release_3.0.0dev' of github.com:/srhea/GoldenCheetah into release_3.0.0dev 2012-02-02 07:14:16 +00:00
Mark Liversedge
09234c6a35 ANTChannel Standard Power bug
Andy Bryson's fixes for quarq power spikes removed
processing of standard power messages (see commit
cc0bd29).

This was because a check was performed on ANTMessage::period
which is not set for Standard power messages and will always
be zero.

This may fix processing of power2max power telemetry.
2012-02-02 07:11:45 +00:00
Gareth Coco
6d6eb27afe Comment added and replace tabs with spaces 2012-02-01 10:35:29 -05:00
Gareth Coco
192ebc1fac Fixes for Manual Ride Entry
Includes:
- Resize dialog for Mac users to display all fields
- Modify display of data in fields
- Add Average HR check
- Base code formatting to remove tabs

Fixes #622
2012-02-01 10:35:19 -05:00
Gareth Coco
28118cf6e3 Overhaul gcconfig.pri.in and src.pro
Changes to src.pro are to make it so that anything that is set in src.pro
can be overwritten out of gcconfig.pri. This hopefully means that src.pro
will never have to be changed by someone wanting to compile the code using
a different setup to the main developers or on different platform.

Changes to gcconfig.pri.in are to allow the changes in src.pro to be used.
It also adds some new tweaks and documents how to use the changes in the file.
2012-01-31 23:44:53 -05:00
Tom Weichmann
6e7d39415d Makes GcBubble honor user unit preference for distance 2012-01-31 13:37:58 +00:00
Tom Weichmann
1fd8626fca Changes to make TPUpload dialog honor user unit preferences 2012-01-31 13:37:58 +00:00
Mark Liversedge
911b52cfc3 Refresh mini calendar
When;
* ride added
* ride deleted
* color config changes
2012-01-30 20:07:35 +00:00
Mark Liversedge
a0b6fd6208 Libical is optional.
Gets me every time. libical is optional and the
new minicalendar uses the GcCalendarModel which
assumed rideCalendar was available in MainWindow.
2012-01-30 18:54:40 +00:00
Mark Liversedge
ec8faeaf7b Fix SEGV in AllPlot when smooth adjust
But only affected if temperature is available.
2012-01-30 17:10:12 +00:00
Mark Liversedge
575d56e2e8 Chart settings dialog no longer fixed size
Fixes #619.
2012-01-30 15:51:33 +00:00
Mark Liversedge
440e4005be Fix axis display for Temperature
Fixes #617.
2012-01-30 15:46:46 +00:00
Mark Liversedge
537da229f2 Reinstate ride calendar
A rudimentary calendar, not customisable or resizable
and only every selects first ride for the day selected.
But it is the beginning of the widgets needed for the
new UI "look" discussed on the list.

Need to work on font sizes for Win/Mac and refining
the whole look and feel. Especially a sidebar widget
to put it in!

Fixes #369.
2012-01-30 15:29:16 +00:00
Gareth Coco
1f8f7f76c8 Don't build QwtDesigner in qwt
We don't use it and it is commented out in master
2012-01-26 13:02:40 -05:00
Gareth Coco
7a8e895abe Allow CdA to lowest possible in AerolabWindow.cpp
Fixes #475
2012-01-26 13:00:38 -05:00
Mark Liversedge
12ebeef2eb Remove reading of .notes from LTMPopup
Last vestiges of references to the old .notes file which
is now deprecated fully and replaced with a metadata tag
"Notes".

If a .notes file exists it will be read in and used to
initialize the Notes metadata tag -- this is pre-existing
functionality and not changed with this patch, which is
just related to LTM Popup.

There are no other know references to the old .notes file
left in the active code.

Fixes #179.
2012-01-25 08:42:06 +00:00
Mark Liversedge
0c89278b22 Add Chart Menus
Allow the user to add a chart from the top-level
view menu, or by right clicking on the home page.

I did not implement as right click on toolbar since
there is already an add chart icon on the toolbar
and adding right click is kind of redundant in that
case.

Fixes #606.
2012-01-24 22:09:29 +00:00
Mark Liversedge
d584bf17d6 Fix crash if TRIMP zones > 5
Fixes #483.
2012-01-24 21:08:07 +00:00
Mark Liversedge
4932ac6f52 Fix Analysis quick button nits
* Wrong size, wrong spacing
* Actions broke keyboard shortcuts Ctrl-D/I/M
  for download, import, manual ride entry
2012-01-22 18:22:48 +00:00
Mark Liversedge
5d624d840b Fix redclaration of macstyler in MainWindow.cpp 2012-01-22 18:04:34 +00:00
Mark Liversedge
88a736c94d Save button enable/disable
Only enable the save button if the current ride is
dirty. Makes a good visual cue for the end-user.
2012-01-22 18:02:35 +00:00
Mark Liversedge
1a3fceca1d Remove quarq devices
The recent AddDeviceWizard exposed some of the
Quarq devices which are possibly experimental.

Commented them out in case they re-appear at a
later date.
2012-01-22 17:35:25 +00:00
Mark Liversedge
67fa1dd053 Toolbar buttons for Analsysis View
Save - saves current ride
Add  - menu to download, import or manual

The icons could be nicer, need a gui wizard to help.

Fixes #492.
2012-01-22 17:18:20 +00:00
Jamie Kimberley
71a639b95b Add other TRIMP metrics to performance manager-v3.
Add the ability to use the TRIMP 100 and TRIMP ZONAL metrics in the
performace manager.
2012-01-22 15:40:10 +00:00
Mark Liversedge
7bfbc3e9b3 Fix interpolation of GPS data for bad samples
[manually folded in commit #8e43eb31a from 2.1 branch]
2012-01-22 15:37:32 +00:00
Mark Liversedge
e59c32a311 Fix SEGV on cancel long search
A timing issue - when cancelling the background scan
it is possible for the next scan to be performed after
the controller has been deleted.

This is an edge condition and pretty rare, but since it
causes a crash pretty high impact.
2012-01-22 09:05:22 +00:00
Mark Liversedge
fd88cd4351 Fix AddDeviceWizard AddSearch not completing
The logic for the AddSearch page (which only appears
if the user did not have the device connected when the
initial scan is performed) would find the device and then
terminate without moving on to the final page.
2012-01-22 08:58:59 +00:00
Mark Liversedge
2a289be3f9 Realtime Robot
If you define GC_WANT_ROBOT in gcconfig.pri then
we will compile with support for adding a null
device (robot), which is useful for developers
when testing.

See the last line of gcconfig.pri.in.

You will need to touch DeviceTypes.cpp after
modifying src.pro and before typing make.
2012-01-22 08:21:12 +00:00
Gareth Coco
02dae22e09 mingw uses Sleep() 2012-01-21 21:23:36 -05:00
Mark Liversedge
883e92237b Fix SEGV on Finish AddDeviceWizard
Telemetry updates were trying to use the device
controller after it had been deleted.
2012-01-21 23:43:58 +00:00
Mark Liversedge
bc5ab1e493 More LIBUSB problems
Last update referenced ANT::usbMode even though it
is only available if LIBUSB support is compiled in.
2012-01-21 23:14:38 +00:00
Mark Liversedge
ee98f9592f Fox initialisation of ANT::channels without LIBUSB
The initialisation of the new 'channels' member
was being set inside LIBUSB conditionals. This
means when built without LIBUSB channels would
not get initialised.
2012-01-21 22:47:23 +00:00
Mark Liversedge
7451ebd7dd Remember LIBUSB is optional
So don't include FortiusController.h in the new
AddDeviceWizard.h, since some folks aren't building
for that.
2012-01-21 22:16:58 +00:00
Damien
1d0a858df6 Reorganise intervals by drag and drop
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.
2012-01-21 21:16:35 +00:00
Damien
8eb349ded0 Select active ride in the ride navigator
Fixes #545.
2012-01-21 21:00:52 +00:00
Andrew Bryson
cc0bd29ef7 Fix quarq power and cadence glitches when coasting
ANT+ telemetry data processing in ANTChannel now
checks for previous message period values.

Fixes #607.

[Tested by author on Quarq cranks, error not recreated
 on SRM or Powertap devices, but may be Quarq specific]
2012-01-21 20:54:19 +00:00
Mark Liversedge
43b1c61d6b Add Device Wizard
Introduce a wizard for adding realtime devices since it
is prone to user error, is relatively complicated and is
something most users will only ever do once or twice.

There are several logical updates within this patch:

First; Fix intermittent ANT+ not working
* LibUsb     - check bufRemaining is > 0 not non-zero
* LibUsb     - Always reset the USB stick on open
* ANT.cpp    - Support > 4 channels on USB2
* ANTChannel -  Do not use pairing, but always
*               unassign, assign and set channel id.

Second; Fix device discovery
* Find and discover support in realtime controllers
* Extend Serial.cpp to cover more Serial devices
* Support for 4 or 8 ANT channels for USB1/USB2

Third; Introduce Add Device Wizard with
* General and Specific wizard pages for each device type
* Device pairing with telemetry display
* fixed compile time warnings

Fourth; Update Device Config Page
* use wizard to add new device
* remove edit fields, replaced by wizard
* remove pair, firmware buttons replaced by wizard

Fifth; Deprecate/Remove Device Types
* Null Device - used by developers only
* Quarqd client - replaced by Native ANT+
* GC Server - not implemented yet

I have also introduced a device specific wheel size
and flags for controlling the default selection and
sources for sensor data when in multi-device mode. These
are not yet supported in the code.

Fixes #611.
Fixes #497.
2012-01-21 20:28:33 +00:00
Mark Liversedge
eb1becdfee Fix precision error for Temp in Summary 2012-01-15 16:58:04 +00:00
Mark Liversedge
58e670e2c3 Add Temperature to Ride Summary
More complex than I had hoped for, to add
Temperature I needed to;

* introduce two new metrics Avg/Max temperature
* adjust metric conversion to include a conversionSum
  for the C to F conversion
* handle temperature as a metadata field as well as a
  ride data series
* handle the RideFile::noTemp value rather than just
  averaging or calculating max.

Fixes #603.
2012-01-15 16:27:09 +00:00
Mark Liversedge
5af9bf1e35 Wattbike test rides 2012-01-15 12:54:42 +00:00
Mark Liversedge
ee054f4809 Support Wattbike TXT data exports
Thanks to Peter Norberg for the sample data export
files. This support has been written against the
two files supplied.

if the export has imperial/metric conversion options
then this support will need to be adjusted to cater
for different units.

Fixes #322.
2012-01-15 12:52:57 +00:00
Damien
cf8310b1b9 Fix CriticalPowerWindow handle seasons changed
Fixes #575.
2012-01-15 09:22:45 +00:00
Mark Liversedge
c2b847d050 Refresh PMC when rides added/deleted
Replots the PMC when a ride is added or deleted to make
sure the plot reflects the current activity history.
2012-01-14 22:05:46 +00:00
Mark Liversedge
75334fdbd6 Refresh on ride add/deleted
When rides are added or deleted the weekly statistics
are now refreshed to ensure they reflect the rides
now present within that week.
2012-01-14 21:57:49 +00:00
Mark Liversedge
d20a5b893c Tcx speed is Meters/Second not KPH
Recent update to support distance calculation from
speed and time erroneously assumed speed units of
kilometers per hour. The docs state that speed is
represented in Meters per Second.

Apologies, and thanks to Walter Bürki for his
perseverance with me on this one.

Fixes #598.
2012-01-14 19:30:27 +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
059190f32f Season Config - don't delete!
The seasons class emits signals to let
everyone know if the season config changes
at runtime.

The recent patch to add configuration of
seasons deleted and re-instantiated the
seasons member in MainWindow which breaks
updating across the code.

This patch fixes that.
2012-01-14 17:41:42 +00:00
Mark Liversedge
e1e750acda ANT+ Use Cadence from Standard Power Messages
Standard power messages include an instant cadence
value which we ignored. We should use this if it is
available.

Fixes previous attempt by setting Cadence rather than
wheelRPM with the instant cadence value (!)

Fixes #556.
2012-01-14 15:48:41 +00:00
Mark Liversedge
2c95b70696 Add Wheelsize Config
So we can calculate speed from wheelRPM when working
with ANT+ speed sensors in realtime.

The config screen is still ugly as hell, but there is
another bug raised to resolve that.

Fixes #529.
2012-01-14 15:38:01 +00:00
Mark Liversedge
0a6875df3b Fix Crash on no ErgFile selected
Fixes #600.
2012-01-14 15:34:42 +00:00
Mark Liversedge
43964f97e8 Disable roch text in metadata
It causes significant performance issues when
pasting complex font information, we only allow
plain text since we only serialise the plain text
elements anyway.

Fixes #599.
2012-01-14 12:21:39 +00:00
Mark Liversedge
314e8d54a6 Merge branch 'release_3.0.0dev' of github.com:/srhea/GoldenCheetah into release_3.0.0dev 2012-01-14 11:54:13 +00:00
Mark Liversedge
9bfb08ff71 Configure Seasons in ConfigDialog
Allow the user to add,delete and reorder
seasons in the config dialog.

Although the user could create and manipulate
seasons / date ranges in the LTM chart, this
provides a more coherent place to do the same
but also adds the ability to re-order seasons.

Fixes #399.
2012-01-14 11:52:01 +00:00
Damien
62c4d4f3a6 Remove Joule warings
Remove warnings for new format identifiers in the last Joule firmware
 Correct a small bug in the summary view for average metrics refresh.

 Fixes #524.
2012-01-13 22:57:54 +00:00
Damien
20ecc989c4 Correct bug #496 for longitude < -65
Fixes #496.
2012-01-13 22:36:44 +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
Mark Liversedge
20f4a0659f Hold down FFwd/Rewind Buttons to skip
When jumping forward and back through a workout
the FFwd/Rewind buttons can now be held down to
auto-repeat and skip quickly.
2012-01-13 19:13:47 +00:00
Andrew Bryson
ea50611649 Add lap time remaining data series
Fixes Feature #592.
2012-01-13 17:52:07 +00:00
Damien
fe3f586e41 Correct encoding in json parser
Fixes #408.

	modified:   src/JsonRideFile.y
2012-01-13 17:52:07 +00:00
Gareth Coco
25830f850f Update default chart titles - Analysis view
Fixes #596
2012-01-12 16:21:23 +00:00
Mark Liversedge
64fd91f685 Reinstate Chart Setup Dialog
It was removed when we had a serious bug
that caused a crash when adding a chart.
That turned out to be related to mouse
event processing and drop shadow graphic
effects.

We can remove this is folks don't like it.
2012-01-12 16:00:35 +00:00
Mark Liversedge
ca9c176e49 Fix QTKit Video Playback on QT 4.8 RC
QT-BUG 22574 suggests there is a problem with the
QMacCocoaContainer on 4.8 RC 0. This is a quick workaround
for those building against the 4.8 release candidate.
2012-01-12 15:18:50 +00:00
Mark Liversedge
3b270b1c15 FFwd/rewind Video on Mac
Following on from update for VLC based video playback
this update add fast forward and rewind of video on
Mac where we use the Quicktime API.
2012-01-12 12:40:35 +00:00
Mark Liversedge
3b85037a7b FFwd and Rewind Video (VLC)
When using the fast forward and rewind buttons for
a workout we now also fast forward and rewind the
video playback on Linux/Windows.

The same feature needs to be incorporated under
Mac where we use QTKit for video playback.

Fixes #594.
2012-01-12 11:39:31 +00:00
Mark Liversedge
47f1539495 FitRideFile distance of zero bug
Fit ride file contains samples where the distance
is set to zero, even if the previous sample is
non-zero.

The parser has been adjusted to keep the previous
distance used when a zero value is encountered.

Fixes #544.
2012-01-11 22:23:03 +00:00
Mark Liversedge
d8ad48ac45 Save Garmin Threshold Config Setting
Fixes #591.
2012-01-11 21:22:37 +00:00
Mark Liversedge
4b25aa57d2 Save Garmin Smart Record setting
Config dialog lost the code to save the
garmin smart recording setting.

Fixes #591.
2012-01-11 20:45:56 +00:00
Gareth Coco
d6c639a10f Add right click - Upload Activity to Calendar - functionality
If ICAL is defined allow right click to upload the Activity

Fixes #588
2012-01-11 20:28:49 +00:00
Gareth Coco
ead54cd30c Update default Chart Titles
- Now shows last 60s, not 10s
- No workout loaded so just show Workout

Fixes #587
2012-01-11 20:27:39 +00:00
Andrew Bryson
f3594d5dd0 Fixed lap averages only working with lap button
Fixes bug 590.

Lap averages will now correctly reset on a new lap from an erg file.
2012-01-11 20:23:21 +00:00
Mark Liversedge
b9b185a51a Merge branch 'release_3.0.0dev' of github.com:/srhea/GoldenCheetah into release_3.0.0dev 2012-01-11 20:15:33 +00:00
Mark Liversedge
a3c75eff7d Fix Computrainer Manual Ergo Mode LOAD display
When working with a computrainer in manual ergo mode
the display does not update as the load is increased
and decreased.

Fixes #586.
2012-01-11 20:13:08 +00:00
Steven Gribble
5c8beee46d added a new air density (rho) estimator dialog box, hooked it into the Tools menu, and updated src.pro to add compilation dependencies for it 2012-01-08 17:02:53 +00:00
Mark Liversedge
c0ba84cdbc Fix ANT.cpp comppile error (LIBUSB is optional)
Compile time error for USBMode in ANT.cpp when
libusb is not available.
2012-01-07 08:09:53 +00:00
Mark Liversedge
194f944923 ErgFile now supports 'named' intervals
As a precursor to more sophisticated workout
creation and config, the ergfile format and
plot now supports named intervals.

This is so we can identify blocks of the workout
and reuse them by name (rather than having to
select a section, which should also be supported).
2012-01-06 19:49:11 +00:00
Mark Liversedge
9f91617161 Further fixup for USB2 sticks
Added a usb_init() call prior to starting a workout, this
appears to clear state inside libusb.

Also added some commented code for displaying diagnostics
when sending/receiving ANT messages.

This should make the ANT+ connection more robust on first
use, since subsequent uses are now fine.

This may be related to the state the USB host controller (stick)
is left in after we first connect, more investigation is required.
2012-01-06 16:57:39 +00:00
Mark Liversedge
07ea957f61 Fix need to 'reset' USB2 stick between sessions
It was neccessary to reset the USB2 stick between
sessions. This was due to incorrect state data
being maintained within the ANT code.

New sessions should start without requiring a USB
device reset or running ANT agent etc.

Fixes #558.
2012-01-06 11:38:20 +00:00
Mark Liversedge
51dccacb52 Restore SpinScan
The recent commit for multi device support cleared
the spinscan data, breaking the plot updates. This update
retrieves the spinscan data if a computrainer has been
selected for the workout.
2012-01-06 09:47:21 +00:00
Mark Liversedge
a610eed0f0 Support TrainerRoad.com TCX Files
The TCX parser ignored samples where distance
is zero even when speed and time are available.

This broke reading files from TrainerRoad.com.

Fixes #580.
2012-01-06 09:09:03 +00:00
Mark Liversedge
fc1913149f Fix JSON ride files going "missing"
The metric aggregator did not clear the "errors"
string list when refreshing metrics. This caused
the Json parser to always fail if preceding files
had warning messages.

This was quite common with fit files.

Fixes #552.
2012-01-06 09:00:41 +00:00
Mark Liversedge
a5ce87b32d Cosmetic fixup to Device config. 2012-01-05 21:30:50 +00:00
Mark Liversedge
f97e700ea1 Clear device list before reload on config change 2012-01-05 21:22:23 +00:00
Andrew Bryson
f92b619d52 Lap Averages in Real Time mode
Add lap average for hr watts cadence speed.
2012-01-05 20:55:20 +00:00
Andrew Bryson
0e48e57c41 Reset the lap timer based on erg file
Resets the lap timer when we get to a new lap in a training plan.
Previously it would only reset when the user pressed lap

fixes Bug #576
2012-01-05 20:53:16 +00:00
Mark Liversedge
30f1113ac5 Add Multi-device support in Train View
It is now possible to select multiple devices to
workout with.

To enable multi-device support a new setting in
tools->options (preferences on Mac) allows the
user to enable multi-device selections (this just
enables the user to select more than one device
in the side bar).

When a workout is started the user can select which
devices will supply which data.

This enables ANT+ devices to override information
provided by Computrainers or Fortius devices.

Fixes #578.
2012-01-05 20:47:04 +00:00
Mark Liversedge
17705c1eae More configurable realtime plot
Allow data smoothing, which is particularly useful
during bike fit sessions to watch trends rather than
micro changes.

Also allow the user to select which data series to
plot. This allows you to open multiple plots for
each series.
2012-01-03 14:49:41 +00:00
Mark Liversedge
cee35abb1e AltPower gets smoothing in DialWindow. 2012-01-01 11:02:26 +00:00
Mark Liversedge
d102cf91ca Honour line width settings in realtime plot
It was set to 2.0px rather than using the value defined
in options/preferences.
2011-12-31 21:07:37 +00:00
Mark Liversedge
77b8998d2b Dual ANT+ Power Fixups
Forgot to increment the power channels count, which
mean't that the alternate power device was not set.

Also now allow for scanning for same device types on
multiple channels.
2011-12-31 20:14:15 +00:00
Mark Liversedge
0d06ad613a Realtime Plot shows last 60s, not last 10s
The realtime plot was originally set to only show the
last 10s of activity to reduce CPU overhead.

In reality, the CPU overhead for the plot is minimal,
especially when anti-aliasing is disabled.

This update modifies the plot to show the last 60s of
data, instead of the rather restrictive 10s.
2011-12-30 18:39:42 +00:00
Mark Liversedge
6c242dd64f BioBike Support
Add support for dual ANT+ power devices (in this case using
dual track SRM cranks). The two power devices are assumed to
represent power and alternative power.

The following changes have been made for this support:
* ANT+ device profile support multiple power devices
* Allow editing ANT+ device profile on Mac/Linux (it
  is already available on Windows)
* When a second ANT Channel is assigned to power it is
  set as alternative, and updates alternative watts
* RealtimeData now supports Watts and AltWatts
* AltWatts dial and associated color settings
* LRBalance dial to show difference between Watts and AltWatts
* Realtime plot plots watts and altWatts

Fixes #572.
2011-12-30 18:06:31 +00:00
Mark Liversedge
a89bd31f53 Set default workout directory for Train view
Since it can be confusing to new or occasional users, the
workout directory now defaults to the top-level GC directory.

This kind of makes sense since it is shared across all cyclists
and is guaranteed to exist, and will still work when running
from a USB stick.

When we get round to implementing feature 193 and 570 we can
adjust this to suit.

Fixes #571.
2011-12-30 10:33:33 +00:00
Mark Liversedge
3787a9cb3a Close Window or Quit all Windows
Added a menu option to quit all windows rather than
just the current one.

Each window will process a close event and so give the
user the option to save changed files and cancel closing
it.

Fixes #566.
2011-12-29 22:49:45 +00:00
Ilja Booij
8b9a8a62f1 Fix Heartrate support for Tacx Fortius
The heartrate value is present in byte 13 of the
received data.

Fixes #555.
2011-12-29 22:07:41 +00:00
Mark Liversedge
71f68d823d Simplify Diary Window
Now only shows monthly view, since;

* qxtscheduleview (weekly) has too many bugs
* rideSummary (ride) is redundant, just add that window to the view

Fixes #546.
2011-12-25 12:09:22 +00:00
Mark Liversedge
96a3d9f49a Fix color array offset broken in commit 3c95f54 2011-12-25 11:53:13 +00:00
Mark Liversedge
b47ffbb591 Show date on CP bests tooltip 2011-12-25 11:47:37 +00:00
Mark Liversedge
d7e987d0a9 CP chart 'best date' doesn't fit
Aside from just expanding the sidebar to show it, this update
creates a bit more space for the display of best values in
the CP chart controls.

It would be better if the tooltip also showed the date.

Fixes #565.
2011-12-25 11:23:54 +00:00
Mark Liversedge
3c95f54f0e Training Dials have own Color setting
For expoediency the training dials used the qwtplotmarker
color but this often lead to things like lap, time being
displayed in black on a black background.

We now have a realtime dials default color setting in the
appearances pane. The default is gray, so will show up on
a black or white background.
2011-12-24 11:25:53 +00:00
Mark Liversedge
265e310a9c Fix nan/inf values for Virtual Speed. 2011-12-21 18:56:39 +00:00
Mark Liversedge
b06d1e9a1d Rolling Average Power/Cadence/HR tweaks
The slider in the controls should only be shown
for HR/Power/Cadence. Additionally, it is more
of a 'smoothing' (rolling) average, so the text
has been changed to reflect that.

This is to avoid confusion with the other series
entitled Average Power. Average Cadence and
Average heart rate - which are averages for the
entire ride.
2011-12-21 17:48:27 +00:00
Mark Liversedge
98e504e382 Virtual Speed
Tom Compton of AnalyticCycling.com has provided
a formula to calculate virtual speed based upon
slope, weight, power, cdA, crr and air density.

This is now implemented as 'Virtual Speed'.

It is expected that this new virtual speed will
be used to control streetview, video rendering
and future implementations of group riding over
a predefined course.

Fixes #527.
2011-12-21 17:22:37 +00:00
Mark Liversedge
d8f234e4de remove debug from Fortius.cpp. 2011-12-21 16:33:05 +00:00
Mark Liversedge
c200bdea01 Fix Fortius Power Smoothing
Recent fixups introduced a delay of 50ms when
reading from the Fortius controller to avoid
interrupt write errors.

The smoothing of power data was not adjusted to
take into account the reduced frequency of
telemetry updates.

We now smooth at 16hz not 60hz.
2011-12-21 16:16:37 +00:00
Mark Liversedge
4f30c9ea09 List last month, not year for TrainingPeaks.com
By default the TrainingPeaks.com download dialog will
fetch the last year of ride files. This can take a long
time for some users. We now only ask for the last month
by default.

Fixes #561.
2011-12-21 15:20:03 +00:00
Mark Liversedge
68ef00bc28 ANT+ Use Cadence from Standard Power Messages
Standard power messages include an instant cadence
value which we ignored. We should use this if it is
available.

Fixes #556.
2011-12-21 12:06:24 +00:00
Mark Liversedge
24be9ec813 Add Virtual Power for 1UP USA bike trainer
Fixes #560.
2011-12-21 10:42:53 +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
113076b4e7 Tacx Fortius Driver Stubs
To work with Tacx Fortius on 32/64 bit platforms without
having to install the Tacx software (which requires the
user to pay to upgrade to TTS2/3/4).

Fixes #550.
2011-12-17 23:39:18 +00:00
Mark Liversedge
e028faf0ac Remove dynamic load of libusb on Windows
It wasn't adding any value and caused problems
with static build targets and using libusb functions
in other parts of the code (e.g. EzUsb).
2011-12-17 22:21:51 +00:00
Mark Liversedge
a570081488 Fix zero speed in TxtRideFile for Imperial units
When importing files with imperial units the importer
does not set distance data and the speed is reset to
zero.

This patch fixes that.
2011-12-17 21:20:19 +00:00
Mark Liversedge
5b50589e8f Rename EF to Efficiency Factor. 2011-12-17 17:58:49 +00:00
Damien
ddd5528294 Add ResponseIndex and EfficiencyFactor
modified:   src/BikeScore.cpp
	modified:   src/Coggan.cpp
	modified:   src/DBAccess.cpp
2011-12-17 17:54:20 +00:00
Mark Liversedge
ae1f80dd35 TrainTool make Fortius dependant upon GC_HAVE_LIBUSB. 2011-12-17 15:59:39 +00:00
Mark Liversedge
e49c3d3f5c Merge branch 'release_3.0.0dev' of github.com:srhea/GoldenCheetah into release_3.0.0dev 2011-12-17 12:36:00 +00:00
Mark Liversedge
ca45ef310e Tacx Fortius fixes for Mac OSX
Under Mac OSX the Tacx Fortius support needed
a few minor tweaks;

* sleep 60ms between read/write operations to
  avoid interrupt errors

* clear_halt on read/write endpoints before
  attempting to read/write to the device

* remove the errant usb_reset which really should
  not have been called in LibUsb since it deletes
  the device structure(!)

The LibUsb class has been modified to clear_halt
when opening ANT devices too -- since regression
testing on Mac showed that a) you need the latest
drivers to work with a USB2 stick on Lion (64bit)
and it now appears to mandate a clear_halt when
opening the device (but this may be related to the
Garmin ANT agent leaving it in an unknown state).
2011-12-17 12:31:25 +00:00
Mark Liversedge
88dbbb2b11 Introduce OperatingSystem global variable
The LibUsb (and possibly other classes) need to know
what operating system we are running on at runtime. In
the past this has been achieved with lots of #ifdef pre-
processor conditionals, but this makes the code quite
difficult to read in places.

This patch introduces the variable OperatingSystem and
it can be one of WINDOWS, LINUX, OSX.
2011-12-17 11:44:47 +00:00
Damien
d053fb3eac Add average for Power, Cadence and Heartrate
modified:   src/DialWindow.cpp
	modified:   src/DialWindow.h
2011-12-17 10:15:19 +00:00
Mark Liversedge
9a58bcee6c Mingw has not sleep(), uses WinAPI Sleep(). 2011-12-12 22:33:45 +00:00
Mark Liversedge
b206b8af50 Mingw build fixups
- #ident not supported in EzUsb.cpp
- sleep() missing <unistd.h> in LibUsb.cpp
2011-12-12 22:24:22 +00:00
Mark Liversedge
67983b81c3 Tacx Fortius Support
Initial support for Tacx Fortius devices.

Note this requires libusb support to be present and will
work on Linux, Mac and Windows.

The handlebar buttons up/down will increase/decrease the
load/intensity in a similar fashion to the +/- keys on
the Computrainer controller.

The cancel button will stop a workout and the enter key
is used to mark a lap.

Slope and Ergo modes are supported, but we do not set the
brake at all if the speed is below 10kph, this is to
ensure it does not get burnt out when users 'grind'.

SPECIAL NOTE:

   The Fortius handlebar controller is a Ez-Usb device
   and requires firmware to be loaded when it is connected.
   Since this is copyrighted by Tacx BV we do not distribute
   it, instead, when the user sets up a Fortius device they
   must also provide the file. Full instructions on how this
   should be done are given when configuring the device.

Additionally, for Linux users udev rules should be added to
ensure that the USB devices are accessible to non-root users.

Fixes #538.
2011-12-12 17:26:59 +00:00
Mark Liversedge
ed0ca67eb6 Computrainer +/- keys and load zero
The recent patch to fix displaying load on ANT+
devices broke the same for computrainer in manual
ergo mode.
2011-12-11 14:00:24 +00:00
Damien Grauser
a4ed17a50a Add temperature icon to GCBubble 2011-12-08 22:38:58 +00:00
Damien
62b6fc22d1 Correct temp plot for smoothing 2011-12-08 21:29:40 +00:00
Mark Liversedge
5195f6376d Remove need for cadence on virtual power
Since you may not have a cadence sensor available it
does not make sense to zero power when cadence is zero.
2011-12-08 21:03:52 +00:00
Greg Lonnon
082da0127c fixed the gps parser to take mapmyride routes
Fixes #533.
2011-12-07 22:19:34 +00:00
Damien Grauser
55cb396196 Add temperature to AllPlot
Fixes #536.
2011-12-07 21:55:35 +00:00
Mark Liversedge
ec64007f6b Fix PfPv refresh bug
Fixes #520.
2011-12-06 10:01:58 +00:00
Mark Liversedge
362bc06f72 Use uint8_t* not void* in memcpy()
Computrainer spinscan memcpy() used offsets
but failed to declare the datatype used by
pointers.

Interestingly, some compilers will assume a
void* points to a byte, whilst others will
rightly complain.
2011-12-04 14:31:04 +00:00
Damien Grauser
70c8f0223c Add Temperature and Slope Data Series
This patch adds support for temperature and slope
across the ridefile readers.

For the most part their is no functional change
although it is now possible to view and edit these
data series in the editor.

File formats that can provide temp or slope include;
.bin, .fit, .srm, .sync, .wko

Further updates will be required to display the data
in the ride plot and histograms.
2011-12-03 23:17:11 +00:00
Mark Liversedge
bd6d578d43 Remember mode in pedalstroke chart. 2011-12-03 15:29:29 +00:00
Mark Liversedge
04ff0a2249 Add Polar SpinScan Plot
The Power Stroke chart will now show a
bar or polar chart.
2011-12-03 15:08:23 +00:00
Mark Liversedge
feaef59169 SpinScan L/R different colors 2011-12-02 18:51:03 +00:00
Mark Liversedge
088587c8fb Fix Target load Dial
When working with ANT+ devices the load dial always
showed zero, because the ANT device was not updating
the realtime data with the desired load.

In addition, the target load telemetry always showed
watts even when working in slope mode (where it should
show the gradient).

Fixes #532.
2011-12-01 21:35:39 +00:00
Mark Liversedge
344cccb913 Added SpinScan Plot
I finally got round to decoding the spinscan data
from computrainers. This is now implented in train
view.

A new chart is available 'Pedal Stroke' to show the
spinscan data returned by the computrainer.

I am unsure if the decoding is 100% on the money but
have been testing for a week and it seems ok.

Fixes #530.
2011-11-30 23:26:20 +00:00
Mark Liversedge
584acf490e Windows URIs are file:///c: not file://c: 2011-11-27 15:33:20 +00:00
Mark Liversedge
e7a57ed957 VLC Filename convert to file:// URL
Passing a filename with spaces in it causes some issues
on WinXP/2003, this patch converts all filenames to valid
URLs (which is the preferred way to reference media in VLC).

Specifically;

* The file path is prepended with file://
* backslashes in filenames are converted to forward slashes in URLs
* Spaces are converted to %20
2011-11-27 15:03:31 +00:00
Mark Liversedge
fc08878725 Better Bounds Checking in RideFile::intervalBegin()
Return value when out of bounds had a fencepost error. Annoyingly
it is exactly the same fencepost error that was fixed in a line
of code 10 lines lower in the source.

This fixes rare issues with rides where intervals start at the
end of the ride file. This can happen with rides that have been
split.
2011-11-27 00:00:48 +00:00
Mark Liversedge
ccdce3b3a5 Fix SEGV on Mac on Save Preferences. 2011-11-26 22:54:30 +00:00
Mark Liversedge
3ca632b4fe ErgDB download should say exists not exported. 2011-11-26 21:08:14 +00:00
Mark Liversedge
7dbf9ccaff Fix Serious Delay after saving Preferences
Caused by instantiating way too many copies
of the specialfields class, when one is freely
available for reference.
2011-11-26 20:51:45 +00:00
Mark Liversedge
78f2966566 missing src.pro 2011-11-26 18:01:16 +00:00
Mark Liversedge
6a9fae56ae Removed accidental commented out code 2011-11-26 17:59:01 +00:00
Mark Liversedge
b07284f1b3 Download from ErgDB
A new menu option added to download workout
files from the ErgDB. Will also need to look
at upload so we can share amongst the GC
community.

Fixes #521.
2011-11-26 17:57:14 +00:00
Mark Liversedge
db1c6e8c8d Fix double save of Configuration
The createIcons method in ConfigDialog also adds
another connect to the save button. This has been
removed.

Lame and brain-dead coding error.
2011-11-26 17:54:35 +00:00
Justin Knotzke
2125e55507 Upload to Strava
A menu option to upload ride files to the Strava website.
Original code from Justin Knotzke ported to v3 by
Damien Grauser.

If the ride has already been uploaded the upload menu
option is disabled, once uploaded a tag is set in the ride
with the strava id.

Fixes #519.
2011-11-26 08:59:30 +00:00
Gareth Coco
2bb549843b Initialise LAT/LON to zero (0.0) in the parser
If there is no LAT/LON data often GC will set really small numbers
to LAT/LON which the map functions will try to map.

Fixes #522
2011-11-26 07:47:33 +00:00
Mark Liversedge
a5f4dc7503 Computrainer Calibration Mode on F3
Pressing F3 on the handlebar controller now starts calibration
mode and pauses all video and recording. Pressing F3 again will
resume the workout and restart.

Fixes #392.
2011-11-25 21:22:06 +00:00
Mark Liversedge
0efbfcb740 Fix FTDI Adaptor on Linux and Mac
Eric Brandt provided a fix for the new FTDI adaptor
sold with Computrainers from late 2009. It only fixed
the problem under Windows.

This fix applies the same modification to turn off
hardware flow-control for Linux and Mac.

Fixes #523.
2011-11-25 16:09:27 +00:00
Mark Liversedge
4f5e047780 Add a Watts per kilogram metric
All the existing wpk metrics concentrate
on the wpk for a fixed period, which is great
but we should also support it for an interval
(where it is arguably most interesting).

This patch fixes that.

Fixes #467.
2011-11-22 20:28:18 +00:00
Mark Liversedge
a89e8ddec0 Remove Smart Layouts
They are horrible. We need a better solution. The
"smart" layout was the wrong solution and everyone
hated them.

We need some ideas about how this should work.
2011-11-21 09:49:16 +00:00
Mark Liversedge
73f648f393 Merge branch 'release_3.0.0dev' of github.com:/srhea/GoldenCheetah into release_3.0.0dev 2011-11-21 08:02:53 +00:00
Mark Liversedge
3fd133ebd3 Version 3 to use metricDBv3
Some users often switch between v2 and v3 of GC. Either
because they are testing or they are transitioning from
v2 stable to v3 development builds.

But at launch the metricDB is refreshed each time, since
the v2 and v3 metrics are so different.

To avoid this, from version 3 the metricDB file will be
called metricDBv3 to avoid conflicting with the original
metricDB file.

Fixes #376.
2011-11-21 07:59:49 +00:00
Mark Liversedge
371f991545 Use strtod() to convert text to double
To get improved precision when parsing pasted
data in the ride editor.

Fixes #477.
2011-11-20 21:47:11 +00:00
Mark Liversedge
90b2c9cd5d Add ToolTips to Toolbar Buttons
The show/hide sidebar, Toggle Tabbed Mode, FullScreen
and Add Chart buttons now have a tooltip to help explain
what they do.

We still need better icons too!
2011-11-20 20:46:10 +00:00
Mark Liversedge
0df41e4482 Fix FullScreen on Lion compile errors
Fix compile on Mac SDK < 10.7, silly initialisation
of fullScreen in MainWindow when it doesn't exist
and fixup gcconfig.pri.in definiton of GC_HAVE_LION.
2011-11-20 18:11:46 +00:00
Mark Liversedge
67ea9e2a6b Fix FullScreen Crash on Mac
When building with the latest Xcode their is a conflict
between the QtMacSegmentedButton cocoa container and the
same declared in QtMacVideoWindow.

This patch removes QtMacSegmentedButton since we do not
use it.  There appears to be a container in 4.7 anyway
so we no longer declare our own.

Video and FullScreen are fully operational now on 10.6
or higher using 4.7.4 or higher of QT.
2011-11-20 17:10:44 +00:00
Mark Liversedge
c5038d87d4 Add Chart Menu fixups
The add chart menu had the ride plot on home
and charts were ordered in a relatively random
order.

This patch orders the charts by relevance for the
particular view and moves the 'Performance' chart
to the Analysis selection.
2011-11-20 15:58:45 +00:00
Mark Liversedge
1997398955 Add a Mac INSTALL guide
We have previously written a walkthrough for building
on Windows and Linux, we now have a walthrough for
building on a Mac.

INSTALL-MAC is in the top level directory is a plain text file.
2011-11-20 14:44:38 +00:00
Mark Liversedge
f113b57384 Merge branch 'release_3.0.0dev' of github.com:/srhea/GoldenCheetah into release_3.0.0dev 2011-11-20 14:10:38 +00:00
Mark Liversedge
466b7c1a49 Fix Crash in ErgFilePlot TimeScaleDraw
The TimeScaleDraw declaration and definition in
ErgPlot.h clashes (silently) with the definition
in PerfPlot.h.

This caused a SEGV at runtime, but only with some
build tools (but notably Xcode on Lion). Not at
all sure how this has not arisen before.

ErgFilePlot now declares as HourTimeScaleDraw to
avoid the clash.
2011-11-20 14:07:47 +00:00
Mark Liversedge
4bf90eff8f Fix crash on exit (WinIdChange). 2011-11-19 20:39:22 +00:00
Mark Liversedge
145433dee6 Fix missing ';' in update to MainWindow.cpp 2011-11-19 18:41:12 +00:00
Mark Liversedge
cca15e375a Toolbar buttons didn't move on a Mac
Mostly caused by the Nazi style police in Cocoa wanting
huge margins etc. Steve knows best. Now uses the Windows
style for toolbar buttons so we get control back from
you know who.
2011-11-19 17:26:21 +00:00
Mark Liversedge
858876bddf Use OBJECTIVE_SOURCES in src.pro
Objective C (actually in our case Objective-C++) sources
should be declared under the OBJECTIVE_SOURCES macro and
not the SOURCES macro.
2011-11-19 17:24:58 +00:00
Mark Liversedge
6e1c57b9de Fix bounds checking in RideNavigatorProxy
The group by model gets called by the view with a row
number -1. The code didn't check it was in bounds, which
causes a crash with Qt4.8, possibly a bug in 4.8 but a
bounds check is pretty harmless anyway.
2011-11-19 17:19:20 +00:00
Mark Liversedge
dbd89745e7 Remove Activity Details from Sidebar
Instead the defaut layout now has the ride summary
and details as the first chart in analysis view.

Funny how we've come full circle back to the original
layout. Kinda reassuring I suppose.

Also fixes SummaryWindow splitter handle being rather
ugly.

Fixes #518.
2011-11-19 14:41:41 +00:00
Mark Liversedge
8dd6da0027 Add Chart from Toolbar menu
The drag and drop function for adding charts may
be functionally appropriate, but it is not intuitive
for new users.

This patch moves the add chart function to the toolbar
as a drop down menu. it also makes the chart selection
context sensitive - so on training view only realtime
charts are listed.

Fixes #517.
2011-11-19 14:27:55 +00:00
Mark Liversedge
70e2f3a173 Only resort to cached calendar if it exists! 2011-11-16 21:32:08 +00:00
Mark Liversedge
ded5c2c43b Auto extend workout plot when no workout selected
If no workout is selected (and ERGO/SLOPE mode are also not
selected) then the plot does not extend once you workout
beyond the first hour.

This was due to an uninitialised variable (ergFile) this patch
fixes that.

Fixes #515.
2011-11-16 21:11:48 +00:00
Mark Liversedge
dc3e06ba34 Fixup .pgmf support (set mode)
The .pgmf file support needed to set the workout mode but
that was missed.

Now tested the Train View with some Tacx ErgoVideos and they
work perfectly.
2011-11-15 20:13:54 +00:00
Mark Liversedge
18a0b27cc4 Reinstate Lap button
Recent mods to move the realtime controls to the toolbar
managed to lose the Lap function. This patch reinstates it.

Fixes #514.
2011-11-14 22:18:31 +00:00
Mark Liversedge
7e60a930ee Fixup toolbar button spacing on a Mac. 2011-11-13 22:25:55 +00:00
Mark Liversedge
2e1832c893 Less prominent "view" icons. 2011-11-13 22:05:18 +00:00
Mark Liversedge
c00379c0ca Toggle FullScreen button on Toolbar
Added a button to toggle fullscreen on the toolbar. Not on
a Mac though since it is in the titlebar.

Also made the view buttons slightly larger. We desperately need
some nice icons / branding for the UI.

Fixes #513.
2011-11-13 21:50:25 +00:00
Mark Liversedge
3f7b28489c Spacing around tab bar. 2011-11-13 19:41:13 +00:00
Mark Liversedge
3dfee75d0f Move tab/tile to Toolbar
To switch between tab/tiled mode the selector has
been moved from the homewindow to the toolbar. A
menu option to select tab/tiled mode has been
added to the view menu.

I have also added icons (that change) for show/hide
sidebar and tab/tile select. The show/hide sidebar
check was not being changed when you use the toolbar
button, this has also been fixed.

The scroll view mode has been deprecated. (But the code
has been retained in case we decide to re-introduce it).

Fixes #512.
2011-11-13 19:03:03 +00:00
Mark Liversedge
7c8e9d983f Remove executable bit on source files
ANTMessage and ANTChannel source files are created with
the executable bit set. This patch removes that.
2011-11-13 11:16:26 +00:00
Mark Liversedge
78c1923e57 Fix RideFileCache taking too long on dodgy files
When the samples in a ride file start from a large offset
e.g. 6hrs is the timestamp for the first sample. The
ridefilecache will compute bests over the initial 6hr
gap.

This patch adjusts the timestamps so they always start
from zero, but only when calculating bests -- it does not
modify the ride data.

We may want to consider 'automatically' fixing this during
ridefile reading, but for now this fixes a nasty bug that
causes GC to hog CPU for large periods of time when computing
the cache.

Fixes #510.
2011-11-12 20:29:53 +00:00
Mark Liversedge
bf0609f5e1 Linux/Win disable screensaver using VLC
VLC will disable the screensaver during playback. This patch
exploits this functionality bringing it in line with the Mac
builds.

One small nit remains; under Windows/Linux the screensaver
is only disabled if video playback is being used, whilst on
the Mac the screensaver is disabled whenever you are active
(e.g. on a basic workout or streetview).
2011-11-12 20:01:45 +00:00
Mark Liversedge
fb626e683f Add support for Tacx/RLV Workout (.pgmf)
The Tacx ergometer has a workout file format
(.pgmf) that is similar in concept to the
Racermate .CRS/.ERG/.MRC file format.

This patch adds support for this kind of
workout file.

Further work is required to support the .rlv
file format in order to support video playback
to match the user's speed (keeping the video
in sync as you ride).

In addition, for Turbos that do not support
variable load using gradient/slope we will need
to add an algorithm to approximate speed from
power/weight/slope.

Fixes #382
2011-11-12 18:30:56 +00:00
Mark Liversedge
5c05cc6572 Mac Video use GC_HAVE_LION
When compiling the Mac video stuff on Lion with SDK10.5
the code used a pre-processor directive to include code
based upon the max version allowed.

But if you are using an earlier SDK the max version allowed
is still higher, so instead we use the GC_HAVE_LION define
instead.

This change only really affects anyone on Lion or higher building
with an earlier version of the SDK.
2011-11-11 21:44:29 +00:00
Mark Liversedge
d83a74dc08 Show/Hide Sidebar toolbar button 2011-11-09 20:25:26 +00:00
Mark Liversedge
2de1160fe5 Windows/Linux (VLC) DVD Playback
Added the option to select "DVD" from the video/media
list to playback a DVD if one is present.
2011-11-09 18:16:08 +00:00
Mark Liversedge
0a1e3cd53b QTMovieView has autoresize enabled. 2011-11-09 15:57:45 +00:00
Mark Liversedge
27e8e81240 VLC --no-xlib on Linux
To avoid errors related to threading during video
playback.
2011-11-08 22:46:45 +00:00
Mark Liversedge
6b289dd750 Workout Plot remove gap on Load Curve. 2011-11-08 07:20:31 +00:00
Mark Liversedge
b9b1383cbb Allow smaller widths in tile view 2011-11-07 22:57:08 +00:00
Mark Liversedge
3e7c3025f2 Plot marker default color now Gray
Because black does not show up against a black background
(the default for a ride plot).

This was not a big issue, but it is used by the train view
as the color for the timer and results in black writing on
a black background.

This might be cool if you're in a band called Disaster Area
but not so cool if you want to ride your turbo.
2011-11-07 20:41:03 +00:00
Mark Liversedge
cefb69512c signpost toggle fullscreen is F11. 2011-11-07 19:52:44 +00:00
Mark Liversedge
2007759ca1 Fix play icon after stop pressed. 2011-11-07 19:06:12 +00:00
Mark Liversedge
ad046efc0c minor alignment fix in train buttons. 2011-11-06 22:42:22 +00:00
Mark Liversedge
e03f496811 ToolBar even more like Flare
The "tabs" of the toolbar are now offset to the right
and fixed with a specific spacing.

Similarly, the training view buttons are fixed to the
left.

This ensures that the "tabs" don't move as toolbar
buttons are added/removed.

This removes the flickery artefacts when moving away
from train view and also gets ready for more specific
buttons on the other views.
2011-11-06 21:24:26 +00:00
Mark Liversedge
9a12bdf8be Fix GcToolBar paint artefacts. 2011-11-06 21:02:42 +00:00
Mark Liversedge
053bd6ca69 Train View controls in Toolbar
Updated the realtime view (Train) to put the
realtime controls in the toolbar and removed
the old realtime controls chart.  They only
appear in Train view.

Additionally, the workout list and media list
are now in the sidebar under 'Workout Library'.

Finally, the first device configured is always
selected at startup, but this is a temporary
change until the realtime device wizard is coded
to set a default device.
2011-11-06 19:34:46 +00:00
Mark Liversedge
57c1102b50 Mac OS X Realtime Fixups
A few minor fixups for Mac OS X;

* LionFullScreen.mm compile issues resolved by introducing
  a new define in gcconfig.pri. This will hopefully go when
  issues with Qt and AvailabilityMacros are resolved. See
  DEFINES += GC_HAVE_LION in gcconfig.pri.in

* The buttons on the realtime controls are now set to GTK to
  avoid Qt constraints regarding spacing and format of
  QPushButtons. This will hopefully go when we move the controls
  to a task bar at the bottom of the screen.
2011-11-05 23:21:28 +00:00
Mark Liversedge
da6a2dc6d4 Further realtime improvements
A number of new features / enhancements;

* Display IF/TSS or Elevation/Grade in the controller
  when a workout is selected.

* Added buttons for forward/back which emulate the
  forward/back from a computrainer controller

* Added a slider to increase and decrease intensity/grade
  on-the-fly (during a workout), tied in with the
  computrainer controller's + and - keys.

* Unpicked the manualOverride code previously implemented

Mostly, or at least for this release, fixes #494.
2011-11-05 18:31:55 +00:00
Mark Liversedge
368aeba04d Remove Globals from ErgFilePlot
The original ErgFilePlot code used local static variables
to bridge between the selected ErgFile and the Qwt data
handlers.

This was not an issue when we only allowed one chart of this
type to be available at once. But now, with a more configurable
layout it is possible to have multiple.

The currently selected ErgFile can now be referenced from
MainWindow in the same manner as the current RideFile can.

This patch introduces no functional change for users.
2011-11-05 13:06:31 +00:00
Mark Liversedge
cd6e9df377 Fix slow startup of Train View on Windows
The train view video/media list is constructed by attempting
to parse any file found in the workout directory. This was
a strategy to avoid missing files with odd extensions that
could be processed by VLC and also to avoid needing to
maintain a list of common extensions.

In practice, this was very slow to process and quite annoying.
VLC would load large volumes of DLLs and Codecs when trying
to parse.

In addition, the most common file types /by far/ are from
a relatively short list i.e; .mov, .avi, .mkv, .mp4 etc.

The strategy is now adjusted to search for a common list of
file types, namely;

    3GP ASF AVI DIVX FLAC FLV M4V MKV MOV MP4 MPEG MPG
    MXF Nut OGG OGM RM VOB WAV WMA WMV

The filename is checked without case sensitivity, i.e. files
will match regardless of whether they are in upper or lower
case (or combination of upper/lower).
2011-11-05 00:53:37 +00:00
Mark Liversedge
2f51c730a1 Remove VLC debug output console on Windows
The libvlc options setup used --extraintf=logger, which
causes a debug console window to be opened on Windows.

This patch removes this since debug output is only of
value to developers and should not be in released code.
2011-11-05 00:37:59 +00:00
Mark Liversedge
0edbc5ef11 Reverse unwanted change to ErgFile::wattsAt() 2011-11-04 23:15:29 +00:00
Mark Liversedge
3ca9c14710 Workout (ErgFile) computes metrics
When a workout file is opened, the contents are used
to calculate the NP,xPower thru TSS/Bikescore values
for the workout.

This is in preparation for on-the-fly adjustment of the
intensity of a workout and displaying the target stress
load (TSS/BikeScore) the workout will produce.

No user functional change.
2011-11-04 23:09:06 +00:00
Mark Liversedge
c4f41447de Disable Screensaver on Mac OS X
Update training view on a Mac to disable the screen saver
and power saver when a workout is active.
2011-11-04 18:34:18 +00:00
Gareth Coco
6f913f118d Fix Windows LibUsb compile error
declaration of int rc was missing on Windows
since it was removed by the pre-processor.

This patch declares int rc before use.
2011-11-04 16:34:07 +00:00
Mark Liversedge
1e8b6edb62 Show kJoules, TSS/BikeScore et al on Train View
The refactoring of the realtime display last year
removed the display of metrics such as BikeScore and
kJoules.

This patch adds more metrics that can be displayed;
* Averages for; power, hr, cadence, speed
* KJoules of work
* Coggan Metrics; NP, TSS, IF, VI
* Skiba Metrics; xPower, BikeScore, RI, Skiba VI

Also included is an updated default layout to
include some of these metrics.

Fixes #231
2011-11-04 16:28:36 +00:00
Mark Liversedge
c977d8aba0 Metric/Imperial bug in Realtime
Display of speed and distance is in kph, regardless of
the unit of measure user preferences. This patch fixes
that.
2011-11-04 09:12:45 +00:00
Mark Liversedge
9691746be2 LibUsb does not have usb_reset on Windows
We call usb_reset between sessions on Linux/Mac
because the USB device is left in an undetermined
state after close. In the comments I noted that
it was odd this was not required on Windows.

Well, it turns out it is not available on Windows.
This patch ensures we do not try to call it when
compiling for Windows.
2011-11-04 08:42:40 +00:00
Mark Liversedge
04f2abd00e Add Support for FullScreen on Linux/Windows
Add support to toggle full screen mode on Linux
and Windows, in similar fashion to the recent
update for Mac OSX Lion.

A new view menu option to toggle full screen has
been added in lieu of the Mac titlebar icon on
either Win/Linux. Additionally, hitting Function
key F11 toggles fullscreen and hitting ESC whilst
in full screen also returns to normal.
2011-11-03 23:35:00 +00:00
Mark Liversedge
0a67ed1e01 LionFullScreen saga. Ugh.
Even if the C pre-processor will remove a class definition
in a header file the QT moc utility will still create a
moc_Xxxx.cpp file which requires the class to be defined.

As a result the attempt to create an empty header for the
LionFullScreen class when compiling on earlier versions than
Lion causes issues.

The LionFullScreen class is now always declared and defined
but will be not do anything useful on earlier versions of
Mac OS X than Lion.
2011-11-03 21:58:21 +00:00
Mark Liversedge
69a52f250d Fix HEADERS += LionFullScreen.h in src.pro
Temporary modification so non-OSX builds work (Linux/Windows).
The header was added to the main HEADERS += entry due to problems
with moc runs when added conditionally.

Will test on OSX and make further updates if needed.
2011-11-03 21:30:47 +00:00
Mark Liversedge
e9bfa20f08 LionFullScreen.h moc error on non-Mac
Because of a bug in qmake we add LionFullScreen.h to the
list of headers to ensure moc is called for the include.
When adding AvailabilityMacros.h to the header it needed
to check that we were compiling for a Mac.
2011-11-03 11:12:35 +00:00
Mark Liversedge
1f22545197 Fix MAC_OS_X_VERSION_MAX_ALLOWED
LionFullScreen used this macro to determine if the version
of the SDK is recent enough (Lion or higher).

Unfortunately, I forgot to also check if the OS was Mac OSX
and didn't include the correct header (AvailaibilityMacros.h)
to get the define. As a result all builds on anything other
than OSX Lion failed.
2011-11-02 20:50:46 +00:00
Mark Liversedge
0684eb48ea Mac OSX SDK10.4 CALayer.h 'slots' variable
The Cocoa header defines an array called 'slots'
that conflicts with the QT macro (which replaces it
with whitespace).

Re-ordered header includes to avoid the macro clash when
compiling on SDK10.4 or earlier.
2011-11-01 22:27:19 +00:00
Mark Liversedge
7bf516547b Mac QTKit Video OpenForPlayback conditional
Building for versions of OSX prior to Snow Leopard
fails since QTMovieOpenForPlaybackAttribute is not
available, this patch makes this setting conditional
on build support for OS X >= 10.6.
2011-11-01 19:55:47 +00:00
Mark Liversedge
8e92efbaf7 Ctrl-Cmd-F *toggles* fullscreen
Previous commit only cancelled fullscreen mode
when Ctrl-Cmd-F is pressed, but the common usage
is for the key sequence to toggle fullscreen
on and off.
2011-11-01 15:48:13 +00:00
Mark Liversedge
a09e2d1348 Support Control-Cmd-F to exit full screen
It is common for many fullscreen apps to use this command
sequence to exit full-screen (e.g. Chrome, Safari).
2011-11-01 15:41:40 +00:00
Mark Liversedge
bae9ce8bc1 Remove QTMovieOpenAsyncRequiredAttribute
So we can build on earlier versions of OSX. To improve
things a little since we will no get QuicktimeX without
this reference we now set QTOpenForPlaybackAttribute to
get at least some optimisation.
2011-11-01 15:08:27 +00:00
Mark Liversedge
2c08708c78 Fullscreen Support for Mac OSX Lion
Mac OS X Lion introduces support for fullscreen applications
and places a fullscreen button on the title bar and animates
etc.

This patch adds support for fullscreen mode. Since there is
no standard way of exiting fullscreen mode we have adopted
pressing the 'ESC' key, since this is inline with most of the
Apple applications (e.g. Mail).
2011-11-01 14:46:30 +00:00
Mark Liversedge
6ed5437ddb Fix memory leak in Video Window on Mac (QTKit)
Need to call QTMovie::invalidate before QTMovieView::setMovie to
ensure the mmap is deleted before allocating for the new one. This
fixes mmap errors when scrolling up and down a list of videos.
2011-11-01 10:42:52 +00:00
Mark Liversedge
4c3266d5dd Fix repaint() when resizing
When resizing windows in tile view the update is a bit
wonky when you have a video window on screen. The layout
code now repaints the entire homewindow when one of the
charts are resized.
2011-11-01 08:57:52 +00:00
Mark Liversedge
2c8a5347b4 Fix memory leak in Video Window on Mac (QTKit)
Need to call QTMovie::deallocate before setMovie to
ensure it is free'd by the QTMoveView.
2011-11-01 08:47:39 +00:00
Mark Liversedge
0f60badc82 Fixup QTKit Video Playback
Deallocate errors when scrolling through large numbers
of videos, but otherwise functional.

The redraw of the layouts needs to be looked at, since
there are some nasty artefacts when resizing the video
window that need to be fixed separately.
2011-10-31 20:56:48 +00:00
Mark Liversedge
09724e5796 Mac Video Playback via QTKit not VLC
Ghetto code with video selection and all the basic
building blocks in place. Playback is only via the
quicktime controls, paint issues abound and there
is a problem with deallocation of the movie object.

But the basic stuff is there, time to refine and iron
out all the little bugs.

Written whilst on hols in Gran Canaria :)
2011-10-30 22:35:23 +00:00
Mark Liversedge
482b2c32a1 missing break statement in virtual power calculation. 2011-10-26 22:59:12 +01:00
Mark Liversedge
cd2e02fb69 Tweak Virtual Power
If cadence is zero when calculating power then we
should set power to zero. Speed will not be zero
when freewheeling and therefore the calculation
will overstate power output.

Secondly, the NullController (for testing) did
not call the realtimeController post process
function. It does now so we can test the virtual
power calculation.
2011-10-26 22:18:37 +01:00
Mark Liversedge
8e9a93f50d Add virtual power for LeMond Revolution
The LeMond revolution trainer has been analysed in
some depth by Tom Anhalt and as a happy by-product
idenitfied the power/speed curve.

Since Darren Hague had already added the ability to
approximate power from Speed when training on a turbo
this patch extends that to include the LeMond device.

All the analysis Tom performed can be read over on
wattagetraining.com here:
http://wattagetraining.com/forum/viewtopic.php?t=335

Fixes #498.
2011-10-26 21:49:12 +01:00
Mark Liversedge
7cf3325351 use # not // for comments in src.pro 2011-10-26 16:09:27 +01:00
Mark Liversedge
9f161ea7a2 Support Garmin USB2 ANT+ sticks on Mac OS X
This update completes support for USB2 sticks for ANT+ devices
in train view. The code now works on Linux and Mac as well as
Windows.

IOKit is now a required framework for builds on Mac OSX and
src.pro has been updated accordingly.

I have also added a tarball of the required version of libusb
in a new 'contrib' directory. Users may wish to use a later
version or download from an alternative source, but this
version is guaranteed to work.

Fixes #310
2011-10-26 16:00:33 +01:00
Mark Liversedge
9b079f6c9b Support Garmin USB2 sticks on Linux
Fixup support for USB2 on Linux via libusb. The code
is pretty ghetto with a maze of pre-processor conditionals.
But it works.

Of special note:
* You MUST build with a very specific version of libusb, the
  stock libs in Ubuntu do not work. Might pull the code into
  the main repo, since its pretty darned tiny.

* On Linux access controls for the USB devices is controlled
  by udev, and requires a rule adding to ensure the devie can
  be read/written by users other than root. A udev rule file
  has been added to a 'linux' subdirectory in src.

Some of the timeouts and usb setup/reset code has been adjusted
to ensure the device is always in a consistent state. This appears
to be more important on Linux than Windows for some reason.
2011-10-26 02:29:10 +01:00
Mark Liversedge
85e9b8861e Realtime Controls tweak
Make the buttons expand to fit space, so as you resize
the controls the buttons increase in size.

This is a temporary measure as the controls are going
to move to the toolbar later anyway.
2011-10-25 00:11:35 +01:00
Mark Liversedge
b1d61ff5f8 Initial 'proper' support for Video Playback
The code to select media and then start/stop/pause
playback during a workout has been implemented.

This requires libvlc to be installed at compile time
and will also require Videolan (and desired codecs)
installed at runtime.

Since the main headaches are likely to be related to
deployment rather than coding this update has been
pushed for deployment support to be enhanced and
tested before closing the feature request on the
bug tracker.
2011-10-24 22:25:14 +01:00
Mark Liversedge
508b684746 Further SEGV on Server list
Ugh. Another SEGV related to removal of the
race server list.
2011-10-24 18:52:26 +01:00
Mark Liversedge
689e449c08 TrainingPeaks does not have a space in it
References to TrainingPeaks should never have a
space between the words Training and Peaks.

Modified at the request of our friends over at TrainingPeaks.com.
2011-10-24 18:38:36 +01:00
Mark Liversedge
a7bace68fb Fix SEGV in train view
Caused by removal of race server list.
2011-10-24 18:37:08 +01:00
Mark Liversedge
fc826ecc97 Improvements for Train View
The training view has a number of improvements, most
notable of which is the workout plot now plots the
telemetry as you ride. This enables you to view
your performance against the workout as you ride.

In developing and testing this I found and fixed a
number of other minor issues;

* The workout plot didn't have any axes
* The workout plot title didn't reflect the workout selected
* The workout plot markers didn't honour preferences
* Values didn't reset on stop/start of workout
* The rolling 30 second power plot in realtime was broken
* Lap numbers were not available for display

In addition, some minor changes were made;
* Save workout is no longer optional - it always saves
* The control buttons/margins did not resize nicely
* The workout plot uses colour to distinguish between
  workouts that are time or distance based.
* A new default train layout for new users to avoid
  having to muck about with layouts
* Removed the race servers since they are not used
  and steal screen estate. Will re-introduce when
  multi-rider or internet racing is implemented.

I have also added a few workout files into the
test/workouts directory, we should think about how
we can distribute these and allow users to share and
contribute them in the future.

Fixes #493.
2011-10-24 18:09:59 +01:00
Mark Liversedge
09a68d2c59 More Realtime colours
Ergfile plot matches and Distance is displayed
with 3 decimal places.
2011-10-22 22:08:34 +01:00
Mark Liversedge
c07156fa00 Realtime controls honour colors
The realtime control background now matches the rest
of the realtime charts.

This is a temporary measure before adding view specific
controls on the toolbar (see feature request 492).
2011-10-22 19:39:04 +01:00
Mark Liversedge
f2d47c4574 Realtime honours color settings
Updated the realtime plots and dials to use the colour
settings from the ride plot. So if you prefer plots of
light colours on dark backgrounds you can do this now.

The use of colour on the telemetry values makes it easier
to distinguish which value related to power et al .. especially
when you're pushing out that last max power interval.
2011-10-22 16:53:51 +01:00
Mark Liversedge
241f6a50d6 Add zooming on PfPv Plot
Now we adjust the axes for large values it is helpful
to be able to zoom into areas of the chart to look
at the 'bulk' of data (or perhaps even outliers).

This patch adds a zoomer;
* mouse select to choose zoom area
* right click to zoom back out
2011-10-22 12:56:26 +01:00
Mark Liversedge
5709b7e329 Tweak Split Activity Wizard
After feedback, the wizard has been tweaked so that;

* The default minimum gap to find is 1 minute
* The default minimum segment size is 5 minutes
* It is now possible to uncheck gaps in recording

Also, on a Mac the wizard style is forced to ensure
that a cancel button is available since the Mac
assistant style did not (you needed to press ESC).
2011-10-22 12:29:55 +01: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
6d92c204ba Fixup RideNavigator on Linux
Linux build using the 4.8 qt rc uncovered a couple
of bugs in the new ride navigator code. This fixes
that, but needs to be tested in earlier versions,
e.g. 4.6, 4.7.
2011-10-21 19:39:15 +01:00
Mark Liversedge
0d1ad15bf7 RideNavigator as a Window
You can now place a ride navigator on the chart layouts, this allows
the user to configure many more columns and use the navigator to
browse and order the activity history in a log/journal format.

The default diary layout now has two tabs; one for the calendar and
another for the activity history.

There appears to be a few minor bugs related to column/chart resizing
that have been present for a while, but are more obvious now the navigator
is a chart in its own right. These will be resolved later.
2011-10-21 18:43:24 +01:00
Mark Liversedge
cd58af530e missed off previous commit. 2011-10-18 18:55:10 +01:00
Mark Liversedge
be94534b66 SportTracks File Support
Added support for.fitlog file format. The reader
was written by Mark Liversedge and the writer
was written by Damien Grauser.

There is no support for manual workout files (either
exporting or importing) this can be introduced at a
later date.

SportTracks does not export speed or distance if GPS
data is available. Speed and Distance are derived from
GPS and time. This is sub-optimal and may result in
differrent values between GC and ST.

I would recommend using a common file format to exchange
data between GC and ST (e.g. TCX) to avoid these issues
with their native file format.

Fixes #481.
2011-10-18 06:46:28 +01:00
Mark Liversedge
550d054f35 Fixup reset layout
Moved to the view menu and initialised 'currentWindow'
to the analysis window on startup to avoid a SEGV if
you reset the layout without having ever switched views.
2011-10-17 20:10:29 +01:00
Mark Liversedge
27c056ad20 Merge branch 'resetlayout' of git://github.com/glonnon/GoldenCheetah into release_3.0.0dev 2011-10-17 19:59:44 +01:00
Mark Liversedge
f3af380ff1 Fix interval highlighter when no power
The interval highlighter on the ride plot
uses the same axis as power, but if no
power is present in the activity the axis
is hidden, and therefore so is the interval
highlighter.

This patch will set the interval highlighter
curve axis to one that is in use.
2011-10-17 19:50:31 +01:00
Greg Lonnon
adba64578b added reset window layout to all the HomeWindows. 2011-10-16 19:22:42 -06:00
Mark Liversedge
d9996c599d Tile Resizing Snaps to Grid
By making the grid 'relatively' small snap to grid feels
quite acceptable as a standard way of resizing, alleviating
the need to make it a user preference.

The old 'smooth' resizing was a pain to get things lined up
nicely and thus is deprecated in favour of this scheme.
2011-10-13 21:47:02 +01:00
Mark Liversedge
6f116ab07d File Export (part 2 of 2)
Added a function for Batch Export of current
activity history. The user can select files
to export, the target directory and format to
use.

This completes the updates to improve export
functionality.

Fixes #476.
2011-10-12 18:00:58 +01:00
Mark Liversedge
cc0fbdf47d File Export (part 1 of 2)
The export functions in mainwindow are getting quite
cumbersome with multiple menu options.

This patch creates a single menu option "Export.." which
allows the user to select a supported format and a filename.

To support this the ridefile reader code needed to be adjusted
to allow registered readers to declare capability to write and
use a consistent (virtual) method to do so.

By modifying the base class for ride file reader we now allow
new readers to register both read and write capability.
2011-10-12 14:19:14 +01:00
Mark Liversedge
da90450d12 Update .gitignore
* ignore qrc_RideWindow.cpp (compiled from RideWindow.qrc)
* ignore VLC log files (vlc-log.txt)
2011-10-12 14:17:50 +01:00
Mark Liversedge
457260a3dc Build Config Fixups
We ask for phonon in src.pro, but it is NOT required, this
is because the video playback was rewritten to use the vlc
libraries.

Additionally, the build.pro now asks for ordered builds to
ensure the qwt libs are built before src is started. This is
useful when performing builds with multipe jobs (make -j n).
2011-10-12 09:46:40 +01:00
Mark Liversedge
bb20895df5 Summary fixups
* Show time in zone as a percent
* Annotate heading to show units

Fixes #473.
Fixes #474.
2011-10-11 21:52:19 +01:00
Mark Liversedge
7915978916 Better device type handling for WKO+ files
We now recognise more 'device types' in the WKO+
parser. This patch sets the devicetype for these
instead of just defaulting to 'WKO'.

* 0x00 - Powertap (for v1/v7 WKO+ files)
* 0x0E - Ergomo
* 0x1A - SRM (is actually a PC 6)

Additionally, the device type is set to WKO (xx)
when we get a device type we do not recognise to
make it easier for users to report.
2011-10-11 13:14:59 +01:00
Mark Liversedge
2285b4683f Fix WKO+ iBike import
Fixed the iBike import. The recent commit removing the
different pausetime length for iBike had a logic error.

The iBike files are no different to any other device
and by treating gaps in recording the same as all other
devices we can now successfully parse all iBike WKO+
files.

There are still 3 files amongst the 7,000 WKO+ files I
have received that fail to parse successfully.

I will look to validate these files with WKO+ since they
may be corrupted.
2011-10-11 11:55:18 +01:00
Mark Liversedge
107ba0ff99 WKO+ iBike fixup was wrong
reverted after testing against more files. There is something
decidedly odd about WKO+ files from iBike computers. The scheme
used to mark pauses in recording is different, but cannot work
out why.
2011-10-11 10:29:39 +01:00
Mark Liversedge
d7faa76e2c missed off previous commit 2011-10-11 09:46:14 +01:00
Mark Liversedge
64bdc87d74 WKO+ file reader further fixups
Two minor modifications;

* iBike files now parsed correctly (they
  where handled as a special case that was
  not warranted)

* Some rudimentary bounds checking whilst
  parsing the raw data to reduce SEGV crashes
  when parsing fails / is incorrect.
2011-10-11 09:43:12 +01:00
Mark Liversedge
0fc18dc891 Retain intervals when splitting rides
Will keep all intervals that start within a split
but will truncate for intervals that are longer
than the split so we keep any 'Lap markers'.
2011-10-11 09:24:44 +01:00
Mark Liversedge
9211523440 Improved Split Activity Wizard
Updates to the version 3 split activity wizard to bring it
back in line with the original v2 functionality;

* Splits at markers, rather than extracting intervals
* Shows a small plot to show the split visually
* Will automatically mark gaps rather than work between gaps

This will not be backported to v2 since the functionality
is working, albeit difficult to understand for this casual user.
2011-10-10 20:06:17 +01:00
Mark Liversedge
dfaf151eab Check Date/Time unique
Issue a warning if the user changes the ride date/time
to the same as an existing ride.

They can still go ahead, but when saving it will overwrite
the existing file.

Fixing the save routines to check would require significant
refactoring and can be fixed at a later date.

Fixes #466.
2011-10-06 19:50:37 +01:00
Mark Liversedge
95b00bedf7 Use old split ride for now
Split ride is a bit of a radical change from the
original; more thought is needed to ensure the
original functionality is retained whilst making
the UI and workflow intuitive.

This patch reverts MainWindow back to using the
old SplitRideDialog.
2011-10-06 19:18:55 +01:00
Mark Liversedge
d63db7bc7a Fix Split Ride file loss bug
In some instances split ride will refuse to overwrite existing
ride files (where they have the same date/time). This patch
increments the start time by one (or more) seconds to ensure
there is no conflict.

Fixes #165.
2011-10-06 19:08:34 +01:00
Mark Liversedge
cadb9421ab Split Activity Wizard
A new wizard to walk the user through the split
'ride' feature. It allows the user to control
the removal of the original and the minimum
gap size and segment size (when searching for
points at which to split the ride).

It also allows the user to select segments and
intervals to split and displays the actions that
will be performed to allow the user to confirm
processing.

if a new activity conflicts with an existing
activity the start time is incremented (by a
second or more) to avoid data loss.

Aside from removing the current ride it is now
impossible to overwrite or lose existing data.
2011-10-06 13:56:05 +01:00
Mark Liversedge
b68cee3de5 Fix Train mode SEGV in Course/Ergo Mode
If you select an erg file then choose ergo/slope
mode in train view the workout plot will crash
when the sidebar is hidden / window resized because
the workout plot is still referencing an ergfile
that has been deleted.

This patch ensures the workout plot is notified that
NO ergfile is selected thus clearing the plot and
also ensuring no reference to the deleted ergfile
remains.
2011-10-02 11:00:20 +01:00
Mark Liversedge
16689f5deb Pushed wrong version in previous commit
Nothing major, just the window sizes were a bit wonky.
2011-09-30 21:24:44 +01:00
Mark Liversedge
7638f3f068 Fix default train layout
The default train-layout.xml adds a controls widget
that references the streetview window. This patch
modifies it to reference the new window id.

In hindsight, we should not have renumbered the chart
ids when introducing the streetview patch, but its out
there now and at least this fixes it for new users.
2011-09-30 21:20:13 +01:00
Mark Liversedge
81f0fcdf5d Notes in WKO file format v1
For some reason the code for setting notes
in v1 WKO files was commented out, this patch
reinstates notes for this version, but will
not get Workout Code since it is not available
in this file format.

Also removed a duplicate switch statement where
sport was being set twice for some reason.
2011-09-27 21:18:16 +01:00
Mark Liversedge
5ac546c827 Minor fixups for RideSummaryWindow
Checking for blank values for metricColumns, and
intialising to default if no columns are selected.

Attempt to resolve bug report 445.
2011-09-27 12:47:16 +01:00
Mark Liversedge
e3f5dc5e98 WKO+ File sanity checks and fix v12 support
Fixed parsing of v12 files which contain ride graph
horizontal gridlines. This brings the code back into
line with all other versions and suggests the parsing
of v12 files is now robust.

Also added some sanity checks to avoid data integrity
problems;
* Magic number is correct 'WKO^Z'
* File isn't too small
* Start time is zero, will adjust if not

All files from a collection of 2,500 have been parsed
successfully and/or handled gracefully.

There is still a chance the parser will crash with a
malformed file or a protocol we haven't seen before,
but these checks protect other parts of the code.

Code comments have been adjusted to reflect the current
state of the code, which is much better after the
recent refactoring.
2011-09-27 12:09:40 +01:00
Mark Liversedge
d193512f7c Formally support v7 WKO+ Files
This patch removes the invariance for the graph tab and
uses the same protocol as v1 reliably. This has been
tested against 600 files without error.

All popular formats of the WKO format are now supported,
the warnings for v7 have therefore been removed.
2011-09-26 21:42:34 +01:00
Mark Liversedge
7719b0f953 WKO+ Improved Support for v7 files
Having just recovered almost 900 v7 files I have
improved the code to support this file format. I
now have 4 files quarantined (that cannot be
parsed successfully) from a corpus of over
2,500 WKO+ files.
2011-09-26 20:42:44 +01:00
Mark Liversedge
c055c55ca3 Finalise full support for earlt WKO+ file formats
With over 500 files now processed successfully for
early versions of WKO+ (Cycling Peaks) we can now
support v1 and v12 of the WKO file format.

This means we now offer full support for;
* CP 1.0 and 1.1
* WKO+ 2.2 and 3.0

The warning message has been removed and problems
related to parsing the 'graph' tab settings in v1
files is now fixed.

We need to see more v7 files (quite rate) before we
can move that version out of beta support. Looking at
the code it is unlikely that the v7 support is very
robust, but until we have more files to test this is
as good as it gets.
2011-09-26 17:40:29 +01:00
Mark Liversedge
f7f4a4c344 Wko+ bitsize change lost
Re-instate Altitude bitsize for earlier version that was
undone in previous commit. This was a fixup posted in a
recent push that I reversed, but further testing showed
that the original fix was in fact valid.
2011-09-26 12:02:56 +01:00
Mark Liversedge
3d03580bfb Fix recIntSecs in Wko reader
Fix bug 1s time increment bug introduced in recent
commit and replaced with a safety net check for
daft values for recIntSecs which examines the ride
file looking for the most frequent recording gap
and uses that.
2011-09-26 11:17:48 +01:00
Mark Liversedge
be0ce6b611 Merge branch 'streetmap2' of https://github.com/glonnon/GoldenCheetah into release_3.0.0dev 2011-09-25 19:35:47 +01:00
Mark Liversedge
8ddabfb6ec Improved WKO+ file support
Refactored to improve support for files created
in earlier versions of WKO/CyclingPeaks. The
changes are largely focused on parsing charts
and caches that we don't really use, but need
to be waded through to land on the data points.

This has been tested on over 1,500 WKO+ files
and found to be ok for those. Further regression
testing would be beneficial.

Better support for;
* Running / Swimming files (different chart setup)
* Where users have customised the default charts
* Earlier versions of CP/WKO+ (esp v1 and v12 format from CP v1.1/1.2)
* Latest versions (v3.0)

Specifically;
* Better support for WKO file formats v1 and v12
* Fix parsing of distribution caches and config
* Improved parsing of MeanMax caches and config
* Support for Suunto devices added
* Support for files with no time data

Fixes #457.
2011-09-25 19:27:36 +01:00
Mark Liversedge
2cb07528a8 Refactor WkoRideFile reader
No functional change, but fixed up some of the coding nits
in the WKO+ ride file reader.

References to static variables removed (for thread safety)
References to global WKO_HOME variable removed (multi athlete)
WkoParser class introduced (for further code refactoring)

Updates are pending for more robust parsing when users have
customised charts or the files contain running/pace charts
since these tend to cause a crash at present.
2011-09-24 15:09:55 +01:00
Greg Lonnon
af18bc83cf Added Map and StreetView charts to the TrainTool.
Following changes
* added google Map and Streetview charts.
* changed the telemetryUpdate to use a const reference instead of a value.
* RealtimeData is const correct, or more const correct than it was...
* added a new resource files to support the new charts.
* changed the NullController to return a constant speed to help with development.
2011-09-20 20:29:31 -06:00
Greg Lonnon
4c126d9658 workoutwizard: fixed the LAP feature in mrc and erg files
Signed-off-by: Greg Lonnon <greg.lonnon@gmail.com>
2011-09-19 07:30:42 -06:00
Greg Lonnon
8f7670d93b realtime mode: during a workout, if the +/- keys are hit during a workout,
then the rider is able to control the controlller manually.

When the next Lap marker is hit, the workout continues.

Signed-off-by: Greg Lonnon <greg.lonnon@gmail.com>
2011-09-19 07:30:42 -06:00
Mark Liversedge
22a43f000d Smart Layout in Tile View
The tile view will now layout the charts in a more efficient
manner. It still attempts to run from top to bottom and then
left to right when laying out charts, but now, if there is
any space and the chart will fit in it, it will be moved.

This means you can layout the view with smaller charts surrounding
or to the left of right of a larger one. This is particularly
useful when looking at say a large summary window with a smaller
map and a route profile etc.

It can be a little disconcerting however, since charts will
suddenly 'disappear' when you resize them -- of course they
don't disappear they just move to a space that can accomodate
them.

We could make 'smart' layouts optional if users get thrown by it.

Lastly, fixed a bug when resizing charts -- if they move position
when resizing then the delta (size change) is miscalculated. This
is avoided now by ending any resize action when a chart moves.

Fixes #453.
2011-09-17 16:01:53 +01:00
Mark Liversedge
27845a9341 Bubble popup support for Vertical Orientation
Adds support for bubble popup to appear in
vertical orientation with tick at bottom
or top.

Getting ready for activity bar.
2011-09-11 00:55:56 +01:00
Mark Liversedge
9a6e14e399 Activity Popup Bubble
A popup bubble when hovering over the activity
history or an entry on the calendar.

It is a pre-cursor for the activity bar for
selecting rides and is available for any
widget to call (it is a member of mainwindow).

To support the data series indicator icons a
new metadata field 'Data' has been added to
store a string to represent the data series
that are present.

In addition, the Sport code is used to decide
if a bike/run/swim icon should be shown instead
of a string (but needs translation support when
we get round to that).

Lastly, it has been coded for horizontal alignment
but will need to be updated for the activity bar
to support vertical alignment.

This is an experimental feature and will develop
over time, specifically;

* you cannot define which metrics are show in the
  bubble -- they are hardcoded at present

* the coloring is hardcoded, as is the font size

* Only the activity list and diary use it.
2011-09-10 22:36:13 +01:00
Mark Liversedge
b2fb4b40ed Fix possible SEGV in RideSummaryWindow
Added logic to trap for NULL RideMetricPtr. Shouldn't
occur but trap all the same.
2011-09-10 14:18:34 +01:00
Mark Liversedge
9160501815 Fix RideSummaryWindow crash
Fixups for QStringList introduced a new bug
by referencing Time In Zones for HR zones
9 and 10, when in fact they do not go any
higher that 8.

They also were not computed because the
worklist used was updated to include any
HR metrics when the ride is dirty (e.g.
when selecting intervals on ride plot or
updating the metrics within metadata).
2011-09-09 19:10:23 +01:00
Mark Liversedge
a8a91022b8 Revert "SplitRide overwrites existing file"
This reverts commit c3cfccdfb8.

Small risk of data loss, reverting to previous behaviour.
2011-09-07 06:59:53 +01:00
Mark Liversedge
bf5353c508 Code hooks for activity tooltip bubble
No functional enhancements, just adds the code
hooks for triggering a bubble 'popover' when
hovering on the ride list or calendar view.

Will be connected to the popup balloon once
the code for that is complete.
2011-09-05 18:02:48 +01:00
Mark Liversedge
ade6c618c6 Convert RideSummary to use QStringList
Original code had a bunch of char[] and we have
experienced problems with libc on Windows with
char array allocation in the past.

Since we have QStringList (which is threadsafe)
available to use then we should!

This may correct bug report 445. Will wait for
feedback before closing it.
2011-09-05 16:36:41 +01:00
Mark Liversedge
2b45677971 Fix Summary SEGV no summary metrics and dirty file
If you clear all summary metrics and update the activity
ride summary will crash looking up a metric with name
"" which does not exist.

Fixes #449.
2011-09-05 16:03:00 +01:00
Mark Liversedge
de9c5b5883 Fix setByDistance bug in allplot
setByDistance was not being honored in allplot upon
startup (setting properties). Similar bug to those
affecting grid, stack etc.
2011-09-05 15:37:31 +01:00
Mark Liversedge
a07c75f567 Reinstate Colors on Calendar
The background color on the calendar now reflects
the color configration.

The color for each ride is precomputed and stored
in the metricDB (so we don't have to scan the ride
everytime we need to determine its color).

As a happy by-product the ride navigator no longer
scans the text to determine the row color and is an
order of magnitude faster when repainting (although
most users are unlikely to notice in practice).

Fixes #448.
2011-09-05 10:54:40 +01:00
Mark Liversedge
574a4c2905 Fix CP chart SEGV when season deleted
If the season selected is deleted then upon restart
the CP plot will crash (iSeason <0).

Fixes #446.
2011-09-04 15:43:15 +01:00
Mark Liversedge
2c0dd6a45d Allow show any widget in GcToolBar. 2011-09-04 14:23:44 +01:00
Mark Liversedge
3deef1a51b WorkoutPlot reduce whitespace margins. 2011-09-04 14:23:22 +01:00
Mark Liversedge
52c2391c75 More compact controls
The controls in the sidebar are inconsistent; the interval
selector has no spacing or border for a clean look.

This patch updates LTMTool and TrainTool to be more
efficient with the limited space.

A more extensive update is still required to unify all the
chart controls look and feel and get rid of the clunky
layouts with ugly wide buttons.
2011-09-04 01:42:36 +01:00
Mark Liversedge
9cd0212097 Pretty Toolbar
Fixups for a GC toolbar and the first pass at trying
to make the look and feel more professional. Whilst the
overall usefulness of the toolbar is moot, the grpahics
show the way for greater attention to detail.

Specifically;
* The sidebar should adopt a similar look/feel
* Chart title bars should adopt a similar look/feel
* Sidebar panes should be unified with the same look
* The style selector needs to move - it is cluttering
  up the general clean look.

The code is a little ghetto in places, but will fix up
as the cosmetics are sorted.
2011-09-04 00:19:26 +01:00
Mark Liversedge
eb34bfbbb0 Activity Intervals rename
The Best Intervals and Laps should really
be called Activity Intervals.
2011-09-03 17:15:32 +01:00
Mark Liversedge
44205ae625 Extended Help menu
To add User Guide link to the wiki, and another
to log a bug.
2011-09-03 17:10:45 +01:00
Mark Liversedge
04f8752506 MainWindow help in local browser
The help options links to the wiki page but opens a
QT webkit window. This is so rudimentary it is almost
of no value.

This patch instead opens the wiki in a local browser
session. Thus it will use Firefox, Chrome, IE etc.
2011-09-03 16:47:00 +01:00
Mark Liversedge
3de45ab7a7 AllPlot select left-click in stacked view
Missed off in the patch to swap zoom and select
mouse actions in LTM / AllPlot.
2011-09-03 12:17:09 +01:00
Mark Liversedge
f549006627 Swap Zoom and Select on LTM/Ride Plot
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.
2011-09-03 11:13:45 +01:00
Mark Liversedge
0da64bb85e User definable value list for Metadata fields
The user can now define a value list for the metadata
fields. This means for codes like 'Sport' they can define
values like 'Bike', 'Run', 'Swim'.

The input box uses a popup Qcompleter and will only warn
if the entry is not one of the pre-defined values (i.e.
it is not a MANDATORY list).

Fixes #444.
2011-09-03 10:59:06 +01:00
Mark Liversedge
a0e52ff979 Mainwindow Menu Alt-A Alt-A clash
The Alt-key combination for the Athlete and Activity
menus were both set to ALt-A. This patch changes them
to Alt-A for Athlete and Alt-C for aCtivity.
2011-09-02 20:51:44 +01:00
Mark Liversedge
c3cfccdfb8 SplitRide overwrites existing file
Fixes #165.
2011-09-02 18:19:23 +01:00
Mark Liversedge
f777ada39f Start to use consistent terminology
* Rides are now Activities
* Cyclists are now Athletes

This is just a first pass, no doubt many more
lurk within the codebase. Will raise a defect
to cover the remainder.
2011-09-01 21:48:51 +01:00
Mark Liversedge
95cbb0fbdc Choose Athlete not Cyclist
The Choose Cyclist Dialog now has a title bar
'Choose an Athlete' not 'Choose a Cyclist'. Missed
in previous commit.
2011-09-01 21:34:40 +01:00
Mark Liversedge
800df84200 Be consistent 'Athlete' not 'Cyclist'
Although the codebase refers to 'cyclist' in a number
of different ways (classes, setting names, class members)
we should always use 'Athlete' when prompting the user.
2011-09-01 21:07:58 +01:00
Mark Liversedge
df6a44ca83 Workout Controls for Train View
Fixes broken controls on train view, so we can now start stop
with the sidebar hidden and also adjust the settings for the
realtime dials on the layout.

Will need to think about saving the properties of the controls
to use last used settings.

Fixes #439.
2011-09-01 20:59:03 +01:00
Mark Liversedge
9a097980c1 Maximum Max replace in RideSummaryWindow 2011-09-01 19:50:22 +01:00
Damien
1d3193375f Add a Maximums column in the ride summary
Add maximums to the ride summary, which also required adding
max_speed and max_cadence to the basic ride metrics.

Fixes #440.
2011-09-01 19:08:53 +01:00
Mark Liversedge
26dc898632 metadata icon, missed off previous commit. 2011-08-31 21:51:20 +01:00
Mark Liversedge
70c371d982 Add Activity Details to Sidebar
The metadata information is now shown within
the sidebar.

We need to implement a mechanism for the users
to configure the sidebar widgets etc pretty soon
now, since this update is useful, but the sidebar
is getting crowded out.

Minor changes to ridemetadata to allow a 'single
column' view, but mostly all the widgets were
already instantiated so there is no real cost
to this update.
2011-08-31 21:11:49 +01:00
Mark Liversedge
26a0c98028 Hide 3d plot when bad data
If the model plot cannot be refreshed when data
is invalid, the plot needs to be hidden since the
qwtplot3d api does not redraw empty plots and does
not have any methods for clearing the canvas.

This workaround just hides the plot and shows a label
when the plot is invalidated.

Fixes #429.
2011-08-30 22:01:43 +01:00
Mark Liversedge
eb45055ea4 Reinstate View and add Window menu
View menu reinstated to allow users to show
or hide the toolbar and sidebar as well as
select layout views; home, analysis et al.

Also added a window menu option to switch
between the current open windows. This is
particularly useful if the other windows
are on another virtual screen.

Fixes #367.
Fixes #29.
2011-08-29 19:53:35 +01:00
Mark Liversedge
ac88659b9e Add Zoom to Interval on Maps
Can now zoom to a specific interval on the map views;
* Google Map
* Bing Map
2011-08-29 13:01:53 +01:00
Mark Liversedge
fb3ce4b2f4 Zoom Interval in Aerolab
Re-instated zoom interval. It 'unzooms' when
the interval selection changes, which is no change
on version 2.1, but feels a bit odd.
2011-08-29 11:27:37 +01:00
Mark Liversedge
9d9619ef40 Re-instate zoom interval in MainWindow/AllPlot
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
2011-08-29 11:08:06 +01:00
Jamie Kimberley
d68e27390f V3-force use of no elide and scrollbars in tabbed view
depending on the style used on a given system the text in the tab bar for
selection of different charts (summary, ride plot...) may be elided on
screens with small resoulution.   This overrides the use of scrollbars
which is was set explicitly in the v2.x code. this patch forces
the use of non-elided text in the the tabs so that scroll bars appear
regardless of the defaults for a selected style.

Fixes #433.
2011-08-28 23:07:55 +01: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
407517f2cf Stacked View honours Chart Controls
Amazingly, the stack plot does not honour the chart
controls. If you select ony a single data series it
will still display all series.

There was a //XXX 'todo' placeholder in the code for
this which has now been completed.
2011-08-28 10:08:37 +01:00
Mark Liversedge
a343afd1c5 Fix AllPlot smoothing property
Fixes AllPlot to use the chart properties for smoothing
rather than overriding with application settings (old
way of saving state in v2 and lower).
2011-08-28 00:38:35 +01:00
Mark Liversedge
fecc9a5a8c Fix FitRideFile for header change
The header size in FitRideFile has increased from
12 to 14 bytes, but the new field is at the end of
the header, not in the middle.

Additionally, there is a new global record (79) which
we now silently ignore.
2011-08-27 23:50:32 +01:00
Mark Liversedge
26ce814e0d Merge branch 'pc7' of github.com:rclasen/GoldenCheetah into release_3.0.0dev 2011-08-27 22:39:29 +01:00
Mark Liversedge
5cfd1f9793 More configurable Ride Plot
Enhanced ride plot;

* Curves can be shaded (this is particularly
  useful when only selecting a single curve)

* Span slider can be hidden (this is useful
  when you want a 'smaller' plot, e.g for a
  single curve, but multiple plots on tile view)

* Curve selection is set/unset from properties.

There is a repeated 'meme' with regards the ride
plot checkboxes for data series (hr, cad etc). They
are to choose the series to display and NOT to show
which series are available.

If you choose to display HR and HR is not present in
the ride file it is still VALID to set the checkbox,
but of course nothing will be plotted. In this way, you
can define a chart for a specific data series and it
will display whatever is VALID as you select different
rides.
2011-08-27 22:27:20 +01:00
Rainer Clasen
3d0626b685 use new srmio error reporting
hopefully we'll get more helpfull error reports due to more detailed and
unique error messages.
2011-08-27 23:05:24 +02:00
Rainer Clasen
ee92f9b973 Download: provide end time for ride blocks
for better guessing in preview ,)
2011-08-27 23:05:24 +02:00
Mark Liversedge
c39efb2a59 Distance 2 decimal places
Aligning to recent patch to increase decimal
places when selecting an interval, this now
sets the decimal places to 2 for distance when
displaying the metric (e.g. summary, interval
summary)
2011-08-27 18:20:39 +01:00
Mark Liversedge
e1ee78ac7c Fix AllPlot delete ride crash.
Fixes #431.
2011-08-27 17:19:54 +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
f5020cd85d Use CascadingResizeSections in RideNavigator
Makes resizing columns smoother and more intuitive.
2011-08-27 10:10:14 +01:00
Mark Liversedge
f699b5f01c Fix ErgFilPlot axis setting
When you select an ergfile the axis for the workout
plot is not set, this often results in a plot with
large amounts of white space to the right of the plot.
2011-08-27 09:48:34 +01:00
Mark Liversedge
deffbcc52a Support FR310xt latest firmware
Fit file format can now have a 12 and 14 byte header. This
patch adds support for 14 byte headers since this is required
by the latest 310xt firmware.

Fixes #430.
2011-08-27 09:05:04 +01:00
Mark Liversedge
a3fa6e861c Plot Cosmetics Update
Update to a number of plots to align with
the flatter, less cluttered chart style
used elsewhere (Ride, Histogram, CP et al).

Changes made are purely cosmetic and apply
to:

* Aerolab
* HrPw
* Realtime, ErgFile
* Weekly Summary
2011-08-26 19:22:04 +01:00
Mark Liversedge
456a2164fa Fix set CdA from slider
Merge error removed the update of the cda lineedit
from the slider. This patch puts it back.
2011-08-25 20:07:32 +01:00
Mark Liversedge
2975b15f9a Increment MetricDB version for PeakPwrHr update. 2011-08-24 06:43:29 +01:00
Damien
98ccf5b3a6 Correct bug in the peakPowerHr formula 2011-08-24 06:41:39 +01:00
Mark Liversedge
1debc38e98 Eradicate QGraphicsDropShadowEffect from HomeWindow
Left in by mistake and is to blame for the
QTabBat redraw issues and add chart crash.
2011-08-23 22:40:51 +01:00
Damien
55d1a42e3a Aerolab : Change LCD display to LineEdit
Also fixes v3 crash when changing CdA.

Fixes #423.
2011-08-23 22:40:06 +01:00
Mark Liversedge
3fd2448893 Fix Style selection change resize bug
The previous commit hide/show of QTabWidget caused
an errant incremental resize of the tab widget. Not
at all sure why, but this fixes it.

We may want to move to a QTabBar and manage the stack
of widgets separately as QTabWidget seems to be displaying
some weird behaviours.
2011-08-23 22:13:25 +01:00
Mark Liversedge
ad7683bce6 Avoid QTabWidget setUpdatesEnabled bug
For some strange reason, if you startup in tiled
view and switch to tabbed view then back to tiled
view QTabWidget didn't honour setUpdateEnabled
for the QTabBar.

There is a related QT BUG number 9010 that seems
related to this but was closed without being fixes.

We hide/show the QTabWidget in HomeWindow during
a style change and it seems to avoid the screen
flicker issue.

Weirdly, if you startup in Tabbed view the problem
does not occur. It is possibly caused by having a
QTabWidget with no tabs before calling show().

Either way this patch gets 'around' the issue.
2011-08-23 20:21:21 +01:00
Mark Liversedge
f3ebe6a93d Fix HR Zone summary bug
When you do not have a CP/Zones setup for power
the ride summary does not show the HR zone summary.

Fixes #427.
2011-08-23 11:35:54 +01:00
Tom Weichmann
55d6ae85bb New ints show mph and mi + extra digit for dist.
Fixes #424.
2011-08-23 09:56:47 +01:00
Mark Liversedge
949a6dd1a0 HomeWindow block updates on rideselected
By blocking updates when a ride is selected through
to all the charts being updated we optimise the display
and reduce 'flicker'.
2011-08-22 22:04:59 +01:00
Mark Liversedge
80c51ef246 Change style turn updates off
When changing from tab to tile view the updates
are processed during the transition. This is ugly
and unneccessary.

This patch turns off updates during the transition
and then refreshes at the end. As a result it is
faster and you don't see nasty transitions to the tab
bar.
2011-08-22 21:54:30 +01:00
Mark Liversedge
11aab40806 Remove Ugly Frame in 3d Plot
With v3 we have removed the sunken frames on
all the plots to make for a cleaner 'flat' feel
to the charts. The 3d plot has now been adjusted
to be in line with the rest of the plots.
2011-08-22 21:47:44 +01:00
Mark Liversedge
09b469123a Add qwtplot3d instructions in INSTALL-LINUX 2011-08-22 21:27:49 +01:00
Damien
1d71c3c055 Modify Aerolab to add interval highlight and zoom + auto offset
[cherry picked commit 0c7abe from master into release_3.0.0dev]

Needs zoom to interval reinstated, which was lost in the v3 refactor.
2011-08-21 22:42:10 +01:00
Mark Liversedge
23a969c752 Fix Macro device data crash
If you attempt to download from a Macro device
and use wrong device or initial read fails then
it crashes, this patch fixes that.

It does not fix more general data errors but should
at least mean incorrect user selections do not result
in GC crashing.

Fixes #366.
2011-08-21 21:14:03 +01:00
Mark Liversedge
e55ed50418 Check Duplicates when importing rides
When importing a ridefile we have never checked that the
same ride (date/time) does not already exist but in a
different ridefile format.

For example, importing a TCX file when a .RAW file already
exists for the same date/time causes conflicts with the
.cpx and .notes file (it is not possible to distinguish
which ridefile the notes/cpx file belong to).

Fixes #389.
2011-08-21 14:43:13 +01:00
Mark Liversedge
e54e8c9cfe Missed off last commit. 2011-08-21 14:42:35 +01:00
Mark Liversedge
80bfe6b6cd Remove unneccessary methods from MainWindow
A couple of members in mainwindow should have been
removed a while back (chartFoundry trying to fix
add chart crash) and getSplitter (hack for resizing
the sidebar).

This patch removes them. No functional change.
2011-08-21 11:35:20 +01:00
Mark Liversedge
8c65721333 Reinstate CP/AWC CP curve parameters on CP plot 2011-08-20 17:24:06 +01:00
Mark Liversedge
79c915d649 Fix exit Warning dialogs
The warning dialog for unsaved files does
not appear on v3. This patch fixes that.

Fixes #417.
2011-08-20 16:26:08 +01:00
Mark Liversedge
cedfea007a Honour Show grid property
AllPlotWindow sometimes resets/ignore changes
to show grid. This patch fixes this.
2011-08-20 12:16:48 +01:00
Mark Liversedge
ebe96d3a38 Fix AllPlot Smoothing
The AllPlot smoothing algorithm is coded to smooth
to a sample rate that is /higher/ than the sample
rate within the ride.

As a result, when a shorter smoothing rate (e.g. 1s)
is a applied to a ride with a greater sample rate (e.g. 5s)
the algorithm breaks down.

This patch ensures that smoothing is only performed when the
smoothing rate is greater than the ride sample rate.

Fixes #416.
2011-08-20 11:27:27 +01:00
Mark Liversedge
2ae255b2f0 Fix title edit when no charts on HomeWindow
Fixes #409.
2011-08-19 17:57:43 +01:00
Mark Liversedge
7412b9a49e Diary Window now uses HomeWindow Layouts
Now uses a homewindow 'layout' for the Diary view.
This means you can drag and drop other charts onto
the diary view and resize the calendar etc.

Planning functions will belong here eventually but
this patch is just to tidy up the UI a little to
make all the views configurable.
2011-08-18 21:34:56 +01:00
Mark Liversedge
e7bcaa2b25 Add VAM to CP curve
Very basic start, this will now let you plot
VAM on the CP curve. VAM is a measure of climbing
speed and for comparative purposes should be
normalised to the slope climbed.

In this first pass of implementation the VAM metric
is not normalised in any way. It merely represents
the climbing rate, in meters per hour, that was
sustained over each time interval from 5mins to the
ride duration.

If the ride is undulating then only ascension is
included, any time on the flat or descending is
included but meters climbed will be zero. This is
akin to the way we handle power where we include time
when freewheeling.

More sophistication is needed, especially normalising
the value to a common gradient (e.g. 10%). But this
will prove challenging when VAM is comprised of
undulating elements (i.e. gradient is cumulatively
zero, but could contain segments with steep parts).

It may be more appropriate to only measure VAM for
sustained climbing i.e. ignore ride sections when
descending or on the flat.

More thought needed.

Fixes #414.
2011-08-18 19:15:20 +01:00
Mark Liversedge
14c1d77326 Remove drop shadows
They're dog slow and looking through the QT bug
tracker no longer developed or supported on normal
QT widgets without QT Quick.

They also break drag and drop on Win7 64bit.

Fixes #324.
2011-08-10 18:48:08 +01:00
Mark Liversedge
7f007c1cea Allow user to rename chart
Control settings now have a text edit for renaming a chart
alongside all the other control settings. It might be more
intuitive to allow the user to click on the title to
rename it, that is for the future.

Fixes #397.
2011-08-10 16:28:54 +01:00
Mark Liversedge
78bb7eb551 Drag and Drop straight onto Layout
This patch removes the dialog box that pops up
when you drag a chart onto a layout and sets the
title of the chart to a default value (which is
the chart name).

This fixes the drag/drop crash on Windows 7.

However, when dragging and dropping on a 64bit
Windows 7 there is still a crash, this appears
to be in a different part of the code and will
require further investigation.

Also, since the title is now defaulted it is
important that the user has the ability to
rename charts once added. This is already
registed as bug no. 397.
2011-08-10 15:34:50 +01:00
Mark Liversedge
c08dae1378 Guess ride date time for Poweragent CSV files
File name is in the format "name yyyy-mm-dd hh-mm-ss.csv".

Fixes #281.
2011-08-07 22:43:23 +01:00
Mark Liversedge
0b61437ca1 Make tab view the default in v3
New users will have a tabbed view by default, this is
to reduce the complexity for new users.
2011-08-07 21:15:49 +01:00
Mark Liversedge
69f1340fb7 Critical Power Window delete current ride crash
The CP window tries to draw the current ride, even if it
has just been deleted (i.e. on delete event it tried to
calculate()) this fixes that.

Other widgets are fine, this is a consequence of trying to
redraw the aggregated curve and current curve when being
notified the ride has been deleted.
2011-08-07 19:25:57 +01:00
Mark Liversedge
c2254ce3e5 Fix delete ride SEGV
Bad form to delete an item and then pass a reference to it.. when
mainwindow removes the current ride it passed a pointer to the
rideitem just deleted, rather than emitting the signal before it is
deleted.

A distinction is made in mainwindow to emit the signal AFTER the
ride has been removed from disk (so metric/caches can clean up) and
removing it from memory (so charts can decide what to do).
2011-08-07 17:20:51 +01:00
Mark Liversedge
78f683d3f4 Histogram chart refreshes when ride added/deleted
Part of a number of fixes for bug 401. This ensures
the histogram chart is updated when a ride is added or
deleted when showing aggregated data (not a single
ride). Will set a 'stale' flag if not visible and then
refresh the data the next time it becomes visible.
2011-08-07 16:49:24 +01:00
Mark Liversedge
a69c7b5a36 Metric chart refreshes when ride added/deleted
Part of a number of fixes for bug 401. This ensures
the metric chart is updated when a ride is added or
deleted.
2011-08-07 14:39:11 +01:00
Mark Liversedge
82fbbfe1c8 Fix Metric Chart Fencepost Bug
The patch to support stacked charts inadvertently
broke the other chart types by adjusting 'count'
but at a different level of scope. This caused the
other styles to miss the last nth value. So, if
there is only 1 value in the date range you would
not see any data (for example).

The LTMPlot code is now getting a bit hairy, it is
almost an application in itself. Consider refactoring
in a later release.
2011-08-07 14:31:34 +01:00
Mark Liversedge
72338d56e1 Improve metricDB query performance
Remarkably, using transactions even when querying
SQLITE databases improves performance. If you have
a lot of metric charts on the home window then this
patch will make startup a lot faster.

Additionally, as we refresh the charts as rides are
added and deleted this should help to reduce the
performance impact when lots of charts are open.

There is an SQLITE performance FAQ that provides
more background here;

http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.html
2011-08-07 11:13:25 +01:00
Mark Liversedge
fd816f7e1e Remove duplicate metricDB in StressCalculator
StressCalculator created a duplicate connection to
the metricDB, this was not needed since it could
reference and re-use the existing one from MainWindow.

This is a vestige from v2 code where the metricDB was
only refreshed/maintained within the metric tab.

No functional or real performance improvement here but
allows us to convert the metricDB to an in-core ":memory:"
database in the future.

Preliminary tests suggest there isn't a huge performance
gain from in-core but that may change as we do more with it.
2011-08-07 10:53:22 +01:00
Mark Liversedge
8f53e1c2da Refresh CP curve when rides added/deleted
This patch forces a refresh of the CP curve
plot (if it is visible) when rides are added
or deleted.

Fixes #400.
2011-08-07 09:39:13 +01:00
Mark Liversedge
1d7696fb6a Fit files sometimes go backwards
FIT record type '253' occasionally causes time to go
backwards, this might be a decoding error, but for now
we force time to go forward anyway.

Looking at bad files GPS data with this patch suggests
this is the correct behaviour.

Fixes #104.
2011-08-06 17:45:20 +01:00
Damien
083569af5c Modify TRIMP formula to use time_riding instead of workout time
Fixes #355.
2011-08-06 12:33:23 +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
6afdc6bddd Fix Lat/Lon precision in TCX export 2011-08-06 00:02:32 +01:00
Mark Liversedge
e6de81a87f Fix SEGV in AllPlot on empty ride. 2011-08-05 23:07:55 +01:00
Damien
d3f8230aed Correct interval in SyncRideFile 2011-08-05 23:02:30 +01:00
Mark Liversedge
4970c07910 Free Memory in Ride Import
... after reading a GTC export. Also zapped
the boost dependency.
2011-08-05 22:31:31 +01:00
Mark Liversedge
0dee68dc17 Fencepost Error for TcxParser and GTC Exports
Fix recent commit for multiple rides in a TCX
export. It always missed the last ride in the
export file.
2011-08-05 22:18:03 +01:00
Mark Liversedge
2909e09373 Missed off previous commit
An errant git rebase lost these changes, this is
to support the GTC export file support and updates
the Json parser to use the new call semantics and
gets the Import wizard to clear up temporary files
when it closes.
2011-08-05 21:37:28 +01:00
Mark Liversedge
03b0dea597 Support Garmin Training Center Export Files
GTC will export all rides as a single TCX file so they
can be imported en-masse into another application.

We did not support >1 rides in a single ride file. This
patch adds support for reading multiple rides (if the ride
file reader supports it).

The ride import wizard will now extract and parse files from
a GTC export.  Many thanks to Damien for writing the TCX file writer.

Fixes #371.
2011-08-05 20:53:13 +01:00
Damien
0aba1af505 Modification to handle odd start page and compatible with qt 4.6 2011-08-05 17:22:06 +01:00
Damien
f00ab725f3 Add a TCX ride exporter 2011-08-05 15:43:05 +01:00
Mark Liversedge
987e5457c1 Fix SummaryWindow crash
When a large number of intervals are defined (>50 or so)
then the RideSummary window crashes.

It appears to be a bug in QTextEdit. It does a double free
when setHtml is called, after a 'large' text item was
set. It may be a QString bug.

To avoid the issue we use a QWebView instead of a QTextEdit
to display the summary and then try and set fonts to match
the application.

Fixes #299.
2011-08-05 14:30:25 +01:00
Mark Liversedge
80543669fe Don't allow Nan or Inf sample values
I thought this was introduced previously and was not. When
appendPoint adds a new sample it now sets non-finite values
to zero.
2011-08-05 12:49:40 +01:00
Mark Liversedge
8f42f84db1 Fix LTM plot to always bin in Mon-Sun weeks
Fixes #120.
2011-08-05 12:06:37 +01:00
Mark Liversedge
da8e22a48b Fix Diary doesn't select ride on Mac
The metricDB columns are renamed to more friendly values
in RideNavigator, and the GcCalendarModel was looking for
a columns "Filename" when it was named "File".

This mean't the call to the model to retrieve the filename
when an entry was clicked on the table view (diary) would
return "".

Strangely, this worked fine on Linux. But it is definitely
a bug. This patch fixes that.

Fixes #330.
2011-08-04 23:34:29 +01:00
Mark Liversedge
ebc0c5793e Reset colors to default in options
A new button now allows the user to reset colors
back to the default settings.

Fixes #76.
2011-08-04 19:43:39 +01:00
Mark Liversedge
1d135aee5c Fix Save when old .bak exists
If you save a ride and then delete it. The re-import and save
you will end up with two copies of the ride in the ride list.

This is because when we save the first time the original file
is renamed to e.g. ride.tcx.bak and the new ride.json is then
created. All is well.

But then delete the ride and it will rename ride.json to
ride.json.bak. Again, All is well.

Now, re-import the ride. We now have; ride.tcx.bak and
ride.json.bak and ride.tcx. Again, all is well.

But now, if you make changes and save it will attempt to
rename ride.tcx to ride.tcx.bak AND FAIL. This is because
the old ride.tcx.bak file is there. It will then create
ride.json. All is NOT well, since we have two rides with
the same date and time but different extensions.

This patch fixes this by unlinking ride.ext.bak before
trying to rename the file.

Fixes #348.
2011-08-03 19:42:07 +01:00
Mark Liversedge
e41644c33f Refresh metrics without delay
Metrics are refreshed immediately now, rather than waiting
for a request for them. This approach was valid when metrics
were only used on the metrics tab -- it made sense to refresh
when the user wanted them.

With release 3, we use metrics in a number of places as a cache
and also to speed up performance (e.g. RideItem::computeMetrics
was removed a long time ago).

This also fixes a related but when deleting the last ride -- it
did not disappear from the ride list (because the refresh would
only be triggered when a new ride was selected).
2011-08-03 18:33:29 +01:00
Mark Liversedge
a6e4420b35 Default dropshadows to NO
Dropshadows currently kill the CPU. This is caused by the way
they are implemented in GC and not QT. More work is needed to
make them fast.

For now, this patch makes the default to NOT have drop shadows.
2011-08-03 00:09:56 +01:00
Mark Liversedge
8a058c0db5 Show "hidden" metadata in an 'Extras' tab
The ride file readers will often set metadata fields
for device specific information, or just to store data
that has nowhere else to go.

In addition, when an athlete shares a ride with their
coach they would need to keep a common metadata setup.

To get around the 'hidden' nature of metadata that is
not configured and therefore not shown, the metadata
screen will show all tags, which are not shown elsewhere
in an tab labelled 'Extras'.

It is not possible to edit this data, we may change that
later. But for now the consequences of users changing
'internal' metadata is unquantified.

The overhead of creating and destroying widgets on the
extras tab mean that scrolling up and down the ridelist
with the Extra tab shown may be slow for some users. I
have optimised the refresh as much as possible (it has
zero impact if the extras tab is not selected).

In developing this I found that the homewindow
was sending two update signals when you were in tab
mode. This is fixed and tab mode should feel a tiny
bit snappier.

Fixes #385.
2011-08-02 22:37:52 +01:00
Damien
657ce5e386 Altitude scale present with no altitude data.
Uncheck the channel if not present. Fixes #295.
2011-08-02 09:21:40 +01:00
Mark Liversedge
84e6aa2d98 Fix crash on 'dodgy' .man file in v3
This is a fix for bug 205 which is registered against v2.1 but
is also present in v3. This fix will not be relevant for v2.1
since the cpi file has been replaced with the cpx file.
2011-08-02 02:05:32 +01:00
Mark Liversedge
043e66a00e Deprecate .notes in WkoRideFile
The WKO+ file reader still wrote to a .notes file
rather than updating the Notes metadata tag. This
patch fixes that.

Notes files are still referenced in LTMPopup, so the
current bug request for completing the notes file
deprecation cannot be closed, yet.
2011-08-02 00:47:53 +01:00
Frank Zschockelt
0672af95eb Support for Sigma SLF/SMF file formats
A ridefile reader for Sigma .slf/.smf format files.

Fixes #90.
2011-08-02 00:06:57 +01:00
Frank Zschockelt
c31f0a6f9a Included 4 sample sigma files in the test/rides directory 2011-08-02 00:06:27 +01:00
Mark Liversedge
5f8907a2ff Fix RideEditor find dialog for 'between'
The find dialog expected the between values
to be small and high, this patch will find
values between regardless of whether the
search values are lo/hi or hi/lo.

Fixes #351.
2011-08-02 00:05:50 +01:00
Mark Liversedge
192973332a Fix Configure Pane 'on top' obscuring other windows
Notably when you select a color in the config appearances
the dialog will have modal focus but be hidden behind the
config pane, this is tedious as hell.

I have now checked across the codebase and there are no
dialogs which insist on being on top so the OS window
manager and user is now free to manage windows as they
see fit.

Although not directly related this fixes the only possible
problems with window focus that could be related to another
bug reported by Fernando.

Fixes #117.
2011-08-01 23:16:26 +01:00
Mark Liversedge
aa9f6c5f3b Fix delete ride to remove .notes file
Will also remove the .cpi or .cpx if it is there.
It still renames the original to original.bak so
it doesn't actually zap the file.

Fixes #115.
2011-08-01 23:07:00 +01:00
Mark Liversedge
cd86521abb Fix date/time handling when importing rides
The ride import wizard would only allow the user to
change the ride date/time if it was a .gc .json or
.csv file. This was because (wrongly) it was because
we could not update the date/time defined within the
ride file itself.

Of course, we encode the ride date/time in the filename
and so it could be changed. However, not all the RideFile
readers supported this.

To get around this, the import wizard now does let you
change the date and time for any file type and the ride
file factory method openRideFile() will override whatever
date and time is returned by examining the filename. The
user needs to double click the date or time to edit it.

Additionally, the select date... combo would only register
when you changed the selection, it now defaults back to
the 'select date..' option after each selection.

Lastly, the 'choose date' function now works as advertised
and triggers editing the date for the ride selected.

This patch needs plenty of testing and is potentially going
to resolve the 'misleading UI' bug numer 11, but will need
to be cherry-picked back to v2 master once it has been
adequately tested.
2011-08-01 21:45:00 +01:00
Mark Liversedge
d86a6152bc Show anomaly list in ride editor controls
The ride editor does a pretty good job of finding anomalies
in the ride data, and to help it underlines the anomalies with
a wiggly red line and adds a tooltip to explain.

But, you have to scroll up and down the file to look for them
and when you are scrolling at high speed the wavy lines are
difficult to spot.

This patch updates the ride editor controls (which previously
only had the find dialog) and adds a list of anomalies at the
bottom. You can click on an anomaly to jump to it in the ride
data.
2011-08-01 14:46:35 +01:00
Mark Liversedge
b961a93b15 Open cyclist show all cyclists
But only enable selection of cyclists
that are not already open. This is a
small update to commit de13fb.
2011-08-01 12:20:40 +01:00
Mark Liversedge
de13fb08fe Do not allow user to open same cyclist twice
The choose cyclist dialog allows you to open
a cyclist that is already open. This is not
a great idea since the two windows will conflict.

This patch introduces a global vraiable to track
open windows (mainwindows) and MainWindow maintains
it as it opens and closes.

AthleteTool still needs to be updated to refresh
as new cyclists are created (and when its written
deleted).
2011-08-01 11:24:17 +01:00
Mark Liversedge
780ae993ff Better support for Negative, Inf, NaN and High Values
Some ride file formats use -1 to indicate sensor not
present or data loss (e.g. TPX) and on occasion a NaN
or Infinite value will be presented.

This patch handles this by converting negative data sample
values to zero and handling out of bounds values when
selecting zone ranges.

This is not a substitute for better handling of poor ride
data but it reduces the effect.

Also fixes #311.
2011-07-31 23:24:04 +01:00
Mark Liversedge
faa557f80b Force hide of virtual column in ride navigator. 2011-07-31 13:43:33 +01:00
Mark Liversedge
1bfe0bd3f8 Microsoft Bing Map
Following on from the recent changes to the Google Map control
to support their new v3 API, this patch introduces an alternative
map view using the Microsoft Bing v7.0 API.

Remarkably, the MS and Google APIs are extremely similar. Porting the
original code to use the MS API was relatively trivial. It would
probably make sense to combine the two charts into a single chart
with an option to select a map provider.

However, at this point to help in code maintenance they are separate
charts. It is likely that they will diverge somewhat to take advantage
of the differing features offered.

The same functionality and basic colors/lines are available in the
Bing map as the Google one. We should look at adjusting, since the
Bing map styles are more detailed and go to a much higher resolution
than Googles. As a result the current theme looks quite clumsy on
a Bing map and could be changed to use more strident colors and
take advantage of dash polylines (for example).
2011-07-31 13:29:24 +01:00
Mark Liversedge
6d154e4ecd Stop Map inerfering with Chart drag & drop
The Google Map view uses a Web view which by default
attempts to handle drop events. This interferes with
the adding charts via drag and drop. This patch fixes
that.
2011-07-30 23:16:37 +01:00
Mark Liversedge
abd8790458 Fixup for V3 Ride List (RideNavigator)
Multiple issues fixed related to automagic
resizing of columns as the sidebar is stretched
and shrunk.

* Geometry and Columns are now cyclist specific
  since the metadata config is cyclist specific.

* Multiple 'dynamic' bugs related to setWidth() and
  columnsChanged() calling each other or being
  triggered by a signal caused conflicts

* Column widths were incorrectly calculated when
  no vertical scrollbar is visible on the ride list
  (typically when the user has just created a new cyclist)

* Incorrectly including the '*' virtual column in calculations
  when it should always have a width of 0px

The Ride Navigator should now be relatively bug free for
column resizing. More tests are needed on the interaction
with the old context menu (i.e. delete/add/save ride). Some
preliminary tests suggest it is pretty stable.
2011-07-30 22:25:31 +01:00
Mark Liversedge
d06c9e97c9 Fix WKO+ file reader GPS 'drops'
The WKO+ file format appears to record drops in
recording of GPS data with a latlon of 180,180. We
expect this to be 0,0.

This makes the WKO+ file reader consistent with the
GoogleMapControl and removes the need to clean data
there.

If it is found that 180,180 is the standard way of
recording drops in GPS signal then we can change the
code. We use 0,0 since it is conveniently at sea off
the west coast of Africa.
2011-07-30 19:24:21 +01:00
Mark Liversedge
bca738e92f Code Cleanup GoogleMapControl
Removed superfluous code left behind after recent
updates for Google Maps JS API v3. Also removed a few
whitespace nits that sneaked through.
2011-07-30 19:04:11 +01:00
Mark Liversedge
f547d2fa8d More mucking about with Ride list
Ugh. More fixups for stretching the
columns in the ride list when it is
resized. More thought needed on how
this should work.
2011-07-30 16:28:56 +01:00
Damien Grauser
2131ade99a Add PeakPowerHr metric (average HR during peak power)
[c6a376 folded manually into release_3.0.0dev from master]
2011-07-30 13:11:34 +01:00
Mark Liversedge
e2d5e3678e Fix right-click crash on ridelist with no rides
When there are no rides to select in the ride list (e.g. when
just created a new user) right click for a context menu will
crash since it assumes there will always be a ride selected.
2011-07-30 12:13:16 +01:00
Mark Liversedge
3cc9c62b34 Enhanced New Cyclist Dialog
Since a large number of user 'bug' reports and
worse, coding errors, are caused by mishandling
user setup (missing CP, HR parameters, Zones, Weight)
the new cyclist dialog now prompts the user for basic
parameters when creating a new cyclist.
2011-07-29 22:21:37 +01:00
Mark Liversedge
4972f2472e Remove console error for seasons.xml
There is no need to warn about seasons.xml missing, it
is quite acceptable to have none set. Worse still sending
to the console log is next to useless for users that
don't launch from the command line.
2011-07-29 22:17:05 +01:00
Mark Liversedge
998c4cd6e9 Merge branch 'pc7' of github.com:rclasen/GoldenCheetah into release_3.0.0dev 2011-07-28 22:06:09 +01:00
Rainer Clasen
af87c812ff DownloadDialog: handle unset/invalid timestamps
the bad timestamp initialization in PowerTapDevice showed a lack of
error handling.

This patch makes the DownloadDialog handle bad timestamps more graceful.
Actually it falls back to the current time and allows for later fixing.
2011-07-28 22:45:55 +02:00
Rainer Clasen
851f989726 PowerTapDevice: fix date initialisation
startDate for the rideList returned after download wasn't set properly.
Use proper method instead of static fabric funcition.

Thanks to Eric Yoo for finding and fixing this.

fixes #365
2011-07-28 22:45:47 +02:00
Mark Liversedge
a108097976 Fix window refresh when selecting tile/scroll layout
When you switch from tab view to tile or scroll view
the charts need to be loaded/refreshed since they are
now all visible.
2011-07-28 20:15:52 +01:00
Damien
2c4ca7ceb9 Correct crash with truncated files
Fixes #337
Fixes #354

[git cherry-pick from master into release_3.0.0dev]
2011-07-28 18:45:22 +01:00
Rainer Clasen
af069a59b3 SrmDevice: sync port support with srmio
The comm port types supported by srmio may vary depending on the build
system (no ftd2xx.h, no termios, ...).

This commit keeps GoldenCheetah from using unsupported srmio port types
based on the srmio build.
2011-07-26 10:46:01 +02:00
Rainer Clasen
820741424c SrmDevice: support D2XX with srmio, as well
added the last bits to use the libftd2xx support I just wrote for srmio.
In other words: this needs an update srmio from github, again.
2011-07-26 02:18:06 +02:00
Mark Liversedge
2e381db0e7 Merge branch 'pc7' of github.com:rclasen/GoldenCheetah into release_3.0.0dev 2011-07-25 20:03:16 +01:00
Rainer Clasen
961e80d34c SrmRideFile: turned assertions into graceful fail
reading unsupported SRM files caused assertions. This shouldn't happen, as
it's no Programming error.

Changed the checks into graceful failures.

fixes #364
2011-07-25 19:34:10 +01:00
Rainer Clasen
63a0216a2e download: port list comfort
if the devices have a way to identify which CommPort they support and if
CommPorts are just for this device, this is now taken into account for the
port combo box:

Unsupported ports (i.e. currently D2xx for srm) aren't shown for the
selected device type.

Serial ports that are hard-wired to a certain device type (like built in
USB2Serial adapters in PC6/7) aren't offered for other devices, as well.

As a temporary hack, this PCV claims /dev/cu.*PL2303 to be "his". Of
course this has to go, if/when we start supporting other devices with
built in prolific usb2serial adapter or native serial interface (that
might get connected to a prolific adapter).

If we find a way to gather more details for the available ports, we can
extend this quite easily. Possible ideas:
 - hald (obsolete)
 - libudev (linux specific)
 - kdelibs solid (linux specific?)
2011-07-25 17:05:32 +02:00
Rainer Clasen
31ed615f4c SrmDevice: re-added data fixup
during the transition to the new API the data fixup (mostly for PCV) got
lost.

re-added data fixup.
2011-07-25 09:04:05 +02:00
Mark Liversedge
c0db7e1608 Update gcconfig.pri.in to reflect srmio pc6/7 support. 2011-07-24 20:41:54 +01:00
Mark Liversedge
1b201363cb Merge branch 'pc7' of github.com:rclasen/GoldenCheetah into release_3.0.0dev 2011-07-24 20:26:36 +01:00
Rainer Clasen
dbadd1b394 SrmDevice: switched to full API
implemented preview().

download() now gets only selected blocks.
download() splits data into several files.
2011-07-24 17:14:48 +02:00
Rainer Clasen
07e1007957 Download: made status text scrollable
Previous commits turned the status/"Instructions" label into a log. This
allows to show a lot more information that simplify troubleshooting
download issues.

To make it behave a bit more as expected, this change turns the label
into a readonly QTextEdit.
2011-07-24 17:14:48 +02:00
Rainer Clasen
50fef04b75 allow download of multiple files - for PC7
The new powercontrols have a lot more memory and they allow you to
selectively download the recorded "rides". Looking at srmwin, this seems
to be the suggested way of operation. (i.e. record multiple workouts,
download only the "new" ones).

Furthermore, the SRM file format has some limits (timespan, total number
of records), that make it inapropriate to store "all rides" into one file
and split it later.

So download now
- tries to get a list of rides of the device
  - if it gets any, the user can get prompted to choose which to download.
- let device download (selected/all) rides, split if necessary and return
  a list with tmp filename, start time, file extension.
- download dialog builds new filename based on time, prompts user for
  overwriting when file exists and renames file.

The download Dialog now stays open, so user can read the status messages
and click "cleanup". This avoids many of the anoying message boxes we had
in the Srm download.

Cleanup's user interaction (confirmation, errors) was moved from the
individual device to DownloadDialog, as well.
2011-07-24 16:58:50 +02:00
Rainer Clasen
3466ced7d4 SrmDevice: re-use open code
made srmio handles attributes of the SrmDevice class and added methods to
allocate/open/close/free these handles. So download() + cleanup() can use
the same code.

As a goodie the handles stay open after download and the second
initialization on cleanup() is skipped - saving some time. Well,
assuming the caller reuses the same SrmDevice instance.

SrmDevice destructor takes care of closing/freeing the srmio handles
automagically.
2011-07-24 15:47:38 +02:00
Rainer Clasen
16d7757411 split Device class to allow keeping download state
right now there's just one object for each Device type througout the whole
app. This forbids keeping actual state in the Device object during
download/cleanup.

This patch puts the list of supported Devices into a seperate class.
Actual Device objects are now created dynamically.

This is necessary for the upcoming Download changes.
2011-07-24 15:47:28 +02:00
Mark Liversedge
168d60c81c GPS Data Precision Errors
JsonRideFile saved with 6 and not 11 digit precision
losing a lot of precision when saving.

Additionally, the Google Map used a similar precision
and this caused jaggies on the map.
2011-07-24 14:47:03 +01:00
Rainer Clasen
5013235186 CommPort: added isOpen method
required to allow Devices to safely close CommPorts after use.

This avoids problems when re-using a device without closing
DownloadRideDialog.
2011-07-24 13:47:48 +02:00
Rainer Clasen
9a394552b3 use new srmio API - allowing PC7 support
srmio changed it's API completely. Adopted SrmDevice to use new API.

As a first step, we keep using the "simple" API to save everything into a
single file.

While this works fine for PCV, this will run into limitations of the SRM
file format, quite soon. This needs to be addressed in another step.
2011-07-24 13:47:03 +02:00
Rainer Clasen
e1f2128e27 CommPort: keep device names seperate
CommPort::name used to prefix the actual device name/path with the actual
device type to make it unique. This is used in DownloadRideDialog to map
the device dropdown list to the actual device.

This patch seperates name + device type to make the hack in SrmDevice a
bit less ugly: srmio doesn't use the built in CommPort abstraction and
needs the unmodified device names. This is still ugly, but I can't come up
with anything better (... for now).
2011-07-24 13:46:47 +02:00
Rainer Clasen
da7ae868ed MacroDevice: use backwards compatible toTime_t
toMSecsSinceEpoch requires QT 4.7. And as the caluclation doesnt require
msec precision, toTime_t should be sufficient.

Well, this is mostly, because I'm currently too lazy to update my QT... I
guess, this doesn't have to be merged.
2011-07-24 13:46:02 +02:00
Rainer Clasen
dcded137de gitignore lex/yacc generated files 2011-07-24 12:28:13 +02:00
Damien Grauser
1de15b2395 O_Sync Macro X device support
Adds support for the Macro X bike computer for downloading rides
and reading/writing in the native file format (sync).

For more information on this new bike computer see:
http://www.o-synce.com/en/products/bike/macro-series/macrohigh-x.html

[git cherry-picked from master into release_3.0.0dev]
2011-07-24 10:59:10 +01:00
Mark Liversedge
a270217923 Fix Map Jaggies & Stoptime
The recent update for the Google Map window reduced the
precision geo-coordinates, this patch fixes that.

Additionally, the wait time was triggered after 60s which
should be 5 minutes (left in by mistake after testing).
2011-07-24 00:50:18 +01:00
Mark Liversedge
58c9bf5334 Change close window icon. Minor cosmetics. 2011-07-23 20:34:59 +01:00
Mark Liversedge
599cd62750 Fix refresh metric losing ride selection
When metrics are refreshed the ride navigator
re-reads the metric DB and loses the currently
selected ride.

This patch causes the ride to be re-selected once
the refresh completes.
2011-07-23 19:55:40 +01:00
Rainer Clasen
5594f95275 whitespace cleanup
unfortunatly my latest patches introduced some tabs. Replaced them with
spaces to meet GC indent style.

Fixes 347.
2011-07-23 19:18:54 +01:00
Rainer Clasen
d7fe968844 fix reading signed values from srm files
seems, the assumption for "speed" in SRM7 files being unsigned was wrong.
Powercontrol/SRMWIN seem to use negative speed as "invalid".

Furthermore altitude may become negative, as well.

To address this, QDataStream now does the bit-swapping and speed +
altitude are read as signed values.

Fixes 346.
2011-07-23 19:18:40 +01:00
Damien
027dacb601 Add summary metrics list to preferences
Commit 05346 cherry-picked from master and merged into release_3.0.0dev.
2011-07-23 19:11:26 +01:00
Gareth Coco
a2c2723d87 Change start date from UTC to localtime for bin ride file
Fixes 338.
2011-07-23 14:03:18 +01:00
Rainer Clasen
878647fbd0 Fit: handle unknown fields gracefully
So far the FIT parser bailed out, whenever it found something
unknown/uninterested to GC. This is quite orthogonal to the FIT design, as
it's supposed to be extended.

renamed read_<foo> functions to match the FIT base_type names.

unified handling of "unavailable/invalid" values - i.e. if sensor data is
temporary unavailable. This allows easier and consistent handling -
especially for the uintXz base_types, which only differ by a different
"invalid" value. Had to change the type of the "values" list to int64 to
fit uint32/int32, as well.

added proper support for signed integer types. I'm wondering, why lon, lat
+ temperature were decoded properly...

added support for currently unsupported base types by just skipping their
bytes. This allows us to continue reading.
2011-07-23 13:56:12 +01:00
Rainer Clasen
97d2603a49 Fit: support big/little endian data
... on both, big and little endian machines.

Fit reader only supported little endian data on little endian machines.

All values read from FIT files are now swapped (if neccessary) according
to file and system endianess.

fixes #287
2011-07-23 13:56:12 +01:00
Rainer Clasen
f4e498c835 Fit: ignore unknown message types
do not bail out on unknown message types. This violates the design of the
Fit format of being extensible.

As this was the last thing using the global_msg_names QMap, I've nuked
this, aswell.
2011-07-23 13:56:11 +01:00
Mark Liversedge
cfff8f81a6 Remove carbon references on Mac in GcPane. 2011-07-23 12:49:58 +01:00
Mark Liversedge
1fc88c9909 Summary Window Title
Summary window and friends now set the window title (subtitle)
to the ride date and the headings have been made slightly
smaller to reduce screen real estate. Minor cosmetic update.
2011-07-23 10:55:51 +01:00
Mark Liversedge
1924c53ed5 Fix too many QString::arg() in GoogleMapControl.cpp/ 2011-07-23 00:41:29 +01:00
Mark Liversedge
55d5abce2a Google Maps Enhancement
Update to the Google Map window:
* Uses Google Maps API v3 (v3 is deprecated)
* Users can now select intervals on map
* Icons for start, stop, loop, pause
* Resize refresh no longer needed

Features removed or changed:
* 30s segments are now 60s segments
* Tooltip doesn't work with v3 API

Some more updates will come through later to
add greater control on what is shown on the map
and the shading to use (e.g. gradient, HR zone) and
the time interval to use.
2011-07-23 00:08:02 +01:00
Mark Liversedge
f7a9e32170 Sidebar adjustments, wip
The sidebar activity list columns expand and
reduce as the sidebar is resized. Still a work
in progress with a number of cosmetic issues
remaining.
2011-07-16 10:58:20 +01:00
Mark Liversedge
003bdcc4c5 Google Map UI Changes
Highlight entire route to make the route stand out
more obviously when power zone colour schemes are
subtle (or white).

Changes the window bar to the metadata field 'Route' if
it is present. This is done by introducing a new 'subtitle'
property on a GcWindow that can be set programmatically. This
is equivalent to the old 'title' above each chart.
2011-07-16 10:55:35 +01:00
Mark Liversedge
4210c2760a Fix annoying gap in CP curve. 2011-07-09 20:18:10 +01:00
Mark Liversedge
79dfd8151f #include <Windows.h> becomes <windows.h> 2011-06-13 20:37:44 +01:00
Mark Liversedge
ed9f851f4b More Tab / UI fixups
A bit more love for tabs and other minor cosmetic tweaks.

* View now remembers style used (tab, scroll, tile)
* Allow user to re-order tabs
* Google Map border reduced
* Google Map refresh delay (to make UI snappy when resizing)
* Minor calendar cosmetics
* Use utf8 encoding on config files (language support)
2011-06-13 16:12:16 +01:00
Mark Liversedge
55b323572c Fixup UI for Mac
Removed the horrible dock widget and uses same sidebar
as windows and linux. Removed segmented button for now
since there are a few issues, but retained the code for
the future.
2011-06-11 12:27:54 +01:00
Mark Liversedge
da8eec1b13 Further UI fixups
More work to unify the tab view with the overall
UI look-and-feel, allowing you to remove and add
tabs via mouse over rather than the close tab
icon. Also added a number of cosmetic adjustments.

Fixed up PerformanceManager and ScatterPlot to
pick up on the chart fonts and tick size etc.

Removed some erroneous static members in the
ScatterPlot that caused a SEGV when adding multiple
charts (or cancelling an add then adding again).
2011-06-10 23:27:51 +01:00
Mark Liversedge
819729f4db Remove unneccessary mutable in RealtimePlot.h 2011-06-06 08:13:49 +01:00
Mark Liversedge
3afc212357 Missed in last commit 2011-06-05 17:32:50 +01:00
Mark Liversedge
af4bb46f96 Potential fix for Add Chart crash
New charts are created in the GUI thread and
the Dialog is not deleted until after the chart
has been reparented.

This modification will need testing on Windows.
2011-06-05 15:56:48 +01:00
Mark Liversedge
b374d5732f Enable/disable dropshadow in appearances. 2011-06-05 15:56:29 +01:00
Mark Liversedge
2e15d74658 Ride Plot Axis coloring
The legend wasted screen estate and was removed, this patch
colors the axis labels/ticks so no legend is required. This
approach could be adopted for other charts.

Also includes a fix to hide realtime view controls which
left a screen glitch because they should have been hidden.
2011-06-05 01:51:45 +01:00
Mark Liversedge
396e47ff8b Possible fix for Add Chart crash
I have not been able to reproduce the crash, but reading
through the code related to the chart add dialog I have spotted
an error where the chart could be destroyed when you click the
OK button, but still referenced.

This modification also appears to fix an issue with chart
controls not working when you first add a new chart.

Requires testing before the associated defect in GoldenTracker
can be closed.
2011-06-04 21:51:56 +01:00
Mark Liversedge
641916e1a7 Re-introduce Dropshadow on Win/Mac
QGraphicsDropShadowEffect needs Qt 4.7.3 to
be guaranteed to work correctly. This is inline
with the statement that Qt 4.6 is mandatory
whilst later releases are desirable.
2011-06-04 21:08:27 +01:00
Mark Liversedge
0865a764f9 Fixup Tab mode for Mac
Style selector was not displayed and the
paint event handler allocated two painters
which is not allowed by Qt.
2011-06-04 20:05:36 +01:00
Mark Liversedge
2daa332f41 Reinstate Tab view
After discussion on the list the utility and popularity of
the original tab view was restated. This patch reinstates
the tab view and attempts to unify the Qt tab widget with
the general look and feel of the application.
2011-06-04 17:12:17 +01:00
Mark Liversedge
c820de8f57 UI Cosmetics & Nits
Added a dropshadow effect for window tiles and made the
title embossed for a more professional look.

Also fixed a couple more compile time nits introduced
by recent commits.
2011-06-03 18:07:01 +01:00
Mark Liversedge
dc782ade9a Fix Ride Plot Steals Focus
When scrolling through the ride list the ride plot will
steal focus which means navigating up and down the ride
list by keyboard is not possible.

This was caused by an errant setFocus() in LTMCanvasPicker
which this patch removes.
2011-06-02 10:52:59 +01:00
Mark Liversedge
b213bddbb5 Remove superfluous heading
The heading on the homewindow pages is superfluous since the
user is well aware what page they are on by the fact they
selected it and also the contents displayed.

This also has the effect of making tiled view the standard
and only view. Will need to add options to maximise a chart
to fullscreen later.
2011-06-01 22:05:45 +01:00
Mark Liversedge
56bcc67a0a Simplify and Clean UI
Less jarring UI with simple use of color and
no pixmaps to make a clean look. Will need
more work to get consistent across the code
base.

A simple and clean UI is starting to emerge.
2011-06-01 21:46:31 +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
d1f43a2800 Fix WKO parser for Ergomo users
The WKO ride file reader used wrong constants for the bit
field size of the sample data when decoding files from
Ergomo devices.

merged from v2 master.
2011-05-25 20:26:37 +01:00
Mark Liversedge
5e89f9980c Fix 64bit WKO parsing GPS data
The decoding of GPS data erroneously assumed that a
signed long was 32 bits, which is not true on a 64bit
platform.

Fixes #333.
2011-05-22 20:51:00 +01:00
Mark Liversedge
4851dfcbd7 Fix temp file permissions issue with Google Map
The google map control creates a temporary file to load
which is not unique for each logged in user. This causes
permissions issues.

The use of a temporary file has been removed by replacing
the webView->load() call with a webView->setHtml() call. This
allows us to pass the contents as a string rather than a URL.

Fixes #331.
2011-05-22 11:56:33 +01:00
Mark Liversedge
4c6d926780 Fix First Ride File Import Crashes
When you import the very first ride into V3 it will cause
a SEGV crash when attempting to freeMemory. This is because
the first entry added to a list does not cause any selection
to be made.

This means that the very first time someone tries to use GC
version 3 it will crash! Not the best of starts.

This bug was previously reported as being related to importing
json ride files, it occurs for ANY ride file type.

Fixes #328.
2011-05-21 21:31:12 +01:00
Mark Liversedge
34e9b482d2 More compile time nits
Fix some nits missed in last nit cleanup. No
functional change, just cleans up compiler
warning messages.
2011-05-17 21:05:47 +01:00
Mark Liversedge
823fff9faf Better rounding of time in AllPlot
With realtime data there will often be samples with
timestamps like 940.002 and 940.998. This cuases an
issue on the ride plot, where it believes there is
no sample for 941 and therefore plots a zero value.

This patch rounds the timestamps to the nearest 100th
of a second, which is consistent with the mechanism
used in the ride editor.
2011-05-16 17:54:11 +01:00
Mark Liversedge
0cb3c444f2 Increase margins on RideEditor
Resizing the rideeditor is a bit tricky since it does not have
any margins. This patch adds a 2px margin that makes all the
difference.
2011-05-15 22:04:06 +01:00
Mark Liversedge
4801fc0b87 Make toolbar color configurable
Not generally useful but allows one to make the toolbar
menu and titlebar match for a more pleasing general effect.
Most users will not use this I imagine and use the default
window colors.
2011-05-15 21:35:21 +01:00
Mark Liversedge
c7e0d4ed8c MainWindow Housekeeping
The MainWindow.{cpp,h} code was a bit messed up after a
few years of hacks from different devs. This non-functional
patch re-organises the source files, removes a couple of
unused methods and adds a few comments to help new devs
navigate through the code.
2011-05-15 20:18:09 +01:00
Mark Liversedge
e62922b151 Fix Hr numZones bug
The HR zones code was broken by the previous commit to
remove asserts from the code, resulting in the numZones
method to always return 0. This caused the Histogram and
Summary windows to fail to display zones for a specific
ride.

This patch fixes this.
2011-05-15 17:36:15 +01:00
Mark Liversedge
c4ce45fef9 Make Analysis view configurable
You can now configure the Analysis view to drag and drop
charts on the page and lay them out etc. A default setup
displays basic data such as ride summary, histograms and
ride plot.

MainWindow still needs a bit of a tidy-up as the basic
code has been edited and re-edited by a cast of thousands
and its a bit of a mess as a result.
2011-05-15 14:34:34 +01:00
Mark Liversedge
5bd102bf70 Fix intermittent crash in adding charts to home
If you have not compiled in support for a particular
chart (e.g. 3d) then the drag/drop event will just
create a blank chart (base GcWindow).

The constructor for a null chart did not initialise
properties and caused an intermittend crash because
the controls pointer was occassionally not NULL.
2011-05-14 15:01:18 +01:00
Mark Liversedge
cf504e108c More Metric Refresh Performance Improvements
The DBAccess functions instantiate a local SpecialFields object in
almost every method. Profiling by Fredrik Lingvall has shown this
is rather expensive (and also unneccessary since they do not
change at runtime).

A specialFields member has been added to the MainWindow class
and is instantiated at startup and referenced in the DBAccess
methods instead.

Rough tests suggest a 10% speed improvement in metric refreshes.
2011-05-13 21:15:15 +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
d29d97231c Metric refresh performance improvement (nosync)
The SQLITE database syncs (writes) to the metricDB file after
every atomic transaction. As the size of the database grows this
becomes very expensive (suspect it is writing the entire DB).

To avoid this behaviour the Metric refresh code opens and commits
a LUW for the entire refresh. This has shown to improve the performance
of the metric refresh quite dramatically (50% reduction in overall
time to complete a metric refresh).

Big props to Fredrik Lingvall for detailed analysis and profiling
of the code to identify the inefficiencies.
2011-05-12 20:13:55 +01:00
Mark Liversedge
3ae81329d7 Make Training View Configurable
The training view (aka realtime) is now configurable
allowing users to drag and drop appropriate charts
and dials onto the main view.

The controls for this view are static and comprise the
old controls with start/stop buttons, device selections etc.

I have removed deprecated code too, the following are removed
from the repository;
* ViewSelection
* RealtimeWindow
* TrainWindow
* TrainTabs

Fixes #290.
2011-05-10 18:21:08 +01:00
Mark Liversedge
be86541ff5 Add WorkoutPlotWindow
As part of the ongoing preparation for training mode to support
a more configurable layout the workout (ergfile) plot is now
a window that can be dragged and dropped onto a layout.
2011-05-08 20:27:33 +01:00
Mark Liversedge
3a456b0a57 Missed from previous commit. 2011-05-08 14:23:40 +01:00
Mark Liversedge
c54b2b3e3e Add Realtime Plot Window
The realtime plot is now a chart than can be dragged and dropped
onto a window layout. This is part of the preparation to move
the training view to use be configurable, aka home window.
2011-05-08 13:58:53 +01:00
Mark Liversedge
36faf69b43 Add metadata window to charts
The home window layout will soon be extended to cover
realtime and analysis views. In preparation for that
some additional charts are being created.

This patch introduces the metadatawindow which only
contains the metadata fields (i.e. no ride summary).
2011-05-08 10:36:00 +01:00
Mark Liversedge
be09315d70 More 'orphaned' Widgets
RideMetadata widget in mainindow is never placed into a layout
since it is not used for user entry/display.

MetricAggregator used QWidget as a base class, this should of
course have been QObject. It uses signal/slots but has no GUI.
2011-05-07 14:10:52 +01:00
Mark Liversedge
8d3f120d4d Remove orphaned central widget in MainWindow
Been chasing this down for ages. An orphaned widget in
MainWindow caused the tick for opening the drawer on Macs
to be 'unresponsive' and on Linux made the Cyclist and Ride
menubar options similarly 'unresponsive'.

When adjusting layouts for homeWindow and others a new
widget 'central' was introduced and then not used, but the
code was left behind.

This patch removes the errant code.
2011-05-07 13:26:13 +01:00
Mark Liversedge
788fbc17fd Refresh CPX file when importing ride files. 2011-05-07 11:26:59 +01:00
Mark Liversedge
83b2aa82cb Less assert in HrZones
I guess it is a philosophical argument. HrZones is modelled on
the original power zones code. It uses assert to crash whenever
a call is made for out of bound data (e.g. range of -1).

Given these values are returned by other functions in the same
class, it seems harsh to crash when handed them back.

I have removed some of these from the critical members and am
tempted to apply to the original Power Zones code too.

Fixes #301
2011-05-07 09:44:10 +01:00
Mark Liversedge
20e1ba6ec2 Move CXXFLAGS -O3 to gcconfig.pri.in 2011-05-07 00:10:27 +01:00
Mark Liversedge
1894d9317a Enable -O3 flag for g++
As pointed out by Mark Rages, GCC/G++ support auto vectorization
optimisations with this flag (amongst others). This has quite a
significant performance impact for almost all parts of GC that
loop over ride files.

It certainly improves the mean-max routine performance dramatically.
Anecdotely it seems to improve performance on most charts when
intervals are selected and make the Metric charts particularly
snappy.

More info on auto vectorization can be found at the following
url: http://gcc.gnu.org/projects/tree-ssa/vectorization.html

Tested on intel and amd hosts running Linux and Windows.
2011-05-05 22:14:20 +01:00
Mark Liversedge
c5c0e3acf5 Merge pull request #4 from markrages/mark-fix
Updates the source files to add a detailed description on the new faster mean-max algorithm and a tweak to the window size to significantly improve performance.
2011-05-05 11:42:09 -07:00
Mark Rages
f24b96cd41 Added comment explaining meanmax algorithm
Tweaked meanmax algorithm to limit the maximum window size
2011-05-05 01:33:47 -05:00
Mark Liversedge
d192855563 Fix CP xPower/NP zoning. 2011-05-04 23:24:46 +01:00
Mark Liversedge
95ed378b02 CP Plot xPower/NP with color zones. 2011-05-04 22:27:10 +01:00
Mark Liversedge
0a71875d85 Mark Rages' Superfast Mean Max Computer
Mark Rages has developed a super fast and innovative
approach to identifying max-mean intervals. This
approach is 20% faster than the current approach and
importantly does not require "downsampling" of data
yielding much higher resolution for longer intervals.

The code has not been 'adjusted' to adopt QT style
containers (e.g. QVector) and uses malloc/free.

The primary innovations include:
* integrating the data series to reduce the operation
  for identifying an interval sum to a single subtract
  operation.

* Searching for max sum via a window-search rather
  than iterating over the entire series (divide / conquer)

Interestingly, now we have retained high resolution the
xPower algorithm still yields differing results to the
existing metric code. I have contacted Sean to get some
insight into why this might be the case, but suspect it
is related to the implementation of the xPower 25s EWMA.

Tip o' the hat to Mark Rages for this -- sometimes you
just have to accept that no matter how smart you think
you are, there are some folk who /really are/ smart!
2011-05-04 21:19:49 +01:00
Mark Liversedge
69e51a2dcf Store pre-computed statistics as floats not longs
The .cpx file used unsigned long to reduce storage
requirements but lost precision. This patch migrates
to using floats, which in most cases are the same size.

One side effect of this update is that mean-max charts
for HR, Speed, Cadence no longer have a 'staircase' effect
and plot more smoothly.
2011-05-03 17:04:48 +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
37a25eee26 Added Gareth Coco's WIN32 build notes as INSTALL-WIN32 2011-05-02 21:21:42 +01:00
Mark Liversedge
4ff226d5ff Added INSTALL-LINUX build notes/instructions to root of src tree 2011-05-02 21:07:27 +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
f686f2f262 Ride Statistics performance improvements
The metric code for calculating NP was sub-optimal (actually
it was pretty crap). This patch improves the performance of
the calculation quite substantially (>50% improved).

Additionally, the critical durations code has been adjusted
to reduce the amount of work for long rides (>3hrs or more).
2011-05-02 10:33:58 +01:00
Mark Liversedge
77358fd3a3 Tooltip in CP chart
A tooltip is now shown on the CP chart if you move
the cursor over a point in the chart. The old picker
ribbon is still shown when using left-click with
the dates and values shown in the controls.
2011-04-29 14:14:20 +01:00
Mark Liversedge
498a7e3ec4 Add xPower and Normalized Power to Critical Plot
The Skiba and Coggan metrics for xPower and NP
respectively can now be plotted on the CP curve.

There are two issues;
* Downsampling of data to 5s samples skews xPower's EWMA
* Setting scale to start at 30mins breaks the x-axis scale engine

Both issues need fixing, since the first skews xPower upwards and
the second suggests that xPower/NP are meaningful for durations
less than 30 minutes.

Fixes #307.
2011-04-28 23:51:55 +01:00
Mark Liversedge
aec11f8c66 Fix typo to get cadence CP chart back. 2011-04-27 21:29:23 +01:00
Mark Liversedge
f57ac7d2b1 Fix CP calculation for files with sub-recIntSecs samples
Peak 1s - 5s critical heartrate was way off the charts and did
not represent the data within the ride file.

Almost certainly caused by the WKO+ file importer, or possibly
by the WKO+ files themselves. It is possible to have ride files
with samples that are shorter than recIntSecs, e.g. where the
recording sample rate is 1s you might see:

Time       HR
01:21:32.0 157
01:21:32.7 157
01:21:33.0 157

In this case there are two samples between 1:21:32 and 1:21:33 rather
than the expected one sample. The code to compute averages used the
duration and recIntSecs to determine the average. This patch now
maintains a count instead.

Fixes #319
2011-04-27 20:48:39 +01:00
Mark Liversedge
64d44cdd0f Fix CP curve only shows first 6 seconds bug
Many thanks to Gary Smith for helping to diagnose and fix
this error. It is caused by ridefiles that have a gap in
recording at the very start of the ride (i.e. the first
sample is > recIntSecs).

Hopefully this means the CP code is now robust. It is also
worth noting that after fixing the erroneous copy/paste
code in compute() it is now 5 times faster than the original
code and computes 5 times more data series.

Fixes #316.
2011-04-26 21:56:05 +01:00
Mark Liversedge
e8d213c444 Temporary Fix for Ride Selection after NULL ride selected
When you clicked on 'All Rides' mainwindow emits a rideSelected
signal with a ridefile of NULL. When then selecting a valid ride
a SEGV occurred.

This temporary fix removes that signal, but the underlying issue
related to actions after a NULL ride is selected need to be resolved.

Fixes #318.
2011-04-26 21:31:43 +01:00
Mark Liversedge
2ad6c3d252 Remove dumb cut/paste error that increased CP calc work. 2011-04-26 21:02:23 +01:00
Mark Liversedge
7dd47e5197 Fill in Gaps in recording when computing CP charts
The new implementation of CP calculation uses a different
approach to identifying critical power/cadence etc which
makes it sensitive to gaps in recording (it assumes all
samples are temporally contiguous).

This patch ensures the data series are pre-processed to
add 0 values for any gaps in recording -- it does NOT
try to smooth data, since there are tools available to
do this, and if the data as presented has gaps we will
not attempt to 'correct' them -- the user can do this
themselves.

It leaves ride data intact.
2011-04-26 20:28:57 +01:00
Mark Liversedge
f7416fe0fd merge srhea/GoldenCheetah.git release_3.0.0dev fixups. 2011-04-25 17:43:08 +01:00
Mark Liversedge
659d35406c Fix CP calculation crash
Fixes SEGV in RideFileCache caused by incorrect recIntSecs setting
for a ridefile. Other reported issues with high power values for
short intervals was data related and not a bug.

Fixes #314.
2011-04-25 16:44:16 +01:00
Mark Liversedge
3a5c7822cc Missed from previous commit. 2011-04-25 02:58:19 +01:00
Mark Liversedge
0df8b73743 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.

Fixes #312.
Fixes #285.
2011-04-25 02:46:53 +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
cc5c3115bd No more CPU hog in Native ANT. 2011-04-18 23:01:19 +01:00
Mark Liversedge
ec3c7a2b5a Less jarring use of pixmaps in look and feel. 2011-04-18 22:48:49 +01:00
Mark Liversedge
15741d6017 Merge branch 'release_3.0.0dev' of github.com:/srhea/GoldenCheetah into release_3.0.0dev 2011-04-17 22:09:27 +01:00
Mark Liversedge
7a63d1f5dc More NULL ride bug fixes
The controls for the RideEditor (find) and AllPlotWindow
still try and do their thing when the current ride item
is NULL. This was either because it wasn't checked (or
expected) or the widgets in question were not notified. This
patch fixes this.

When I get a chance the whole codebase needs to be refactored
to gracefully handle NULL rideItems -- each plot/window should
clear state when it is notified that NO ride is selected.
2011-04-17 21:39:16 +01:00
Mark Liversedge
97053386d8 Fix RideEditor crash on last delete
If you delete the last ride and scroll down in the ride editor
GC will crash. This patch ensures the model is invalidated when
a ride is deleted.
2011-04-17 19:47:36 +01:00
Mark Liversedge
888ec7a6d9 Fix Crash on Interval selection when last ride deleted
If you delete the last ride and then select an interval in the
interval widget Interval summary window crashes. This patch fixes
this. It should have been picked up in the Null ride files tests
from last week, but slipped through.
2011-04-17 18:59:30 +01:00
Josef Gebel
d7d89e63e5 Fix AllPlot Show by Distance Bug
I discovered a crash of GC when doing the following:
* Load two rides (you can load the same ride for 2 different days)
* Go to the Ride Plot tab
* At the bottom, choose "x-Axis shows distance"
* Switch rides in the "All Rides" widget
* GoldenCheetah should crash. At least, it does for me when I load the attached ride file.

Fixes #242
2011-04-17 18:32:16 +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
1a12f8979f Fix Workout Code null string for Bin (Joule) ride files. 2011-04-16 20:44:15 +01:00
Mark Liversedge
21afde2d0b Realtime checkpoint - WIN32 and Configurable Realtime
Fixups to compile video on WIN32 and added more configurability
in the realtime screens, but still not the chart and video use-case
needs to be decided.
2011-04-10 18:03:21 +01:00
Mark Liversedge
26402f0c36 Merge branch 'release_3.0.0dev' of github.com:/srhea/GoldenCheetah into release_3.0.0dev 2011-04-09 14:31:55 +01:00
Mark Liversedge
62852f74be Reintroduce Heartrate Zone Summary on WeeklySummary Window
The refactoring of the weekly summary window to use metricDB
and the introduction of HR zone config in options removed
the hr time in zone table on weekly summary.

This patch re-introduces it.
2011-04-09 14:30:30 +01:00
Mark Liversedge
50863cbf96 Merge branch 'release_3.0.0dev' of github.com:/srhea/GoldenCheetah into release_3.0.0dev 2011-04-09 14:12:02 +01:00
Mark Liversedge
8698aaa76b Reintroduce Heartrate Zone Summary on RideSummary Window
The refactoring of the summary window to use metricDB and the
introduction of HR zone config in options removed (temporarily)
the table on ride summary.

This patch re-introduces it.
2011-04-09 14:08:28 +01:00
Mark Liversedge
14236416a0 Merge branch 'release_3.0.0dev' of github.com:/srhea/GoldenCheetah into release_3.0.0dev 2011-04-09 12:21:27 +01:00
Mark Liversedge
08110333c7 Fix Crash on show/hide sidebar in V3
GoogleMapControl crashes when the sidebar is hidden then shown
before a map has been drawn. This is because the resize event
attempts to redraw the map before all private data has been
initialised (in this case rideData is empty).
2011-04-09 12:15:17 +01:00
Mark Liversedge
ea02242558 Merge branch 'release_3.0.0dev' of github.com:/srhea/GoldenCheetah into release_3.0.0dev 2011-04-09 11:42:55 +01:00
Mark Liversedge
6af6b347bf Version 3 - No Ridefiles Bugs Bonanza
When no ridefiles are available (new cyclist) or the last ridefile
is deleted the current ride will be null. In addition the ride
importer deletes the memory for a ride imported to ensure VM is not
exhausted on large imports.

This patch fixes a whole host of null errors across the codebase. They
were identified by creating a new cyclist, executing every menu option
and tab/chart and then importing a file choosing everything and then
deleting the file and choosing every option again.

This negative testing should be performed before every stable release since
it has identified at least 6 bugs which are almost certainly present in the
current V2 code.
2011-04-09 11:24:40 +01:00
Mark Liversedge
53a8167787 Fix Weekly Summary Crash
Refactoring of WeeklySummary to use the metricDB (speed optimisation)
introduced a bug where the ridefile iterator was erroneously used
whilst computing daily averages. This patch fixes this by using the
daily iterator instead.

Many thanks to John Ehrlinger for identifying, reporting and helping
to diagnose this defect.
2011-04-09 08:20:06 +01:00
Mark Liversedge
0d307e0c5b HomeWindow takes a name to load/save layout. 2011-04-06 21:14:36 +01:00
Mark Liversedge
2d30be9811 Fix video on startup. 2011-04-06 21:00:23 +01:00
Mark Liversedge
714ab730b3 Training Mode Improvements - Part 1 of 3
Update to training mode to improve the UI and overall
user experience. This initial patch introduces:

* Video Window - but ghetto and not fully functional
* Congigurable - drag and drop 'dials' onto homewindow

In future updates we need to:
* Support Video fully - Only Linux in this patch
* HomeWindow - Make Training mode the same as HomeWindow
* More Dials - Support metrics (e.g. BikeScore)
* RT Charts - Make RT plot drag/drop and support other
              types of charts (e.g. Time In Zone)
* Controls - Add more controls for FFWD/REW, Skip etc

This patch has been tested on Linux ONLY. It is being committed
to support further build/deployment work for Win32 and Mac OSX.
2011-04-03 18:30:35 +01:00
Darren Hague
010e27e50c Fix CycleOps Fluid 2 virtual power calculation
Fixes #239
There was a missing "break" after the CycleOps calc, so it went ahead
and overwrote the value with the BT-ATS calc. "break" now inserted.
2011-03-27 18:34:08 +01:00
Darren Hague
847340e098 Improve stability when libusb0.dll is not present 2011-03-24 07:26:35 +00:00
Darren Hague
7efa27d5b3 Dynamic load of libusb0.dll
This means that libusb0.dll does not have to be included in the
Golden Cheetah distribution - the code will load it automatically
from windows\system32 on demand when realtime mode is invoked in
Native ANT+ mode. Insertion of a USB2 ANT+ stick will cause Windows
to download and install libusb0 automatically.
2011-03-22 07:12:29 +00:00
Mark Liversedge
1c7a8b5e83 Fix SEGV in WorkoutWizard when no ride selected. 2011-03-19 22:54:55 +00:00
Mark Liversedge
1a01b789db USBXpress SDK fixup missed USBXpress.cpp on last commit. 2011-03-19 22:11:43 +00:00
Mark Liversedge
40855b8773 Fixup USBXpress.h when SDK is not installed. 2011-03-19 22:01:36 +00:00
Darren Hague
f8d60bfbe2 Native ANT+ part 2 - USB2 Support and minor improvements
This patch adds support for the Garmin USB2 stick using
libusb-win library. Instructions are included in gcconfig.pri.in
for configuring and installing the neccessary libs.

To enable support for USB1 and USB2 support in the same binary
stubs are created when UsbXpress/Libusb are not available and the
device i/o attempts to use USB2 before falling back to USB1.

Since I was also in the middle of some coding changes I merged
my developments (Mark) with Darren's patch whilst fixing it up
for commit, namely:

1. the configuration screen no longer demands a COMx port
   when using Native ANT+ on Windows.
2.  new signals in ANTChannel notify the ANT class when info is
   stale or lost (but they are not used at present).
3. The previous debug messages have been removed, although new
   debug messages are added for stale/drop/timeout signals.
2011-03-19 21:03:43 +00:00
Mark Liversedge
22d04f8524 Native ANT+ Part 2 - antlog.bin dignostics
A patch to create an 'antlog.bin' in the current working
directory when working with ANT+ devices. This is to enable
users to test the ANT+ support and share the received messages
to diagnose issues related to parsing messages and displaying
telemetry.

This 'antlog.bin' will ultimately become a native ant file format
and have an associated extension (.ant) and a ridefile reader.
For now it just writes a stream of fixed length messages (12 bytes)
of all received messages.
2011-03-14 21:57:35 +00:00
Mark Liversedge
35b4ea81c1 QMAKE_DEL should have been QMAKE_DEL_FILE in previous commit. 2011-03-10 20:08:00 +00:00
Mark Liversedge
6df1ca1865 Fix Flex/Bison issues on Win32
Added the QMAKE_DEL setting to gcconfig.pri.in to signpost
setting to rm -f on Win32.
2011-03-10 20:00:08 +00:00
Mark Liversedge
3cfbfd446a Native ANT+ Part 2 - Improved Power Support
Fix SRM power decoding to stop requiring a new message
pair whenever a zero change occurs - this was erroneous
and severely limited the update rate. Power and Cadence
updates for SRM are now immediate.

Desk check of support for Standard Power messages showed
that the code was interfering with normal cranktorque or
wheeltorque power calculations. This did not show up with
SRM cranks since they do not send standard power messages.

This should help to resolve issues with erratic/incorrect
power readings from Powertaps. I am not sure if Quarq cranks
send standard power messages, but if they do then this should
improve power readings for those too.
2011-03-10 14:26:12 +00:00
Mark Liversedge
10819d05fa Remove RideSummary from Metadata default config in V3 2011-03-10 08:28:48 +00:00
Mark Liversedge
b62be23fc0 Fix ASSERT crash in Weekly Summary for No Zones
If you have no valid zones configured for the week being
displayed the weekly summary window crashes on an assert.
This was caused by new code for v3 which uses the metricDB
to avoid unneccessary computation -- but introduced this
error.
2011-03-08 18:07:30 +00:00
Mark Liversedge
fc51026aa7 Native ANT+ Part 2 - Garmin USB1 Stick on Windows
This patch provides support for Garmin USB1 sticks under
Windows. Since the device does not present a serial port
this code uses the USBXpress API from SiLabs that the
Garmin device uses.

Support for USB2 sticks is pending.

To build you will need to download and install the SiLabs
development kit from http://www.silabs.com/products/mcu/Pages/USBXpress.aspx
and set USBXPRESS_INSTALL appropriately in gcconfig.pri. I
have provided instructions in gcconfig.pri.in.

At runtime the SiUSBXp.dll will need to be in the path, I will
assume that Gareth will fix up the windows installer for this, but
for now just copy the file manually.

Tested with a GARMIN USB1 stick on Windows 7 with SRM, Garmin HR and
a GSC-10 dual speed/cadence device.

There are other minor fixes to the ANTMessage code in this patch
related to decoding of calibration messages.
2011-03-07 13:39:17 +00:00
Mark Liversedge
c17c5488bb Native ANT+ Part 2 - tweaks
Couple of little tweaks to the Native ANT support. Firstly,
data channels such as watts, hr and cadence are now rounded
to an integer (lots of grid lines in ride plot looked nasty).

Secondly, basic support for calibration messages; this has been
limited to SRM messages, but will add support for other devices
as we start to debug them.

Part 3 of this work is still pending, this patch only contains
adjustments to part 2. I suspect there will be further adjustments
as we squash bugs for Quarq and PT users.
2011-03-06 21:16:04 +00:00
Mark Liversedge
efe578962f Native ANT+ debug, temporary for testing. 2011-03-06 13:41:16 +00:00
Mark Liversedge
46bc8018a7 Fix WorkoutWizard.h use of <> instead of "" for win32 build 2011-03-05 15:23:17 +00:00
Mark Liversedge
701eb200ef Native ANT+ Support (2 of 3)
Second stage of development, refactored the quarqd sources and introduced
an ANTChannel and ANTMessage class.

This is a functional patch and should work with known ANT+ devices, but
has only been tested with a Garmin HR strap, GSC-10 dual speed/cadence
and SRM wireless cranks. It has only been tested with a first generation
Garmin ANT+ USB stick.

It *should* work with other devices (e.g. Powertap, Quarq) but this has
not been tested.

The configuration pane has not been fixed yet, so you can either add a
Native ANT+ device and leave the profile blank (it will autodiscover
whatever it can when you run) or you can copy the profile from a Quarqd
device and use that.

There are lots of bugs;
* Calibration is not supported, uses a static srm_offset
* Wheel circumference is fixed at 2100mm for speed calculations
* Timeouts are hit and miss and need to be completed
* Sensor loss / timeouts are not managed yet
* Burst data and Acks are not handled
* Device descriptions, versions and battery messages are not handled

Aside from the bugs above part 3 wil also need to include;
* Configuration screen fixups and device pairing
* Add a calibration button to the realtime window

Lastly, the refactoring of the quarqd code is incomplete, there is still
a need to use ANTMessage across the code, especially within the ANTChannel
code which still does a bit of decoding locally.
2011-03-05 15:08:41 +00:00
Eric Brandt
dd4f5ff85c Added 'interval summary' window below the interval tree
When an interval (or intervals) are selected in the
interval tree, the new window below the tree now shows
summary information for the selected interval(s). This
is beneficial for example when the Ride Plot tab is shown
and the user also wishes to see summary info about the
intervals. This fixes #77.

I think there is still room for improvement on the fields
displayed and the formatting of the summary window. For now
the fields are the same as those displayed in the Ride Summary
page.
2011-02-27 13:21:58 +00:00
Mark Liversedge
76d9bbcafd post merge master in release_3.0.0dev fixups. 2011-02-27 11:36:14 +00:00
Damien
0c1353aa39 Remove error logs for unused datas in ride file
Fixes #173
2011-02-27 11:07:49 +00:00
Ilja Booij
8cb592d6b4 fix 'Wrong distance on Tacx caf file import'
This fixes wrong distance on Tacx by taking distance of first data
point as the base, and basing all distances on that first point.

Fixes #204
2011-02-27 11:07:49 +00:00
kohasa
09bec66b38 enabled editing interval duration by keyboard.
Fixes #125
2011-02-27 11:07:48 +00:00
Mark Liversedge
107e183510 post merge master fixups. 2011-02-26 14:50:40 +00:00
Gareth Coco
c4f379d12c FIT file reader fixes
1. Allow FIT reader to recognise the file comes from a Garmin Edge 800
This is Garmin product ID 1169 in the decodeFileId routine.

2. Ignore global_msg_type = 72
This message appeared with the introduction of the Garmin Edge 800.
There is no FIT SDK that tells us what this message is.
It appears only once and has timestamp/device serial number.
Code now recognises the msg_type as valid but we don't process it.

3. Add all decodeEvent types and work only with "timer" events
Not all event_types were present. They are now all in the function.
Previously the decodeEvent would look at all "events"
We now only decode event_types if the event is of type "timer".

Fixes: #250
2011-02-26 14:09:30 +00:00
Gareth Coco
1101e7e62b Changes to map markers
1. Removed green begin marker
2. Change interval markers 2 and higher to be blue
2011-02-26 14:09:30 +00:00
Greg Lonnon
7aceb4f0f3 Added a QFilesystemWatcher to monitor adding files to the workout directory.
This allows the TrainTool to automatically pick up any changes added to
the directory
2011-02-26 14:09:30 +00:00
Rainer Clasen
57b9e28110 Added SRM5 file format read support
SRM5 basically is the same as SRM6, but lacks "blocks". This means, it
only has the date of the exercise and no further absolute time info.
Furthermore it can't flag periods of time, where no data was collected.

Due to lack of absolute time, Exercises start at 0:00, by default.

Fixes #208
2011-02-26 14:08:54 +00:00
unknown
0bf19e3e8d This patch correct altitude for TCX files converted from FIT files These files doesn't have altitude for each Trackpoints. I propose to not assign 0 to altitude before each trackpoint
Fixes #60
2011-02-26 14:07:53 +00:00
Mark Liversedge
6dc2188aae post merge master into release3.0.0dev 2011-02-26 13:58:40 +00:00
Eric Brandt
6815fe0d1f fix realtime mode load timer and lcd sig. digit display issues
The load timer was simply being accumulated with each firing
of the timer. This resulted in inaccuracies. The fix is to
accumulate using a timer that measures the duration between loadUpdate
calls.

The speed, average speed, gradient, and distance LCDs ought to always
display 1 significant digit to avoid bouncing. This is now fixed.

This commit fixes #262 and fixes #263.
2011-02-14 22:05:42 +00:00
Mark Liversedge
90fb7d8a9b Flex/Bison instructions in gcconfig.pri.in 2011-02-12 20:59:50 +00:00
Mark Liversedge
c144098165 Fix TreeMap Crash & Cosmetics
The recent fix for date range selection was not applied to the
TreeMap plot and caused a SEGV on restart (when placed on home
window). This fixes that.

It also fixes a minor cosmetic related to QFrame margins.
2011-02-11 23:08:05 +00:00
Mark Liversedge
2f44100246 post merge master into release3.0.0dev fixups. 2011-02-07 20:11:40 +00:00
Mark Liversedge
8913b37346 Fix 'Save data' in RealtimeWindow
A previous commit stopped disk updating from working, i.e. saving
workout data to a .csv file. This patch fixes that.

Fix supplied by Greg Lonnon, Fixes #254.
2011-02-07 19:48:31 +00:00
Mark Liversedge
3ff839c4ff Fix Computrainer with Stereo FTDI adaptor
The newer Racermate FTDI based USB adaptor (USB-StereoJack) failed
to receive data from the Computrainer, this was due to incorrect
flow control settings.

Fix supplied by Eric Brandt.
2011-02-07 19:25:25 +00:00
Mark Liversedge
e4c3393c31 Fix Computrainer with Stereo FTDI adaptor
The newer Racermate FTDI based USB adaptor (USB-StereoJack) failed
to receive data from the Computrainer, this was due to incorrect
flow control settings.

Fix supplied by Eric Brandt.
2011-02-07 19:02:41 +00:00
Mark Liversedge
8dc32c001f Native ANT+ Support (1 of 3)
First stage of development, folding together the
quarqd sources and creating an ANT+ worker and controller
to work with realtime window.

The basic code is folded together and compiles fine. The next
step is to address the channel management code, device discovery
channel assignment and channel event handling. This will be pushed
as part of the next commit.

The third commit will need to fixup the configuration pages to
support selection of device/baudrate, fix native discovery/pairing
in config and lastly, fix a long standing issue with the config pane
to allow editing of existing device configurations.

This is NOT a functional patch yet, but compiles and runs fine. Committed
as a checkpoint before refactoring quarqd supplied code.
2011-02-06 17:54:50 +00:00
Mark Liversedge
8af6973c24 Merge branch 'release_3.0.0dev' of github.com:/srhea/GoldenCheetah into release_3.0.0dev 2011-02-05 12:53:59 +00:00
Mark Liversedge
519f5fcc5e Improved Season Support
This fixes issues with date range editing in the Metrics controls
and provides support for Season load planning (under development).

Creating and selecting seasons is largely managed within the
Metrics tool. This has not been changed with this patch. Athlete
seasons are now managed as a member of the MainWindow class (although
this will move to an Athlete/Cyclist class when MainWindow is
refactored).

A Season identifier (UUID) has been introduced to enable Seasons to
be referenced independently of their name or date ranges. The LTM
tool now keeps track of changes to Seasons (when new seasons are
created, changed, deleted). Additionally, the Season XML file now
supports storage of a Season Load Plan.
2011-02-05 12:46:54 +00:00
Mark Liversedge
810c60a896 merge master into release_3.0.0dev 2011-01-30 16:13:00 +00:00
Damien
470885df50 Modify csv import for ergomo file with comma or semicolon separator
Fixes #244.
2011-01-30 15:50:24 +00:00
Darren Hague
152239eea4 Remove toMSecsSinceEpoch() and work around
toMSecsSinceEpoch() is from Qt 4.7. Replaced with an implementation
based on QTime:start() and QTime.elapsed() from Qt 4.6.
There is now a theoretical upper limit on turbo sessions of 24 hrs :-)

Fixes #247.
2011-01-30 15:14:13 +00:00
Mark Liversedge
a8024ce2ec merge master into release_3.0.0dev 2011-01-30 15:09:27 +00:00
Darren Hague
073079a6e7 Add virtual power support for BT-ATS trainer
Add "BT Advanced Training System" to dropdown.
Implement 3rd-order polynomial to get power from speed.

Fixes #246.
2011-01-30 14:43:11 +00:00
Greg Lonnon
42508c7f88 Computrainer Workout Wizard
A wizard to create workouts based on absolute wattage and time
relative wattage and time (to CP60) slope and distance and import
an existing ride, and provide some smoothing to the ride data.

Also fixes NP calculation SEGV when recIntSecs is negative.

Fixes #249
2011-01-30 14:24:29 +00:00
Mark Liversedge
fe5c5015bf merge master into release_3.0.0dev. 2011-01-22 20:42:00 +00:00
Darren Hague
963c28c7a8 Use realtime clock for realtime-mode clock
Instead of adding 200ms to the elapsed time on every gui update,
this patch records the timestamp of when the Start/Pause buttons
are clicked and subtracts these from the current hardware clock time
to calculate elapsed total & lap times.  Fixes bug #235.
2011-01-22 20:24:52 +00:00
Darren Hague
7e42cdd486 Corrected - to + in CycleOps formula
Fixes #239
2011-01-22 20:24:52 +00:00
Mark Liversedge
c1fc674609 Translations Bonanza!
Russian Translation from Gwelu
Czech Translation from Beeda
Updated Japanese Translation courtesy of Key
Updated German Translation courtesy of Luke

Golden Cheetah now supports 7 languages!
2011-01-22 20:19:42 +00:00
Mark Liversedge
1fdf45d26d Improved Calendar Support
Fixes previous CalDAV support, as MobileMe based calendars
now work ok. Additionally, a new 'id' field has been created
to provide a persistent and immutable identifier for a ride
file (regardless of changes to date/filename).

The URL provided in the Calendar config pane can now include
'@' symbols (they are translated to %40).

The CalDAV URL should be provided for a calendar collection and
not for a principal. Examples being (trailing slash is significant):

Google  : https://www.google.com/calendar/dav/xxxx@gmail.com/events/
MobileMe: https://cal.me.com:8443/calendars/users/x.xxxxxxxxxx/home/
2011-01-22 18:54:05 +00:00
Mark Liversedge
c7b1c77fb7 Cosmetic tidy on DiaryWindow, tidy CalDAV code. 2011-01-16 20:09:29 +00:00
Mark Liversedge
696a9273dd Upload Ride to calDAV based calendars
A new menu option and associated config to integrate the
diary window (and ridefile history) with a calendar server
that supports CalDAV (iCal, Google, MobileMe).

This patch introduces an upload to calendar function and is the
first step towards adding calendar based planning functions.

It is important to note that no local calendar is maintained, we
are simply integrating with an existing calendar service.

It has been tested with Google Calendar, further testing and
enhancements are ongoing for users of Apple's MobileMe.
2011-01-16 15:04:40 +00:00
Mark Liversedge
7ef5b7a1f8 Fix gcc 4.5 compile error/warning in HrPwPlot.cpp
A couple of nits in the code were picked up by
gcc-4.5; const in a function returning non-const
and an unneccessary initialisation of a QList calling
the constructor directly.

Fixes #236.
2011-01-11 21:11:28 +00:00
Mark Liversedge
54b8e8f571 Export Metrics to CSV
A new menu option to export the ride metric data
as a CSV format file for manipulation in tools like
Excel.

It exports all rides (no date range) and outputs the
date in US format month/day/year, with time in 24hr format.

Additionally, a 'hack' to export all rides in GC format has
been removed since it was erroneously included in the initial
v3 branch.
2011-01-11 19:28:35 +00:00
Mark Liversedge
aad56b5f09 Drag cursor support Qt < 4.7 2011-01-11 17:15:58 +00:00
Mark Liversedge
7e95bd3232 fix homewindow resize cursor bug. 2011-01-11 13:33:26 +00:00
Mark Liversedge
2a6e7f535d Segmented button on Mac fix show selected. 2011-01-10 20:33:38 +00:00
Mark Liversedge
f39949e6a7 Single click moves chart to end of homewindow
If you click on a title bar to stick the controls
for a window it was getting moved to the end of the
charts (the default action for move chart).

This patch fixes this.
2011-01-09 21:56:29 +00:00
Mark Liversedge
3a801e27b5 Fix addchart crash on empty homewindow
Silly bounds error when there are zero charts on
the homewindow.

Fixes #232.
2011-01-09 21:01:50 +00:00
Mark Liversedge
cfe57752f8 Merge Master into V3 Branch
- German translation update
- Virtual power in realtime

Conflicts:
src/DeviceConfiguration.cpp - needed to adjust
to use appsettings for read/write of application
settings.
2011-01-09 19:37:05 +00:00
Darren Hague
615737658d Virtual Power; Better GSC-10 pairing support.
Virtual Power - included patch from Mark Liversedge & corrected bug
with his help.

GSC-10: Check dual sensor 4th and speed-only sensor (which is rare) as
5th.
This means that an all-Garmin setup (ANT+ stick, GSC-10 sensor) will
always work. A speed-only sensor is almost useless in GC real-time
mode anyway, because speed-only sensors tend to run off the front
wheel which will be stationary on a trainer. Fix pointer problems with
device controller/config.

Fixes #219
2011-01-09 19:15:20 +00:00
Mark Liversedge
740d09668e Merge branch 'realtime3' of https://github.com/glonnon/GoldenCheetah into release_3.0.0dev 2011-01-09 19:04:49 +00:00
Mark Liversedge
2ee04838ad HomeWindow chart move/drop
The previous commit enabling tile 'bumping' as
you move them around proved impractical with
charts that largely filled the screen.

This patch replaces this approach (original code
is retained though) by using a 'cursor' to show
where charts will be dropped / moved to and moving
or dropping to this position.

This means the layout code is complete, except for
potentially adding support for multiple layouts (e.g.
have saved layouts for different purposes like
LTM charts for last 6 months or 28 days or an
agenda view that shows past week next week calendar).
2011-01-09 18:47:02 +00:00
Greg Lonnon
dff06db88d kJoules, BikeScore, xpower displayed, fixed length speed/avg speed, refactored grid layout.
kJoules : take the avg power and multiple it by the number of seconds.

bikescore, xpower : added a rideFile object to calculate the bikescore, xpower on a 5 second
period.  It has it's own timer.

fixed display of speed and avgSpeed:
old aglorithm would not display the tenths place if it was zero.  New aglorithm
always displays the tenths place.

Signed-off-by: Greg Lonnon <greg.lonnon@gmail.com>
2011-01-09 10:20:35 -07:00
Damien
8d3beaa3fb enhancement for HrPw 2011-01-09 10:30:35 +00:00
Mark Liversedge
4e2d6ef04c Move tiles on HomeWindow
More work to support moving tiles on HomeWindow. This update
adds tile movement and 'pushing' other tiles out the way as
you move them around.

Tile ordering/positioning is still todo, but this introduces
the visual feedback during a move for the user.
2011-01-08 20:06:29 +00:00
Damien Grauser
6ac75fda3a SRMWIN Style HrPw Plot
Added a plot of heartrate to power showing
histograms of power on y-axis, heartrate on
the x-axis and overlaid hr/power scatter.
2011-01-07 22:07:23 +00:00
Justin Knotzke
3cab2f6175 Update of German translation by LukeNRG 2011-01-06 17:36:20 -05:00
Mark Liversedge
edc8b412bb Tidy up bar chart in metrics
Simple, but oh my, what a difference. This two line
patch removes the nasty line artefacts on a bar chart.
Those are the lines that get 'left behind' when a bar
is drawn next to another one.
2011-01-04 20:10:21 +00:00
Mark Liversedge
9e0f067def fix close chart crash. 2011-01-04 19:16:45 +00:00
Mark Liversedge
b6aacd264d Allow user to drag/resize tiles on homewindow. 2011-01-03 19:47:37 +00:00
Mark Liversedge
0ef63a51a4 Make libical optional
If ICAL_INSTALL is not defined in gcconfig.pri
then diary/calendar functions are not compiled. This makes
libical an optional dependency, like libkml, libqwtplot3d et al.
2011-01-03 11:30:56 +00:00
Mark Liversedge
2d05c7fb4c merge origin/master fixups. 2011-01-02 18:12:27 +00:00
Greg Lonnon
93ad436c6a changes to the markers in google maps.
blue marker = start of ride
red marker = end of ride
green markers = interval markers.

interval markers has the interval metrics displayed.
end marker has the ride summary displayed.

Fixes #169.
2011-01-02 17:21:17 +00:00
Mark Liversedge
1db39c5536 Fix homewindow bugs
Fixes;
- drag and drop ride works again
- segv on an empty measures curve in metric plot
- remembers all LTMsettings
- further cosmetic/visual tweaks
2011-01-02 13:14:34 +00:00
Mark Liversedge
4e1cde69bc Julian Candy 2011-01-02 13:14:30 +00:00
Mark Liversedge
3aba7dd788 Inital V3 Branch 2010-12-30 17:35:23 +00:00
Mark Liversedge
550ae22aa3 Merge branch 'master' of github.com:/srhea/GoldenCheetah 2010-12-25 23:08:40 +00:00
LukeNRG
ea11916a93 German Translation
Provides 100% coverage of language texts*

* a couple of texts for WeeklySummary window containing html
  codes (gt,lt et al) had not retained their encoding using
  &gt, &lt, whilst I edited a few of them in the file, these
  two were particularly complex and challenging. We can fix
  them later. [Mark Liversedge]
2010-12-25 23:07:25 +00:00
Justin Knotzke
ff3a052415 Cycleops Test Ride 2010-12-21 18:13:49 -05:00
Roberto Massa
57a2c27262 Italian Translation
Provides translation for 47% of language texts.
2010-12-19 14:48:41 +00:00
Bruno Assis
c780f2edd0 Portugese (Brazil) Translation
Provides 64% coverage of language texts.
2010-12-19 14:38:38 +00:00
Mitsukuni Sato
4b0ce34d09 Japanese Translation
Provides 100% coverage of translatable texts.
2010-12-19 14:21:47 +00:00
Greg Lonnon
241976634d GPX RideFile Support
The current format will parse time, and gps data.  It will interpolate
distance and speed based on time and gps.
2010-12-17 21:05:29 +00:00
Jamie Kimberley
c21ca878c0 Update download page to reflect build of mac 10.4 2010-12-12 21:07:41 +00:00
Mark Liversedge
30ea14bcd5 Mac PPC binary added to downloads page. 2010-12-12 18:14:14 +00:00
Mark Liversedge
e1f9bbf62e Add link to wiki from the website. 2010-12-03 08:38:12 +00:00
Mark Liversedge
71b512c1a9 Joule support fixed on download page. 2010-11-30 21:18:24 +00:00
Mark Liversedge
544718099a Updated www.goldencheetah.org for v2.0 release. 2010-11-30 20:52:39 +00:00
Mark Liversedge
789be5681d New screenshots for the website. 2010-11-29 21:08:43 +00:00
Mark Liversedge
66d32bbebf tweak LTM bar chart gaps. 2010-11-29 10:42:16 +00:00
Mark Liversedge
7f55855f2d Plot bars side-by-side on Metric charts
This patch plots bars next to each other, rather than overlaying
them making the data much easier to interpret. The code is inspired
from Robert Carlsen's weekly summary.

The "transparency" for the bar colors has been adjusted to make
the coloring more vobrant since we no longer need to 'see through'
bars to see what is underneath.
2010-11-29 10:08:06 +00:00
Mark Liversedge
532fe0d26c Disable Ride Editor for manual or null rides. 2010-11-27 22:00:23 +00:00
Mark Liversedge
a29109343f Fix CSV parser and more checks for NULL ride
The CSV ride parser now checks for empty rides and returns
a NULL ride if there are no samples. In addition, the rideEditor
tries to set editorData even if the ride is NULL. Lastly, the
RideItem code for lazy reads of RideFile data didn't check for
NULL values (!).
2010-11-27 21:52:02 +00:00
Mark Liversedge
5f13f4800b Fix Stop(DEVICE_OK) connect error in RealtimeWindow
The signal/slot connection in RealtimeWindow for the 'stop'
button fails. The code wants to pass DEVICE_OK to the slot
but the QWidget connect method wants a SLOT signature.

This patch sets a default of DEVICE_OK for the newly
introduced 'status' parameter to the Stop() method and
corrects the signature used in the connect statement. As
a result, if the Stop() button is pressed the status will
be 0 (DEVICE_OK).

If you press start then stop really quickly and there *is*
a device error then it will still create a CSV file with no
samples. The CsvRideFileReader should be fixed to parse
these files correctly.
2010-11-27 21:32:58 +00:00
Justin Knotzke
12fb154f5b Fixed bug whereby CSV file was corrupted.
When Device was not available, Realtime was creating a corrupted CSV.
If Device is not availble at startup, the ride file is removed.
2010-11-25 10:22:59 -05:00
Mark Liversedge
72604b6cb3 Prettify Bar Charts in LTM
The bar charts on the metrics tab are a bit on the
quirky side. This is an artefact of the qwt library's
lack of a bar chart style.

This patch adopts the same approach used in weekly
summary charts and the histogram 'by zone' plots.

Fixes #185.
2010-11-09 19:53:02 +00:00
Mark Liversedge
dde17f278b TRIMPPoints use workout_time not time_riding
TRIMP was using time_riding to calculate points
even though the HR average is for the entire ride.
In addition, time_riding may be zero when only
HR data is present (there is no way of determining
time spent or not spent riding).

Fixes #187.
2010-11-09 19:43:12 +00:00
Mark Liversedge
7e25eedb8e Workaround for hidden files on Win32
Ride files may be created as hidden files in some
instances on Windows 32. This patch ensures that
they are subsequently included in the ride list
(i.e. ride files can be hidden files).

Fixes #176
2010-11-06 08:28:45 +00:00
Mark Liversedge
d483445291 Too many TRIMP metrics on Summary
This patch removes the additional TRIMP metrics
on the ride summary, plain old TRIMP points are
shown but not the zonal and 100 versions.
2010-11-06 08:25:39 +00:00
Damien
33076c1cb5 Correct TRIMP HR equation.
Fixes #177
2010-11-06 08:23:54 +00:00
Damien
d6d9bd9227 Fix HR add zone crash
Fixes cannot add new HR zone (v2.0-RC1)

Fixes #172
2010-11-03 06:01:38 +00:00
Rainer Clasen
59ae5fc537 Fix SRM interval start/end
While the last patch for misaligned SRM Intervals did fix the out of
bounds indices (and thereby fixed the crash), it got the start/end
swapping wrong. In other words: It swapped start/end where it shouldn't
and therefore broke all interval handling.
2010-11-02 06:19:18 +00:00
Gareth Coco
0e5e5206a2 Font issues in 3D plot on Linux
Updated gcconfig.pri.in to advise Linux users who have font issues
with the 3D plot tab, to download the latest 0_2_x code for qwtplot3d.

Fixes: #88
2010-11-01 17:23:27 +00:00
Ilja Booij
f6b5cd2790 Fix Polar ride parser crash
Tacx HRM exporter does not create an [IntTimes] section.
When the [HRDate] section is encountered, This patch creates
a single interval in the intervals list, which has the
length of the complete ride.

Fixes #23
2010-11-01 14:12:56 +00:00
Mark Liversedge
87a6f9e628 Typo in HistgramWindow for checking HR/Power ranges
The code in HistogramWindow::rideSelected() to check
HR and Power zones have been configured for the
ride just selected contained a typo; the power range
would be set to HR and the hr range would be set to
power. This resulted in the wrong options being shown
in the drop down box.

This patch fixes this behaviour.
2010-11-01 13:26:44 +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
Mark Liversedge
da8e636e65 Fix PM day offset by 1
Almost certainly caused by a fencepost errors somewhere else
in the code. This fixes the offset by subtracting one from the
offset used.

Fixes #28
2010-11-01 06:47:40 -04:00
Mark Liversedge
e3c6e7e76c Fix config pane ugly scrollbars on Linux. (twitter icon) 2010-10-31 23:52:15 +00:00
Damien
819303b060 Zonal TRIMP 0 if no HR. 2010-10-31 23:31:55 +00:00
Mark Liversedge
fc583e6404 Fix WKO+ files with Alt, Wind or Slope
The logic in the WKO+ ridefile parser tried to
re-use code blocks for working with alt, wind
and slope but as a result ended up overwriting
variables and losing data as a result.

It also mishandled negative values for those
data series.

It also falsely reported iBike files as Ergomo.

Fixes #164
2010-10-31 21:45:50 +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
Justin Knotzke
3e0f3358f5 Removed superfluous call to creating a CSV file. 2010-10-31 07:02:52 -04:00
John Ehrlinger
f690e188a1 Update the Polar hrm file import to include a conversion for files recored in english units.
S-series records in english
CS-series records in metric.
2010-10-26 19:25:18 -04:00
John Ehrlinger
cffde51caa Add a collection of polar hrm files for testing purposes.
These files include english and metric units. Files are imported from s610/s725x/cs400 units. Include different data types.
2010-10-26 19:23:35 -04:00
Ilja Booij
5e2f52cf28 Some .caf files have data blocks which have an extra 8 bytes per record. I do not know what the contents of these 8 extra bytes are, but to make things work, we need to at least take them into account when parsing the files.
The caf parser now checks what version the file is (100 or 110) and
handles data records accordingly. Files with version 100 have 10
bytes per data record, all of which are known. For version 110, the
first 10 bytes are the same as version 100, followed by 8 bytes per
data record.
2010-10-26 19:17:01 -04:00
Gareth Coco
603c56f595 Resolve Lat/Long issue on FIT file import
The FIT parser will attempt to interpolate data when filling in for smart
recording or if a record is missed. A problem occurs if one of the lat/long
points is missing or 0,0.

This patch will record a 0,0 lat,long if the record is missing in the FIT
file and when interpolating, will set any interpolated data points to 0,0
if the start or end record is also 0,0.

A 0,0 record is not plotted on the MAP tab.

Fixes #111
2010-10-26 19:12:37 -04:00
Gareth Coco
cee09061ff Correctly plot lat/long for CSV files
When writing out data point, lat/long were transposed.

Fixes: 136
2010-10-26 19:06:20 -04:00
Jamie Kimberley
91a66a7520 Fix gaps in ride now keeps previous altitude
The patch changes the behavior of the "fix gaps in rides" function. This
now fills stops in rides with the last recorded altitude rather than zeros
as was previous behavior.

fixes #158
2010-10-26 19:02:53 -04:00
Mark Liversedge
d106086afe Fix WKO+ with Powercontrol VI RideFile reader crash
Files kindly supplied by Alex Simmons have demonstrated a bug in the
parsing of WKO+ files that contain data downloaded from an SRM
Powercontrol VI. The files are parsed incorrectly and often lead
to crashes or absurdly high summary values.

This might be version specific, since the files were WKO v3 files, we
should watch for WKO+ v2.2 files that contain Powercontrol VI data and
potentially make this version specific if needed.
2010-10-25 21:20:50 +01:00
Jim Ley
0238ba9052 More help/feedback during entry of manual workout
Improve fix of #132 so that it doesn't require you to enter
a bikescore or daniels point or distance if you do not want to.

Add hints to the appropriate values for the entries.

Fixes #132
Fixes #146
2010-10-25 17:45:08 +01:00
Mark Liversedge
acc522748a Make ride file pattern case insensitive. 2010-10-22 21:46:19 +01:00
Rainer Clasen
99c330edc2 tolerate swapped marker in srm files
in certain circumstances srmwin seems to (have?) written bad files: The
first/last data chunks referenced by a marker were swapped plus the "real"
start index was 0 - although chunks are counted from 1.

This patch checks for this defect and interprets the data in the same way
as recent srmwin versions do when reading files with this defect.

Though the way marker are stored in PCV makes me guess, the refernce the
bad chunk index 0 really means "last" chunk in the recording.
2010-10-14 10:12:53 -04:00
Austin Roach
ea05ba2151 Tweet Ride Error Checking
Adds error checking to Tweet Ride.  Checks to make sure that oauth
credentials exist, that tweet is under 140 characters, and that
oauth_http_post received a reply indicating a successful post.

Move addition of hashtag to getTwitterMessage() to cleanup length
calculations.
2010-10-11 10:27:35 -04:00
unknown
0d6949ed9e Changed validation in manual ride entry.
Fixed warning on Bike score estimate label not being used.

Added validators to Bikescore and daniels points manual entry to allow
more than 3 digits.

Added dialog which enforced validator on distance, bikescore and
daniels points.

This fixes #132
2010-10-01 21:33:10 +01:00
Mark Liversedge
2f41cabb1d Re-order crypto/oauth libs for linking
liboauth depends upon libcrypto but they are declared in
the opposite order in src.pro. This patch reverses this to
avoid linker errors on Linux.
2010-10-01 21:30:14 +01:00
Ilja Booij
07e086ce44 Support Tacx CAF Ride File Format
Initial version of Tacx Caf file importer. TacxCafRideFile.cpp added to qmake file.
Fixed parsing of heart rate value, Heart rate and cadence should have used quint8
instead of qint8, because they're unsigned.

Fixed #143.
2010-10-01 13:49:38 +01:00
Mark Liversedge
f31cef3f1e Racermate/Ergvideo TXT file support
This patch add support for the Racemate text export of their
CDF file format. This format has also been adopted by Ergvideo v3.

Fixes #144.
2010-10-01 13:49:33 +01:00
Rainer Clasen
a4828070df be more precise on SRM support on the start page
To save users fruitless work trying GC on non-supported SRM Powercontrols.

Fixes #107.
2010-09-28 22:24:40 +01:00
Mark Liversedge
781e0619ec Fix SEGV in connect error for QT4.6
Fixes #80.
2010-09-28 22:21:04 +01:00
Jamie Kimberley
a8e5777953 Modify line endings in the ride editor
On mac systems, when copying data from excel and pasting into the ride
editor GC would complain about the data ranges not being the same size.
This is a result of the fact that excel mac terminates lines with a CR
(\r) rather than a NL (\n).  This patch changes the behavior so that we
check for all three commonly occurring line endings CR, NL and CRNL.

fixes #135
2010-09-28 22:13:14 +01:00
Ken Sallot
dd5cdd920d Improved handling of smart recording / gaps in TCX files
Currently, GC interpolates time gaps in all TCX files as a result of smart
recording.  However, this overlooks periods of inactivity (stopped at a light
for instance).

1. Provide a configuration option, that if enabled, will tell GC to interpolate
time gaps in TCX files as if they were a result of smart recording.  If the
option is not enabled, then interpolation will not occur.

2. Provide a maximum "high water mark" (in seconds) for these time gaps.  The
default HWM is 25 seconds, but is user configurable.

Any time gaps that exceed the high water mark can be fixed via the Fix Gaps
tool under the toolbar.

Fixes #74.
2010-09-28 21:56:27 +01:00
Justin Knotzke
0139b7ee84 Missing #ifdef if not building with Twitter support. 2010-09-05 14:37:07 -07:00
Justin Knotzke
78111d4279 Missing #ifdef if not building with Twitter support. Thanks John Ehrlinger 2010-09-05 14:24:35 -07:00
Justin Knotzke
899e6eb362 Support for OAuth for the Twitter feature. Metric adjectives by Robert Carlsen. 2010-08-26 14:06:25 -04:00
Mark Liversedge
f6eb97ec0f Add support for Google Earth (KML)
This patch adds an 'Export to KML' option to the ride
menu. It will create a .kml file including power, hr,
torque etc. These can be viewed alongside the map view
in Google Earth 5.2.

Please note this requires libkml. The features of libkml
that are required were introduced in revision 852 which
means that as of Aug 2010 you will need to checkout from
the SVN source repo and build;

svn checkout http://libkml.googlecode.com/svn/trunk/ libkml-read-only

and the ./configure mantra that worked successfully for
me on Mac OS X was;

./configure CC="gcc -arch i386" CXX="g++ -arch i386" --disable-swig

Building on WIN32 is currently fraught with issues, unless
you build via MSVC 2010. Linux is straight forward but you will
need to install / apt-get libcurl.

Fixes #133.
2010-08-26 10:47:49 +01:00
Mark Liversedge
48a25081ed Fix blank space on right of AllPlot. 2010-08-14 13:00:05 +01:00
Damien Grauser
5e575beaff Support for Joule BIN File Format
The new source files, missed from previous commit.
2010-08-10 18:55:55 +01:00
Damien Grauser
861fa5ee38 Support for Joule BIN File Format 2010-08-10 18:54:07 +01:00
Mark Liversedge
fef237f138 PWX Ride file support
Support for Training peaks new .pwx file format. This
is an XML format (and is particularly verbose). Support
has been added to enable interoperability with WKO+ v3,
TrainingPeaks.com and Device Agent.
2010-08-06 19:48:51 +01:00
Justin Knotzke
21572977b4 When DFPM watts were detected, GC was still using fake iBike watts. 2010-08-05 16:08:51 -07:00
Mark Liversedge
9109eb616f Fix crash in AllPlot on Manual Ride
When a manual ride is selected whilst on allplot
it will refresh the plots, but computes invalid
offsets into the ride data. this patch fixes this
crash.

Fixes #128.
2010-08-04 22:19:46 +01: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
02fe34216d Fix lots of SEGV in AllPlot for new cyclist (rideItem is null). 2010-07-30 06:43:54 +01:00
Robert Carlsen
081856bf64 Updating stack zoom control enabling logic. 2010-07-29 21:16:22 -04:00
Robert Carlsen
62d658c929 Disable stack zoom controls when stacked view is disabled. 2010-07-29 02:16:22 -04:00
Mark Liversedge
29069cd63f Fix crash on openRideFile
The recent data processor / ride editor patch added some
post-processing actions after a ride file is opened. The
functions are called without checking for an open ride
failure. This patch fixes that stupid error.
2010-07-29 06:48:06 +01:00
Sean Rhea
0fe01407a2 link to Gareth's devel builds from main site 2010-07-28 19:48:05 -07:00
Mark Liversedge
efd4de62a1 Fix Imperial Show By Distance on AllPlot
The recent patch for allPlot zooming does not display the full plot
properly when the user has selected imperial units and is displaying
by distance (not time). This minor fix corrects this.
2010-07-28 20:23:01 +01:00
Mark Liversedge
2962fce0b7 Scrolling AllPlot and Tooltip
Introduce a span-slider on the normal Ride Plot chart to enable
users to select a range to plot and scroll left and right. The
zoom to interval function now uses this slider rather than setting
a zoom range. Tooltips are now displayed on the normal and stacked
views to assist in reviewing specific data points.

Old style zooming still works as expected, but scrolling at a zoom
level is not yet implemented.

The qxt widget 'QxtSpanSlider' has been placed in the top
level directory (GoldenCheetah/qxt) alongside the qwt widgets to
avoid adding another dependency.

A number of optimizations have also been introduced to speed up
plotting in general. A new color setting for the thumbnail plot
has also been introduced. Refresh of the plot when data is changed
in the editor has been fixed. The zoom scale up/down widgets are
also disabled when in normal mode to avoid the bug highlighted by
Robert Carlsen.

Fixes #122.
2010-07-27 19:46:35 +01:00
Justin Knotzke
8e73d01829 Fixed a small typo in QHttp. 2010-07-26 06:51:29 -07:00
Justin Knotzke
ca24400a0a Merge branch 'origin' 2010-07-25 07:54:29 -04:00
Justin Knotzke
4465d18b4f Twitter image for the Config Dialog page. 2010-07-25 06:59:53 -04:00
Justin Knotzke
3e2468dcc6 Merge branch 'master' of git://github.com/srhea/GoldenCheetah 2010-07-25 06:57:23 -04:00
Justin Knotzke
e1d69f71e1 Tweet your ride. You can now tweet your ride from GC 2010-07-18 15:15:26 -04:00
Mark Liversedge
1a71a8a41f Fix RideEditor crash on right-click Column
RideEditor::colMapper was not initialised in the
constructor leading to an erroneous delete when
first referenced and a subsequent crash.
2010-07-18 14:12:54 +01:00
Justin Knotzke
1506c41cca Merge branch 'master' of git://github.com/srhea/GoldenCheetah 2010-07-17 14:45:45 -04:00
Mark Liversedge
cd3bbc4e64 Ride editor and tools
A new tab 'Editor' for manually editing ride file data points and
associated menu options under 'Tools' for fixing spikes, gaps, GPS
errors and adjusting torque values. A revert to saved ride option
is also included to 'undo' all changes.

The ride editor supports undo/redo as well as cut and paste and
"paste special" (to append points or swap columns/overwrite
selected data series). The editor also supports search and will
automatically highlight anomalous data.

When a file is saved, the changes are recorded in a new metadata
special field called "Change History" which can be added as a
Textbox in the metadata config.

The data processors can be run manually or automatically when a
ride is opened - these are configured on the ride data tab in
the config pane.

Significant changes have been introduced in the codebase, the most
significant of which are; a RideFileCommand class for modifying
ride data has been introduced (as a member of RideFile) and the
RideItem class is now a QObject as well as QTreeWidgetItem to
enable signalling. The Ride Editor uses a RideFileTableModel that
can be re-used in other parts of the code. LTMoutliers class has been
introduced in support of anomaly detection in the editor (which
highlights anomalies with a wiggly red line).

Fixes #103.
2010-07-17 14:33:39 +01:00
Justin Knotzke
fc668303da Merge branch 'master' of git://github.com/srhea/GoldenCheetah 2010-07-06 17:35:20 -04:00
Mark Liversedge
8569f812a6 Fix assert crash in BestIntervalDialog.cpp
Removed redundant assert in BestIntervalDialog.cpp. It is redundant
because it is executed prior to a logic check for the same condition.

The assert check has been shown to be unreliable due to inherent
inaccuracies in float arithmetic and comparisons for example, according
to the IEEE specs 1000.2 - 1000.0 will be stored as 0.200012. This
inherent problem with floats is particularly relevant in this
code since it is dealing with interval durations and recording intervals
which are expressed to a precision of 100th or even 1000th of a second.

Fixes #99.
2010-07-06 14:35:13 +01:00
Justin Knotzke
0b7140161c Merge branch 'master' of git://github.com/srhea/GoldenCheetah 2010-06-07 06:32:18 -04:00
Mark Liversedge
06e44b8d47 Fix drag slider from Maps tab
When viewing the maps tab it is possible to drag and drop
the slider causing a file import dialog to pop-up and fail.
This patch rejects any drop events where the url is http.

Fixes #97.
2010-06-06 18:43:22 -07:00
Mark Liversedge
51784f64f6 Increase precision of sample data in .GC file format
Three related issues fixes; firstly lat/lon values lose precision when
being read from .tcx files by Qt's QString::toDouble(). This
has been replaced with the stdc strtod() function in TcxParser.

Secondly, when writing to .gc format precision was also lost, this
has been fixed for lat/lon values.

Thirdly, when writing to .gc format precision of seconds was lost,
this is particularly relevant to Powertap files which have a sample
rate of 1.26 seconds.

Fixes #83.
2010-06-06 18:39:26 -07:00
Mark Liversedge
c4f82e19b6 Better Zones Configuration Page
The zone ranges configuration page caused a SEGV when deleting the
last zone. On inspection the zone configuration needed to be
revised since the UI was confusing and didn't allow fine grained
user editing (relying upon manual editing of the power.zones file).

The UI has been redesigned and fine grained editing of ranges, zones
and default zones is now supported.

The Zones class has been slightly modified to support the new UI and
existing members are better commented. In addition, the read/write
functions have been updated to always include the DEFAULTS section and
to set defaults according to manual zone setups when it is not present
(legacy support).

There are now 10 TimeInZone metrics to match the maximum of 10 zones
the user can define.

Fixes #78.

Fixes #34.
2010-06-06 18:36:50 -07:00
Gareth Coco
7941f0a9bc Add read power from variable ns3:Watts.
TCX files exported from Garmin Connect have power as follows:
<Extensions>
              <ns3:TPX>
                <ns3:Speed>2.236999988555908</ns3:Speed>
                <ns3:Watts>68</ns3:Watts>
              </ns3:TPX>
</Extensions>

Fixed parser to read this as a valid power reading.

Fixes #65
2010-06-06 18:26:59 -07:00
Gareth Coco
d03d538498 Mapping and Latitude/Longitude logic changes
Patch changes the valid latitude/longitdue selection alogrithm.
Ensures that the data points are valid (-90<=Lat<=90, -180<=Long<=180)
Tightens up .WKO file import issues.
Allows for missed GPS data points of 0/0 in Garmin FIT files.
Changes mapping function to not plot invalid lat/long values.

Fixes #75
2010-06-06 18:20:43 -07:00
Justin Knotzke
8741af20ff Merge branch 'master' of git://github.com/srhea/GoldenCheetah 2010-05-01 16:01:48 -04:00
Mark Liversedge
a0c5669166 Support for Polar SRD file format
A ridefile reader for Polar .srd format files. The code is
largely based upon code from the "s710" project.

Since "s710" is dependant upon GD and a number of deployment tools
and the fact that the code hasn't changed since May 2007 the
workout code has been included directly into the SrdRideFile.h
and SrdRideFile.cpp source files.

2 sample SRD files have been included in the test/rides directory
which were kindly supplied by Ian Charles.
2010-05-01 10:34:19 -07:00
Mark Liversedge
3f4adc2d31 Use Zone Colors on Map
A patch to use the GC zone color scheme (or preferences) when
plotting power on the Map tab.

fixes #82
2010-05-01 10:26:58 -07:00
Mitsukuni Sato
fc7dce1634 japanese translation 2010-05-01 10:22:25 -07:00
Mark Liversedge
803383ba2c Fix StressCalculator SEGV
If no results are returned from metricDB the stress calculator will
SEGV. This will occur when the DBVersion is out of sync with the
metricfactory (and this should not occur).
2010-05-01 10:21:03 -07:00
Mark Liversedge
9ae79db4cb fix SEGV in AllPlot on manual/null rides
fixes #71
2010-05-01 10:19:46 -07:00
Mark Liversedge
74f85f08d5 Show LAT/LON on 3D Plot
Add latitude and longitude to values that can be plotted on the
3D plot model window.

fixes #43
2010-05-01 10:14:34 -07:00
Justin Knotzke
85ee3859e4 Merge branch 'master' of git://github.com/srhea/GoldenCheetah 2010-04-11 17:42:24 -04:00
Mark Liversedge
a6917a682a Metrics & Maps update for Win32 installer
The new metrics feature requires the SQLITE plugins to be
deployed alongside the binary and the forthcoming Google
Maps patch requires QtWebKit, Phonon, Xml and Xmlpatterns
deployed. Additionally, the terrain view requires the
jpeg image formats deplyed.

This patch updates the win32 NSI script to include these
new dependencies and has been tested for Win 7, Vista and
XP SP3.

fixes #51
2010-04-11 17:37:46 -04:00
Julian Baumgartner
d77c6ed576 added the javascript routine to do mouse overs 2010-04-11 17:22:34 -04:00
Sean Rhea
ac570c415c make sure "current" is initialized
Also, a nit: fix indentation of 1 line in AllPlotWindow.h.
2010-04-11 17:19:33 -04:00
Patrick J. McNerthney
4ca86c441d Enhanced src/src.pro to detect the standard Debian/Ubuntu install set up of qwtplot3d and use that if QWT3D_INSTALL is not defined. 2010-04-11 17:10:46 -04:00
Sean Rhea
fbdd15f218 fix Daniels EqP when Time Riding == 0.0 2010-04-06 21:37:27 -04:00
Sean Rhea
afb9a44fe2 fix ugly formatting 2010-04-06 21:36:58 -04:00
Mark Liversedge
1751d8bf12 Remove update 'flicker' when tab selected
The recent patch to reduce redraws when rides are selected
causes each tab to redraw whenever the tab IS selected. This
patch reduces this by remembering the current ride plotted.

It also fixes the "double draw" in GoogleMapControl and AllPlot
when selected for the first time.
2010-04-04 17:28:07 -04:00
Justin Knotzke
fdb7d124d9 Merge branch 'master' of git://github.com/srhea/GoldenCheetah 2010-04-02 09:53:47 -04:00
Sean Rhea
07623bf94f fix metrics for missing data
...by avoiding divide-by-zero errors.
2010-04-02 09:45:19 -04:00
Justin Knotzke
906b6f0a18 Merge branch 'master' of git://github.com/srhea/GoldenCheetah 2010-04-02 06:39:55 -04:00
Mark Liversedge
744294dd53 fix crash for man .gc file import
checks for empty datapoints and also checks for overrides for time
and distance.
2010-04-01 10:29:14 -04: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
778d651f00 User Configurable Metadata
User configurable data entry for recording information about
each workout.

FEATURES:
* Config UI for defining tabs and fields to maintain
* Config UI for defining keywords and colors
* Data maintenance UI on RideSummaryWindow
* "Special" Metadata fields are related to current variables
* Read/Write new fields/metric overrides via GcRideFile
* Metadata extraction in WKO files
* Calendar uses keyword and color config
* Numeric metadata is plottable on the Metric charts
*Metric refresh has been optimised
2010-04-01 10:29:13 -04:00
Justin Knotzke
f820627fda Merge branch 'master' of git://github.com/srhea/GoldenCheetah 2010-03-25 16:37:59 -04:00
Mark Liversedge
b1f71eda4c Deprecate .man in favour of .gc
Save manual files in .gc format (using overrides) instead
of writing in csv format to a .man file. The .man file is
still supported via ManualRideFile but no longer created
by ManualRideDialog.
2010-03-25 09:16:29 -07:00
Mark Liversedge
d64fc6ea85 NULL/Empty ride checks
RideItem or RideFile or dataPoints() may be null or empty. This
is especially true of manual ridefiles. This patch adds some
checks for this situation and acts accordingly. Additionally, the
disable/enable of tabs depending upon ridefile type has been
adjusted to also include files with not dataPoints.
2010-03-25 09:16:29 -07:00
Mark Liversedge
4e7e6cfb3a Honour RideFile::startTime
When saving the value of startTime should be checked to see
if the filename/notes need to be renamed. In addition, RideItem
now allows the startTime to be modified and reflected in the
ride list. When importing .gc ridefiles the file is serialized
with the correct startTime if the user edited it during import.
2010-03-25 09:16:28 -07:00
Mark Liversedge
02a60735f0 Simplify RideMetric by using less pure virtual functions
Primarily to make override() a base class function that can be
used for any metric rather than expecting each metric to provide
a local version.

Also, add explicit notion of "average" vs "total" ride metrics, as
it will let us improve how the metrics DB handles averages later.
2010-03-25 09:16:22 -07:00
Justin Knotzke
5c2a2f0527 Merge branch 'master' of git://github.com/srhea/GoldenCheetah 2010-03-24 06:03:49 -04:00
Sean Rhea
281c357605 quiet possibly meaningless warning 2010-03-23 21:06:45 -07:00
Sean Rhea
d1f003c190 the FIT saga continues
New idea: only linearly interpolate between two consecutive "record"
messages.  I don't know what else to do.  My FIT files have all sorts
of weirdness I can't explain.  One, for example, has two consecutive
start events with the same timestamp.  What does that mean?

This is all proof that just having the file "format" isn't really
enough.  What you need is the file *semantics*, and we don't have that
for FIT yet.
2010-03-23 20:59:58 -07:00
Sean Rhea
cd4fe5fe2e combine setActive and rideSelected
And pay attention to MainWindow::activeTab, such that only the active
tab redraws itself when changing rides.  This change really increases
GC's responsiveness when scrolling through the ride list.
2010-03-21 22:03:12 -07:00
Sean Rhea
92725db36a ignore records when time is stopped
I'm not really sure what these are doing in the FIT file Jamie sent
to the list, but there's only one of them, and it's at the end of a
long rest period, so it seems safe to ignore it for now.
2010-03-21 21:59:25 -07:00
Justin Knotzke
d2831baacc Merge branch 'master' of git://github.com/srhea/GoldenCheetah 2010-03-21 12:57:34 -04:00
Sean Rhea
fbf4f988c9 assert.h is my nemesis 2010-03-21 08:57:45 -07:00
Mark Liversedge
636e8f3895 Add Headwind from WKO files
The attached exracts windspeed (+/-) from WKO files to
support the recent patch for headwind.

fixes #57
2010-03-21 08:41:11 -07:00
Mark Liversedge
f8ab4b03dc Honour metric precision in LTM
The metrics plot did not honour the metric precision setting
when displaying a hover tooltip. This resulted in BikeScore and
other values being rounded inappropriately and inconsistently.

This patch utilises the metric->precision() setting and displays
values consistently when compared to the ride summary. In addition,
the precision for LTS/STS on the LTM PM has been set to 1 decimal
place where previously it was zero.

fixes #50
2010-03-21 08:39:14 -07:00
Mark Liversedge
4552cafdb6 MRC File Format Fix
The Racermate MRC file format for workout files did not
honor TIME/PERCENT format files correcty. The code is a
little confusing because it mixes the device mode and
workout file format. Ideally, the file format and device
mode would be kept as separate state settings, but this
patch at least fixed the bug.

fixes #40
2010-03-21 08:35:22 -07:00
Mark Liversedge
883dbb448f Remove 'None' option from 3d
The none option for data selection on the 3d plot is a
misnomer. It suggests that dimensions can be removed. For
example plotting x/y only. In reality, the 3d libs and the
code for managing the plot go to great lengths to ensure a
plot is rendered across all dimensions.

The None option has been removed for this reason. A 2d
scatter plot with user selectable data series should be
coded specifically to render 2d scatter plots.

fixes #30
2010-03-21 08:34:17 -07:00
Sean Rhea
a217243456 fix FIT files with smart recording
Linearly interpolate missing points *except* between a pair of stop
and start event records.
2010-03-19 09:12:16 -07:00
Sean Rhea
affed979ba fix HR in FIT files with no HRM
The value 255 means, "no heart rate".
2010-03-18 08:03:56 -07:00
Mark Liversedge
32d67f21eb FitRideFile Linux fixups
Small mods to changed the capitalisation of the Qt includes and
add stdint.h uint16_t et al.
2010-03-17 22:48:41 -07:00
Sean Rhea
c0437f30e3 read Garmin FIT files
There is still the mystery of what global message type #22 is, but
other than that concern, this code seems to work pretty well now.
2010-03-17 08:22:31 -07:00
Justin Knotzke
26b00e184c Merge branch 'master' of git://github.com/srhea/GoldenCheetah 2010-03-15 17:26:51 -04:00
Sean Rhea
7f2abaa01b fix uninitialized 'ride' variable in ModelWindow 2010-03-14 19:26:07 -04:00
Mark Liversedge
ccc2f1f0ff Fix UTC to Localtime Error in GcRideFile
The GcRideFile stores the ride start datetime in UTC, on write the
datetime is correctly converted to UTC.

This patch fixes the GcRideFile reader to convert in the oposite
direction. Currently the code reads the UTC date as a local format
date - as a result the convert to localtime call does nothing.
2010-03-14 19:19:40 -04:00
Sean Rhea
e0f6cf23e6 fix SRM interval alignment
SrmRideFile was setting RideFilePoint::interval correctly for
each RideFilePoint, but it was setting the start and stop of each
RideFileInterval it created to 1 RideFilePoint later than they
should be.  This patch fixes things so that RideFilePoint::interval
and RideFileInterval::start|stop agree about the interval bounds.
2010-03-13 11:26:02 -05:00
Damien Grauser
f980142110 update French translation 2010-03-13 10:44:30 -05:00
unknown
0785cf863e Update french translation Committer: Damien Grauser modified: src/translations/gc_fr.qm modified: src/translations/gc_fr.ts 2010-03-12 17:54:14 -05:00
Mark Liversedge
19fe016567 make calendar font 2pts smaller than default 2010-03-12 11:30:47 -05:00
Damien Grauser
ff3a232863 remember user's preference for stacked view
...and add zoom.

fixes #58
2010-03-12 10:45:08 -05:00
Sean Rhea
bd28d3b28e maybe fix problem with Set CP button not enabled 2010-03-12 10:45:08 -05:00
Justin Knotzke
c6d28370ec #includes need to be in quotes to build under Windows. 2010-03-11 09:08:24 -07:00
Sean Rhea
f523fd5d3c allow the user to hide tabs
...and remember their tab hiding preferences across restarts.
2010-03-09 20:59:34 -05:00
Greg Lonnon
e47847c19e fixed the maps refresh issue 2010-03-09 13:14:03 -05:00
Greg Lonnon
6919d186bf metrics are now displayed correctly, alt isn't working right
fixed the avg speed and alt

added a possible change for the maps issue

Maps tab is always showing, it will either show the ride data, or No GPS Data Present
Page loading is async with the ride being selected.
Weird WKO gps data issue reported by Mark L is fixed (hopefully)  I see different results than Mark L
moved Sean's cp patch to the new location

Signed-off-by: Greg Lonnon <greg.lonnon@gmail.com>
2010-03-09 13:14:03 -05:00
Sean Rhea
0fd735e16d fix maps crash when no CP is set
The check in the maps code for whether a CP is set was backwards, causing
a segfault on the subsequent call to Zones::getCP().  To reproduce, create
a new cyclist and import a ride with lat/lng data.  The import succeeds, but
GC crashes when you click "Save" and on all subsequent restarts.
2010-03-07 08:24:20 -05:00
Andy Froncioni
a02bfaf810 Added headwind to Aerolab calculation for iAero
Added a headwind data field, which is available when using
an iAero head unit, to dramatically improve the calculation
of Chung analysis for users of more recent iAero devices.

All other data files than the iAero have the headwind term set to
zero when they append a point.
2010-03-06 13:11:36 -05:00
Damien GRAUSER
afdc862cc2 add ride plot stacked view 2010-03-06 11:47:55 -05:00
Sean Rhea
19223e51b3 add an xml pretty-printer
This makes it a lot easier to see what's going on in a TCX file.
2010-03-03 10:54:30 -05:00
Sean Rhea
37a17f11f8 remove eol space 2010-03-03 09:32:43 -05:00
Sean Rhea
19aff56946 always build with maps support 2010-03-03 09:32:43 -05:00
Sean Rhea
378b6f3537 fix up tabs 2010-03-03 09:32:43 -05:00
Greg Lonnon
268afe536c untabify the GoogleMapsControl files 2010-03-03 09:32:43 -05:00
Greg Lonnon
04b698f255 fixed the zone == -1 defect 2010-03-03 09:32:43 -05:00
Greg Lonnon
f97bc9c152 fixed the bounds box and the zoom to center correctly 2010-03-03 09:32:43 -05:00
Greg Lonnon
a392b33b51 added resizeEvent back in, fixed a few variable names to be more standard and added some of Mark L's suggestions. 2010-03-03 09:32:43 -05:00
Mark Liversedge
81a43b5314 added Mark's fixes 2010-03-03 09:32:43 -05:00
Greg Lonnon
c2f3476569 added googlemaps, took a couple of suggestions from Julian on map defaults. 2010-03-03 09:32:43 -05:00
Justin Knotzke
d4edc12dc6 New Logo and Icons by Dan Schmalz 2010-03-02 20:48:25 -05:00
Sean Rhea
b68e55beca better axis labels in PM plot 2010-03-02 09:45:21 -05:00
Mark Liversedge
bc85a3b5fe Change WKO+ version error to warning
The WKO+ file format version is changing version numbers
at a fairly accelerated pace, but the general structure of
the files are still readable by the WkoRideFile reader.

This patch issues a warning rather than an error on new
files. Recent v29, v30 and v31 of the WKO+ file format have
all been parsed successfully.

fixes #47
2010-02-28 08:13:01 -08:00
Mark Liversedge
fda33927d4 Typo in Save Dialog
The dialog message spelt change as chage. This patch fixes that typo.

fixes #45
2010-02-28 08:11:08 -08:00
Mark Liversedge
7bb9cf5462 Long Term Metrics
A user configurable chart for showing ride metrics and
other calculated values over time.

* Uses SQLITE database to store metrics
* Supports any metric available from the metric factory
* Adds new MaxHr, VI, Peak Power and Time In Zone metric
* Also includes LTS/STS/SB for PM charting
* Aggregates in days, weeks, months or years
* Reads and Updates seasons.xml
* Adds cycles and adhoc date ranges in seasons.xml
* Date ranges can be selected on the plot with shift-left click
* Allows users to customise preferences for color, symbols et al
* Allows user to customise metric names and unit names
* Supports smooth curves and topN highlighting
* Has a linear regress trend line function
* Allows users to save charts to charts.xml
* A default charts.xml is built-in
* A chart manager to import/export/rename/delete charts etc
* Provides a tooltip to provide basic datapoint information
* Performance Manager adjusted to use the MetricDB
* User configurable setting for SB calculation (today/tomorrow)
2010-02-25 08:01:43 -08:00
Greg Lonnon
cef5cca454 returned error for encrypted files
Also fix compiler warning.
2010-02-24 08:47:38 -08:00
Thomas Weichmann
77eccc7797 fix min window width problem caused by fixed width sliders in aerolab 2010-02-20 16:18:32 -08:00
Dag Gruneau
e3ac6c799c quarqd - cadence, wheel rotation, error checking
Fixed a number of issues with data from quarqd inf and nan values where
inserted as valid data points and thus destoying all plotting in the
realtime window and in later analysis.

The unit was used to distinguish between the entities, thus rpm was
erroneously used as a cadence, rpm is used as the unit for wheel
rotation and for cadence.  This made the cadence useless together with a
PowerTap hub which reports both cadence and wheel rotation.

No error checking was performed on the received data, bad data is
ignored now.
2010-02-12 06:07:30 -08:00
Andy Froncioni
906900fb19 iBike test rides for use with Aerolab 2010-02-12 05:36:44 -08:00
Sean Rhea
4145282415 remove unused settings ptr 2010-02-12 05:27:40 -08:00
Sean Rhea
3eb5243a28 remove eol spaces -- no functional change 2010-02-12 05:23:55 -08:00
Andy Froncioni
885629a2f5 Adds Aerolab tab
This patch adds Aerolab, a virtual elevation module.  A
new tab is added in which the user can perform virtual
elevation analysis.  This version is a manual Aerolab,
where user can use the following sliders to elevation-match
to a known elevation profile:
Crr  -coefficient of rolling resistance
CdA  -aero coefficient of drag * frontal area
Eta  -drivetrain efficiency (to be used when using a crank-
      or bottom-brack-based power meter)
Mass -total mass of bike + rider
Rho  -density of air
E_offset -an elevation offset to align elevations
2010-02-12 05:19:59 -08:00
Andy Froncioni
07a393fb64 Adds DFPM functionality to iAero
Uses the iAero native "guesstimate" power value until a
non-zero dfpm value is seen.  From then on, uses dfpm as "watts".
2010-02-08 06:49:01 -08:00
Sean Rhea
da28b43d40 remember chosen histogram bin width across restarts 2010-02-07 09:41:52 -08:00
Sean Rhea
4f9850bd9d shorten tab titles
Making room for the long-term metrics tab.
2010-02-07 09:26:44 -08:00
Sean Rhea
f930c6f272 remember chosen PM metric across restarts 2010-02-07 09:13:04 -08:00
Sean Rhea
fae1ea3f92 fix linux file names for 1.3.0 2010-02-07 09:13:03 -08:00
Sean Rhea
4b615a6cda update contrib and download pages for 1.3 2010-02-06 11:38:57 -08:00
Sean Rhea
b491867386 release notes for GC 1.3 2010-02-06 11:38:57 -08:00
Sean Rhea
f323780848 fix FTDI required for SRM download bug
GC supports two download port types: serial ports and D2XX.  Before, if
either of these failed to load, the download dialog wouldn't show either
port type.  With this patch, if both fail, GC displays a warning, but if
either one succeeds, GC will proceed with only that port type.  This
change should fix the problem that users were having to download and
install both the FTDI drivers and the PL2303 ones in order to download
from the SRM PCV.
2010-02-06 11:38:57 -08:00
Robert Carlsen
9147369c41 Added sanity checking to ignore missing metrics
There is a possibility that ride metrics may become unavailable yet
remain requested by QSettings (stored in
~/Library/Preferences/org.goldencheetah.GoldenCheetah.plist on OS X).

This patch ignores any metrics listed in the preferences yet are not
supported by the running version of Golden Cheetah.
2010-02-06 11:38:57 -08:00
Sean Rhea
5cd621f800 add Erase Ride(s) button to download dialog
This is a workaround for the SRM erase bug.  It gives the user a way to
try erasing the device's memory without re-downloading a ride.
2010-02-06 11:38:56 -08:00
Sean Rhea
1f548d0b84 regenerate stress cache after config change
fixes #32
2010-02-04 05:10:57 -08:00
Sean Rhea
16bc8c2686 don't check dependencies until newMetric is called
Before, we checked them during addMetric, and that left us vulnerable
link-order errors.  With this patch, we wait until someone actually asks
for an instance of a metric, and then we check all metrics' dependencies.
That way, since the Ride Summary always creates at least one metric, we'll
still check the dependencies of them all.  We just do it a little later in
the program's execution than before.
2010-02-04 05:08:49 -08: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
Sean Rhea
67919e4d21 add Daniels Equivalent Power metric 2010-01-26 08:31:05 -08:00
Sean Rhea
76a8d94384 stop coddling 705's firmware
In other words, we're no longer going to support files from broken 705
firmware in GC.  However, GC 1.2 contains the check, so people with bad
files can open them in 1.2, export to CSV, and then import into a more
recent build.

Alternatively, if someone comes up with a good way to distinguish files that
need this check from those that don't, I'd be happy to use that.
2010-01-25 20:21:54 -08:00
Robert Carlsen
19e023928b Updated doc/Makefile for new content.
Added cyclist-info.png to the install directive.
Edited the rsync path to reflect the absolute rather than relative path
to the www root for the goldencheetah website.
2010-01-24 13:22:34 -05:00
Jamie Kimberley
0f0ee9e36e Update power.zones info in users guide
Updated web documentation to describe the three methods that we have in
place to set the CP value in the power.zones files.
2010-01-24 13:17:22 -05: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
Sean Rhea
dbb8429665 fix BestIntervalDialog
The small test file doesn't catch this bug, but just about
any real file does.  Grrr.
2010-01-19 10:55:54 -08:00
Sean Rhea
d9e9fe1d22 fix fencepost errors in Ride->Find Power Peaks
Also removes nasty cut-and-paste from BestIntervalsDialog.

Tested successfully on test/rides/2010_01_13_*.gc.
2010-01-18 11:56:35 -08:00
Sean Rhea
e2deb1fc99 extract core functionality into static function
...so that we can use BestIntervalDialog::findBests elsewhere in the code.
2010-01-18 11:54:42 -08:00
Sean Rhea
16f3032b3f fix fencepost errors in BestIntervalDialog
This is almost a complete rewrite of the functional part of the dialog.
I've tested it on both test files (2010_01_13_*.gc in test/rides).
Thanks to Mark L for pointing out a number of the problems.
2010-01-18 11:34:01 -08:00
Sean Rhea
075829500f remove eol spaces -- no functional change 2010-01-18 11:32:07 -08:00
Sean Rhea
3dab200560 test file for finding interval fencepost errors with recInt=1.0 2010-01-18 11:32:07 -08:00
Mark Liversedge
0be592cab5 test file for finding interval fencepost errors with recInt=1.26 2010-01-18 11:31:57 -08:00
Mark Liversedge
7754f9a0a3 replace import pragmas with includes
import is deprecated and is almost certainly not what was originally
intended, since it is used to include Qt and GC header files.

fixes #22
2010-01-18 08:27:42 -08:00
unknown
0b36db91d0 Add OpenGL, GCC4 and 3d DLLs to Win32 nsi
When building an installer the nsi file needed to be
updated to reflect new DLL dependencies introduced by
the Model plot.

Additionally, Qt 4.6 is built using gcc 4.4 and now
requires the associated runtime dll.

fixes #21
2010-01-18 08:26:50 -08:00
Sean Rhea
699cd73b6a appsettings can't be false
Also note the use of a default value as the second
argument to appsettings->value().
2010-01-17 21:19:10 -08:00
Mark Liversedge
4d1783276c fix 3d plot performance issues
Scrolling up and down the ride files is painfully slow when
3d is compiled in. This patch uses a setActive mechanism in
the same fashion as the pfpv and performance manager tabs.

Additionally, a recent patch to support user preferences for
units added a settings lookup that was called for every point.
This is also fixed.

fixes #16
2010-01-17 21:18:53 -08:00
Sean Rhea
195937f186 ignore intervals that start after the end of the ride
fixes #17
2010-01-17 21:02:12 -08:00
Sean Rhea
9509e083b7 remember smoothing across restarts
fixes #18
2010-01-17 20:54:47 -08:00
Sean Rhea
29487ed774 mark warnings as such in import wizard 2010-01-17 20:40:32 -08:00
Sean Rhea
f2ae215d4b no decimal point for elevation gain metric
Thanks to Tom W for pointing this out.
2010-01-17 20:19:45 -08:00
Rainer Clasen
99b6e1ba71 Don't reread downloaded SRM files
Get the start timestamp directly from the downloaded data. No need to read
the written data, again.
2010-01-16 13:04:09 -08:00
Rainer Clasen
2f9f44ee9d fix SRM download when there is no data
When you're trying to download data from an empty PCV, srmpc_get_data()
returns a data structure without chunks. This will cause srm_data_write()
to fail.
2010-01-16 13:01:21 -08:00
Keisuke Yamaguchi
b1137801be Added translation support for RideImportWizard Finish/Abort button
fixed bug "when non-English language is selected, Import Wizard
cannot be closed/aborted with abortButton".
2010-01-16 10:35:48 -05:00
Rainer Clasen
0eb650f544 report error detail on SRM download failure
While SrmDevice is catching errors returned by srmpc_get_data, it doesn't
decode + report what kind of error (errno).

Adjusted message to include the returned error.
2010-01-15 23:14:37 -05:00
Robert Carlsen
d543fe45f9 Adding slash in default library path for Windows 2010-01-15 09:13:26 -05:00
Robert Carlsen
f5dab4d9dd Modify .gitignore to omit "tags" dir created by ctags for vim 2010-01-15 08:49:47 -05:00
Thomas Weichmann
bb58138e26 respect user's units pref in 3d plots
fixes #14
2010-01-13 08:28:15 -08:00
Jamie Kimberley
4d3c208908 Show power and cadence in stationary tcx files
Minor change to handle how duplicate records in tcx files are handled.
This allows for power and cadence to be properly displayed for rides
with no distance information (e.g. trainer rides).
2010-01-13 08:23:41 -08:00
Mark Liversedge
a89ebacac0 support Windows in Serial.h|cpp
The serial code was Linux/Mac only and utilised termio/tcsetattr
functions that were not available on Windows platforms. This patch
ports the serial code to the Windows APIs using the same approach
as the Computrainer.cpp code.  It allows us to support old-style
serial download cables on Windows.  (We already supported them on
Mac and Linux.)
2010-01-11 08:01:38 -08:00
unknown
9920afdb4d update french translation 2010-01-10 11:07:57 -08:00
Mark Liversedge
2b580ca6fd Fix 3d cosmetics and CPV/AEPF channels
The pedal force channel was incorrectly named - it should have been
the torque value. The AEPF/CPV values are derived from the power
cadence and cranklength. This is corrected with this patch.

Additionally, the axis labels positioning has been amended to be
more appealling and position more appropriately.
2010-01-10 10:45:15 -08:00
Sean Rhea
5d7168bc65 bug fix: don't lose intervals when spliting rides 2010-01-10 10:42:52 -08:00
Sean Rhea
6d759b8d1d fix unused variable warning 2010-01-10 10:07:57 -08:00
Mark Liversedge
68845644f6 WKO Parsing Dist Chart Fix
The bodge to manage so-called 'optional padding' which led to the
need to keep updating constants like 0x8014 et al was caused by a
misunderstanding of how Distribution Charts are recorded in a WKO
file.

This patch correctly decodes these segments of a WKO file and as
a result remove the need for the optpad2 function. There are still
some 'weird' constants that are parsed, but these are limited to
the artefacts resulting from the fact that the WKO software uses
MFC persistent object format to write the file data and these
constants reflect the POF Archive PIDs.
2010-01-10 10:06:18 -08:00
Mitsukuni Sato
2d3f26fed2 translate to japanese (5 Jan 2010) 2010-01-10 10:03:08 -08:00
Chris Cleeland
65b9c14255 allow a calendar popup
Interestingly, Chris Cleeland, and apparently only Chris Cleeland, can't
enter manual rides for dates in the past without this patch.

Fixes #7.
2010-01-06 08:21:07 -05:00
Jamie Kimberley
a812b6ea08 website now has developer guide for tracker
Updated the documentation on the website to include some guidelines
for developers worknig with the issue tracker.
2010-01-06 08:11:52 -05:00
Steve Gribble
d58d7dedaf Fix float parsing bug that manifests on Qt4.6 and later.
This file relies on Qt's QDataStream to handle the parsing
of primitive C types from Computrainer .3dp files, including
floats.  In Qt4.5 and earlier, Qt defaulted to 32 bit
floats.  In Qt4.6 and later, Qt started using 64 bit
floats by default.  As a side-effect, parsing broke on
Qt4.6, leading to a crash when importing or using .3dp files.

This patch fixes the issue by using QDataStream's
"setVersion()" method to tell Qt to use the Qt4.0 serialization
format for the QDataStream used in this file.  This
patch does not affect any other files.  This patch
should make the formatting assumptions both backwards
and forwards compatible.
2010-01-05 22:56:59 -05:00
Sean Rhea
e76247a25b remove ride map from RideCalendar
I think the previous implementation could have referenced already-deleted
RideItem objects during calls to Split Ride.

This commit removes the calendar's own map of RideItems, and instead
uses the list of rides in MainWindow::allRideItems.  Because I use
binary search on that list, this implementation should be just as fast
as the old one.  But because I don't hang on to any RideItem pointers
beyond a single call to RideCalendar::paintCell, it shouldn't be
vulnerable to referencing already-deleted RideItem objects.
2010-01-04 09:00:43 -05:00
Jamie Kimberley
ea8fe63abd Add documentation for our issue tracker
Added instructions and links for submitting bug reports and feature
requests to the website documentation.
2010-01-03 17:24:23 -05:00
Sean Rhea
0243a8640c mark prefers red, too 2010-01-03 12:41:17 -05:00
Mark Liversedge
12230958d6 Show Daily Stress on Performance Plot
Since the daily stress values are readily available
from the stress calculator this patch shows them on the
chart to show the make-up of the training that has resulted
in th short term and long term stress scores.

Ideally, we would also show the relative intensity for each day
too so you can view, at a glance, the intensity AND volume of the
ongoing training load -- but the intensity is not readily available
in the calculator or the stress.cache file.
2010-01-03 11:36:20 -05:00
Sean Rhea
f42a093d4d use ExtendedSelection in intervalWidget 2010-01-02 19:00:02 -05:00
Sean Rhea
0edc94d00a bug fix: integer division error
I introduced this bug in commit 23b2ff4.
2010-01-02 17:06:41 -05:00
Sean Rhea
86df4288da note about version 1.7 of ftdi drivers 2010-01-02 15:43:16 -05:00
Sean Rhea
23b2ff416c add Daniels Points to manual ride entry
And estimate them based on time/distance just like we do with BikeScore.
2010-01-02 13:17:31 -05:00
Sean Rhea
56b1af8b44 remove unused variables 2010-01-02 13:01:31 -05:00
Sean Rhea
9b6b50c92d float --> double 2010-01-02 12:59:35 -05:00
Sean Rhea
8c65bf88a8 ignore manual rides when estimating BikeScore 2010-01-02 12:55:33 -05:00
Sean Rhea
46db59eec1 ignore rides that don't load properly
Need to call item->ride() in order to load the ride, and should ignore those
for which the result is NULL.  Do this after checking the date, though, so
that we don't load older rides into memory.
2010-01-02 12:52:58 -05:00
Sean Rhea
400fd23692 bug fix: segfault on manual ride entry if no rides 2010-01-02 12:47:50 -05:00
Sean Rhea
10ec613843 remove tabs and eol spaces, no functional change 2010-01-02 12:45:31 -05:00
Sean Rhea
d3bb2ef51c support arbitrary ride metrics in manual ride files 2010-01-02 12:36:31 -05:00
Sean Rhea
baf3e203ab use split instead of section
This will be useful for my next commit.
2010-01-02 12:36:31 -05:00
Sean Rhea
d09152e394 nit: don't store cp as a member variable 2010-01-02 12:36:22 -05:00
Sean Rhea
2fc4cf79b9 implement DanielsPoints::override 2010-01-02 12:36:17 -05:00
Sean Rhea
2514a3fd26 bug fix: manual ride time always counts towards weekly summary
Before, if distance and speed were both zero, time_riding was set
to zero, and the manual ride time would not be included in the
weekly summary.  This patch fixes that by overriding time_riding.
2010-01-02 11:50:00 -05:00
Sean Rhea
954214137f don't include final decay in xPower
RaceDay doesn't do it, and RaceDay is the reference implementation
for xPower/BikeScore.
2010-01-01 19:05:41 -05:00
Sean Rhea
f48246398b add new mailing list info to web page 2010-01-01 12:28:41 -05:00
Sean Rhea
f2c53b1707 use foreach to eliminate explicit iterator type
Also switch to const RideItem pointer.
2009-12-31 10:15:14 -05:00
Berend De Schouwer
e4b54f42b9 Support two rides at the same date and time 2009-12-31 10:08:44 -05:00
Berend De Schouwer
d4ee3fe8cd Calendar move defaults to constructor 2009-12-31 10:08:44 -05:00
Sean Rhea
255f57b5f7 read intervals in iBike CSV files 2009-12-30 22:08:10 -05:00
Berend De Schouwer
4f4973ab18 Multiple rides per day in the calendar 2009-12-30 18:41:37 -05:00
Sean Rhea
abbdd4667e bug fix: remember user's curve preferences
Fernando Maldonado pointed out that if he deselected, for example, Cadence on
the Ride Plot, then switched to another ride, the Cadence check box remained
unchecked but the Cadence curve showed back up on the plot.  To hide the
curve, he had to check and uncheck the box again.  This commit fixes that bug.

I'm not entirely happy with this fix.  I'd rather AllPlot had access to the
QCheckBox objects in AllPlotWindow, but I can't think of a clean way to do
that.  This patch at least seems to work.
2009-12-30 17:52:13 -05:00
Sean Rhea
be9a35354d fix indentation -- no functional change 2009-12-30 17:15:14 -05:00
Sean Rhea
cae1d15f4d respect user's unit pref in import wizard
Based on a patch by Thomas Weichmann.
2009-12-30 17:13:28 -05:00
Sean Rhea
b89ff9f1d6 about dialog nits: add line breaks, remove italics 2009-12-30 10:17:55 -05:00
Sean Rhea
6cba1d0c94 show home path in about dialog 2009-12-30 10:13:23 -05:00
Sean Rhea
a2665bc3b9 fix segfault in ModelPlot on bad ride files 2009-12-30 09:42:49 -05:00
Mark Liversedge
3d72d7e812 3D Modelling
A new tab on the ride analysis view for analysing ride data in three
dimensions. Interval selection is supported and a z-axis slider is
available for helping to identify data in the z-plane. A color legend
is displayed since coloring is independent of x/y/z values.

Coloring and Z axis values are averages for associated values of x/y.
The code requires qwtplot3d to be installed (see gcconfig.pri.in) and
with older Mac dev envs you will need to add -lz to LIBS too. (LIBS += -lz).

On Linux qwt3d_function.h needs a #include <stdio.h> added to compile.

Greg Steele helped design and test.

There are 2 open issues x/y/z axis labels occasionally appear in the
wrong place. lastly, the bin selection is for X&Y bin sizes and it
would be better to have separate sliders.
2009-12-30 09:41:33 -05:00
Sean Rhea
a79f2865cc split ride saves in .gc format 2009-12-28 11:36:38 -05:00
Sean Rhea
80a3c275b0 bug fix: set ride start time correctly in .gc files 2009-12-28 11:36:38 -05:00
Dag Gruneau
7ae6763bc5 bug fix: don't crash when computing metrics on empty intervals 2009-12-28 11:02:08 -05:00
Sean Rhea
a5f75ec569 add hysteresis to ElevationGain metric 2009-12-25 10:43:13 -05:00
Sean Rhea
0d488cb9ea fix neg alt bug in ElevationGain metric 2009-12-25 10:40:54 -05:00
Sean Rhea
ed063cf6a4 choose your own metrics for intervals
This commit adds a page to the config dialog in which the user can choose
which metrics GC will show for intervals.  The GUI design could use some work,
but the functionality is there.  All implemented metrics are available to
choose, and choices are saved across restarts.
2009-12-24 17:51:50 -05:00
Thomas Weichmann
30b931bedb Fixed unit conversion in CSV importer 2009-12-24 10:38:56 -05:00
Sean Rhea
9d1ed11186 fix compile error with std::sort on Linux 2009-12-23 07:57:46 -05:00
Sean Rhea
58e6fe59b6 remove old intervals code 2009-12-22 18:11:02 -05:00
Sean Rhea
818f678436 use RideMetrics for intervals in RideSummaryWindow 2009-12-22 17:54:50 -05:00
Sean Rhea
ea2177cc62 add ninety_five_percent_hr metric 2009-12-22 17:54:50 -05:00
Sean Rhea
4b1805f3c2 add max_power metric 2009-12-22 17:54:38 -05:00
Sean Rhea
96b00f4b77 fix metrics for interval use 2009-12-22 17:53:40 -05:00
Sean Rhea
fa843db0ab figure out zoneRange from RideFile::startTime 2009-12-22 15:40:30 -05:00
Sean Rhea
ef200085a8 compute metrics in RideMetric
Move the logic for how to compute RideMetrics from a RideFile, including
dependency tracking, out of RideItem and into RideMetric.  I'm going to start
using them for intervals as well as rides, and I don't want to construct a
RideItem for each interval.  It also seems more natural here.  For
performance, RideItem still caches the computed metrics for a RideFile.
2009-12-22 15:23:02 -05:00
Sean Rhea
e16443e23f aggregateWith takes a const reference 2009-12-22 15:23:02 -05:00
Sean Rhea
0d7e923c93 get rid of PointwiseRideMetric
It's no shorter than just calling foreach, and I feel it just confuses things.
2009-12-22 15:23:02 -05:00
Sean Rhea
85e9202c15 add more comments to RideMetric.h 2009-12-22 15:23:02 -05:00
Sean Rhea
abae88dc6c don't repeat "Average"
In the average column of the RideSummary, we don't need to re-emphasize that
the averages names' start with "Average ".  I hope this doesn't cause
problems for translation.
2009-12-22 15:23:02 -05:00
Sean Rhea
59a0908da4 get rid of metricsXml
Instead, just list the symbols of the RideMetrics for each column, then get
the name and precision of each metric from the RideMetric object.  This change
builds the groundwork to letting the user specify which metrics to show.
2009-12-22 15:23:02 -05:00
Sean Rhea
d096eb8854 add RideMetric::precision
...which specifies how many digits after the decimal we should show when
displaying the value of a RideMetric.
2009-12-22 15:23:01 -05:00
Sean Rhea
8aa0996e6e add RideMetric::name
The name of a RideMetric is a short string suitable for use as a label in the
ride summary.  It should be translated using QObject::tr().
2009-12-22 15:23:01 -05:00
Sean Rhea
d2b44ec508 rename RideMetric::name to RideMetric::symbol
The symbol of a ride metric is the string by which we refer to it in the
code, configuration files, and caches (like stress.cache).  It should not
be translated, and it should never be shown to the user.
2009-12-22 15:23:01 -05:00
Sean Rhea
9b4782ab98 srm interval end bug fix
If the user forgot to end an interval before downloading a ride, GC
would crash due to an assertion failure.  The included ride file
demonstrates the bug.
2009-12-22 14:49:54 -05: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
Dag Gruneau
7a90ac8783 use setting for imperial/metric in interval dist
Before, the heading showed "Distance (km)" but the actual value was always
displayed in miles.  This patch fixes it.
2009-12-22 09:44:09 -05:00
Thomas Weichmann
9717eeb798 add context menu to ride tree
Includes save, delete, split, find peaks and best interval functions.
2009-12-22 09:35:20 -05:00
Mark Liversedge
d10b08e86f switch from QToolBox to QComboBox
This patch removes the QToolBox from commit e93970 and replaces it with
a QComboBox instead. A new object ViewSelection can be included in any
new views and will manage the interaction with MainWindow to switch
between views. It is essentially a QComboBox with some code to interact
with MainWindow.

A new signal viewChanged(int) has been implemented in MainWindow to
notify of a view change. The parameter will be set to VIEW_ANALYSIS
or VIEW_TRAIN depending upon which view was selected.

In addition, a new TrainWindow object has been created which implements
the Realtime code and is comprised of the TrainTool and TrainTabs
implemented in e93970. It also sets its splitters from remembered values
in the same fashion as the central splitter on the Analysis view.
2009-12-21 13:34:28 -05:00
Mark Liversedge
0d96ba220d Support for WKO v3 file format
Summary analysis suggests the new (v29) of the WKO 3.0 file format does
not contain any differences (or noticeable) to the previous version.
This patch enables files to be imported using the existing code instead
of being rejected because they are 'newer than the supported format'.

Further testing and analysis will be performed on the WKO 3.0 file formats
but this patch should enable users of v3 to import there files into GC.
2009-12-21 12:56:23 -05:00
Mark Liversedge
e93970ed4d Introduce Toolbox to GUI
The left side of MainWindow is now a toolbox which contains
Ride Analysis and Racing and Training options. The Right side
tabs have been reorganised and associated with the toolbox.

To support the population of the Racing and Training left tool
the config dialog has been updated to enable the user to configure
the location of their workouts.

In addition, the config dialog now calls upon MainWindow to issue
a configUpdate() signal to notify widgets when config has been
updated. This is a refactoring of the existing mechanism that
only called realtimeWindow->updateConfig, now any widget can
connect to the MainWindow signal and re-read its config appropriately.
Currently, the TrainTool and RealtimeWindow widgets have been coded to
use this.
2009-12-20 21:39:38 -05:00
Sean Rhea
e5affbbc64 introduce "metric overrides"
This commit allows every ride file to specify a set of "metric overrides":
values to use in place of those for RideMetrics we would otherwise compute.

The most gratifying immediate result of this change is that we can associate a
"skiba_bike_score" metric override with each Manual CSV file, thereby
eliminating the need for a bogus "bs" parameter in RideFilePoint.

In the future, though, we can also save these overrides to a GcRideFile using
a syntax something like this:

  <override>
    <metric name="skiba_bike_score" value="100"/>
    <metric name="average_speed" secs="3600" km="30"/>
  </override>

(Note that average_speed needs to store time and distance in order to
aggregate properly.)

Then we can add a dialog that allows the user to override the computed value
of a metric for any given ride.  For example, if my HRM was on the fritz
during a ride, I could estimate my average HR and override that metric.
(We might want to show these overrided metrics in a different color, so that
it was clear they weren't the computed values.)

Finally, I think we could actually use this feature to eliminate the Manual
CSV format altogether, and just use GcRideFiles without any samples or
intervals, but with metric overrides for all the available metrics.
2009-12-20 12:29:33 -05:00
Sean Rhea
0dae2b88cc don't explicitly specify bs
It's going away soon.
2009-12-20 12:29:25 -05:00
Thomas Weichmann
9474f281db reorder ride menu, add separators, capitalization 2009-12-19 19:09:26 -05:00
Mark Liversedge
30341cf339 Stress Calculator loses pending changes
The stress calculator works through every ride and updates stress.cache.
After each file is processed its details are wiped with a freeMemory, this
causes unsaved changes to be lost (isDirty is ignored).

This patch adds a check to make sure the file is not dirty before the
in-core values are deleted.
2009-12-19 18:58:17 -05:00
Mark Liversedge
937907c6b8 Support Metric/English units in realtime mode
Realtimode mode now supports miles and kilometers for speed, average
speed and distance telemetry.
2009-12-19 18:54:17 -05:00
Mark Liversedge
1a96535708 Computrainer code to open COM ports above 9 on Windows
The docs for CreateFile indicate that to open a comm port above
COM9 you must use a filespec of "\\.\COMX". The original code
did not apply this rule and failed to open ports above COM9 as a
result. This is especially important since it is quite common for
the USB->Serial converters to assign an assignable comm port number.
2009-12-19 18:50:40 -05:00
Mark Liversedge
d1d2037883 New Cyclist set first CP SEGV fix
When setting up the CP for a new cyclist the code for inserting
ranges called setCP with an unitialised range number variable. This
fix sets it to 0 for the very first range.

Also fixed the indentation of the code around the fix to make it
easier to follow.
2009-12-19 18:48:54 -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
71d67e2203 check that cp > 0
The commit replaces the erroneous commit a3ae0ee.  I thought the problem with
the zones file that motivated that commit was that some of the zones were of
length zero.  In fact, the problem was just that the CP is zero in the first
zone range, and a CP of zero leads to a RI of inf.
2009-12-18 09:38:22 -05:00
Mitsukuni Sato
009c013521 add calls to tr() for translation 2009-12-17 19:10:36 -05:00
Mitsukuni Sato
32471598ce add japanese translation resource 2009-12-17 19:10:17 -05:00
Sean Rhea
b0416f0a4f read lat/lon from iBike csv 2009-12-17 18:08:16 -05:00
Sean Rhea
e11ad0cbf6 revert bad zones I accidentally added in 97156c3 2009-12-17 18:02:08 -05:00
Sean Rhea
25bd2c1ff6 read ride date and time out of iBike csv files 2009-12-17 17:52:23 -05:00
Sean Rhea
592280445a fix tabs and spaces -- no functional change 2009-12-17 17:43:54 -05:00
Mark Liversedge
78716c3f4b Fix new Cyclist SEGV on open options dialog
The code to set the critical power for the cyclist page in the
config dialog calls zones->getCP(currentRange) when currentRange
is -1 (out of bounds). This caused a SEGV. This patch checks for
a -1 value and sets CP to 0 rather than calling zones->getCP.
2009-12-17 17:37:51 -05:00
Sean Rhea
a3ae0ee314 check that zone.hi > zone.lo 2009-12-17 17:34:48 -05:00
Sean Rhea
97156c3637 auto-select SRM for downloads
Hack: SRM PCV download cables use the PL2203 chipset.  If the
first device name contains "PL2303", then, we're probably dealing
with an SRM, so go ahead and select the SRM device.  Generalize?
2009-12-17 11:36:19 -05:00
Ned Harding
9b7673b451 win32: added new dependency to installer 2009-12-15 18:22:37 -05:00
Mark Liversedge
4d3b204f09 Find Peak Intervals fix 0 distance bug
The find peak intervals added intervals with 0km for start and stop. They
now get set appropriately, so peak intervals display correctly when viewed
in byDistance on AllPlot.
2009-12-14 19:22:17 -05:00
Mark Liversedge
45d7d3c610 GPS support in RideFile
RideFile data points now include lon and lat members for the longitude
degrees and latitute degrees from the source ride files. As a result
most of the RideFile readers now set longitude and latitude to zero for
each data point, except for:

* Gc Format Files - now support read/write
* Wko Format Files - now support read
* Tcx Format Files - now support read (smoothed if smart recording)

Although there are no features within GC at this point in time that use
positioning data this may change over time. Critically, as users save
files to the new GC file format whilst adding interval data it is
important that this positioning data is not discarded before new
features arrive.
2009-12-14 19:13:45 -05:00
Mark Liversedge
2745291f59 Find Peak Powers only for Intervals smaller than entire ride time
The find peak powers functions was previously adding peak intervals for
durations that were longer than the entire ride, for example a 20 minute
ride would still have a 30min and 60min peak power interval added.

The duration of the ride is now checked and only peak intervals that
are shorter or equal to the length of the ride are added.
2009-12-14 10:34:53 -05:00
Mark Liversedge
d042f54e05 Add Average Power in Brackets to Selection Name
When a user creates a new interval by selecting a section of a ride
on AllPlotWindow the newly created selection now has the average power
for the selection placed at the end of the selection name in brackets.
2009-12-14 10:34:46 -05:00
Sean Rhea
32150f1d38 up the power
...to accomodate Greg Steele's monster quads.
2009-12-13 21:26:21 -05:00
Sean Rhea
b1fe7345b3 bug fix: don't let high go negative
You can recreate the bug by creating a new cyclist with only one
relatively slow and short ride, then clicking on the CP plot.
2009-12-13 18:21:05 -05:00
Sean Rhea
bbfc4a768c don't show axes for non-existent curves
If you don't have altitude, you'll no longer have an axis for feet/meters.
Thanks to Gary Smith for pointing out that the previous behavior was silly.
2009-12-13 18:06:05 -05:00
Sean Rhea
542e4d6a4d add altitude for iBike CSV format
Thanks to Fernando Maldonado for the test file.
2009-12-13 17:40:33 -05:00
Mark Liversedge
a649f64655 Use Standard Library Binary Search
Replace handcoded binary search in RideFiletimeToDistance() method
in RideFile with lower_bounds, since it is more efficient. The
distanceToTime() method has been removed since it is not used.
2009-12-13 17:22:49 -05:00
Sean Rhea
74742965dd move IntervalPlotData into .cpp and fix mem leak 2009-12-13 15:16:57 -05:00
Damien Grauser
333fe46196 add tr() for some QString and add french translation 2009-12-13 15:04:51 -05:00
Mark Liversedge
014c6301f6 Free references in WkoFileReader 2009-12-13 14:57:00 -05:00
Mark Liversedge
3773ec573e Misleading code comments adjusted
Attribution in header of IntervalItem.{h,cpp}
Commented out code removed
2009-12-13 14:45:25 -05:00
Mark Liversedge
bfc0d1575a IntervalItem::name removed
The class member IntervalItem::name is redundant since it is a duplicate
of the text() member of the base class QTreeWidgetItem. By removing it
we both simplify the code and remove the need to keep name and text in
sync when renaming and creating intervals.

As a result the itemChanged signal that was connected for renames and
then disconnected when the items are cleared can be connected once
and no disconnect is neccessary.

This connect/disconnect oddity was originally to avoid a SEGV that
resulted from accessing text() whilst the QTreeWidgetItem was being
destroyed. The code for removing intervals when a new ride is selected
no longer destroys and recreats MainWindow::allIntervals (which was also an
artefact of the original code to avoid a SEGV).
2009-12-13 13:07:17 -05:00
Sean Rhea
0dc9f6a4c0 delete MainWindow on close 2009-12-13 12:53:57 -05:00
Sean Rhea
6b7afe3353 remove global mainwindow ptr 2009-12-13 12:50:09 -05:00
Sean Rhea
9b6b1ba085 remove global ptr to main window from PfPvPlot 2009-12-13 12:46:50 -05:00
Sean Rhea
eb257e0746 remove global ptr to main window from ErgFile 2009-12-13 12:42:09 -05:00
Sean Rhea
890151a696 stop using global pointer, remove const cast 2009-12-13 12:34:32 -05:00
Sean Rhea
ffc63d539a fix leaked ConfigDialog and memory errors
The ConfigDialog is modal, so it needs to delete itself.  However, the
existing code contained a bunch of destructors with calls to delete on
widgets.  That's wrong.  Widgets are automatically parented on being added to
layouts, the parent widgets delete their children in their own destructors.
So remove all the explicit deletes.
2009-12-13 12:10:58 -05:00
Sean Rhea
db7f9a9ad2 remove global mainwindow pointer from ConfigDialog 2009-12-13 11:32:39 -05:00
Sean Rhea
1cf94fec6f change case of mainwindow to distinguish from global ptr 2009-12-13 11:24:26 -05:00
Sean Rhea
d36fb9eae0 remove global mainwindwo ptr from save dialogs
Also, allocate dialogs on stack to make free explicit.  I find
Qt::WA_DeleteOnClose to be really non-intuitive for modal dialogs.
2009-12-13 11:21:48 -05:00
Sean Rhea
4a79c95d37 remove global mainwindow pointer from PowerHist 2009-12-13 11:02:33 -05:00
Sean Rhea
c9aec66dcf remove global mainwindow pointer from AllPlotWindow.cpp
Also remove ugly const cast by introducing MainWindow::mutableIntervalItems.
2009-12-13 11:02:32 -05:00
Sean Rhea
01e1c22640 remove global mainwindow pointer from AllPlot.cpp 2009-12-13 11:02:32 -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
Sean Rhea
3c72be18ff adjust BS to DP scaling factor
This should have been part of commit 6a514f3.
2009-12-12 22:31:05 -05:00
Sean Rhea
a609738cca add parent pointer 2009-12-12 22:08:29 -05:00
Sean Rhea
c940517690 use more const 2009-12-12 22:07:53 -05:00
Sean Rhea
8f6237c5f6 don't need to call "return;" at end of function 2009-12-12 22:02:59 -05:00
Sean Rhea
bef469384b just call MainWindow::rideItem 2009-12-12 22:02:02 -05:00
Sean Rhea
d37a98ac9c include AllPlot.h first 2009-12-12 22:00:35 -05:00
Sean Rhea
f63dca40ef add combo to switch PM plot between BS and DP 2009-12-12 17:44:12 -05:00
Sean Rhea
293129c180 store ptr to MainWindow in PMWindow
I'm going to need it later when I add the ability to switch
from BikeScore to DanielsPoints.
2009-12-12 17:35:04 -05:00
Sean Rhea
a4459926b7 store both BikeScore and DanielsPoints in stress.cache 2009-12-12 17:00:17 -05:00
Sean Rhea
6a514f3043 scale DanielsPoints so that 1 hr @ FTP == 100 2009-12-12 16:40:37 -05:00
Damien Grauser
216bc6ef4b add language selector and French translations 2009-12-12 15:23:46 -05:00
Mark Liversedge
29a9e41444 Interval features and new GC file format 2009-12-12 11:41:35 -05:00
Sean Rhea
2db45dc0c5 introduce MainWindow rideSelected signal
...and use it to update the various tabs when a ride is selected.
2009-12-10 13:13:10 -08:00
Sean Rhea
4c7311e152 move htmlSummary into RideSummaryWindow 2009-12-10 11:50:50 -08:00
Sean Rhea
2f23582d08 call computeMetrics, not htmlSummary 2009-12-10 11:11:24 -08:00
Sean Rhea
5e4dc2ce57 add RideSummaryWindow
This change allows us to connect the zonesChanged signal to the ride summary,
so that we don't have to call ride->htmlSummary as a special case whenever
we call zonesChanged.  It will also come in useful later when I introduce a
rideSelected signal.
2009-12-10 11:05:10 -08:00
Sean Rhea
f5bee4ce89 rename function 2009-12-10 10:16:58 -08:00
Sean Rhea
e7a76022bb new zonesChanged signal 2009-12-10 10:16:58 -08:00
Sean Rhea
1169ca9239 public zones in MainWindow is const 2009-12-10 10:16:58 -08:00
Sean Rhea
19c63883d0 MetricAgg gets const Zones 2009-12-10 10:16:58 -08:00
Sean Rhea
f1a28616a6 ConfigDialog gets ptr to zones, not ptr to ptr 2009-12-10 10:16:58 -08:00
Sean Rhea
a4a2ca136a CyclistPage gets const Zones ptr 2009-12-10 10:16:57 -08:00
Sean Rhea
95b44b7752 make zones ptr const 2009-12-10 10:16:57 -08:00
Sean Rhea
1096fb4125 make some functions const 2009-12-10 10:16:57 -08:00
Sean Rhea
b2ef8940a7 cp plot gets zones in its constructor 2009-12-10 10:16:57 -08:00
Sean Rhea
90ce36f984 make some functions 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
eb9eddfb66 zones ptr is never null 2009-12-10 10:16:56 -08:00
Sean Rhea
3bb50ec996 whitespace and other nonfunctional cleanup 2009-12-10 10:16:56 -08:00
Sean Rhea
21782c4e6f remove duplicate addZoneRange function
The cp argument wasn't being used, so just call the one that
doesn't take a cp argument.
2009-12-10 10:16:56 -08:00
Sean Rhea
27d55025ac nit: cleanup function 2009-12-10 10:16:56 -08:00
Sean Rhea
d2d0ac9f1c QList<ZoneRange*> --> QList<ZoneRange>
Again, get rid of deletes at the slight expense of a few cheap copies.
2009-12-10 10:16:56 -08:00
Sean Rhea
9cb955e9b3 QList<ZoneInfo*> --> QList<ZoneInfo>
Gets rid of some deletes, and shouldn't be much slower,
as QStrings are copy-on-write.
2009-12-10 10:16:56 -08:00
Sean Rhea
1c5b8e4168 remove printfs and cleanup whitespace
No functional change.  Note, however, that removing the printf from
addZoneRange(int cp) revealed that the cp argument was unused.
2009-12-10 10:16:55 -08:00
Steve Gribble
ec696a14e9 Another bug fix to handle rides that start in the middle of a course.
Computrainer 3D software lets you start your ride partway into
a course.  But, if you do this, the first distance recorded
in the log file is the distance you started at, rather than zero.
GC expects the first data point to be at distance zero, however,
and therefore this causes total distance to be reported incorrectly.

This patch fixes the bug by remembering the distance of the
first data point, and subtracting that from all distances
reported to GC, so that distances are zero-based (i.e.,
so that the first data point is always at distance zero.)
2009-12-08 08:51:55 -08:00
Sean Rhea
27ab607d1f remove gratuitous returns 2009-12-08 08:51:13 -08:00
Justin Knotzke
bff2880965 Fixed a SEGV when user clicked stop in Realtime.
Fixed a crash due to threading of the socket.
Improved performance of discovery()
Improved ability to recover from a lost channel
Fixed bug where channel ID's weren't being correctly sent.
GC wasn't waiting for Qt to return from connecting to the host. It now is.
Fixed When the user hit stop then start, the realtime thread did not start.
2009-12-08 08:45:10 -08:00
Steve Gribble
ac2a2d4f82 fix bugs and add features to Computrainer3dpFile
Specifically:

1.  The previous code assumed the wrong units while extracting
    speed and distance from a .3dp file.  Computrainer stores
    speed in (miles per hour / 160), and distance in kilometers.
    This patch converts .3dp speed/distance data points into
    kph and km correctly.  As a side-effect, speed and distance
    are displayed correctly in GC windows and calculations.

2.  This patch adds code to extract altitude data from a .3dp
    file and include it in a ride.

3.  .3dp files do not have a consistent inter-datapoint time
    interval.  Since GC expects one, the earlier version of this
    code averaged 1000 data points from the middle of the ride to
    estimate this interval.  Unfortunately, this approach caused
    a bunch of problems for various calculations that GC does,
    such as calculating the riding time (vs. workout time),
    average speed, xPower, critical power plot and FTP, and so
    on.  [GC assumes that # data points * inter-datapoint-interval
    = workout time, but this isn't true when you used an estimated
    interval.]

    To fix this, this patch adds averaging and interpolation code
    to covert the data point sequence in the .3dp file to an
    averaged sequence with a data point every 250ms.  Since the
    inter-data-point interval is now fixed, these calculation bugs
    went away, and correct values are now calculated and displayed
    by GC.

4.  Fix (3.) has another useful side-effect:  the number of data
    points per ride given to GC goes down by 10x.  (Raw .3dp files
    have a data point every 30-50ms.  This averaging/smoothing
    code emits a data point every 250ms.)  Since the critical
    power calculation is an O(n^2) calculation, the time for
    this calculation is reduced by 100x.  Instead of an hour
    to do the calculation for a typical 2hr ride, it now takes
    less than a minute.

5.  The code was cleaned up in several regards:  comments
    were added to help document the .3dp format and explain
    the averaging/smoothing code, and types from boost/cstdint.hpp
    were used instead of native C types when using a variable
    of a specific size  (e.g., the code now uses uint16_t instead
    of unsigned short, etc.).

This patch was built by Steve Gribble and Daniel Stark.
2009-12-03 20:25:33 -08:00
Sean Rhea
ea2b1909ae don't add interval 0 if it's the only one 2009-12-01 06:22:48 -05:00
Sean Rhea
06dacae358 fix compiler warning
A class with virtual functions needs a vitual destructor.
2009-12-01 05:37:51 -05:00
Sean Rhea
9e588ad413 fix unused variable warning 2009-12-01 05:37:46 -05:00
Mark Liversedge
c1704ebf97 Fixed SEGV when no devices are configured and workout mode is selected 2009-12-01 05:19:29 -05:00
Sean Rhea
7a3d154afa temporary patch to estimate dp from bs
I want to add Daniels Points to the ManualRideFile format, but until then,
simply estimate them from the BikeScore based on a weighting I took from some
of my long rides.  It's mostly on long steady rides that I estimate BikeScore
as part of a ManualRideFile, so hopefully this isn't too terrible as a
temporary patch.  A better fix is in the works.
2009-11-28 18:50:49 -05:00
Jamie Kimberley
74cbddff5b update developers guide for patch qwt
Removed qwt from the list of dependencies. Changed build instructions to
reflect the use of the patched version of qwt.
2009-11-28 18:50:47 -05:00
Mark Liversedge
d83ba74ae3 Fix Stress.Cache refresh on wrong tab 2009-11-28 11:51:11 -05:00
Sean Rhea
828562ec3d bug fix: xPower shouldn't count coffee breaks
Commit 420b2b6 introduced a bug whereby it used the total workout time,
rather than the time riding, to compute xPower.  This should only affect
your data if you take long breaks during rides, like to stop for brunch,
or if you store multiple rides in the same ride file--i.e., you don't
use the split ride feature.  Nonetheless, it's worth deleting your
stress.cache file after applying this commit, just in case.

I've also added three rides, notes, and a zones file to the test directory to
illustrate the differences discussed above.  The first ride is just an hour at
CP/FTP.  It should have a BikeScore of very close to 100, and Daniels Points
very close to 33.  The next ride is the same as the first, but followed by 20
minutes of coasting.  Its Daniels Points should be the same as the former,
but its BikeScore should be a good bit higher.  The final ride is the same as
the first, but interrupted partway through by 30 minutes of no riding at all,
as though the cyclist stopped for coffee and a pastry.  It should have
nearly identical BikeScore and Daniels Points to the first ride.  In the
broken implementation of xPower that this commit fixes, it did not.

Dan C: I reverted your changes to the xPower calculation in this commit and
went back to my implementation.  It's just easier for me to think about the
code that way.  My apologies.  I kept the other changes you made, though.
2009-11-28 11:42:34 -05:00
Sean Rhea
39ef9efc4d bug fix: don't compute Daniels Points if no CP set 2009-11-27 22:55:41 -05:00
Sean Rhea
3429f2d5a4 add DanielsPoints metric
Fit a curve to the points system in Table 2.2 of "Daniel's Running Formula",
Second Edition, assume that power at VO2Max is 1.2 * FTP, further assume that
pace is proportional to power (which is not too far off in running), and scale
so that one hour at FTP is worth 33 points (which is the arbirary value
Daniels chose).
2009-11-27 18:23:52 -05:00
Mark Liversedge
d4f8ce5b07 Remove Notes Tab and place notes on Summary Tab
Adding splitter for the ride summary/notes layout
2009-11-27 18:19:18 -05:00
Sean Rhea
7324ebda06 fix season selector in cp plot 2009-11-27 16:46:09 -05:00
Sean Rhea
411abf55b8 stop PM chart at max(today, latest ride)
I've been using the manual ride feature to plan my weeks in advance, so it's
helpful to have the x-axis on the PM chart extend past today's date.
2009-11-27 16:46:09 -05:00
Mark Liversedge
82ac0f5e1f add realtime mode
Joint work between Mark L, Justin, and Steve Gribble.
2009-11-23 10:42:48 -05:00
Mark Liversedge
e3426c1024 win32 and linux build fixes
- change SeasonParser include from <> to "" for Windows
- include stdio.h in PowerTapUtil for Linux
2009-11-21 17:21:47 -05:00
Sean Rhea
6394483df4 link to msg about building on windows 2009-11-21 15:27:41 -05:00
Sean Rhea
e7b762333d ugly fix for zones file without a BEGIN
Just attribute all earlier rides to the first zone.  We should do better in
the future, maybe by complaining to the user in a dialog, but for now,
not crashing definitely seems better than crashing.
2009-11-21 15:23:04 -05:00
Sean Rhea
51aafe7ede rest during intervals counts against averages
This seems like the right call to me.  If I'm doing an interval and I stop
riding for some reason, I'm resting, and that should affect my average power.
I thought it was always this way, but apparently not.
2009-11-21 14:34:49 -05:00
Jamie Kimberley
182843896d test file with two intervals in first 10 secs
Good for testing what happens in the Ride Plot when there are interval
markers within the first smoothing period.
2009-11-21 14:33:36 -05:00
Sean Rhea
6914185680 don't plot intervals before first smoothing window 2009-11-21 14:27:13 -05:00
Sean Rhea
ab28d32b65 rename ergomo csv files 2009-11-21 14:03:43 -05:00
Sean Rhea
5c3896b6cc fix intervals for ergomo csv 2009-11-21 14:02:37 -05:00
Sean Rhea
25e8658592 fail gracefully if rec_int changes mid-ride
Includes test ride that demonstrates the problem.
2009-11-21 13:48:23 -05:00
Sean Rhea
6d33d10944 inject a little philosophy onto the front page 2009-11-15 20:03:14 -08:00
Sean Rhea
02cf0ac83d need <algorithm> for std::lower_bound in Linux
Thanks to Mark Liversedge for pointing this out.
2009-11-15 19:53:18 -08:00
Sean Rhea
93d62cc5c2 fix Ride Plot shading bug introduced in 79ced76
The default position of the power combo box in the Ride Plot is to shade
power.  Change the default value of the shade_power variable to match.  This
didn't matter before 79ced76, since prior to that commit we (mostly
redundantly) called showPower from setAllPlotWidgets, whereas now we only call
showPower after a change in the combo box.
2009-11-15 08:52:23 -08:00
Sean Rhea
db943fbcd6 make ride plot work for manual rides
I don't like disabling the ride plot tab when I select a manual ride,
because I frequently scroll through the ride list to search for a ride
by the shape of its ride plot, and every time I hit a manual ride I get
bounced to the CP plot tab.  So rather than disable the ride plot tab,
just make it show an empty plot.
2009-11-09 09:20:24 -08:00
Sean Rhea
1edd8c0767 add y-axis shows work mode to CP plot
This mode is fun because the "CP Curve" is a straight line,
just like in the model:

  work = CP * time + AWC

You can also see that the AWC is the y-intercept.
2009-11-09 09:05:03 -08:00
Sean Rhea
3912c2474c "Tools"->"Critical Power Calculator" 2009-11-09 10:21:43 -05:00
Sean Rhea
6d20bea968 don't show CP values off the end of lines
I.e., if the user selects a time to the left of the red dashed CP line,
we shouldn't show a value in the "CP Curve" box.
2009-11-09 10:03:50 -05:00
Sean Rhea
aef876e817 use foreach 2009-11-09 09:56:48 -05:00
Sean Rhea
ae5dd3feb3 prefer most recent season in CP plot 2009-11-09 09:54:34 -05:00
Sean Rhea
82934425ab fix bug in 2f8d101, need to strip path
The filename argument actually contained the whole path.  This fix passes
the filename and directory separately, so that the anchored regex works.
2009-11-09 09:50:51 -05:00
Sean Rhea
632bb6ddd1 whitespace cleanup -- no functional changes 2009-11-07 14:42:14 -05:00
Sean Rhea
4ee57a25b0 misc cleanup 2009-11-07 14:42:09 -05:00
Sean Rhea
14f59f8e5e delete NULL is a no-op 2009-11-07 14:27:01 -05:00
Sean Rhea
dfc7e88f26 drop read_cpi_file, cleanup read_one 2009-11-07 14:23:51 -05:00
Sean Rhea
3d6d9ad86d don't fill in bestDates for today's ride 2009-11-07 14:19:46 -05:00
Sean Rhea
a9ddd40dda errors should be QMessageBoxes, not printfs 2009-11-07 14:15:36 -05:00
Sean Rhea
5ac70a9a98 simplify very confusing code 2009-11-07 13:53:33 -05:00
Sean Rhea
9029be7ccc little bits of CpintPlot cleanup
Cleanup whitespace, use scoped_ptr, prefer QVector over QList, etc.
2009-11-07 13:52:22 -05:00
Sean Rhea
a7df8c48b3 progress dialog doesn't need to be a class member
We can also allocate it on the stack.
2009-11-07 13:52:09 -05:00
Sean Rhea
79ced76347 setAllPlotWidgets doesn't need to call show*
It's only called from setData, which calls AllPlot::setData right afterwards,
and the latter will do all the things that the show* functions do.
2009-11-07 10:32:00 -05:00
Sean Rhea
2f8d1013be anchor regexp
Anchoring this regexp (i.e., making it start with a "^") reduces the time
it takes to load the first CP plot from 10 seconds to 6.5 seconds on
Sean's three years of rides.  Unbelievable, but repeatable.
2009-11-06 23:43:35 -05:00
Sean Rhea
c71f38ecb0 clean up and sorten cpi_filename_to_date 2009-11-06 23:36:43 -05:00
Sean Rhea
c8c0cf395a ~qwt_plot_item calls detach 2009-11-06 09:13:59 -05:00
Sean Rhea
846f95d5b3 use foreach, tidy up code 2009-11-06 08:49:54 -05:00
Sean Rhea
19f905d2d1 fix leaked CPCurve 2009-11-06 08:38:38 -05:00
Sean Rhea
288d0ce7c6 allocate QPen objs on the stack
This fixes a memory leak.
2009-11-05 20:01:02 -05:00
Sean Rhea
5e3692a1b4 use QVector<double> 2009-11-05 19:59:00 -05:00
Sean Rhea
ae94021a21 fix tabs and eol spaces -- no functional change 2009-11-05 11:40:07 -05:00
Sean Rhea
c5240d1c0c compute time in zones in computeMetrics
...not in htmlSummary, so that the WeeklySummaryWindow doesn't have to
generate the full htmlSummaries for a week.
2009-11-01 22:01:53 -05:00
Sean Rhea
cb50314915 use colors from RideList in htmlSummary
Rob Carlsen suggested that the htmlSummary should use the same colors as in
the ride list.  I agree, but they're a little to light, so bump the saturation
a bit.  While we're at it, go ahead and do the zones list, too.
2009-11-01 21:03:30 -05:00
Sean Rhea
cae4d092c9 highlight every other interval 2009-11-01 20:05:09 -05:00
Sean Rhea
0789c68f30 srm intervals names match those on PowerControl 2009-11-01 20:01:20 -05:00
Sean Rhea
094e58d04d switch to QVector and fix a memory error 2009-11-01 20:00:24 -05:00
Sean Rhea
263ffd353f combine SrmFileReader::openRideFile and readSrmFile 2009-11-01 17:43:49 -05:00
Sean Rhea
d6f46b80d4 remove commented-out code 2009-11-01 17:27:48 -05:00
Sean Rhea
a312b4a881 srm.h|cpp >> SrmRideFile.cpp and rm the former 2009-11-01 17:24:55 -05:00
Sean Rhea
a49b659014 fix eol spaces -- no functional change 2009-11-01 17:21:46 -05:00
Sean Rhea
c964e274aa only fill in intervals if the RideFile hasn't already 2009-11-01 17:19:11 -05:00
Sean Rhea
7687b7f73a use RideFileIntervals in SplitRideDialog 2009-11-01 12:47:59 -05:00
Sean Rhea
c848726f0c let the factory call fillInIntervals 2009-11-01 12:45:43 -05:00
Sean Rhea
521653993d bug fix: check that rideItem->ride is not NULL 2009-11-01 12:44:11 -05:00
Sean Rhea
4b7413295c use RideFileIntervals in htmlSummary 2009-11-01 12:01:52 -05:00
Sean Rhea
3cc99bf2b0 use RideFileIntervals in AllPlot 2009-11-01 12:01:52 -05:00
Sean Rhea
1dc513e7a9 add RideFileInterval
Eventually, I'm going to remove interval as a member of RideFilePoint, and
only use RideFileIntervals.  But I have to rework a bunch of other code first,
so for now the two will coexist.
2009-11-01 12:01:42 -05: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
Sean Rhea
f39f2b516b oops: add units for 95% hr 2009-11-01 11:51:26 -05:00
Sean Rhea
68832ff6c0 fix tabs and eol spaces -- no functional change 2009-11-01 10:58:12 -05:00
Sean Rhea
8595f2cfc5 remove writeAsXML declaration
This should have been part of 868e3d4.
2009-11-01 07:35:08 -05:00
Robert Carlsen
3f63a69c6f Updating description for Comma-Separated Values files. 2009-10-31 17:22:37 -04:00
Sean Rhea
dbc3ed9e1c add Joe Friel's "aerobic decoupling" metric to ride summary 2009-10-31 16:22:06 -04:00
Robert Carlsen
c173c2be06 Grammatical corrections to ride file format descriptions. 2009-10-31 15:42:16 -04:00
Eric Murray
7c76937cd7 Fixed "shaking" bug with PerfPlot sliders. 2009-10-31 15:14:37 -04:00
Sean Rhea
868e3d4b6b remove XmlRideFile and "Export to XML"
These were part of an earlier attempt at a GC-specific ride file
format.  They aren't in use now, and they'll be replaced by the new
one when it's done.
2009-10-31 15:12:48 -04:00
Sean Rhea
5dc82a6c93 add descriptions to RideFile types
...and use these to get rid of the explicit list of ride file type
descriptions in the import wizard.
2009-10-31 15:00:37 -04:00
Sean Rhea
c66bf0b1c9 add RideFileFactory::suffixes() and use it
...to eliminate the problem of enumerating all possible file suffixes
all over the code.
2009-10-30 19:13:37 -04:00
Sean Rhea
edc7cc4960 fix absolutely atrocious use of tabs 2009-10-30 19:08:29 -04:00
Sean Rhea
2ab59a3905 hist much prettier with 5W-wide bins 2009-10-30 11:55:08 -04:00
Sean Rhea
f48e640565 last mod times depended on svn, remove them 2009-10-30 11:52:34 -04:00
Sean Rhea
f1e22cec42 goodbye 2000 W in cp screenshot 2009-10-30 11:50:51 -04:00
Sean Rhea
f9ff06bdd3 nit: we also import PowerTap CSV 2009-10-30 10:54:59 -04:00
Sean Rhea
af758f24ff update link to mailing list 2009-10-30 10:53:59 -04:00
Jamie Kimberley
7d2cf8d305 Add support for 3dp comutrainer files in the cp plot 2009-10-29 09:47:53 -04:00
Greg Lonnon
5a25dcb56a Computrainer 3dp file support 2009-10-29 09:47:45 -04:00
Sean Rhea
39c7787c19 fix memory leak in CsvRideFile 2009-10-28 21:05:18 -04:00
Sean Rhea
aad5a337b8 areDataPresent should return a const ptr 2009-10-27 23:38:57 -04:00
Robert Carlsen
7ec5bff235 fix SeasonParser.cpp::EndDocument() - return value was missing 2009-10-27 01:32:56 -04:00
Sean Rhea
87aad4a2dd add cp curve value, make room in best value
I am so not a UI designer, but it least now all the information is there and
visible.  UI types: please dive in at any time.
2009-10-26 20:29:20 -04:00
Sean Rhea
a91782b69b remove printf and comment 2009-10-26 19:39:29 -04:00
Robert Carlsen
e7f8f9cbd1 fix performance manager to deal with descending ride list preference. 2009-10-25 20:00:06 -04:00
Robb Romans
476aa1b48b comments about QDates in SeasonParser.cpp 2009-10-25 19:47:47 -04:00
Sean Rhea
76f89187ba update README to include build instructions
...in particular, what to do with the .pri.in files.  Also move README
to the toplevel directory.
2009-10-25 19:45:11 -04:00
Sean Rhea
d3b1a62af3 reduce memory footprint of StressCalculator
After processing each RideItem, call freeMemory to deallocate the RideFile
object inside it, since we're done with the RideFile once we have the
BikeScore.  Also call computeMetrics instead of htmlSummary, since we only
need the BikeScore and computeMetrics is faster.

After computing the stress cache from scratch on Sean's ride library
(3 years of rides), this change reduces the process virtual memory size
(VSIZE) from 769 MB to 412 MB.  Even more dramatically, it reduces the
resident set size (RSIZE) from 389 MB to 36 MB!

On Sean's MacBook, which has 4 GB of RAM, this change results in a modest
reduction in the time to compute the stress cache, from 17 seconds down to
14.  On machines with more limited memory footprints, or when dealing with
a larger ride library, the speedup could be very dramatic.  (Once the
process starts paging, it's going to crawl.)

Now that it only takes 14 seconds to calculate, it's really not clear to
me that we need store the stress cache on the filesystem at all.
2009-10-25 17:40:34 -04:00
Sean Rhea
0d45c46a2a add computeMetrics and freeMemory functions
computeMetrics computes the RideMetrics without building up the htmlSummary.
freeMemory frees the rideFile object associated with this ride.
2009-10-25 17:40:03 -04:00
Sean Rhea
b144b5ec48 assert.h to make Linux happy 2009-10-24 14:19:48 -07:00
Justin Knotzke
08c232d70b Filtering of data in Critical Plot based on Seasons
Based on the defined dates per season, CP displays all plot only
for that Season.
2009-10-22 21:45:07 -07:00
Justin Knotzke
c630d281d3 Added Season support via xml file.
Using seasons.xml, support now for a season name, start date and end date.

Fixed some memory leaks.
2009-10-22 21:45:03 -07:00
Mark Liversedge
5acf35d542 fix angle brackets in include
They break the build on win32.  Use quotes instead.
2009-10-18 18:40:22 -07:00
Justin Knotzke
f8e9227c99 Support for Qollector in Critical Power Plot
is_ride_filename wasn't filtering for qla files.
2009-10-18 08:32:11 -07:00
Eric Murray
617f034fa3 fix PM to use exp weighted avg
Also limit decimal places in STS, LTS, and SB display fields.
2009-10-16 20:46:30 -07:00
Sean Rhea
46d026674f drop ancient PowerAgent compatibility mode
This old compatibility mode was only used to verify that we could match the
output of an old version of PowerAgent, and it hasn't been used in GC in a
long time.  I can't see us ever using it again, either.
2009-10-10 12:35:35 -04:00
Sean Rhea
318c9debd4 put all our unit conversions in one header file 2009-10-10 12:27:42 -04:00
Sean Rhea
f449fbaaaf sort file names -- no functional change 2009-10-10 08:58:48 -04:00
Eric Murray
c28591142b add performance monitor 2009-10-08 16:42:55 -04:00
Sean Rhea
abf4b74cc3 abstract "Critical Power Plot" tab into its own class 2009-10-07 09:47:17 -04:00
Sean Rhea
7c90677655 minor AllPlotWindow cleanup 2009-10-07 08:20:35 -04:00
Sean Rhea
7aa858cf02 abstract "Weekly Summary" tab into its own class 2009-10-07 08:10:26 -04:00
Justin Knotzke
a7a81b53c5 Added missing recIntSecs to Qollector
The interval time was not being recorded.
2009-10-05 09:24:48 -04:00
Mark Liversedge
18068b1cae more WKO file constants
New optional padding data 0x0e 0x80 and data cache marker 0x1d 0x80.
2009-10-05 09:20:12 -04:00
Sean Rhea
29368cbbdb don't plot points before first smoothing interval
Otherwise, the zeros we average distort the starting values.
This effect is particularly noticeable with altitude.
2009-10-04 06:32:25 -04:00
Sean Rhea
51bc450448 include assert.h in HistogramWindow.cpp 2009-10-03 21:57:02 -04:00
Sean Rhea
28c0b8e221 remove some calls to saveAndOpenNotes
I don't think that our zones or CP changing should require re-opening the
notes file.  Only changing which ride is selected should do so.

This commit is the follow-on to a85c4f.  Please review.
2009-10-03 21:54:27 -04:00
Sean Rhea
a85c4fae65 unfuck generateWeeklySummary/saveNotes confusion
I have no idea why we were saving the current notes file and opening a new one
every time we called generateWeeklySummary, but it seems totally wrong to me.
This commit merely separates the two concerns into two separate functions,
generateWeeklySummary and saveAndOpenNotes, and calls the latter everywhere
the former is already called.  As such, there should be no functional change.
We can work out whether we should really be saving (possibly empty) notes
files in all these places as part of a future commit.
2009-10-03 21:46:06 -04:00
Sean Rhea
18916aea7f abstract "PF/PV Plot" tab into its own class 2009-10-03 21:01:47 -04:00
Sean Rhea
5b8837a423 abstract "Histogram Analysis" tab into its own class 2009-10-03 19:16:30 -04:00
Berend De Schouwer
de96ee2f16 fix PowerHist zoom out with a call to setZoomBase 2009-10-03 18:13:09 -04:00
Berend De Schouwer
6744d4ad98 fix AllPlot zoom out with a call to setZoomBase 2009-10-03 18:11:00 -04:00
Berend De Schouwer
6692e6daad fix CSV date autodetect
There were some missing calls to set Qt::CaseInsensitive.
2009-10-03 18:06:37 -04:00
Sean Rhea
03666b478e take qwtconfig.pri out of git
Provide a qwtconfig.pri.in that you copy to qwtconfig.pri, instead.
2009-10-03 17:57:22 -04:00
Ned Harding
5c20f8340f remove qwt5.dll from windows install
...since it is now staticly linked.
2009-10-02 11:44:08 -04:00
Mark Liversedge
b08bd55b1b add additional wko padding value
...including test file from Jim Baker.
2009-10-02 09:31:23 -04:00
Justin Knotzke
ec05ca5dfc fix typo in QuarqParser
"Watts" shouldn't be capitalized.
2009-10-01 10:10:22 -04:00
Justin Knotzke
96cdb4ebd9 fix interval '9' bug in QuarqParser
I'm assuming this was a typo.  '9' should be '0'.
2009-10-01 10:10:22 -04:00
Mark Liversedge
6dca518fff more messing around with dates in ride import
- Allow user to edit any file date during import.
- WKO reader uses filename date over metadata in the file after import.
2009-09-30 08:59:59 -04:00
Sean Rhea
5ab5bc7010 move bikescore up in ride summary
...so that the intervals summary is "above the fold".  That may be a little on
the wide side for small screens, but it's still less wide than the intervals
summary, so it's not the worst offender in that regard.
2009-09-28 19:52:05 -04:00
Sean Rhea
3e9905565b add Eric Murray to list of contributors
It's pretty inexcusable that I forgot this before.  I'm sorry, Eric!
2009-09-28 14:47:23 -04:00
Sean Rhea
ab96f78050 abstract "Ride Plot" tab into its own class 2009-09-27 21:40:03 -04:00
Sean Rhea
b53be32172 less public variables in AllPlot
Also clean up includes and pre-declared classes.
2009-09-27 21:11:53 -04:00
Sean Rhea
a18fea04c7 allocate MetricAggregator on stack 2009-09-27 20:16:55 -04:00
Sean Rhea
8f221b4b71 use QSharedPointer for daily RideMetrics 2009-09-27 20:11:44 -04:00
Sean Rhea
f911ffa9c1 use QSharedPointer for weekly RideMetrics 2009-09-27 20:05:20 -04:00
Sean Rhea
e7e34c107e use a QVector for time_in_zone 2009-09-27 20:00:47 -04:00
Thomas Weichmann
47cc777b04 allow for less wide MainWindow
- Moved Allplot time/distance combobox down next too smoothing slider.
- Rotated allplot plot scale lables to save a little space.
2009-09-27 13:14:17 -04:00
Greg Lonnon
97cb66c128 added smart recording support to TcxParser.cpp
The recording interval can vary. If the recording interval is not 1
second, then the data is linearly interpolated for the time period at
1 second intervals. This allows for smart recording or garmin 705 data
drops to work correctly with GC.
2009-09-27 13:05:09 -04:00
Jamie Kimberley
a15904937d powertap .csv file with speed/cad/hr/power data
Powertap .csv file containing data for speed, cadence, hr, and power.
2009-09-26 16:28:23 -04:00
Jamie Kimberley
a377206c43 Powertap .raw file with speed/cad/hr/power data
Powertap .raw file containing data for speed, cadence, hr, and power.
It also has a few intervals markers which may be useful for verifying
that we handle intervals correctly.
2009-09-26 16:28:23 -04:00
Jamie Kimberley
350cc0ee96 Powertap .raw file with speed/cad/hr, no power
Powertap .raw file generated when using the powertap as a cyclecomputer.
it contains data for speed, cadence, HR but no data for power.
2009-09-26 16:28:23 -04:00
Mark Liversedge
850213b968 report errors up from WkoRideFile 2009-09-26 16:15:59 -04:00
Berend De Schouwer
f3cb9c6fab do not load wko files with zero records
Includes a test wko file that previously caused a crash.
2009-09-26 16:15:06 -04:00
Greg Lonnon
6406973cc0 fix the flashing windows on startup
As it turns out, the show call for tab widgets are handled by the tabwidget
container, so we don't need to call them explicitly ourselves.
2009-09-26 16:00:57 -04:00
Mark Liversedge
f28c360ff5 Parse ergomo csv filenames for date 2009-09-21 21:57:31 -07:00
Mark Liversedge
bff774ad82 Allow upper and lower case suffixes in filenames when importing 2009-09-21 21:57:31 -07:00
Jamie Kimberley
8a205f92d9 Add ergomo CSV ride files to src/test/rides/ 2009-09-21 21:41:44 -04:00
Sean Rhea
9949e175e1 new screenshots
Show off all the cool stuff we've been doing.
2009-09-20 22:26:47 -07:00
Sean Rhea
afd7d8fb1d altitude is always zero in .raw files 2009-09-20 21:56:00 -07:00
Sean Rhea
bc16f3d0a4 delete main window on close
...and set AllPlot's parent so that it gets deleted, too.
2009-09-20 21:34:31 -07:00
Sean Rhea
0cbe39e834 allow altitude plot to go below zero
Also ensure that altitude axis is at least 100 feet/meters tall to avoid
making a flat course look hilly.
2009-09-20 21:22:52 -07:00
Julian Simioni
a8d73e567e Added ride file with altitude below sea level
Added a ride file to the tests where some altitude values are below sea
level.
2009-09-20 21:08:05 -07:00
Sean Rhea
2b7929433d fix spelling of Kimberley 2009-09-20 15:32:57 -07:00
Sean Rhea
406cc4db43 fix weekly summary bug where ride fails to appear
Without this patch, it will occationally be the case that a ride won't appear
in the weekly summary until the ride is itself selected (as opposed to just
selecting some other ride in the same week).
2009-09-20 14:25:52 -07:00
Sean Rhea
8b4fbf0491 don't crash cpint plot when time < 0 2009-09-20 14:14:56 -07:00
Julian Simioni
fcfae4d596 tcx file with time < 0 causes cpint crash
Also added a file for descriptions of test cases.
2009-09-20 14:14:53 -07:00
Sean Rhea
64256bd24a put power and altitude on their own axes 2009-09-20 11:52:35 -07:00
Sean Rhea
83d1903276 use local version of qwt
Add top-level build.pro, gitignore top-level Makefile, point src.pro at our
own qwt dir, and adjust gcconfig.pri.in accordingly.
2009-09-20 11:13:11 -07:00
Sean Rhea
d42c46236b apply many axes patch 2009-09-20 11:09:19 -07:00
Sean Rhea
a3a19caba8 build static qwt lib 2009-09-20 11:09:19 -07:00
Sean Rhea
74e6f9776a add .gitignore files for qwt 2009-09-20 11:09:19 -07:00
Sean Rhea
44b602d775 check qwt-5.2, r588 into repository 2009-09-20 11:07:49 -07:00
Sean Rhea
cc7710b2c7 clarify no SRM download support under Windows 2009-09-20 09:50:22 -07:00
Sean Rhea
ff0e164b6f update web page for release 1.2.0 2009-09-20 08:29:45 -07:00
Jamie Kimberley
c6798b452c clean up wildcard filters in import wizard
Show all supported files as the default and each specific format as a
separate option.
2009-09-20 08:26:01 -07:00
Mark Liversedge
418982b732 wko test file with non-metric units in charts 2009-09-19 19:06:29 -07:00
Mark Liversedge
f238366db9 minor fix to wko chart data processing
Only affects users with non-metric units on standard charts in WKO.
2009-09-19 19:02:07 -07:00
Mark Liversedge
127f136249 unified ride import wizard
All the file import options are now supported by one dialog.  As an extra
special bonus, GC now supports dragging and dropping files to import them.
2009-09-19 18:05:43 -07:00
Eric Murray
b3c31b8c64 fix manual ride BS estimates for rides under 1 hour
also added progress box while calculating BS estimating factors
2009-09-19 09:32:39 -07:00
Eric Murray
e80c5fe6d7 fix manual ride entry crash when no zones file
This is a partial patch based on code from Eric Murray.  It changes just
enough of ManyalRideDialog to fix a crash that otherwise occurs when the
user doesn't have a zones file.
2009-09-19 09:21:53 -07:00
Sean Rhea
7368b76e76 add 95th percentile heart rate to interval summary 2009-09-16 07:24:12 -07:00
Sean Rhea
ed3ff60857 store DataPoints themselves, not pointers, in list
Gets rid of one more pair of new/delete.
2009-09-16 07:22:27 -07:00
Sean Rhea
3ec0897f01 change xyzArrays into QVectors
To match coding conventions and simplify memory management.
2009-09-16 07:22:20 -07:00
Sean Rhea
54044697b9 change smoothXYZ arrays into QVectors
To match coding conventions and simplify memory management.
2009-09-16 07:22:10 -07:00
Sean Rhea
494e4d949e cleanup zone label deletion
Use foreach function to shorten and clarify code.
2009-09-16 07:22:04 -07:00
Sean Rhea
99858423be fix memory error in interval marker code
The previous version of this code contained a memory corruption bug.
QwtPlot deletes all of the items that are attached to it in its
destructor, but the QwtPlotMarkers for intervals were being allocated as a
group with array new.  If we deleted an AllPlot object, then, it would
have tried to delete each of the marker objects individually, rather than
with array delete, which causes memory corruption.  We haven't seen this
bug before because we don't ever delete AllPlot objects (which is a memory
leak in MainWindow).
2009-09-16 07:21:56 -07:00
Sean Rhea
3c771d97d4 allocate altitude pen on stack
Since it's only used for the duration of this function.
2009-09-16 07:20:58 -07:00
Sean Rhea
608c154bc5 allow different interval lengths in tools dialog
Also switch it to being a modeless dialog, so that the user can search through
his/her CP graph to find values to use, and clean up the code a little.
2009-09-12 21:20:53 -04:00
Sean Rhea
f0c2fbf946 fix secs range in best intervals 2009-09-12 21:11:50 -04:00
Sean Rhea
2f6ad86fc7 explain "git commit ." 2009-09-12 16:45:52 -04:00
Sean Rhea
4051016a8b correct commit msg guidelines
first line should be *50* chars or less, not 40
2009-09-12 15:05:28 -04:00
Sean Rhea
48b5b6e377 update d/l page to point to devel guide 2009-09-12 14:37:59 -04:00
Sean Rhea
86d1274d6e update faq
- update which version of OS X GC requires
- remove links to books (may add them back elsewhere some day...)
- remove old question about ptunpk
2009-09-12 14:32:34 -04:00
Sean Rhea
4fc297a69f remove done items from wishlist 2009-09-12 14:31:30 -04:00
Sean Rhea
7f6481f43e add new developer's guide 2009-09-12 14:26:42 -04:00
Sean Rhea
6dd0696acd remove google ads 2009-09-12 14:26:42 -04:00
Mark Liversedge
a3f6f37787 Optional padding data with value 0x8012 discovered 2009-09-12 11:57:14 -04:00
Berend De Schouwer
e9d1a86353 SplitRide altitude matches CSV2 2009-09-12 11:54:33 -04:00
Sean Rhea
6eeea4a305 simplify GC_BUILD_DATE and GC_VERSION
Use gcc macros for __TIME__ and __DATE__ to compute build date.  This has the
advantage that we don't have to shell out to find the date, though it has the
disadvantage that it doesn't give us any control over format, nor does it
report the time zone.

By default, set GC_VERSION to "(developer build)".  For release versions,
specify GC_VERSION explicitly in gcconfig.pri like this:

  QMAKE_CXXFLAGS += -DGC_VERSION="'\"1.2.0\"'"

It would be nice to specify the git commit id in developer builds.  On the
other hand, the developer could always have uncommitted changes, so the git
commit id doesn't really make for a completely reproducible build.  It's also
a pain to get ahold of in Windows.
2009-09-11 09:13:20 -04:00
Mark Liversedge
af676f24eb WKO Import no longer aborts bulk import on first file error. 2009-09-11 09:13:20 -04:00
Justin Knotzke
e761091097 main and RideItem now use the global function that returns the correct QSettings. 2009-09-11 08:49:20 -04:00
Justin Knotzke
72c40de966 Added to what Greg has done in regards to GC's settings. Fixed a bug regarding where power.zones file was being saved to. 2009-09-11 08:49:20 -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
Julian Simioni
5299810a7e tcx ride requiring AltitudeMeters 2009-09-10 21:27:04 -04:00
Julian Simioni
b86921d90c Fixed altitude in .tcx files.
One-liner to correctly parse altitude in Garmin .tcx files.
2009-09-10 21:21:59 -04:00
Mark Liversedge
570b2ffc73 Added support for Cycleops 300PT in WKO import 2009-09-10 21:14:55 -04:00
Justin Knotzke
65ee84f948 Changed the label from mm to m as that's what is displayed. 2009-09-09 07:25:57 -04:00
Berend De Schouwer
0873317ea7 Fix PfPV divide 1000 2009-09-09 07:17:43 -04:00
unknown
236878ff7f Fixes editing of notes
Signed-off-by: Robert Carlsen <robert@robertcarlsen.net>
2009-09-08 18:25:50 -04:00
unknown
f71d329f14 Fixes major bug putting AppData in wrong place on Vista & Win7
Signed-off-by: Robert Carlsen <robert@robertcarlsen.net>
2009-09-08 18:25:42 -04:00
Robert Carlsen
eb0a40ba8e Update version number to 1.2.0 for imminent release. 2009-09-07 19:45:48 -04:00
Greg Lonnon
e7c7a43b8d fixed the following use of a uninitialized variable
==30062== Conditional jump or move depends on uninitialised value(s)
==30062==    at 0x49070E: ElevationGain::perPoint(RideFilePoint const*, double, RideFile const*, Zones const*, int) (BasicRideMetrics.cpp:114)
==30062==    by 0x491592: PointwiseRideMetric::compute(RideFile const*, Zones const*, int, QHash<QString, RideMetric*> const&) (RideMetric.h:54)
2009-09-07 12:27:08 -04:00
Rhea@.(none)
29ad88de64 rearrange src.pro for Windows 2009-09-06 19:30:03 -04:00
Berend De Schouwer
879b1f6a2e Use CSV filename as timestamp 2009-09-06 18:35:49 -04:00
Sean Rhea
50428b5586 try three times to get PT version string
Sometimes we miss the 'V' in 'VER' on the first one, but a subsequent one
lines up right.  Patch from Dan Connelly.
2009-09-06 18:25:43 -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
d65fd2a4d0 This should never have made it to github
Revert "Revert "First line of Notes in WKO imported file now has sport followed by workout code. Improves Calendar display.""

This reverts commit 3567012046.
2009-09-05 22:32:33 -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
c798420cee Test files for the qollector. 2009-09-05 22:27:32 -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
Justin Knotzke
3567012046 Revert "First line of Notes in WKO imported file now has sport followed by workout code. Improves Calendar display."
This reverts commit 325140af26.
2009-09-05 22:24:01 -04:00
Mark Rages
e7f7decf10 Add support for Quarq ANT+ log import.
The Quarq ANT+ log contains a hex dump of raw ANT+ messages.  This
importer uses the closed-source program "qollector_interpret" to convert
the ANT+ log file into an XML format, then parses that into a RideFile.

qollector_interpret binaries for several platforms may be downloaded from
http://opensource.quarq.us/qollector_interpret

If the qollector_interpret program is not available, the menu selection
for importing Quarq ANT+ will not appear, nor will .qla files be
imported.
2009-09-05 21:28:12 -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
Mark Liversedge
325140af26 First line of Notes in WKO imported file now has sport followed by workout code. Improves Calendar display.
Signed-off-by: Robert Carlsen <robert@robertcarlsen.net>
2009-09-04 10:52:10 -04:00
Mark Liversedge
afb3fb6d62 WKO Fix for 64bit, Big Endian and Interval should be 0
Signed-off-by: Robert Carlsen <robert@robertcarlsen.net>
2009-09-04 10:00:03 -04:00
Sean Rhea
7bd0d0326c fix include <> --> "" 2009-09-02 21:25:58 -04:00
Rhea@.(none)
a41226ade5 fix newlines 2009-09-02 21:17:35 -04:00
Berend De Schouwer
bab4063fd0 Resize for small screens 2009-09-02 12:46:17 -04:00
unknown
f4336ec87c Fixes stack overflow crash bug 2009-09-02 10:54:13 -04:00
Sean Rhea
9fb219019e move 'CONFIG += static debug' into gcconfig.pri 2009-09-02 10:45:13 -04:00
Thomas Weichmann
32e30f7ccd Changed title of Power Histogram Tab to Histogram Analysis 2009-09-02 10:38:28 -04:00
Sean Rhea
75e2c43cdd don't compile/link D2XX.cpp if isEmpty( D2XX_INCLUDE )
As suggested by Berend De Schouwer.
2009-09-02 10:36:02 -04:00
Claus Assmann
0c08ff093d Need unistd.h for unlink(2). 2009-09-02 10:30:33 -04:00
Justin Knotzke
faf01deb6f Took out a RideCalendar::addRide() Adding a ride debug statement. 2009-09-01 06:38:07 -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
Berend De Schouwer
4399d1ad81 RidePlot/ErgomoCSV/ErgomoHU Interval consistency 2009-09-01 06:12:34 -04:00
Berend De Schouwer
86cfac2d9e Calendar add-remove rides 2009-09-01 06:12:34 -04:00
Sean Rhea
a1bbf4d50f bug fix: no altitude in srm files
This bug was introduced in 5c0bdd89, which added an alt member to
SrmDataPoint without initializing it.
2009-09-01 05:38:18 -04:00
Claus Assmann
debd870811 There are more than just 3 OSs, make "Unix" the default. 2009-09-01 05:29:36 -04:00
Robert Carlsen
ad0fdd243e Changed declaration of QMAKE_CXXFLAGS to include possible settings from gcconfig.pri. ( = --> += ) 2009-08-31 11:16:43 -04:00
Sean Rhea
d03defb2da ignore empty include paths 2009-08-31 05:36:17 -07:00
Sean Rhea
a5dd700033 add D2XX_INCLUDE path
Also remove Windows-specific include path in D2XX.h, as setting
D2XX_INCLUDE in gcconfig.pri will accomplish the same thing.
2009-08-30 15:08:48 -07:00
Berend De Schouwer
ec8d3e9949 Add Calendar 2009-08-30 14:49:25 -07:00
Berend De Schouwer
55f0b19ff5 Add altitude for Ergomo CSV 2009-08-30 09:35:10 -07:00
Sean Rhea
75a5d66a6a test csv file with -1 hr values
This cvs file from Phil Skiba contains -1 values for hr that were
crashing the power histogram plot.

This is also the first entry into the test/rides directory, in which I
hope to store all ride files that have ever crashed any version of GC.
2009-08-30 09:25:08 -07:00
Sean Rhea
0200f3189c handle non-standard include/lib paths 2009-08-30 09:03:16 -07:00
Robert Carlsen
acaa6e1f1a Restoring src.pro to use Mac Carbon framework 2009-08-29 18:34:18 -04:00
Mark Liversedge
b37c80f849 Fix .notes created in ~/Library/GoldenCheetah rather than ~/Library/GoldenCheetah/<cyclist>/
Signed-off-by: Robert Carlsen <robert@robertcarlsen.net>
2009-08-29 18:30:27 -04:00
Mark Liversedge
1d85f94f7b Stop .notes file being created in / when browsing through WKO files.
Signed-off-by: Robert Carlsen <robert@robertcarlsen.net>
2009-08-28 18:40:01 -04:00
Mark Liversedge
ce2ae9a8d3 Rudimentary calculation of Distance from Time/Speed when Distance is not available as a graph
Signed-off-by: Robert Carlsen <robert@robertcarlsen.net>
2009-08-27 10:54:56 -04:00
Mark Liversedge
a7023c2ea5 Added Fix for Garmin 205/305
Signed-off-by: Robert Carlsen <robert@robertcarlsen.net>
2009-08-26 14:23:16 -04:00
Robert Carlsen
a970b12f68 Fix for PowerHist crash with HR of -1 2009-08-26 10:47:50 -04:00
Mark Liversedge
d66ca54b41 Updated WKO import to support Altitude in RideFile->appendPoint()
Signed-off-by: Robert Carlsen <robert@robertcarlsen.net>
2009-08-25 13:35:21 -04:00
Mark Liversedge
e9e3262caa Adjustments to wko specific source files 2009-08-25 09:59:23 -04:00
Mark Liversedge
d2efc75948 Added WKO RideNotes, applied style guide, fixed CP calc, check version of file 2009-08-25 09:59:22 -04:00
Mark Liversedge
e281cfb444 Src.pro and MainWindow.h changes for WKO import 2009-08-25 09:59:22 -04:00
Mark Liversedge
3722c3bdf0 Changed MainWindow.cpp to attach WKO file import 2009-08-25 09:59:22 -04:00
Mark Liversedge
59805db47c Initial support for WKO file import 2009-08-25 09:59:22 -04:00
Robert Carlsen
143355459d Fix for swapped cadence and altitude data 2009-08-25 09:22:52 -04:00
Thomas Weichmann
5c0bdd8969 Changes to add altitude data to allplot & elevation gained to ride metrics 2009-08-25 06:18:20 -04:00
Sean Rhea
2be608410a fix inexplicable naming conflict
Somehow this SrmData conflicts with the one in srm.h.  I would have expected
the compiler to flag that, but it didn't.  Weird.
2009-08-24 21:21:44 -07:00
Sean Rhea
bf41ffdb10 use gcconfig.pri for local config 2009-08-24 20:08:55 -07:00
Sean Rhea
0c82211bf6 restructure srm d/l code to improve clarity
Use class wrappers around the srmio library to insure that we always
close every opened device and free all allocated data.  Includes other
little bits of stylistic cleanup.
2009-08-24 20:03:07 -07:00
Sean Rhea
20b7c401ad naked new okay for Qt classes with parent pointers 2009-08-24 19:54:32 -07:00
Sean Rhea
59d0b0ede1 coding style guidelines 2009-08-24 19:42:12 -07:00
unknown
086eb6c26b Fixes Win32 Build again 2009-08-22 12:13:06 -04:00
Justin Knotzke
d3ea473f60 This adds timezone support for TCX files. - Julian Simioni 2009-08-21 20:26:47 -04:00
Justin Knotzke
5a453fb210 Misc fixes by Julian Simioni.. Thanks. 2009-08-21 20:22:59 -04:00
Justin Knotzke
3f7938f344 Julian Simioni's patch that uses standard OS directories for storing settings and libraries as well as settings.
USB Stick support still supported.
2009-08-21 19:34:19 -04:00
Sean Rhea
e5ec325caf don't clear/close device if open fails 2009-08-18 04:51:48 -07:00
Sean Rhea
278fd14af7 add option to clear srm memory after download 2009-08-18 04:37:50 -07:00
Sean Rhea
453a398663 fix include path to srmio.h 2009-08-18 03:12:19 -07:00
Sean Rhea
1adbef36e8 add include path for srmio 2009-08-15 17:55:11 -07:00
Sean Rhea
1409d9ec34 use local install of libsrmio.a
Rather than committing the srmio code to the GC repository, let the user
download and build it on their own.  It can be found at

  http://www.zuto.de/project/file/srmio/

or

  git://github.com/rclasen/srmio.git
2009-08-15 17:28:31 -07:00
Sean Rhea
e31db9f837 direct srm d/l -- ghetto, but working
The ghetto part is that we just read the device path out of the device name,
then pass that path directly to Rainer's srmpc_get_data, rather than passing
it an abstraction of a serial port.  As such, this code will only work on
Unix-like operating systems.  But it does work, and that's a good start.
2009-08-15 14:15:46 -07:00
Sean Rhea
d6022ec28c add Prolific 2303 to serial device paths 2009-08-15 14:15:45 -07:00
Sean Rhea
31c3b508bb fix segfault on very short rides 2009-08-15 14:15:45 -07:00
Sean Rhea
9ecf06a334 add qmake file to build static lib 2009-08-15 14:15:45 -07:00
Sean Rhea
83fb5c6968 srmio version 0.0.3 2009-08-15 14:15:45 -07:00
Justin Knotzke
b5f1e64cae Fixed a bug where MPH was always shown in the AllPlot even when Metric was selected. 2009-08-15 07:26:38 -04:00
Eric Murray
e3e1f8fe82 Manual ride entry updates
fix to use last N days worth of rides for BiksScore estimates
fix for skipping some rides in BikeScore estimates
skips rides with zero Bikescore for BikeScore estimates
hitting enter on ManualRide entry dialog doesn't write file
better checking for inputs on ManualRide dialog

Signed-off-by: Robert Carlsen <robert@robertcarlsen.net>
2009-08-12 21:04:36 -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
41063d069d avoid static constructor ordering bug 2009-08-10 21:45:46 -07:00
Sean Rhea
a237779dc8 QString.h --> QString 2009-08-09 22:04:59 -07:00
Sean Rhea
fc4108904f treat hsecsincemidn as a signed integer 2009-08-09 22:04:51 -07:00
Eric Murray
6ce20ccb29 Fixed calculation errors in manual ride BikeScore estimates 2009-08-09 15:43:07 -07:00
Sean Rhea
83ce4d1f59 abstract instructions; use combo for port, too 2009-08-09 15:34:53 -07:00
Sean Rhea
5461e07fcd add combobox to select device type 2009-08-09 15:34:46 -07:00
Sean Rhea
502cb4b60f abstract Device to support multiple device types 2009-08-09 15:34:39 -07:00
Sean Rhea
9624cd03a9 move all PT-specific code out of DownloadRideDialog 2009-08-09 15:34:32 -07:00
Sean Rhea
a01bc21ece localize PT-specific code in DownloadRideDialog 2009-08-09 15:33:49 -07:00
Sean Rhea
f588082449 clean up headers 2009-08-09 15:33:41 -07:00
Sean Rhea
356ee341b2 move calc of d/l status str to PowerTapDevice
...thereby making DownloadRideDialog a little more device-agnostic.
2009-08-09 15:33:35 -07:00
Sean Rhea
563285ab9d move filename calculation to downloadClicked()
...in preparation for moving more of DownloadRideDialog into PowerTapDevice.
2009-08-09 15:33:23 -07:00
Sean Rhea
6dee00e5b8 move PT download code into PowerTapDevice.(h|cpp) 2009-08-09 15:33:16 -07:00
Sean Rhea
6e56b8652f rename PowerTap.(h|cpp) to PowerTapUtil.(h|cpp)
...in preparation for separating out a PowerTapDevice class.
2009-08-09 15:33:02 -07:00
Sean Rhea
b4553ed189 ManualRideDialog doesn't need PowerTap functions 2009-08-09 15:32:54 -07:00
Sean Rhea
1c732ed2cc rename Device to CommPort
I hate to change so many lines of code just for a little rename, but I want to
distinguish between "devices", like the PowerTap and SRM, and "communications
ports", like the serial port and the native D2XX drivers.  This work is in
preparation for adding direct download support for the SRM.
2009-08-09 10:01:00 -07:00
Sean Rhea
f765cef661 fix unused parameter warning 2009-08-09 09:29:11 -07:00
Sean Rhea
e9bae94b83 fix unused variable warnings 2009-08-08 10:39:22 -07:00
Sean Rhea
913b5b6c73 add support for .srm version 7 2009-08-08 10:39:12 -07:00
Justin Knotzke
eb06e3e6d7 Manual patch entry by Eric Murray. Users can now enter in a manual entry
based on distance or time.
2009-08-07 21:31:06 -04:00
Justin Knotzke
ca4278f904 Manual patch entry by Eric Murray. Users can now enter in a manual entry based on distance or time. 2009-08-07 21:25:22 -04:00
Sean Rhea
df9519a027 git replaces svn 2009-08-01 19:33:26 -07:00
Sean Rhea
d79a6f5885 reminder to update web page about git 2009-08-01 14:51:30 -07:00
Sean Rhea
71fcf7ba5d Merge branch 'master' of git@github.com:srhea/GoldenCheetah 2009-08-01 14:23:00 -07:00
Sean Rhea
ad8e5015e1 fix zero-torque bug in PowerHist 2009-08-01 14:04:48 -07:00
Justin Knotzke
d500064da2 Fixed a small bug whereby we weren't deteting Linux correctly (or at all for that matter)
It now uses the standard QMAKE -spec for #ifdefs
2009-08-01 16:52:49 -04:00
Justin Knotzke
9f65afff15 Try to deduce Ergomo filenames when importing into GC as CSV.
Berend De Schouwer

Instead of importing with the creation time -- which is when the file
was downloaded -- attempt to get a more useful time.
2009-07-01 09:28:18 -04:00
Justin Knotzke
07b8d15769 Ergomo CSV files list both a TIME field at column 0, and a PAUSE field
at column 10.

The TIME (L_SEC) field appears to always increment one recording
interval at a time -- however it always increment consistently.  When
there is a pause, the TIME field increments as if there was NO pause.

For example:

   11,   0.015,    0,   0, 12.7,   0,1350.2, 11.7,  0,     0
   12,   0.015,    0,   0, 12.7,   0,1350.0, 11.7,  0,     0
   13,   0.015,    0,   0, 12.7,   0,1350.0, 11.7,  0, 35607
   14,   0.015,    0,   0,  2.9,  70,1095.2,  4.7,  0,     0
   15,   0.021,    0,   0,  2.9,  70,1094.0,  4.7,  0,     0

At the 13th second, there was a pause for 35607 seconds.  The 14th
second is actually the 14+35607 second.

The attached patch loads those files correctly.  This allows the "Ride
-> Split Ride..." menu option to work as expected.

Thanks Berend De Schouwer
2009-07-01 09:20:34 -04:00
Robert Carlsen
f8d6190553 PfPv patch for missing cadence data from Dan Connelly 2009-06-30 00:33:10 -04:00
Robert Carlsen
ee7a953e53 added .gitignore for doc dir 2009-06-26 18:44:41 -04:00
Robert Carlsen
0754c43b1f updating FTDI instructions on user guide page 2009-06-26 18:12:40 -04:00
Robert Carlsen
64751d7585 Adding missing assert.h include 2009-06-24 14:43:56 -04:00
Robert Carlsen
263e28b6b6 Restoring ifdef for D2XX on win32 2009-06-23 13:18:00 -04:00
Robert Carlsen
8dc03b0cb3 Merge branch 'clean' into hub 2009-06-23 12:48:44 -04:00
Sean Rhea
7f1a19930c update title again, rewrite introduction text
Say more about what GC actually does, rather than talking about future goals.
2009-06-23 09:23:30 -07:00
Robert Carlsen
8af2bb02e5 Adding .gitignore files. Feel free to tweak them for your environment 2009-06-23 12:20:56 -04:00
Robert Carlsen
0b9458d954 Bug fixes for PfPv and TCXParser from Ned 2009-06-23 12:19:56 -04:00
Sean Rhea
2ddd87faae web page edit: more inclusive title 2009-06-23 08:48:54 -07:00
Robert Carlsen
13ec408aa3 Adding in PolarRideFile.cpp/h 2009-06-23 09:20:00 -04:00
Justin Knotzke
47b4cf1c44 Damien's patch to support CS600 Polar files. 2009-06-23 06:35:53 -04:00
Robert Carlsen
e973e51281 updating the website docs 2009-06-23 02:06:34 -04:00
Justin F. Knotzke
38f8283ece Threw in an ifdef to fix differences between qwt 5.2 and qwt 5.1.2 2009-06-22 12:02:21 +00:00
Robert Carlsen
e8f2877539 Adjusting weekly plot axis label font size slightly for Mac. Small fonts (< 8pt) are aliased by default in OS X. 2009-06-22 05:37:13 +00:00
Robert Carlsen
52821ee647 Small bug fix for lo and hi margins values. 2009-06-22 05:29:50 +00:00
Justin F. Knotzke
fcdd894c52 Small fixes post Dan's Mega Patch.. 2009-06-22 03:50:04 +00:00
Justin F. Knotzke
d9baad3545 Missing settings.h 2009-06-22 03:23:37 +00: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
76f6cf3f7f Added DaysScaleDraw.h for Dan's mega patch 2009-06-22 03:10:09 +00:00
Justin F. Knotzke
3ab2c91ce2 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:27:11 +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
Justin F. Knotzke
3723185439 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:25:09 +00:00
Justin F. Knotzke
69775fccb9 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:24:28 +00:00
Justin F. Knotzke
08fc58454f Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:24:21 +00:00
Justin F. Knotzke
6caf431d05 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:24:16 +00:00
Justin F. Knotzke
f11d7e1bd9 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:24:10 +00:00
Justin F. Knotzke
fb4514b5fe Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:24:05 +00:00
Justin F. Knotzke
e8cddb104f Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:23:37 +00:00
Justin F. Knotzke
1652491be1 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:23:30 +00:00
Justin F. Knotzke
12f91a9bf1 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:23:23 +00:00
Justin F. Knotzke
3b4e902870 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:23:17 +00:00
Justin F. Knotzke
d2545348a1 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:23:11 +00:00
Justin F. Knotzke
b90598eb39 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:23:06 +00:00
Justin F. Knotzke
6ccaac6123 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:23:00 +00:00
Justin F. Knotzke
15a546927e Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:22:56 +00:00
Justin F. Knotzke
bf534977b8 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:22:51 +00:00
Justin F. Knotzke
d92468a625 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:22:45 +00:00
Justin F. Knotzke
47044708d9 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:22:39 +00:00
Justin F. Knotzke
9fefe27a38 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:22:35 +00:00
Justin F. Knotzke
483589c372 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:22:30 +00:00
Justin F. Knotzke
420b2b6b44 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:22:25 +00:00
Justin F. Knotzke
84f4250e4a Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:22:18 +00:00
Justin F. Knotzke
2e1801d8bd Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:22:13 +00:00
Justin F. Knotzke
4453d690b3 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:21:16 +00:00
Justin F. Knotzke
b2acd45c8d Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:21:12 +00:00
Justin F. Knotzke
ea58d961a6 Dan Connelly's MEGA patch.
It includes both powerzones and weekly summary plots.

  Thanks Dan.
2009-06-22 02:21:10 +00:00
Justin F. Knotzke
40120a373e Crank length updated live (you must change the ride) to see the change. Before this patch you had to restart GC. Thanks to Berend. 2009-06-21 16:54:35 +00:00
Justin F. Knotzke
ca26791dcb Berend De Schouwer
A little tooltip highlighter to let you know power what you are looking at.
2009-06-21 14:10:16 +00:00
Justin F. Knotzke
ea49b24337 Berend De SchouwerI made it possible to set the default cranklength.
I made it a combo box to avoid having to take care of invalid inputs.
2009-06-21 14:08:05 +00:00
Justin F. Knotzke
02dce7245b Berend De SchouwerI made it possible to set the default cranklength.
I made it a combo box to avoid having to take care of invalid inputs.
2009-06-21 14:04:37 +00:00
Robert Carlsen
12db84372f Fixing a case-sensitivity bug with csv files. 2009-06-17 13:56:53 +00:00
Justin F. Knotzke
78766b0752 Fix by Dan Connelly for a weekly summary bug that showed different summaries for the same week when moving the picker. 2009-06-02 00:09:28 +00:00
Justin F. Knotzke
5c2f829519 Danniel Connelly's patch regarding Histogram and the implementation of a Y Axis. 2009-05-16 20:57:39 +00:00
Sean C. Rhea
015862460e cleanup related to parseRideFileName
It was lame that I had to add the "xml" suffix to this regex.  It should be
enough to add a RideFile subclass.  This patch also does a more robust job of
setting the notesFileName.
2009-05-03 15:56:00 +00:00
Sean C. Rhea
4633562138 oops! 2009-05-03 15:38:15 +00:00
Sean C. Rhea
aeec208f10 read xml files
The current RideFile type associates a unique interval number with each sample
point, meaning that intervals can't overlap.  It also names intervals as
integers, not strings.  So for now, XmlRideFile just orders intervals by their
order in the xml file and names them by their order in this list (starting
with zero, to match convention).  It then associates each sample with the
lowest-named interval into which the sample falls.  This strategy means that a
raw file exported to xml will have the same interval locations and names when
read back in as xml.
2009-05-03 01:41:12 +00:00
Sean C. Rhea
37fdc5eefd document encoding string can't contain spaces 2009-05-03 01:22:33 +00:00
Sean C. Rhea
095ad55763 handle failure to read ride file gracefully 2009-05-03 01:08:38 +00:00
Sean C. Rhea
9dc3c00023 export to XML functionality 2009-05-02 22:58:57 +00:00
Justin F. Knotzke
7e6ee45d9a Dan found a bug in how the dates were written to file. 2009-04-17 12:03:25 +00:00
Robert Carlsen
8506306627 Updating the Delete Ride dialog with caution icon and "Cancel"/"Delete" buttons. Also wrapped strings in Qt translate functions. 2009-04-14 18:04:37 +00:00
Robert Carlsen
604c24147f Delete ride function from Ned Harding. 2009-04-14 15:48:13 +00:00
Robert Carlsen
4604f62e23 Updating the minor version to 1. 2009-04-10 20:13:59 +00:00
Justin F. Knotzke
0f0e817ff0 Ned's install script for Win32. 2009-04-10 14:33:13 +00:00
Justin F. Knotzke
bc17462c41 Fix by Daniel Connelly to ensure Zones Ranges are more continuous. 2009-04-10 14:06:18 +00:00
Robert Carlsen
6222fe888a Committing Ned Harding's win32 building updates 2009-04-08 19:22:11 +00:00
Robert Carlsen
c9a641ea61 Committing Ned Harding's patches for building on win32. 2009-04-08 07:12:24 +00:00
Robert Carlsen
93b5007746 From Ned Harding: Basic implementation of dflcn header for win32 2009-04-08 06:59:49 +00:00
Robert Carlsen
53f4e6f224 From Ned Harding: Basic implementation of dflcn header for win32 2009-04-08 06:58:59 +00:00
Justin F. Knotzke
48bd6b2fec Fixed skiba_xpower bug. 2009-04-07 23:29:18 +00:00
Justin F. Knotzke
4861d91c95 Small fix to LTM. Still in comments 2009-04-07 22:28:14 +00:00
Justin F. Knotzke
4ac1444f5c Small fix to LTM. Still in comments 2009-04-07 22:23:24 +00:00
Justin F. Knotzke
3fe277a9a5 Small fix to LTM. Still in comments 2009-04-07 22:22:39 +00:00
Justin F. Knotzke
0d1066a020 Quick LTM fix. This is all still in comments. 2009-04-07 22:15:36 +00:00
Justin F. Knotzke
22be6e216d Stupid svn and case sensitivity 2009-04-07 22:14:57 +00:00
Justin F. Knotzke
7209df0764 Small fix to LTM. Still in comments 2009-04-07 22:09:52 +00:00
Justin F. Knotzke
3f1d3f2adb Small fix to LTM. Still in comments 2009-04-07 22:09:22 +00:00
Justin F. Knotzke
73814a4df8 Small fix to LTM. Still in comments 2009-04-07 21:32:27 +00:00
Robert Carlsen
9228211e15 restoring static linking for qwt lib and removing reference to ftdi lib (handled in D2XX.h/cpp at runtime) 2009-04-06 16:20:06 +00:00
Justin F. Knotzke
0f218f7cdd Wrong file.. 2009-04-06 10:13:59 +00:00
Justin F. Knotzke
4bc62f7a6e Wrong file.. 2009-04-06 10:13:01 +00:00
Justin F. Knotzke
4978209289 This is the new Metrics SQL Database support. 2009-04-06 01:24:48 +00:00
Justin F. Knotzke
57e5fea35b This is the new Metrics SQL Database support. 2009-04-06 01:24:30 +00:00
Justin F. Knotzke
b7c40388f2 SplitRideDialog. Missing from r300 Checkin. 2009-04-06 01:05:40 +00:00
Justin F. Knotzke
c7652caeec Accidentally took out ppc from the mac build. 2009-04-06 01:03:05 +00:00
Justin F. Knotzke
21d5576393 Split Ride.
It offers to split at any time gap over 30 seconds and also at any interval.  
If the time gap is over 5 minutes it defaults to checked, otherwise it 
defaults to unchecked.

Anywhere you check, it will split the ride at that point overwriting the or
original ride with a shorter one and creating new rides after the split points
 The original would get renamed with a .bak so it could be recovered.
2009-04-06 01:01:17 +00:00
Justin F. Knotzke
3db61084a1 Fixed a possible memory bug. Thank you to Dan Connelly 2009-04-03 00:33:06 +00:00
Justin F. Knotzke
56cc8b084d Tom Montgomery's patch:
I have made changes to the Import CSV dialog box; the new (proposed)  
behaviour is as follows:

  At first, the datePicker widget and OK button are disabled.
  The datePicker is preset to today's date (no longer really  
necessary, but the code is there).
  User clicks 'choose a file' and the usual file browser appears.
  If a file is selected, its creation date is stuffed into the  
datePicker.
  On return from the browser, the datePicker and OK buttons are re- 
enabled.
  User can modify the ride date, in case the file upload was not done  
on ride day.
  User clicks OK, the file is imported as before.
2009-03-27 18:02:34 +00:00
Justin F. Knotzke
6cfccfc92f This patch by Tom Montgomer now uses the current date when importing a CSV file instead of defaulting to 2000.
Thanks Tom.
2009-03-25 23:21:47 +00:00
Justin F. Knotzke
f328248582 GC now support the latest v10 iBike CSV import.
Thanks to Tom Montgomery
2009-03-25 23:15:18 +00:00
Justin F. Knotzke
9d22cc3dc8 Thanks to Ned Harding, Golden Cheetah now support Ant+ Sport. Thanks Ned. Much appreciated.
J
2009-03-18 17:59:46 +00:00
Justin F. Knotzke
a65460d5d8 2009-02-22 15:35:43 +00:00
Justin F. Knotzke
ee3b9f46b9 Took out DBAccess references. 2009-02-22 15:28:26 +00:00
Justin F. Knotzke
d769625f5c Took out DBAccess references. 2009-02-22 15:26:15 +00:00
Justin F. Knotzke
071c9b1071 Took out MetricView references. 2009-02-22 00:49:00 +00:00
Justin F. Knotzke
b6a902ebd9 The critical power plot show maximum average power for all rides.
But you don't know when you reach this value.

I propose this small patch to show the value and the date like on this print screen.

Damien
2009-02-22 00:08:34 +00:00
Justin F. Knotzke
9e73576fba The critical power plot show maximum average power for all rides.
But you don't know when you reach this value.

I propose this small patch to show the value and the date like on this print screen.

Damien
2009-02-22 00:07:19 +00:00
Justin F. Knotzke
b046ae538b The critical power plot show maximum average power for all rides.
But you don't know when you reach this value.

I propose this small patch to show the value and the date like on this print screen.

Damien
2009-02-22 00:07:05 +00:00
Justin F. Knotzke
52b2049949 Damian Grauser's patch which throws a toggle in the Ride Plot graphs which
will toggle between distance and time.

Thanks Damien.
2009-02-14 23:52:10 +00:00
Robert Carlsen
92749ac705 Identify the device type as "Garmin TCX" when reading from a tcx file. 2009-01-26 18:58:25 +00:00
Sean C. Rhea
9e4d237ce9 pop up a warning if we can't find libftd2xx 2009-01-24 20:09:13 +00:00
Sean C. Rhea
a6f269363e load libftd2xx via dlopen rather than linking to it with ld,
so that GC won't crash if it's not there
2009-01-24 17:50:06 +00:00
Robert Carlsen
03e2f95c43 Changed the AvgCadence unit from "bpm" to "rpm". 2009-01-24 00:22:59 +00:00
Justin F. Knotzke
f7ea9b236e This changes the power histogram implementation to use the QVector
data type instead of dynamically allocating and freeing arrays. No
memory leak here, but it's an low hanging fruit type of example of
what kind of changes we can do to reduce the amount of explicit 
dynamic memory management.

   --jtc
2009-01-17 19:36:31 +00:00
Justin F. Knotzke
7026520ec4 This patch changes the weekly summary to include the number of seconds
in total time riding, which previously only included hours and minutes.
A few seconds over a week shouldn't account for much, but I think it's
desirable to use the same resultion for data values across the product
for consistancy if nothing else.

   --jtc
2009-01-17 19:33:49 +00:00
Robert Carlsen
842303029c Updated the Pf/Pv plot curve to use antialiased ellipses rather than points. 2009-01-14 05:21:52 +00:00
Robert Carlsen
1292a5f8e9 Applied JTC's P10, changing DatePickerDialog and RideFile objects to use boost::scoped_ptr to ensure that the objects are deleted. He recommends that we extend this technique to replace other raw pointer / delete methods.
Also, changed PfPvPlot so it will look for the CP from the power.zones file and use that rather than a hard coded value.
2009-01-12 17:15:54 +00:00
Robert Carlsen
a8dad052fd added version 1.0.277 release 2009-01-10 01:41:31 +00:00
Robert Carlsen
50a9de052c from jt conklin: fixed a possible memory leak in the weekly summary. 2009-01-09 23:43:52 +00:00
Robert Carlsen
5a00528f4d Changed the update signal from returnPressed() to editingFinished() for the lineEdit fields in the ride plot and power histrogram views. 2009-01-08 06:47:33 +00:00
Robert Carlsen
b4584baf03 Adding iBike CSV import support. 2009-01-07 01:28:09 +00:00
Robert Carlsen
d849834070 Added escaping slashes to the build date. It may only work on linux/max os x, I haven't had a chance to try it on win32. 2009-01-06 02:51:15 +00:00
Robert Carlsen
21a72bc45e Added escaping slashes to the svn version number compiler directive to workaround a qmake issue with using a string value for a define. The modified statement is: \\\"svnversion . | cut -f '2' -d ':'\\\"
It may only work on linux/max os x, I haven't had a chance to try it on win32.

This was noted here: http://www.archivum.info/qt-interest@trolltech.com/2008-09/msg00070.html
2009-01-06 02:26:24 +00:00
Robert Carlsen
264e8b118e Changed from Build Date to Version Numbering system in the about dialog. As discussed on the list, the protocol is major.minor.revision, currently 1.0.271. The major and minor version numbers are set in src.pro; the revision number should be automatically derived using "svnversion . | cut -f '2' -d ':'" in src.pro. 2009-01-06 01:54:01 +00:00
Robert Carlsen
fe5b1300eb Opting to include the svn revision number grab in src.pro 2009-01-06 01:37:32 +00:00
Robert Carlsen
c731525124 Utility to add include the svn revision number to the program version in the about dialog. 2009-01-06 00:32:16 +00:00
Robert Carlsen
dd7c308667 Fix case sensitivity issue in Pages.h for #include <QCheckBox> 2009-01-05 02:30:05 +00:00
Robert Carlsen
700ac5c12d From JT Conklin: Fix to force the aggregateWith() method to use properly use metric units while incrementing when set as a user preference. 2009-01-05 02:23:09 +00:00
Robert Carlsen
f685703ae4 Updating the AddRide method to honor the ride list sorting preference. 2009-01-05 02:03:52 +00:00
Robert Carlsen
8d2edd4c48 Added a user preference to change the Ride List sorting. Default should be ascending by date, as it has been. Disabling the "Sort ride list ascending" preference will sort the ride list descending by date.
Also, added margins to the widgets in the main window.
2009-01-05 01:47:37 +00:00
Robert Carlsen
f8a94dc767 From JT Conklin:
Added support to TCX, CSV and SRM import functions to correctly remember the last import directory.
2009-01-03 20:31:57 +00:00
Justin F. Knotzke
f1ade25fa7 or relatively short (~1 hr) activities, with relatively small (~5w)
bucket sizes, the power histogram often looks short and squat with a
lot of whitespace at the top because the largest bucket may be 3 - 5
minutes, but the y-axis is scaled by adding a constant 10 (minutes) to
the max.

The attached patch scales the y-axis by a factor of 1.1 (The ride plot
does the same scaling, and it appears to work well there).  Now you're
able to see more detail in histogram plots as the curve is not all
squashed along the bottom of the graph.
    -jtc
2009-01-03 18:35:55 +00:00
Robert Carlsen
33ee8daf1e Just standardizing some indention. 2009-01-03 17:25:55 +00:00
Justin F. Knotzke
fb1b79cccf This is a 100% cosmetic issue, but I've never liked the way the
"about" dialog is formatted, with "GoldenCheetah is Licenced under
the GNU General Public Licence." and "Source code can be obtained 
from http://goldencheetah.org/" run together in a single paragraph
because the way the line is broken after "Source".  

The attached patch splits the two sentences into two separate
paragraphs, and centers the entire dialog text.

While this is subjective, I think it looks a lot better.

   --jtc
2009-01-03 11:55:56 +00:00
Robert Carlsen
c11b305239 On the ride plot, the range of speed is typically much smaller than the ranges of power, heart rate, and cadence. As a result, for many activities it's difficult to distinguish much difference.
This update changes the plot to use a right y axis for speed. This makes it easier to see speed differences.

Some other packages use separate y axes for each data type, but as far as I can tell, this is not available with the qwt library used by GC.

   --jtc
2009-01-03 07:13:45 +00:00
Robert Carlsen
baaacda681 Re-enabled the build date QMake flag. Disabled to permit "qmake -spec macx-xcode" to create a valid xcode project file. 2009-01-02 21:26:09 +00:00
Robert Carlsen
1105d60d1f Added compiler flags to build as Mac OS X Universal Binary. May require QWT and Qt to be universal as well. 2009-01-02 21:23:38 +00:00
Justin F. Knotzke
d5997b9fee The Ride Plot currently displays the activity's speed in MPH,
regardless of the Units preference.  This patch checks the preference
and displays it in the appropriate units.

Unlike some of the other cases, I'm checking the value of the Units
setting each time the plot/panel is displayed.  

The patch also pulls the 0.62137119 magic constant into a #define
MILES_PER_KM.  This constant (and it's inverse, KMS_PER_MILE), occurs
in several files, and (IMHO) really deserves to be pulled into a
separate header, but again, that's work for another day.

   --jtc
2009-01-02 20:58:06 +00:00
Justin F. Knotzke
f2187c6965 While browsing the GC code, I found that there was not an explicit
deletion of the Tools (CP Calculator) Dialog, nor was the attribute
set that tells the framework to delete the dialog when it's dismissed.
Since the other dialogs use the attribute, this patch does the same.

   --jtc
2009-01-02 18:09:26 +00:00
Justin F. Knotzke
801a26392e JTC found and fixed a double addWidget error.. 2009-01-02 17:28:59 +00:00
Sean C. Rhea
ec38e8ca1d add device types 2008-05-27 03:53:22 +00:00
Sean C. Rhea
61161a7b5d remember last import path 2008-05-27 03:00:30 +00:00
Sean C. Rhea
5a3c3c8eb7 playing around with export to XML,
may eventually become the "native" GC file format
2008-05-27 02:56:07 +00:00
Sean C. Rhea
a9ce6ae947 add Windows to About dialog 2008-05-23 16:07:20 +00:00
Sean C. Rhea
ef5f2c1a47 from Rob C: change '\' to '/' 2008-05-23 16:04:37 +00:00
Sean C. Rhea
6c3ff75f0b from Rob C: set D2XX to 9600-N-1 to make PT happy on Windows 2008-05-23 16:03:33 +00:00
Sean C. Rhea
1e9c4dffe8 group rides by type, course 2008-05-20 04:57:06 +00:00
Sean C. Rhea
80e113d347 from Justin: "It should fix the bugs with creating a new power.zones file plus
adds two DateEdits to show the start and end of a zone range."
2008-05-19 15:03:26 +00:00
Sean C. Rhea
ff59009f86 Dan Connelly points out that it should be "n * (n + 1) / 2" (plus, not minus). 2008-05-19 14:46:50 +00:00
Sean C. Rhea
9d557b26a1 from Justin: PT reports no data as watts == -1, assume watts == 0 in that case 2008-05-18 15:14:47 +00:00
Sean C. Rhea
91f114f199 from Justin: more hacking on the zones editor 2008-05-18 15:11:21 +00:00
Sean C. Rhea
7c72da0c72 from Justin: icons for windows 2008-05-18 15:01:35 +00:00
Sean C. Rhea
babbaa7e2c Sane failure for rides longer than a week, which usually happen because
someone sets the date on their PT and doesn't reset the device before going
for a ride.  This fix will keep GC working until the user splits the ride
(and until we add a ride-splitting function).
2008-05-18 14:19:37 +00:00
Sean C. Rhea
f91e45d950 fix small memory leak 2008-05-18 14:00:50 +00:00
Sean C. Rhea
6aa6693cad fix awful indentation 2008-05-18 13:58:45 +00:00
Sean C. Rhea
41da1dfc68 smooth updating of progress bar in update_cpi_file 2008-05-14 22:47:54 +00:00
Sean C. Rhea
d91608ecca from Justin: add Serial.(h|cpp) 2008-05-14 14:59:23 +00:00
Sean C. Rhea
25b17de0e4 from Justin: nits 2008-05-14 14:57:00 +00:00
Sean C. Rhea
e6c85a12f4 from Justin: zones editor, switch from FTP to CP 2008-05-14 00:17:10 +00:00
Sean C. Rhea
4eeb656016 update progress dialog while aggregating over .cpi files 2008-05-13 16:42:39 +00:00
Sean C. Rhea
b6f817c4d7 combine cpint.(h|cpp) with CpintPlot.cpp 2008-05-13 16:30:35 +00:00
Sean C. Rhea
83d6989d51 from Justin: more .pro file patches for Windows, plus ToolsDialog 2008-05-13 16:15:22 +00:00
Sean C. Rhea
e63452d521 from Justin: on Windows, hton[ls] is in winsock.h 2008-05-13 03:33:08 +00:00
Sean C. Rhea
812b17c952 don't need 2008-05-13 03:30:49 +00:00
Sean C. Rhea
e2d9a96b52 Justin's changes, heavily editted, to compile on Windows 2008-05-13 02:18:15 +00:00
Sean C. Rhea
133f677b12 renaming to match directory name 2008-05-13 02:16:46 +00:00
Sean C. Rhea
da214db96d move TODO list to the web page as a "wish list" 2008-05-12 16:37:34 +00:00
Sean C. Rhea
98ede8e40c combined lots of emails all into this file 2008-05-12 16:28:58 +00:00
Sean C. Rhea
65c4e1d277 remove old directories 2008-05-12 03:31:25 +00:00
Sean C. Rhea
6e5487ca39 everything in one directory 2008-05-12 03:28:53 +00:00
Sean C. Rhea
b519a0384b insert new rides into allRides in order by date, remove duplicates 2008-05-11 05:18:17 +00:00
Sean C. Rhea
3c998c98b0 Let QTemporaryFile go out of scope so it will really close before calling
rename, since Windows won't rename an open file.  Call remove before rename on
Windows, since Windows rename won't overwrite.  Call setPermissions with
previous value plus all read flags, rather than using write flags explicitly.
Replace lots of asserts with QMessageBox::criticals.
2008-05-10 15:51:26 +00:00
Sean C. Rhea
2f3df889c5 New download code doesn't use Unix-isms. Big thanks to Rob Carlsen for
debugging the weirdness around QTextStream::setFieldWidth.
2008-05-10 03:41:08 +00:00
Sean C. Rhea
60f9724543 remove ctype.h 2008-05-06 05:31:40 +00:00
Sean C. Rhea
7cf5766ab7 remove Unix-specific includes, clean up copyrights somewhat 2008-05-06 05:26:44 +00:00
Sean C. Rhea
91d51a6246 use more QT classes instead of OS-specific stuff 2008-05-06 05:25:31 +00:00
Sean C. Rhea
c832727a03 replace Unix-specific stuff with QT equivalents; convert to C++ 2008-05-05 17:42:58 +00:00
Sean C. Rhea
73fdb7d6ef make listFunctions a pointer so that static initialization order doesn't matter 2008-05-05 02:03:33 +00:00
Sean C. Rhea
bfadc8c043 switch statements suck 2008-05-04 17:32:40 +00:00
Sean C. Rhea
cd080aa48c add JT 2008-05-04 06:56:44 +00:00
Sean C. Rhea
f27ff27c3b TCX importing and Pedal Force vs. Pedal Velocity Chart from
J.T. Conklin (jtc@acorntoolworks.com).
2008-05-04 06:50:34 +00:00
Sean C. Rhea
aed29e150d remove older command-line tools 2008-05-04 05:16:18 +00:00
Sean C. Rhea
4434239235 remove temporary command-line version 2008-05-04 05:13:09 +00:00
Sean C. Rhea
8db3e2c0b2 add power.zones 2008-05-04 05:10:23 +00:00
Sean C. Rhea
f34e0fc74c Lots of code cleanup. All Unix/Mac-specific download code used by graphical
version is now in pt/Serial.cpp, which the .pro files should ignore on win32.
2008-05-04 05:09:32 +00:00
Sean C. Rhea
51165d0acf New download code now working with older VCP driver as well. This code isn't
really fit for human consumption.  I'm just checking it in before I clean it
up in case I go and break something on accident.
2008-05-03 17:52:46 +00:00
Sean C. Rhea
2e21b6e328 now also downloads from serial/usbserial devices and automatically chooses
between them and D2XX based on what's installed
2008-04-12 20:56:12 +00:00
Sean C. Rhea
b47ac76116 set svn:ignore 2008-04-10 17:37:06 +00:00
Sean C. Rhea
17cbe38af8 - Separated download logic from device abstraction layer.
- Now creates a .raw file.
2008-04-10 17:29:30 +00:00
Sean C. Rhea
bce0fbdb95 proof of concept program to test downloading from PT with D2XX drivers 2008-04-02 15:35:32 +00:00
Sean C. Rhea
9f56747a6d added "Find Best Intervals" dialog 2008-03-15 17:30:48 +00:00
Sean C. Rhea
262fa0d9b1 add bit about how to get TextEdit to save a .zones file 2008-03-14 01:52:32 +00:00
Sean C. Rhea
76f161fb46 add BikeScore link 2008-03-14 01:51:50 +00:00
Sean C. Rhea
9e7c9407ff 2008, not 2007 2008-03-11 16:12:19 +00:00
Sean C. Rhea
371bfbdae3 add new images to Makefile 2008-03-11 16:10:15 +00:00
Sean C. Rhea
c70685ee4a added new release 2008-03-11 16:05:58 +00:00
Sean C. Rhea
55356eb221 actually ignore the bad time block that we claim we're going to ignore 2008-03-11 01:02:39 +00:00
Sean C. Rhea
b6691939f1 minor edits 2008-03-10 19:01:35 +00:00
Sean C. Rhea
8ea444f55e fix for QT 4.3.1 and add TM symbol 2008-03-10 18:01:44 +00:00
Sean C. Rhea
7fd58c7f0d first pass at a new User's Guide 2008-03-09 16:49:13 +00:00
Sean C. Rhea
6e60d167b7 added comments 2008-03-08 16:26:12 +00:00
Sean C. Rhea
d5fd8c1234 renamed CombinedFileReader to RideFileFactory 2008-03-08 16:20:43 +00:00
Sean C. Rhea
8b782dff27 Removed RawFile and replaced it with RideFile. I can't remember how we ended
up with both, but they're basically the same class.
2008-03-08 16:11:41 +00:00
Sean C. Rhea
7a43765a25 Now using "Critical Power" instead of "Functional Threshold Power". 2008-03-07 22:36:09 +00:00
Sean C. Rhea
eae6f74087 Use "CP" instead of "FTP" in power.zones to be more compatible with Skiba's
terminology, but still allow "FTP" for backwards compatibility.
2008-03-07 21:37:51 +00:00
Sean C. Rhea
2c2d1eedb6 use minutes, not seconds, as the y-axis says 2008-03-07 20:11:55 +00:00
Sean C. Rhea
26e0336f62 don't try to compute BikeScore if no zones file present 2008-03-07 19:57:33 +00:00
Sean C. Rhea
ad32b3ed94 Adding this here so I don't lose it. 2008-02-21 20:25:04 +00:00
Sean C. Rhea
304fbb49b4 BikeScore, xPower, and Relative Intensity updated to match Skiba's method
more or less exactly.  Also added (TM) to BikeScore in Ride Summary.
2008-02-21 18:41:38 +00:00
Sean C. Rhea
d16330134d Separated out BikeScore as a RideMetric. 2008-02-21 00:51:50 +00:00
Sean C. Rhea
aba9a29a43 All the basic ride metrics now use the RideMetric interface. 2008-02-20 19:24:20 +00:00
Sean C. Rhea
5dc93dccc8 - Added TotalWorkRideMetric.
- Use XML to describe what metrics to display and in what order.
2008-02-20 17:24:45 +00:00
Sean C. Rhea
156a053666 Needed to #include<assert.h>. 2008-02-19 00:31:46 +00:00
Sean C. Rhea
e68caf412b Patch from Rob Carlsen to handle Ergomo CSV imports. 2008-02-17 01:58:53 +00:00
Sean C. Rhea
7db9fd58f4 Separated out total_distance as a ride metric. More to come, especially
ordering and grouping into a display.
2008-02-14 17:57:25 +00:00
Sean C. Rhea
676838bc70 Patch from Justin and Rob.
Adds metric/english unit's dialog and BikeScore calculation.
2008-02-13 17:34:28 +00:00
Sean C. Rhea
76be545eee look for /dev/cu.usbmodem... 2007-11-04 16:38:28 +00:00
Sean C. Rhea
74fef7e468 added link to Rob's Mac Intel build 2007-10-02 21:07:08 +00:00
Sean C. Rhea
cc8a22e2dd moved release images into their own repository 2007-09-25 02:04:18 +00:00
Sean C. Rhea
670e172e26 bug fix release 2007-09-24 03:38:50 +00:00
Sean C. Rhea
f2b2350312 bug fix release 2007-09-24 02:14:32 +00:00
Sean C. Rhea
048ce08ca9 need to qmake now 2007-09-24 02:05:50 +00:00
Sean C. Rhea
f66e94c05a CsvRideFile now only sets its ride startTime if the file is
appropriately named.  cpint now ignores startTime, as it wasn't 
using it anyway.
2007-09-22 16:27:09 +00:00
Sean C. Rhea
d2532341b4 new release 2007-09-18 18:22:28 +00:00
Sean C. Rhea
83e9f67755 call qmake in src before make 2007-09-18 17:24:01 +00:00
Sean C. Rhea
fbff0d6df1 Bug fix for interval markers: must divide by 60.0, not 60,
to get floating point division.
2007-09-18 17:23:39 +00:00
Sean C. Rhea
32dc259642 switched to Justin's code for sample lines so that reading no value
between commas works
2007-09-17 21:57:15 +00:00
Sean C. Rhea
bb3afec9eb ignore Makefile 2007-09-17 21:47:20 +00:00
Sean C. Rhea
f691758e7e converted to qmake 2007-09-17 21:46:37 +00:00
Sean C. Rhea
b03edad5f5 ignore file 2007-09-17 21:43:26 +00:00
Sean C. Rhea
c852547fb3 renamed .pro file 2007-09-17 21:42:59 +00:00
Sean C. Rhea
b97eaa4bf5 converted to C++/qmake 2007-09-17 21:39:30 +00:00
Sean C. Rhea
3c1f6f5e27 converted to C++/qmake 2007-09-17 21:38:06 +00:00
Sean C. Rhea
8b02b6620d removed empty cpint dir 2007-09-17 20:35:59 +00:00
Sean C. Rhea
b723d43bc1 moved cpint code into gui dir 2007-09-17 20:32:19 +00:00
Sean C. Rhea
9e09e4fe70 cpint now using unified ride file framework, too 2007-09-17 18:51:04 +00:00
Sean C. Rhea
42eb95c8b3 unified framework for reading in different ride
file types (raw, srm, and csv)
2007-09-17 18:10:32 +00:00
Sean C. Rhea
134f22f0ca interval markers patch from Justin Knotzke 2007-09-09 16:58:51 +00:00
Sean C. Rhea
4a8ff92437 CSV import code from Justin Knotzke 2007-08-30 16:17:17 +00:00
Sean C. Rhea
b19783c469 Rob Carlsen's patch for ignoring zeros in heart rate during intervals. 2007-08-15 20:46:44 +00:00
Sean C. Rhea
8373bbaf09 Rob Carlsen's patch adding max power to interval summary. 2007-08-15 20:16:13 +00:00
Sean C. Rhea
b8827105b8 some new stuff 2007-08-15 20:11:56 +00:00
Sean C. Rhea
bd73c83b25 new release with cpint fix 2007-08-07 15:22:37 +00:00
Sean C. Rhea
b658247509 note about brltty on Ubuntu 2007-08-07 15:07:10 +00:00
Sean C. Rhea
f402d9afd8 new release with cpint fix 2007-08-07 15:05:59 +00:00
Sean C. Rhea
abbe205dc9 Serious bug fix: while interval duration SHOULD be computed by using
previous data point (i.e., q->secs - p->secs), the duration to multiply
the wattage value by SHOULD NOT be.  Instead, should multiply by
rec_int.  (My ride from Jul 31, 2007 demonstrates the problem.  I
started an interval with a 1-sec wattage of 773 after a ~48 second rest.
Using the old code, that gets credited as 773 watts for 48 secs!)
2007-08-05 14:57:57 +00:00
Sean C. Rhea
253e2083f7 Rob's ride notes patch. 2007-06-10 23:38:15 +00:00
Sean C. Rhea
a9faed9361 oops; need to use QString::arg(), not '+' 2007-06-10 23:04:04 +00:00
Sean C. Rhea
629d9c7db2 Rob's changes 2007-06-10 22:36:46 +00:00
Sean C. Rhea
139c7c03fc add FTP to zones 2007-06-08 22:38:26 +00:00
Sean C. Rhea
ebdbff5f0e new dest dir for install 2007-05-21 04:49:37 +00:00
Sean C. Rhea
fd0e5f76be mention qwt 5.0.1, not older version, as pointed out by Rob Carlsen 2007-05-21 04:47:48 +00:00
Sean C. Rhea
8ebc1a4eb2 Don't output line with zero time (Rob Carlsen says it crashes WKO+), and
print zeroes, rather than nothing, when nm, mph, or watts are zero.
2007-05-21 04:46:26 +00:00
Sean C. Rhea
e2fc9bce5c added zoomer and panner to AllPlot, but needs work still. 2007-05-13 02:28:10 +00:00
Sean C. Rhea
d01184905f fixed bug where interval length was 1 recint too short 2007-05-10 16:30:01 +00:00
Sean C. Rhea
866eec4eee added "About GoldenCheetah" dialog with build date and link to GPL 2007-05-07 22:00:31 +00:00
Sean C. Rhea
27bf8ae1ef fix to work on OS X 2007-05-07 21:09:31 +00:00
Sean C. Rhea
abdf74ca5a use QLineEdit instead of QLabel in CP plot to avoid resizing bug 2007-05-03 23:30:56 +00:00
Sean C. Rhea
0cd28ba8d0 Warning msg said we ignored it when time went backwards in a PT file, but code
was still calling exit(1).  Now it really does ignore it.
2007-04-30 21:39:11 +00:00
Sean C. Rhea
fff8f9a0e6 okay, really fixed this time 2007-04-29 22:40:52 +00:00
Sean C. Rhea
edd39b3d3b fixed problem with download ride button not hilighting when more than one
device is available
2007-04-29 17:27:48 +00:00
Sean C. Rhea
3cdc85e411 added screenshot-weekly.png 2007-04-26 21:25:10 +00:00
Sean C. Rhea
1f8ce83475 new ride summary screenshot showing power zones,
added weekly summary screenshot
2007-04-26 21:24:43 +00:00
Sean C. Rhea
ae1c59d738 new release and description of zones file format 2007-04-26 21:15:53 +00:00
Sean C. Rhea
d87c0500ab new release 2007-04-26 20:32:28 +00:00
Sean C. Rhea
9cdda62cfa new release 2007-04-26 20:32:17 +00:00
Sean C. Rhea
753977743e oops: checked in unnecessary gcc-4.0 bit on accident 2007-04-26 20:26:13 +00:00
Sean C. Rhea
43cf7e0126 - MacOS case-insensitive file system confuses our Time.h with
/usr/include/time.h, so renamed the former.
- Bug fixes for when there is no power.zones file
2007-04-26 20:10:21 +00:00
Sean C. Rhea
e103824538 added zones to the weekly summary, consolidated and cleaned up code 2007-04-25 19:30:55 +00:00
Sean C. Rhea
cfdbe3cc30 working on adding time in each power zone to ride summery 2007-04-24 19:38:49 +00:00
Sean C. Rhea
9dd02b69e4 added weekly summary 2007-04-24 17:55:40 +00:00
Sean C. Rhea
29c760cdeb cpint (cmdline and gui) now works with .srm files, too 2007-04-22 06:25:31 +00:00
Sean C. Rhea
de66eed5ca cpint now uses intervals that are a whole number of seconds long, in
preparation for supporting data files from a variety of devices on the same
machine
2007-04-18 23:03:03 +00:00
Sean C. Rhea
c00bc0504d add cpint dir 2007-04-18 23:01:40 +00:00
Sean C. Rhea
db43014375 added GPL to comments 2007-04-18 22:40:56 +00:00
Sean C. Rhea
b5b16a4768 added GPL to comments 2007-04-18 22:40:24 +00:00
Sean C. Rhea
e1371fab8c fix time riding bug for SRM by making use of rec_int_ms in RawFile rather than
tracking last_secs
2007-04-18 21:19:56 +00:00
Sean C. Rhea
b967d276d1 check that we go forward by at least one recint on block transition 2007-04-18 21:18:12 +00:00
Sean C. Rhea
6952d2b82c get rid of unused parameter warnings 2007-04-18 21:09:52 +00:00
Sean C. Rhea
859b1f2842 converted cpint code to C++ in preparation for making it understand SRM files 2007-04-17 21:55:08 +00:00
Sean C. Rhea
acd48e7112 add srm directory, better handling of qmake 2007-04-17 20:52:30 +00:00
Sean C. Rhea
ff3227f520 move TODO to top level 2007-04-17 20:47:58 +00:00
Sean C. Rhea
432820a24e stuff 2007-04-17 20:47:21 +00:00
Sean C. Rhea
eefe0373c8 - display file even if errors, so long as we get some data
- count time riding as time either pedaling or moving, so that time on trainer
  with front wheel sensor still counts
2007-04-17 20:46:48 +00:00
Sean C. Rhea
56970da25c - fix unused variable warnings
- don't add a bogus interval 0 to files without any intervals
2007-04-17 20:45:05 +00:00
Sean C. Rhea
f2fe16ed51 shouldn't have been added; generated by qmake 2007-04-17 20:44:04 +00:00
Sean C. Rhea
efc99a8a26 add debug to config 2007-04-17 20:43:22 +00:00
Sean C. Rhea
2f7d42c46f commented out printfs 2007-04-17 20:25:30 +00:00
Sean C. Rhea
69612c8d59 anti-aliasing was the source of the poor plot performance on Linux 2007-04-17 19:12:20 +00:00
Sean C. Rhea
7e0731c7f8 allow for multiple imports at once 2007-04-17 18:06:22 +00:00
Sean C. Rhea
abf2f5b349 updates to work with qwt 5.0.1 2007-04-17 18:00:37 +00:00
Sean C. Rhea
7b52bc6f73 csv output uses .csv extension instead of .dat 2007-04-16 21:16:11 +00:00
Sean C. Rhea
aefc1d18e8 svn ignore libsrm.a 2007-04-12 04:09:00 +00:00
Sean C. Rhea
d7daa3d54d added import from SRM menu item and made cpint not crash when it can't find
cpint data for a ride (until we get it working with srm data)
2007-04-12 04:07:33 +00:00
Sean C. Rhea
3a2a469d58 Will now read, interpret, and include any appropriately named .srm files in
the user's directory.  Ride summary, ride plot, and power histogram all work
fine, but opening the CP intervals graph causes a crash if any such files
exist.  Also need to add a menu item to import .srm files that renames them to
the proper form (date-time.srm).
2007-04-09 20:43:52 +00:00
Sean C. Rhea
f6968f98bf starting to work on SRM code; this commit will decode .srm files 2007-04-09 01:43:40 +00:00
Sean C. Rhea
2729800d42 new release 2007-04-01 19:14:24 +00:00
Sean C. Rhea
8c7dfdeecd new release 2007-04-01 19:12:57 +00:00
Sean C. Rhea
8a3bc4fd44 new release 2007-04-01 19:02:52 +00:00
Sean C. Rhea
3e7d53b418 new release 2007-04-01 18:57:21 +00:00
Sean C. Rhea
0dc0f48416 Hardware echo detection was being fooled because in the normal case, the
result of a version request, triggered by writing 'V', is the string "VER...".
Sometimes, this was preceeded by a zero byte, in which case hardware echo
detection worked, but other times it wasn't, and we stripped the 'V' from
"VER...", only to wait forever for one extra byte that wasn't coming.  The new
approach is to read until we get the "\r\n", then search for "VER", then see
if any other 'V's preceed it, in which case we assume we're dealing with
hardware echo.
2007-04-01 05:41:38 +00:00
Sean C. Rhea
6bee5b3ca0 How did we NOT always open the serial port with O_NONBLOCK? WTF? 2007-04-01 05:07:04 +00:00
Sean C. Rhea
dd9ff12914 patch from Aldy to make wattage an integer in CVS exports 2007-03-07 20:44:49 +00:00
Sean C. Rhea
f18ea0d646 fixed Mac release bugs and updated both feb 21 to feb 22 2007-02-22 17:22:25 +00:00
Sean C. Rhea
54ab7d02c3 fix for centering in QT 4.1.1 2007-02-22 17:12:50 +00:00
Sean C. Rhea
6fc7669b71 cpint picker and rec_int fix, mac version 2007-02-22 03:02:11 +00:00
Sean C. Rhea
4ac73d88ac with picker and rec_int bug fix, linux version 2007-02-22 02:58:31 +00:00
Sean C. Rhea
a341bc4302 using a picker in cpint plot 2007-02-22 02:46:02 +00:00
Sean C. Rhea
1143a30248 fix misinterpretation of rec_int and add error message
for time moving backwards
2007-02-21 17:31:31 +00:00
Sean C. Rhea
04aadf4ee3 with interval seconds padding fix 2007-02-13 02:44:13 +00:00
Sean C. Rhea
f726979a01 add leading zero to single-digit seconds values 2007-02-13 02:40:45 +00:00
Sean C. Rhea
dc1fcfef35 add intervals 2007-02-12 20:58:37 +00:00
Sean C. Rhea
6a121a7fc7 add new release 2007-02-12 20:58:26 +00:00
Sean C. Rhea
c24e341b3d linux version 2007-02-12 20:47:23 +00:00
Sean C. Rhea
9f6a0ad7d6 new release; linux version coming soon 2007-02-12 20:42:58 +00:00
Sean C. Rhea
e9628702ed added Dan Connelly 2007-02-12 20:30:30 +00:00
Sean C. Rhea
a179ec592a return after reject() 2007-02-12 20:25:12 +00:00
Sean C. Rhea
0e09790c5b patch from Aldy to fix interval durations that display as XX:60 2007-02-12 20:16:48 +00:00
Sean C. Rhea
5593c8e3f7 add work, clarify units 2007-02-12 20:14:16 +00:00
Sean C. Rhea
a2f233b345 detect hwecho based on whether the hardware seems to be echoing during
pt_read_version, rather than based on the device name
2007-02-12 03:00:42 +00:00
Sean C. Rhea
a5b621a13d add interval information to ride summary 2007-02-11 20:56:13 +00:00
Sean C. Rhea
2b23610f5f add "Export to CSV..." menu option 2007-02-11 20:00:45 +00:00
Sean C. Rhea
491ef5c639 check for unreasonable speeds, and patches from Aldy 2007-02-11 18:40:14 +00:00
Sean C. Rhea
4283c5b408 fixed bug pointed out by Dan Connelly with graph sliders in empty rides 2007-02-10 04:14:48 +00:00
Sean C. Rhea
fa45b5c980 fixed link 2007-02-01 16:24:57 +00:00
Sean C. Rhea
81c5cf80b3 add new releases 2007-01-30 23:16:51 +00:00
Sean C. Rhea
982fb843cf new mac release
This line, and those below, will be ignored--

AM   doc/GoldenCheetah_2007-01-30_Darwin_powerpc.dmg
2007-01-30 23:10:30 +00:00
Sean C. Rhea
3b23740f62 new linux build 2007-01-30 23:10:00 +00:00
Sean C. Rhea
78fbe4e643 specify QT 4.1.1-static in path 2007-01-30 22:26:50 +00:00
Sean C. Rhea
d2abe9716f Fix for crash where ride time is shorter than smoothing. In particular, the
sample ride is shorter than the default smoothing value.
2007-01-29 19:59:04 +00:00
Sean C. Rhea
6134c947ed patch from Aldy to ignore zeros in cadence and hr and optionally in power 2007-01-24 20:23:41 +00:00
Sean C. Rhea
035226c3b5 fix NaNs in ride summary 2007-01-21 02:57:02 +00:00
Sean C. Rhea
734d025b7f remove Linux tarballs 2007-01-19 18:19:10 +00:00
Sean C. Rhea
e4e6c39aba added download screenshot 2007-01-19 18:16:52 +00:00
Sean C. Rhea
8bd578057f Linux build, more documentation on building from scratch 2007-01-19 18:12:09 +00:00
Sean C. Rhea
c850170cfc bunch of "#include <assert.h>" lines for Andrew Kruse 2007-01-19 17:47:41 +00:00
Sean C. Rhea
7f2d13a779 added link to FTDI drivers 2007-01-19 17:43:11 +00:00
Sean C. Rhea
f628170850 metric and csv options from Aldy 2007-01-19 17:00:47 +00:00
Sean C. Rhea
79b83fd668 another patch from Aldy: must compare to NaN with ne, not != 2007-01-17 22:27:32 +00:00
Sean C. Rhea
861507bb30 linux screenshot 2007-01-06 22:48:45 +00:00
Sean C. Rhea
1de131f122 ignore executable on Linux 2007-01-06 22:31:08 +00:00
1378 changed files with 520356 additions and 4552 deletions

8
.gitignore vendored Normal file
View File

@@ -0,0 +1,8 @@
Makefile
# old skool
.svn
# osx noise
.DS_Store
profile

401
INSTALL-LINUX Normal file
View File

@@ -0,0 +1,401 @@
+++++++++++++++++++++++
LINUX BUILD WALKTHROUGH
+++++++++++++++++++++++
Mark Liversedge
John Ehrlinger
May 2011
Version 1.1
A walkthrough of building GoldenCheetah from scratch on Ubuntu linux. This walkthrough
should be largely the same for any Linux distro.
CONTENTS
1. BASIC INSTALLATION WITH MANDATORY DEPENDENCIES
- QT
- git
2. ADDING OPTIONAL DEPENDENCIES WHEN BUILDING VERSION 2
- FTDI D2XX
- SRMIO
- liboauth
- QwtPlot3d
- libkml
3. ADDING OPTIONAL DEPENDENCIES WHEN BUILDING VERSION 3
- checking out the release 3 branch & building with MANDATORY dependencies
- flex
- bison
- libical - Diary window and CalDAV support (google/mobileme calendar integration)
- libvlc - Video playback in training mode
- clucene - Indexing/Searching ride files
1. BASIC INSTALLATION WITH MANDATORY DEPENDENCIES
=================================================
Installed Ubuntu 11.04 from CD image amd-64.iso. You will not need to do this if you
already have a Linux distribution installed. Left this step in to highlight the
Linux distribution the commands below were executed on.
login and open a terminal to get a shell prompt
Download MANDATORY DEPENDENCIES (browser)
-----------------------------------------
Download and install the Qt 4.8 SDK from http://qt-project.org/
Once that is completed test qmake is ok with: qmake --version (should report 4.7.0 or higher)
Install git with:
$ sudo apt-get install git
Said Y to prompt about all git files installed (git-gui et al)
Install FLEX and BISON
----------------------
You will need flex v2.5.9 or later
$ sudo apt-get install bison
$ sudo apt-get install flex
$ vi gcconfig.pri
Ensure you have the following lines (which are now also in gcconfig.pri.in which has
been updated to reflect the new dependencies in version 3)
QMAKE_LEX = flex
QMAKE_YACC = bison
win32 {
QMAKE_YACC = bison --file-prefix=y -t
QMAKE_MOVE = cmd /c move
QMAKE_DEL_FILE = rm -f
}
Build!
------
$ make clean
$ qmake
$ make
You will now have a release3 binary but with none of the release3 dependencies compiled in.
Get latest GOLDEN CHEETAH source files
--------------------------------------
$ mkdir -p ~/Projects/Live
$ cd ~/Projects/Live
$ git clone git://github.com/GoldenCheetah/GoldenCheetah.git
$ cd GoldenCheetah
Configure MANDATORY DEPENDENCIES
--------------------------------
$ cd qwt
$ cp qwtconfig.pri.in qwtconfig.pri
$ cd ../src
$ cp gcconfig.pri.in gcconfig.pri
$ vi gcconfig.pri
Comment out the D2XX_INCLUDE and SRMIO_INSTALL lines for now (put # in first character of the line
to comment out), we will install that in a moment, if we need to.
If you are building for your local host you may find that you get better performance if
compiling with gcc -O3 (tree vectorization can have a significat impact) [or -Ofast]
If so you might like to uncomment:
QMAKE_CXXFLAGS += -O3
Save and exit
$ cd ..
BUILD WITH BASIC CONFIGURATION
$ qmake -recursive
$ make
Congratulations you have now build a basic GoldenCheetah and can run this safely. See below for
optional dependencies you can install to support other features.
ADDING OPTIONAL DEPENDENCIES WHEN BUILDING VERSION 2
====================================================
D2XX - For Powertap downloads via USB
-------------------------------------
Download the FTDI drivers from http://www.ftdichip.com/Drivers/D2XX.htm (e.g. I used Linux
64-bit drivers from http://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx1.0.4.tar.gz)
Extract into your home directory (I put mine into ~/Projects/ with archive manager which
created a sub-directory ~/Projects/libftd2xx1.0.4
$ cd src
$ vi gcconfig.pri
Uncomment the D2XX_INCLUDE entry and make it match (my home is /home/markl)
D2XX_INCLUDE = /home/markl/libftd2xx1.0.4
Make clean is needed if you have previouslt built, since source files examine #defines before
including this feature. You can skip it if you know why ;)
$ make clean
$ qmake
$ make
You now have D2XX support, for downloading from a PT via a USB cradle.
SRMIO - For SRM powercontrol V downloads via Serial
---------------------------------------------------
$ cd ~/Projects
$ git clone git://github.com/rclasen/srmio srmio
$ cd srmio
Get automake and tools, if you don't already have them (I didn't after a fresh install)
$ sudo apt-get install automake
$ sudo apt-get install libtool
Generate the configure script, run it, build and install srmio
$ sh genautomake.sh
$ ./configure
$ make
$ sudo make install
Lets go config GC and build with SRMIO
$ cd ~/Projects/Live/GoldenCheetah/src
$ vi gcconfig.pri
Uncomment the SRMIO_INSTALL and replace with the target used from srmio install:
SRMIO_INSTALL = /usr/local/
At the bottom of gcconfig.pri you will see the include directory should reference from
the base install location (/usr/local) make sure it says:
SRMIO_INCLUDE = $${SRMIO_INSTALL}/include
SRMIO_LIB = $${SRMIO_INSTALL}/lib/libsrmio.a
Make clean is needed if you have previouslt built, since source files examine #defines before
including this feature. You can skip it if you know why ;)
$ make clean
$ qmake
$ make
You now have SRM support built in.
OAUTH/CRYPT - For Tweet my ride (twitter) support
-------------------------------------------------
You should be able to install liboauth and dependencies
directly with:
$ sudo apt-get install liboauth-dev
If this does not work then:
Download the source from: http://sourceforge.net/projects/liboauth/files/liboauth-0.9.4.tar.gz/download and
unpack it into ~/Projects/liboauth-0.9.4 using archive manager
$ cd ~/Projects/liboauth-0.9.4
You may find that libcurl is not installed (which liboauth depends upon) so download it
from http://curl.haxx.se/download/curl-7.21.6.tar.gz and unpack it into ~/Projects/curl-7.21.6
using archive manager to drag and drop into your Projects folder
$ cd ~/Projects/curl-7.21.6
$ ./configure
$ make
$ sudo make install
You should now have libcurl and friends installed in /usr/local
You may find that liboauth also requires the openssl libs installed, these are available
pre-packaged thankfully so:
$ sudo apt-get install libssl-dev
This will also install zlibg which liboauth also desires.
$ cd ~/Projects/liboauth-0.9.4
$ ./configure
$ make
$ sudo make install
Now we have liboauth and libcurl in /usr/local and libssl in /usr/lib, so we can go back to
GoldenCheetah and update the gcconfig.pri to point at the right places:
$ cd ~/Projects/Live/GoldenCheetah/src
$ vi gcconfig.pri
Make sure the following are set:
LIBOAUTH_INSTALL = /usr/local
LIBCRYPTO_INSTALL = -lcrypto
LIBCURL_INSTALL=-lcurl
Make clean is needed if you have previously built, since source files examine #defines before
including this feature. You can skip it if you know why ;)
$ make clean
$ qmake
$ make
You can now tweet your rides and amaze your friends, or alternatively tweet your rides but
omit to mention average power to hide your weaknesses.
LIBQWTPLOT3D - For 3D plot
--------------------------
Download the tarball from http://qwtplot3d.svn.sourceforge.net/viewvc/qwtplot3d/branches/maintain_0_2_x/qwtplot3d/?view=tar
and unarchive it into your Projects directory using archive manager. There is no version number it just creates a
subdirectory called qwtplot3d
You will need to install libgl and extensions, this can be done with;
$ sudo apt-get install libgl1-mesa-dev
$ sudo apt-get install libglu-dev
On Ubuntu 12.10 I also ran
$ sudo apt-get install freeglut3 freeglut3-dev
$ cd ~/Projects/qwtplot3d
Edit the qwtplot3d.pri and add
CONFIG += staticlib
You will find that on modern Linuxes you also need to fix include/qwt3d_global.h by adding the line:
#include <GL/glu.h>
then build
$ qmake
$ make
Then to let gc know where the qwtplot3d libs are you need to edit gcconfig.pri;
$ cd ~/Projects/Live/GoldenCheetah/src
$ vi gcconfig.pri
And uncomment the following line and set the install directory to where you build
QWT3D_INSTALL = ~/Projects/qwtplot3d
LIBKML - For export to Google Earth
-----------------------------------
You will need Google Earth 5.2 or later and therefore libkml that supports this. Unfortunately at the time of writing
the officially packaged libkml is too old, so you will need to install from source, which means you will need to have
subversion installed and expat. You may be able to use the currently packaged libkml with
$ sudo apt-get install libkml-dev
if this does not work you will need to build from source:
$ sudo apt-get install subversion
$ sudo apt-get install expat libexpat1 libexpat1-dev
Once svn is installed you can grab the libkml source and configure build etc:
$ cd ~/Projects
$ svn checkout http://libkml.googlecode.com/svn/trunk/ libkml
$ cd libkml
You will need automake and friends (see SRMIO above)
$ sh autogen.sh
$ ./configure
$ make
$ make install
$ sudo make install
If you get errors about use of 'long long' then edit:
- src/kml/{convenience,dom,engine,regionator,xsd}/Makefile
- examples/{engine,gpx,gx,hellonet,helloworld,regionator,xsd}/Makefile
- and look for the flag -pedantic and remove it. I got this on Linux 64bit builds ymmv.
Once libkml is installed and built:
$ cd ~/Projects/Live/GoldenCheetah/src
$ vi gcconfig.pri
Ensure KML_INSTALL=/usr/local
Make clean is needed if you have previously built, since source files examine #defines before
including this feature. You can skip it if you know why ;)
$ make clean
$ qmake
$ make
You can now export rides to Google Earth kml format.
ADDING OPTIONAL DEPENDENCIES WHEN BUILDING VERSION 3
====================================================
NOTE: When you run version 3 it will refresh ride metrics and CP files -- this only occurs the
first time it runs (and will refresh only rides that change after that). I find it is best
to import ride files once your build where you want it. i.e. don't import until you have
got all your dependencies sorted.
NOTE: To reduce the dependencies on 'dormant' code there are a number of new pieces of source
that are included in the release3 tree. Notably; qtsoap from qt-solutions, since they
work but are likely to be archived and deprecated. If and when that happens we may well
adopt whatever classes Trolltech introduce.
LIBICAL - Diary integration with Google or MobileMe calendars
-------------------------------------------------------------
$ cd ~/Projects/Live/GoldenCheetah/src
$ sudo apt-get install libical-dev
$ vi gcconfig.pri
ICAL_INSTALL=/usr/include
ICAL_LIBS=-lical
Since the src.pro wants ICAL installed in a different place we need to hack it, *** this will
be fixed shortly ***
$ vi src.pro
Comment out the ICAL_LIBS entry:
#ICAL_LIBS = $${ICAL_INSTALL}/lib/libical.a
$ make clean
$ qmake
$ make
You should now have diary functions.
NOTE: That upload to MobileMe and Google requires a functioning https lib in QT. Depending
upon the version installed this might not be the case and will need to be built and
configured -- this is beyond the scope of this walkthough. Sorry.
LIBVLC - Video playback in Realtime (Experimental)
--------------------------------------------------
You will need libvlc 1.1.9 or higher (1.1.8 is ok but will segv on exit)
$ sudo apt-get install libvlc-dev
$ vi gcconfig.pri
Comment out VLC_INSTALL and it should read:
VLC_INSTALL = /usr/include/vlc/
$ make clean
$ qmake
$ make
CLUCENE - Indexing and Searching ride files (search box)
--------------------------------------------------------
You will need clucene runtime and core libraries, we developed against 0.9.21b-2 but
any 0.9 branch should work fine, let us know if you experience any issues. You may find
that the libclucene0ldbl runtime is already installed, this is fine and typical since
clucene is a very popular search library.
$ sudo apt-get install libclucene-dev
$ sudo apt-get install libclucene0ldbl
By default, and this is deliberate, the clucene install places the config headers into
a platform specific location. For my install I just copy the platform (linux) specific
header config into the normal /usr/include/CLucene directory with the following:
$ sudo cp /usr/lib/CLucene/clucene-config.h /usr/include/CLucene
Next we need to comment out the two CLUCENE lines in gcconfig.pri and they should read:
CLUCENE_INCLUDE = /usr/include/CLucene
CLUCENE_LIBS = -lclucene
$ make clean
$ qmake
$ make

311
INSTALL-MAC Normal file
View File

@@ -0,0 +1,311 @@
+++++++++++++++++++++++
MAC OSX BUILD WALKTHROUGH
+++++++++++++++++++++++
Mark Liversedge
Nov 2011
Version 1.1
A walkthrough of building GoldenCheetah from scratch on Mac OSX. This was performed
on Mac OSX Lion (10.7) but the instructions are largely the same for all versions of
Mac OS X.
CONTENTS
1. BASIC INSTALLATION WITH MANDATORY DEPENDENCIES
- Xcode
- Qt
2. ADDING OPTIONAL DEPENDENCIES
- FTDI D2XX
- SRMIO
- liboauth
- QwtPlot3d
- libkml
- libusb
- libical
- libclucene
1. BASIC INSTALLATION WITH MANDATORY DEPENDENCIES
=================================================
Depending upon the speed of your internet connection and availability of the
required software the steps in section 1 will take approximately 1 hour.
1.1 Ensure OS X is up-to-date
-----------------------------
Make sure you have applied all the latest updates to Mac OS X. This can be
found from the system menu, apple, about this mac, software update.
This walkthrough was performed on an iMac running 10.7.2 (Lion)
1.2 Install XCode from App Store
--------------------------------
If you are building on 10.6 or higher you should install Xcode4, for earlier
releases you will need Xcode 3.1.4. If you have capable hardware you should
consider upgrading to Lion to get the latest bug fixes and capabilities.
To install Xcode on Lion you need to download it via the App Store. You can
launch the App Store from launchpad, or it may be already in your dock.
Under the search box type in Xcode and it will return a few optios, generally
Xcode is the first item and shows a blueprint with a hammer icon. Click on
this to install it. It should be free. The usual app store process will apply
as the application is downloaded and installed. The download is about 2GB
so do bear this in mind if you have limits on your internet bandwidth or cap.
1.3 Run the Xcode installer
---------------------------
The app store download will have added an Install Xcode icon in the launchpad.
Go ahead and run it.
Xcode includes all the development tools such as a compiler, debugger and
SDKs. It also installs the 'git' tool for working with Git repositories.
It will run through a wizard to install, just read and then accept the license
agreement and let it get on with it. If you don't like the license then quit
and use the development builds from goldencheetah.stand2surtf.net.
You may find it borks at iTunes helper running, you will
need to force quit the iTunes helper via Finder, Applications, Utilities,
Activity Monitor if this happens.
1.4 Get the source code
-----------------------
We store all the Golden Cheetah source code on github.com, it is a great
site holding repositories for many open source projects.
First open up a terminal session, then;
$ cd
$ mkdir Projects
$ cd Projects
$ git clone git://github.com/GoldenCheetah/GoldenCheetah.git
You will now have the GoldenCheetah sources downloaded into a 'GoldenCheetah'
directory in your home directory, under another folder called 'Projects'.
$ cd GoldenCheetah
$ ls
You should see a number of directories such as doc, qwt, src etc. If you are
building the latest development release you may need to check it out. At the
time of writing the latest development release is release_3.0.0dev, if you
want to build version 3 then you should perform the next command, otherwise
skip to 1.5.
$ checkout release_3.0.0dev
$ ls
You will now see an updated version of this walkthrough, please jump to using
that since it may be more up-to-date than this walkthrough (depending upon
where you got it from of course!).
1.5 Install the QT SDK
----------------------
GoldenCheetah is developed using the Nokia QT toolkit, it is large and will
need to be downloaded and installed from their website. Alternatively, you
can intall qt via macports (http://www.macports.org) as described in section
1.5.1.
As of today, the latest stable release is 4.7.4, we need 4.7 or higher so
go ahead and download the offline installer - it has everything you need
but is about 1.3GB. Please make sure you download the installer for Mac
OS X 10.6 or later, 64-bit.
The url for QT downloads is: http://qt.nokia.com/downloads and whilst the
offline installer is only 12mb it will still call back and download the
required objects as you install, I think it is better to get it all in
one hit (and you can save it to reinstall on another computer or if you
want to rebuild/reinstall for any other reason).
Once the QT SDK is downloaded you will have a .dmg (disk image) that you
need to mount by double clicking on it. You will then get a volume mounted
and shown on your desktop. Go ahead and double click that to start the install
process. It is probably called something like 'Qt SDK Installer'.
It will popup with a dialog warning that this is downloaded from the internet
and are you sure you want to open it? Go ahead and click Open.
A wizard will now guide you through the QT install process. Go ahead and accept
all the defaults, it will install in your home directory and avoid updating the
system directories, this means you are less likely to bork your Mac OSX installation.
Read and accept the license agreement and then continue and install.
We need to make sure that a program called qmake is installed in a directory where
it can be found. So, we need to create a link from what we just installed in the
user programs folder. For QT SDK1.1 (4.7.4) we need to:
$ sudo ln -s ~/QtSDK/Desktop/Qt/474/gcc/bin/qmake /usr/bin/qmake
1.5.1 Install via Mac Ports
---------------------------
If you have macports installed, you can install the qt dependices
with the following commands:
$ sudo port install qt4-mac
$ sudo port install qt4-mac-sqlite3-plugin
1.6 DEPRECATED
--------------
No longer need this step (install boost)
1.7 Configure and Build GoldenCheetah (with no optional dependencies)
---------------------------------------------------------------------
First thing we need to do is set the build configuration, this means editing the
private build profile settings. There is one for qwt (a charting library) and
there is another for GoldenCheetah itself.
$ cd ~/Projects/GoldenCheetah/qwt
$ cp qwtconfig.pri.in qwtconfig.pri
$ cd ../src
$ cp gcconfig.pri.in gcconfig.pri
$ vi gcconfig.pri
In that last step you can use whatever editor you feel most comfortable with.
For now we will comment out some of the dependencies we have not installed
support for yet:
#SRMIO_INSTALL = /usr/local/srmio
#D2XX_INCLUDE = /usr/local/include/D2XX
we may need to additionally configure to use the local compression
libraries (at least I did), by adding the following line:
LIBS += -lz
Lastly, since we are on Lion, we can also uncomment and change the following line:
DEFINES += GC_HAVE_LION
Once the changes have been made we are now ready to build for the first time. You
may notice a lot of warning messages about the version of O/S not being supported.
This is because QT does not officially support Lion at this point in time (but it
does work). You can either ignore the warning messages or (like me) go and edit out
the warning (once you have seen the message once you don't need reminding every
time you compile).
To do this, edit the file in question as an administrator:
$ sudo vi ~/QtSDK/Desktop/Qt/474/gcc/include/QtCore/qglobal.h
And comment out line 320 (or thereabouts):
//# warning "This version of Mac OS X is unsupported"
Once this is done you can kick off the build:
$ cd .. #this should put you in the top level dir containing this file
$ qmake -recursive
$ make
If make fails to find a Makefile then qmake is configured, by default, to create
an xcode project file. You will need to change the qmake command above to tell it
to create a makefile with the following:
$ qmake -spec macx-g++ -recursive
$ make
Once this completes you will have a GoldenCheetah.app in the src directory which
can be launched:
$ open src/GoldenCheetah.app
And you're up and running.
2. ADDING OPTIONAL DEPENDENCIES
===============================
- SRMIO
- liboauth
- QwtPlot3d
- libkml
- libusb
- libical
Since these optional dependencies are more complex and require more advanced
technical skills we do not provide a walkthrough for building them all but
instead provide the configure settings and any special considerations that
should be taken into account.
2.1 SRMIO - For working with PC 5/6/7
-------------------------------------
SRMIO (git)
./configure CFLAGS="-isysroot /Developer/SDKs/MacOSX10.7.sdk -arch x86_64" CPPFLAGS=-I/usr/local/D2XX/ --disable-dependency-tracking
2.2 Liboauth - For Twitter support
----------------------------------
oauth (0.8.8)
./configure CFLAGS="-isysroot /Developer/SDKs/MacOSX10.7.sdk -arch x86_64 CURL_CFLAGS="-I/Developer/SDKs/MacOSX10.7.sdk/usr/include/curl" CURL_LIBS="-lcurl" --disable-dependency-tracking
2.3 QwtPlot3d - For 3d plot support
-----------------------------------
qwtplot3d (maintain_0_2_x)
Add the following to qwtplot3d.pro:
CONFIG += x86_64 static
QMAKE_MAC_SDK=/Developer/SDKs/MacOSX10.7.sdk
2.4 libkml - For export to Google Earth
---------------------------------------
expat (2.0.1)
./configure CFLAGS="-isysroot /Developer/SDKs/MacOSX10.7.sdk -arch x86_64" --disable-dependency-tracking
libkml (pulled down from the svn repo)
./configure CFLAGS="-isysroot /Developer/SDKs/MacOSX10.7.sdk -arch x86_64" --disable-dependency-tracking --with-expat-include-dir=/usr/local/include --with-expat-lib-dir=/usr/local/lib --disable-swig CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.7.sdk -arch x86_64"
note: the added CXXFLAGS helped clear the -Werror flag that stopped compilation.
2.5 libusb - For Garmin USB2 stick support
------------------------------------------
libusb (0.1.12)
To compile on OSX you need to apply the patch here:
https://trac.macports.org/browser/trunk/dports/devel/libusb-legacy/files?rev=97840
Then:
./configure --prefix=/opt/libusb/ CFLAGS="-arch x86_64" CXXFLAGS="-arch x86_64" --disable-dependency-tracking
then
sed -i 'bak' 's|CC -dynamiclib|CC -dynamiclib -arch x86_64|g' libtool
make
make install
note: that the sed line updates some commands in libtool. not sure why the arch clags are not getting passed.
2.6 libical
-----------
libical (0.46)
first run autogen.sh
then
./configure CFLAGS="-isysroot /Developer/SDKs/MacOSX10.7.sdk -arch x86_64" --disable-dependency-tracking
2.7 clucene
-----------
DO NOT USE THE MACPORTS VERSION (0.9.23) IT DOES NOT WORK.
git clone git://clucene.git.sourceforge.net/gitroot/clucene/clucene
cmake -G "Unix Makefiles"
make
sudo make install
will install clucene into /usr/local/include/clucene and /usr/local/lib

117
INSTALL-WIN32 Normal file
View File

@@ -0,0 +1,117 @@
Please note: This is an old build instruction set for Version 2.x.
Most of it is still fairly valid for version 3.x.
Minimum build requirements are: Qt 4.8 with Qt.4.8.4 recommended.
All other libs are find the best that you can except for libusb which requires 0.1.12.
I have found that the cross compiler at http://mxe.cc/ to be great for building GC and SRMIO.
+++++++++++++++++++++++
WIN32 BUILD WALKTHROUGH
+++++++++++++++++++++++
Gareth Coco
May 2011
For my install, I am installing all my files into the directory: d:\coding.
You can use any directory structure you like, youll just have to change paths.
Just ensure that any folder path you use does not have a space in it.
Download the NSI installer application. I use the Portable Apps version from:
http://portableapps.com/apps/development/nsis_portable
- Install in D:\Coding\NSISPortable\
Download Qt SDK from:
http://qt.nokia.com/downloads/sdk-windows-cpp
(File I am using is qt-sdk-win-opensource-2010.02.1.exe)
- Install in D:\Coding\Qt
Download the D2XX drivers:
http://www.ftdichip.com/Drivers/D2XX.htm
(File I am using is: CDM 202.06.00 WHQL Certified.zip)
- Install in D:\Coding\D2XX
Download qwt-plot3d from:
http://sourceforge.net/projects/qwtplot3d/files/
(File I am using is qwtplot3d-0.2.7.zip)
- Install in D:\Coding\qwtplot3d
Edit D:\coding\qwtplot3d\src\qwt3d_function.cpp
- Add at top of file: #include <cstdio>
Edit D:\coding\qwtplot3d\qwtplot3d.pro
- Comment out: #win32:TEMPLATE = vclib
Then I start the “Qt Command Prompt” from the Qt SDK folder.
d:
cd d:\coding\qwtplot3d\
qmake -win32
mingw32-make release
Now check out your favourite web sites until the code is built.
Leave the Qt Command Prompt window open as we use it later.
Download GoldenCheetah source
(Either use GIT git://github.com/GoldenCheetah/GoldenCheetah.git
or download the zip file:
http://github.com/GoldenCheetah/GoldenCheetah/zipball/master)
- Install in D:\Coding\GoldenCheetah
Copy D:\Coding\GoldenCheetah\src\gccconfig.pri.in
to D:\Coding\GoldenCheetah\src\gccconfig.pri and edit
- Set: D2XX_INCLUDE = d:/coding/D2XX
- Comment out #SRMIO_INSTALL
- Comment out: CONFIG += debug
- Uncomment: CONFIG += static
Copy D:\Coding\GoldenCheetah\qwt\qwtconfig.pri.in
to D:\Coding\GoldenCheetah\qwt\qwtconfig.pri and edit
- Set win32 { INSTALLBASE = D:/Coding/Qt }
- In #Qt4 win32 { section
Comment out: #CONFIG += debug # release/debug/debug_and_release
Add in: CONFIG += release
Using the “Qt Command Prompt” window from before:
cd d:\coding\GoldenCheetah
qmake -win32 -recursive
mingw32-make release
Go back to checking your email or favourite web sites while this builds.
When all is finished, you should have a release version in:
D:\Coding\GoldenCheetah\src\release\
Next , move required build files into the d:\coding\GoldenCheetah\src\release directory.
cd d:\coding\GoldenCheetah
copy /y ..\Qt\qt\bin\mingwm10.dll src\release\
copy /y ..\Qt\qt\bin\QtCore4.dll src\release\
copy /y ..\Qt\qt\bin\QtGui4.dll src\release\
copy /y ..\Qt\qt\bin\QtSql4.dll src\release\
copy /y ..\Qt\qt\bin\QtXml4.dll src\release\
copy /y ..\Qt\qt\bin\QtNetwork4.dll src\release\
copy /y ..\Qt\qt\bin\QtOpenGL4.dll src\release\
copy /y ..\Qt\qt\bin\QtWebKit4.dll src\release\
copy /y ..\Qt\qt\bin\QtXmlPatterns4.dll src\release\
copy /y ..\Qt\qt\bin\phonon4.dll src\release\
copy /y ..\Qt\qt\bin\libgcc_s_dw2-1.dll src\release\
copy /y ..\qwtplot3d\lib\qwtplot3d.dll src\release\
mkdir src\release\sqldrivers
copy /y ..\Qt\qt\plugins\sqldrivers\qsqlite4.dll src\release\sqldrivers\
mkdir src\release\imageformats
copy /y ..\Qt\qt\plugins\imageformats\qjpeg4.dll src\release\imageformats\
To build the self installer:
cd d:\coding\GoldenCheetah\src\win32
d:\coding\NSISPortable\App\NSIS\makensis.exe GoldenCheetahInstall.nsi
You should find the installer file in the directory you are in.
Install and enjoy.

View File

@@ -1,31 +0,0 @@
#
# $Id: Makefile,v 1.11 2006/09/06 23:23:03 srhea Exp $
#
# Copyright (c) 2006 Sean C. Rhea (srhea@srhea.net)
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc., 51
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#
SUBDIRS=doc src
all: subdirs
.PHONY: all subdirs clean
clean:
@for dir in $(SUBDIRS); do $(MAKE) -wC $$dir clean; done
subdirs:
@for dir in $(SUBDIRS); do $(MAKE) -wC $$dir; done

9
README Normal file
View File

@@ -0,0 +1,9 @@
Golden Cheetah install and build instructions are documented
for each platform;
INSTALL-WIN32 For building on Microsoft Windows
INSTALL-LINUX For building on Ubuntu Linux
INSTALL-MAC For building on Apple OS X
Alternatively official builds are available from http://www.goldencheetah.org
whilst latest developer builds are available from http://goldencheetah.stand2surf.net

3
build.pro Normal file
View File

@@ -0,0 +1,3 @@
TEMPLATE = subdirs
SUBDIRS = qwt src
CONFIG += ordered

View File

@@ -0,0 +1,107 @@
From 44a403d45ae049e7ade3e9b47a39778dcacf4382 Mon Sep 17 00:00:00 2001
From: Mark Liversedge <liversedge@gmail.com>
Date: Thu, 28 Mar 2013 22:03:35 +0000
Subject: [PATCH] Fixup no threads for GC
---
src/core/CLucene/debug/lucenebase.h | 2 +-
src/shared/CLucene/LuceneThreads.h | 21 ++++++++++++++++++---
src/shared/CLucene/util/Misc.cpp | 2 ++
src/shared/CLucene/util/Misc.h | 2 ++
4 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/src/core/CLucene/debug/lucenebase.h b/src/core/CLucene/debug/lucenebase.h
index c053f11..9732ce6 100644
--- a/src/core/CLucene/debug/lucenebase.h
+++ b/src/core/CLucene/debug/lucenebase.h
@@ -6,7 +6,7 @@
------------------------------------------------------------------------------*/
#ifndef _lucene_debug_lucenebase_
#define _lucene_debug_lucenebase_
-
+#define _CL_DISABLE_MULTITHREADING
#include "CLucene/LuceneThreads.h"
CL_NS_DEF(debug)
diff --git a/src/shared/CLucene/LuceneThreads.h b/src/shared/CLucene/LuceneThreads.h
index 97072ee..662ff2f 100644
--- a/src/shared/CLucene/LuceneThreads.h
+++ b/src/shared/CLucene/LuceneThreads.h
@@ -13,10 +13,10 @@ class CLuceneThreadIdCompare;
#if defined(_CL_DISABLE_MULTITHREADING)
#define SCOPED_LOCK_MUTEX(theMutex)
- #define DEFINE_MUTEX(x)
+ //#define DEFINE_MUTEX(x)
#define DEFINE_MUTABLE_MUTEX(x)
#define DEFINE_CONDITION(x)
- #define STATIC_DEFINE_MUTEX(x)
+ //#define STATIC_DEFINE_MUTEX(x)
#define CONDITION_WAIT(theMutex, theCondition)
#define CONDITION_NOTIFYALL(theCondition)
#define _LUCENE_CURRTHREADID 1
@@ -25,11 +25,26 @@ class CLuceneThreadIdCompare;
#define _LUCENE_THREAD_FUNC_RETURN(val) return (int)val;
#define _LUCENE_THREAD_CREATE(func, arg) (*func)(arg)
#define _LUCENE_THREAD_JOIN(value) //nothing to do...
- #define _LUCENE_THREADMUTEX void*
+ //#define _LUCENE_THREADMUTEX void*
#define _LUCENE_ATOMIC_INC(theInteger) (++(*theInteger))
#define _LUCENE_ATOMIC_DEC(theInteger) (--(*theInteger))
#define _LUCENE_ATOMIC_INT int
+#define _LUCENE_ATOMIC_INT_SET(x,v) x=v
+#define _LUCENE_ATOMIC_INT_GET(x) x
+
+struct CLUCENE_SHARED_EXPORT mutex_thread
+{
+ void lock() {}
+ void unlock() {}
+};
+#define _LUCENE_THREADMUTEX CL_NS(util)::mutex_thread
+
+#define DEFINE_MUTEX(theMutex) _LUCENE_THREADMUTEX theMutex;
+#define STATIC_DEFINE_MUTEX(theMutex) static _LUCENE_THREADMUTEX theMutex;
+
+#define CONDITION_WAIT(theMutex, theCondition)
+#define CONDITION_NOTIFYALL(theCondition)
#else
#if defined(_LUCENE_DONTIMPLEMENT_THREADMUTEX)
//do nothing
diff --git a/src/shared/CLucene/util/Misc.cpp b/src/shared/CLucene/util/Misc.cpp
index 240b827..ec9eabd 100644
--- a/src/shared/CLucene/util/Misc.cpp
+++ b/src/shared/CLucene/util/Misc.cpp
@@ -466,6 +466,7 @@ bool Misc::listFiles(const char* directory, std::vector<std::string>& files, boo
std::string Misc::toString(const bool value){
return value ? "true" : "false";
}
+#ifndef _CL_DISABLE_MULTITHREADING
std::string Misc::toString(_LUCENE_THREADID_TYPE value){
static int32_t nextindex = 0;
static std::map<_LUCENE_THREADID_TYPE, int32_t> ids;
@@ -474,6 +475,7 @@ std::string Misc::toString(_LUCENE_THREADID_TYPE value){
}
return toString(ids[value]);
}
+#endif
std::string Misc::toString(const int32_t value){
char buf[20];
TCHAR tbuf[20];
diff --git a/src/shared/CLucene/util/Misc.h b/src/shared/CLucene/util/Misc.h
index aea7c42..4196e24 100644
--- a/src/shared/CLucene/util/Misc.h
+++ b/src/shared/CLucene/util/Misc.h
@@ -67,7 +67,9 @@ CL_NS_DEF(util)
static std::string toString(const int32_t value);
static std::string toString(const int64_t value);
+#ifndef _CL_DISABLE_MULTITHREADING
static std::string toString(const _LUCENE_THREADID_TYPE value);
+#endif
static std::string toString(const bool value);
static std::string toString(const float_t value);
static std::string toString(const TCHAR* s, int32_t len=-1);
--
1.7.8.msysgit.0

Binary file not shown.

5
contrib/INDEX Normal file
View File

@@ -0,0 +1,5 @@
Clucene-2.3.3.4-NoThreads.patch - To patch Clucene on Windows to remove patching
Fortius USB Driver Stubs.zip - Drivers for use with Fortius without Tacx software
Install_D2XX_drivers.mpkg.zip - D2XX installer for Windows
Universal_D2XX0.1.6.dmg - D2XX installer for Mac OSX
libusb-0.1.12.tar.gz - Libusb (patched) to work with GoldenCheetah

Binary file not shown.

Binary file not shown.

Binary file not shown.

9
doc/.gitignore vendored Normal file
View File

@@ -0,0 +1,9 @@
# old skool
.svn
# osx noise
.DS_Store
profile
#html files are auto-generated by the scripts:
*.html

View File

@@ -1,49 +0,0 @@
CONTENT=$(wildcard *.content)
HTML=$(subst .content,.html,$(CONTENT))
TARBALLS=$(wildcard gc_*.tgz)
OTHER=logo.jpg sample.gp sample.png cpint.gp cpint.png \
screenshot-summary.png screenshot-plot.png \
screenshot-cpint.png screenshot-phist.png
DISTRIB=GoldenCheetah_2006-12-25_Darwin_powerpc.dmg \
GoldenCheetah_2006-09-06_Darwin_powerpc.dmg \
GoldenCheetah_2006-09-07_Darwin_powerpc.dmg \
GoldenCheetah_2006-09-19_Darwin_powerpc.dmg
all: $(HTML)
.PHONY: all clean install
clean:
rm -f $(HTML)
install:
rsync -avz -e ssh $(HTML) $(TARBALLS) $(OTHER) $(DISTRIB) \
srhea.net:public_html/goldencheetah/
contact.html: contact.content genpage.pl
./genpage.pl "Contact Us" $< > $@
contrib.html: contrib.content genpage.pl
./genpage.pl "Contributors" $< > $@
download.html: download.content genpage.pl
./genpage.pl "Download" $< > $@
faq.html: faq.content genpage.pl
./genpage.pl "Frequently Asked Questions" $< > $@
index.html: index.content genpage.pl
./genpage.pl "Introduction" $< > $@
license.html: license.content genpage.pl
./genpage.pl "License" $< > $@
screenshots.html: screenshots.content genpage.pl
./genpage.pl "Screenshots" $< > $@
search.html: search.content genpage.pl
./genpage.pl "Search" $< > $@
users-guide.html: users-guide.content genpage.pl
./genpage.pl "User's Guide" $< > $@

View File

@@ -1,18 +0,0 @@
<!-- $Id: contrib.content,v 1.4 2006/09/06 04:07:18 srhea Exp $ -->
Sean Rhea bought a PowerTap Pro on April 20, 2006, and immediately set to
figuring out how to use it from his Mac Powerbook without using Virtual PC.
Within a week, he was able to download the raw data. Shortly thereafter, Russ
Cox asked what he was up to, and the two worked together to figure out the
packing format used. By May 4, they could reproduce the numbers given by the
PowerTap software except for minor discrepancies in the time values. David
Easter then pointed out how the checksum bytes in the download protocol were
used, and Sean Rhea coded up their combined discoveries into the two
utilities, <code>ptdl</code> and <code>ptunpk</code>.
<p>
Rob Carlsen helped get the serial port version of the PowerTap Pro working
with the Keyspan USB-to-serial adaptor. Scott Overfield helped me figure out
that we should be using the <code>/dev/cu.*</code> devices instead of the
<code>/dev/tty.*</code> ones.

BIN
doc/contrib/ChungVE.pdf Normal file

Binary file not shown.

18
doc/contrib/gnupress.tex Normal file
View File

@@ -0,0 +1,18 @@
@c gnupress.tex -- Common Texinfo macros for GNU Press books.
@c
@c Print in 7" x 9.25" format.
@smallbook
@advance@voffset by -0.25in
@special{papersize=7in,9.25in}
@c
@c Since we are using @smallbook, we ought to use @smallfonts
@tex
\global\let\lisporig=\lisp
\gdef\lisp{\smallexamplefonts\lisporig}%
\global\let\exampleorig=\example
\gdef\example{\smallexamplefonts\exampleorig}%
\global\let\displayorig=\display
\gdef\display{\smallexamplefonts\displayorig}%
\global\let\formatorig=\format
\gdef\format{\smallexamplefonts\formatorig}%
@end tex

161
doc/contrib/palatino.tex Normal file
View File

@@ -0,0 +1,161 @@
@c palatino.tex -- TeXinfo macros to set the default Roman font to Palatino
@c
@def@palatinoversion{2003-04-01.00}
@c
@c Copyright (C) 2003 Free Software Foundation, Inc.
@c
@c This palatino.tex file is free software; you can redistribute it and/or
@c modify it under the terms of the GNU General Public License as
@c published by the Free Software Foundation; either version 2, or (at
@c your option) any later version.
@c
@c This palatino.tex file is distributed in the hope that it will be
@c useful, but WITHOUT ANY WARRANTY; without even the implied warranty
@c of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@c General Public License for more details.
@c
@c You should have received a copy of the GNU General Public License
@c along with this texinfo.tex file; see the file COPYING. If not, write
@c to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
@c Boston, MA 02111-1307, USA.
@c
@c You should use this module, go to your root .texi file and make sure
@c it reads like this:
@c \input texinfo @c -*-texinfo-*-
@c @input palatino
@message{Loading palatino [version @palatinoversion]:}
@c Turn on the normal TeX command characters.
@catcode`\=0
\catcode`\%=14
% Set the font macro #1 to the font named #2#3. #4 is the point size.
% We save \setfont as \setfontorig, so we can restore it at the end of this
% section.
\catcode`\#=6
\let\setfontorig=\setfont
\def\setfont#1#2#3#4{\font#1=#2#3 at #4}
\catcode`\#=\other
% Set Palatino as the default roman font face
\def\rmfontprefix{ppl}
% Only define roman font attributes here.
\def\rmshape{r}
\def\rmbshape{b}
\def\bfshape{b}
\def\bxshape{b}
\def\itshape{ri}
\def\itbshape{bi}
\def\slshape{ro}
\def\slbshape{bo}
\def\scshape{rc}
\def\scbshape{bc}
\ifx\bigger\relax
% not really supported.
\def\mainmagstep{12pt}
\setfont\textrm\rmfontprefix\rmshape{\mainmagstep}
\else
\def\mainmagstep{10pt}
\setfont\textrm\rmfontprefix\rmshape{\mainmagstep}
\fi
% Instead of cmb10, you many want to use cmbx10.
% cmbx10 is a prettier font on its own, but cmb10
% looks better when embedded in a line with cmr10.
\setfont\textbf\rmfontprefix\bfshape{\mainmagstep}
\setfont\textit\rmfontprefix\itshape{\mainmagstep}
\setfont\textsl\rmfontprefix\slshape{\mainmagstep}
\setfont\textsc\rmfontprefix\scshape{\mainmagstep}
\font\texti=zppler7m at \mainmagstep
\font\textsy=zppler7y at \mainmagstep
% A few fonts for \defun, etc.
\setfont\defbf\rmfontprefix\bxshape{10pt} %was 1314
\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
% Fonts for indices, footnotes, small examples (9pt).
\setfont\smallrm\rmfontprefix\rmshape{9pt}
\setfont\smallbf\rmfontprefix\bfshape{9pt}
\setfont\smallit\rmfontprefix\itshape{9pt}
\setfont\smallsl\rmfontprefix\slshape{9pt}
\setfont\smallsc\rmfontprefix\scshape{9pt}
\font\smalli=zppler7m at 9pt
\font\smallsy=zppler7y at 9pt
% Fonts for small examples (8pt).
\setfont\smallerrm\rmfontprefix\rmshape{8pt}
\setfont\smallerbf\rmfontprefix\bfshape{8pt}
\setfont\smallerit\rmfontprefix\itshape{8pt}
\setfont\smallersl\rmfontprefix\slshape{8pt}
\setfont\smallersc\rmfontprefix\scshape{8pt}
\font\smalleri=zppler7m at 8pt
\font\smallersy=zppler7y at 8pt
% Fonts for title page:
\setfont\titlerm\rmfontprefix\rmbshape{18pt}
\setfont\titleit\rmfontprefix\itbshape{18pt}
\setfont\titlesl\rmfontprefix\slbshape{18pt}
\let\titlebf=\titlerm
\setfont\titlesc\rmfontprefix\scbshape{18pt}
\font\titlei=zppler7m at 18pt
\font\titlesy=zppler7y at 18pt
\def\authorrm{\secrm}
\def\authortt{\sectt}
% Chapter (and unnumbered) fonts (17.28pt).
\setfont\chaprm\rmfontprefix\rmbshape{17.28pt}
\setfont\chapit\rmfontprefix\itbshape{17.28pt}
\setfont\chapsl\rmfontprefix\slbshape{17.28pt}
\let\chapbf=\chaprm
\setfont\chapsc\rmfontprefix\scbshape{17.28pt}
\font\chapi=zppler7m at 17.28pt
\font\chapsy=zppler7y at 17.28pt
% Section fonts (14.4pt).
\setfont\secrm\rmfontprefix\rmbshape{14.4pt}
\setfont\secit\rmfontprefix\itbshape{14.4pt}
\setfont\secsl\rmfontprefix\slbshape{14.4pt}
\let\secbf\secrm
\setfont\secsc\rmfontprefix\scbshape{14.4pt}
\font\seci=zppler7m at 14.4pt
\font\secsy=zppler7y at 14.4pt
% Subsection fonts (13.15pt).
\setfont\ssecrm\rmfontprefix\rmbshape{13.15pt}
\setfont\ssecit\rmfontprefix\itbshape{13.15pt}
\setfont\ssecsl\rmfontprefix\slbshape{13.15pt}
\let\ssecbf\ssecrm
\setfont\ssecsc\rmfontprefix\scbshape{13.15pt}
\font\sseci=zppler7m at 13.15pt
\font\ssecsy=zppler7y at 13.15pt
% The smallcaps and symbol fonts should actually be scaled \magstep1.5,
% but that is not a standard magnification.
% Fonts for short table of contents.
\setfont\shortcontrm\rmfontprefix\rmshape{12pt}
\setfont\shortcontbf\rmfontprefix\bxshape{12pt}
\setfont\shortcontsl\rmfontprefix\slshape{12pt}
% Set keyfont as well.
\setfont\keyrm\rmfontprefix\rmshape{8pt}
\font\keysy=zppler7y at 9pt
\let\setfont=\setfontorig
\def\setfontorig{\relax}
% Restore the TeXinfo character set.
\catcode`\\=\active
@catcode`@%=@other
@c Set initial fonts (again)
@textfonts
@rm
@c Local variables:
@c eval: (add-hook 'write-file-hooks 'time-stamp)
@c page-delimiter: "^\\\\message"
@c time-stamp-start: "def\\\\palatinoversion{"
@c time-stamp-format: "%:y-%02m-%02d.%02H"
@c time-stamp-end: "}"
@c End:

6770
doc/contrib/texinfo.tex Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,120 +0,0 @@
<!-- $Id: download.content,v 1.6 2006/08/11 20:21:03 srhea Exp $ -->
Right now Golden Cheetah is available as source code and in binary form for
Mac OS X on PowerPC processors.
<p>
<font face="arial,helvetica,sanserif">
<big><strong>Source Code</strong></big>
</font>
<p>
The Golden Cheetah source code is available via
<a href="http://subversion.tigris.org/">Subversion</a>.
Use this command to check out the current version of the repository:
<pre>
svn checkout http://goldencheetah.org/svn/trunk goldencheetah
</pre>
You can also browse the source <a
href="http://goldencheetah.org/svn/trunk">here</a>.
<p>
<font face="arial,helvetica,sanserif">
<big><strong>Binaries</strong></big>
</font>
<p>
<center>
<table width="100%">
<tr>
<td width="20%"><i>Date</i></td>
<td width="30%"><i>File</i></td>
<td><i>Description</i></td>
</tr>
<tr>
<td valign="top">Dec 25, 2006</td>
<td valign="top"><a href="GoldenCheetah_2006-12-25_Darwin_powerpc.dmg">Mac OS
X PowerPC</a></td>
<td valign="top">Adds the Power Histogram, which shows how much time a rider
spent at each particular power level during a ride.</td>
</tr>
<tr>
<td valign="top">Sep 19, 2006</td>
<td valign="top"><a href="GoldenCheetah_2006-09-19_Darwin_powerpc.dmg">Mac OS
X PowerPC</a></td>
<td valign="top">Adds the Critical Power Plot, which shows the highest average
power you've achieved for every interval length over all your rides and the
selected ride. Also shows download progress in minutes of ride data
downloaded.</td>
</tr>
<tr>
<td valign="top">Sep 7, 2006</td>
<td valign="top"><a href="GoldenCheetah_2006-09-07_Darwin_powerpc.dmg">Mac OS
X PowerPC</a></td>
<td valign="top">Adds speed and cadence to the ride plot. Fixes a bug
found by George Gilliland where reseting the time during a ride could cause
the GUI to crash.</td>
</tr>
<tr>
<td valign="top">Sep 6, 2006</td>
<td valign="top"><a href="GoldenCheetah_2006-09-06_Darwin_powerpc.dmg">Mac OS
X PowerPC</a></td>
<td valign="top">The first release of the Golden Cheetah GUI.</td>
</tr>
</table>
</center>
<p>
<hr width="50%">
<p>
<font face="arial,helvetica,sanserif">
<big><strong>Older Stuff</strong></big>
</font>
<p>
These are the older, source-only, command-line distributions. I've left them
up for historical purposes only; I don't recommend using them.
<center>
<table width="100%">
<tr>
<td width="20%"><i>Date</i></td>
<td width="30%"><i>File</i></td>
<td><i>Description</i></td>
</tr>
<tr>
<td valign="top">Aug 11, 2006</td>
<td valign="top"><a href="gc_2006-08-11.tgz">gc_2006-08-11.tgz</a></td>
<td valign="top">ptdl now works with Keyspan USB-to-serial adaptor, after
debugging help from Rob Carlsen.
</td>
</tr>
<tr>
<td valign="top">May 27, 2006</td>
<td valign="top"><a href="gc_2006-05-27.tgz">gc_2006-05-27.tgz</a></td>
<td valign="top">Adds the <code>cpint</code> program for computing critical
power intervals and the <code>ptpk</code> program for converting from
PowerTuned data files (see the <a href="users-guide.html">User's
Guide</a>).</td>
</tr>
<tr>
<td valign="top">May 16, 2006</td>
<td valign="top"><a href="gc_2006-05-16.tgz">gc_2006-05-16.tgz</a></td>
<td valign="top">The first code release, containing <code>ptdl</code> and
<code>ptunpk</code>.</td>
</tr>
</table>
</center>

View File

@@ -1,65 +0,0 @@
<!-- $Id: faq.content,v 1.4 2006/07/05 16:59:56 srhea Exp $ -->
<p>
<i>I downloaded a .dmg, opened it, dragged and dropped GoldenCheetah into
Applications, double-clicked on it, and nothing happened. What gives?</i>
<p>
Are you running OS X Tiger? You need to be. If you are, and you're still
having this problem, open Terminal (in Applications -&gt; Utilities) and type
this at the prompt:
<blockquote><pre>
/Applications/GoldenCheetah.app/Contents/MacOS/GoldenCheetah
</pre></blockquote>
then press &lt;return&gt; and send an email to the mailing list with
whatever it prints out. We'll help you debug it.
<p>
<i>I've downloaded and unpacked the data. Now what do I do with it?</i>
<p>
We highly recommend that you buy and read both Joe Friel's <i>The
Cyclist's Training Bible</i> and Allen and Coggan's <i>Training and
Racing with a Power Meter</i>. The former is the definitive book about all
aspects of cycling training (although we think he's off his rocker in the
chapter about diet), and the latter is the definitive book about power-based
training.
<p>
Also, if you buy either of these books through the links below, we'll get a
referral fee in return, helping us to support this web site. Thanks!
<center>
<iframe
src="http://rcm.amazon.com/e/cm?t=goldencheetah-20&o=1&p=8&l=as1&asins=B0006JHZ7Q&fc1=000000&IS2=1&lt1=_blank&lc1=0000ff&bc1=000000&bg1=ffffff&f=ifr"
style="width:120px;height:240px;" scrolling="no" marginwidth="0"
marginheight="0" frameborder="0"></iframe>
<iframe
src="http://rcm.amazon.com/e/cm?t=goldencheetah-20&o=1&p=8&l=as1&asins=1931382794&fc1=000000&IS2=1&lt1=_blank&lc1=0000ff&bc1=000000&bg1=ffffff&f=ifr"
style="width:120px;height:240px;" scrolling="no" marginwidth="0"
marginheight="0" frameborder="0"></iframe>
</center>
<p>
<i>Does the output of <code>ptunpk</code> exactly match that of the software
included with the PowerTap?</i>
<p>
Almost. If you run it in compatibility mode, using the <code>-c</code>
option, it matches the PowerTap software's output exactly on everything but
the time values, at least for the five sample rides we've tried it with.
The times are a little off, but not by more than 0.1%, so we don't consider it
a big deal.
<p>
That said, the PowerTap software does some weird things, like converting from
kilometers to miles by multiplying by 0.62, but then reporting the miles
values with five digits after the decimal place. If you run
<code>ptunpk</code> without the <code>-c</code> option, it will unpack the
data in the way we think it should. The results mostly match up with the
official ones, and are almost certainly identical within the range of accuracy
of the device.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,26 +0,0 @@
<!-- $Id: index.content,v 1.1 2006/05/16 14:24:50 srhea Exp $ -->
<p>
The goal of the Golden Cheetah project is to develop a software package that:
<ul>
<li>Downloads ride data from power measurement devices, such as the <a
href="http://www.cycleops.com/products/powertap.htm">CycleOps PowerTap</a>,
the <a href="http://www.ergomo.net/Home-_14.html">ergomo</a>, the <a
href="http://www.polarusa.com/consumer/powerkit/default.asp">Polar
Electro</a>, and the <a href="http://www.srm.de/usa/index.html">SRM Training
System</a><p>
<li>Helps athletes analyze downloaded data with features akin to commercial
power analysis software, such as <a href="http://cyclingpeaks.com/">Cycling
Peaks</a><p>
<li>Works on non-Microsoft Windows-based systems, such as FreeBSD, Linux, and
Mac OS X<p>
<li>Is available under an
<a href="http://www.opensource.org/docs/definition.php">Open Source</a>
license
</ul>
<p>
In short, we believe that cyclists should be able to download their power data
to the computer of their choice, analyze it in whatever way they see fit, and
share their methods of analysis with others.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 B

View File

@@ -0,0 +1,610 @@
<mockup version="1.0" skin="sketch" fontFace="Balsamiq Sans" measuredW="1997" measuredH="568" mockupW="1935" mockupH="553">
<controls>
<control controlID="0" controlTypeID="com.balsamiq.mockups::TitleWindow" x="62" y="61" w="355" h="400" measuredW="450" measuredH="400" zOrder="0" locked="false" isInGroup="-1">
<controlProperties>
<bottomheight>0</bottomheight>
<dragger>false</dragger>
<text>Chart%20Controls%20%5BLTM%20Chart%5D</text>
</controlProperties>
</control>
<control controlID="1" controlTypeID="com.balsamiq.mockups::TabBar" x="84" y="101" w="312" h="284" measuredW="219" measuredH="100" zOrder="1" locked="false" isInGroup="-1">
<controlProperties>
<text>Basic%2C%20Preset%2C%20Custom*</text>
</controlProperties>
</control>
<control controlID="2" controlTypeID="com.balsamiq.mockups::Button" x="321" y="413" w="75" h="27" measuredW="53" measuredH="27" zOrder="2" locked="false" isInGroup="-1">
<controlProperties>
<text>Done</text>
</controlProperties>
</control>
<control controlID="3" controlTypeID="com.balsamiq.mockups::List" x="101" y="164" w="-1" h="-1" measuredW="100" measuredH="126" zOrder="3" locked="false" isInGroup="-1">
<controlProperties>
<text>Best%0AFormula%0AMetric%0AMeasure</text>
</controlProperties>
</control>
<control controlID="4" controlTypeID="com.balsamiq.mockups::List" x="201" y="164" w="171" h="126" measuredW="100" measuredH="126" zOrder="4" locked="false" isInGroup="-1">
<controlProperties>
<text>Power%205s%0A%3D60m%20WPK%20*%20RPE%0AAverage_Power%0AWeight</text>
</controlProperties>
</control>
<control controlID="5" controlTypeID="com.balsamiq.mockups::TextInput" x="100" y="140" w="101" h="-1" measuredW="44" measuredH="27" zOrder="5" locked="false" isInGroup="-1">
<controlProperties>
<text>Type</text>
</controlProperties>
</control>
<control controlID="6" controlTypeID="com.balsamiq.mockups::TextInput" x="201" y="140" w="171" h="-1" measuredW="56" measuredH="27" zOrder="6" locked="false" isInGroup="-1">
<controlProperties>
<text>Details</text>
</controlProperties>
</control>
<control controlID="7" controlTypeID="com.balsamiq.mockups::Button" x="101" y="298" w="75" h="27" measuredW="46" measuredH="27" zOrder="7" locked="false" isInGroup="-1">
<controlProperties>
<text>Edit</text>
</controlProperties>
</control>
<control controlID="8" controlTypeID="com.balsamiq.mockups::Button" x="294" y="298" w="36" h="27" measuredW="31" measuredH="27" zOrder="8" locked="false" isInGroup="-1">
<controlProperties>
<text>+</text>
</controlProperties>
</control>
<control controlID="9" controlTypeID="com.balsamiq.mockups::Button" x="336" y="298" w="36" h="27" measuredW="27" measuredH="27" zOrder="9" locked="false" isInGroup="-1">
<controlProperties>
<text>-</text>
</controlProperties>
</control>
<control controlID="12" controlTypeID="com.balsamiq.mockups::Arrow" x="345" y="15" w="225" h="143" measuredW="150" measuredH="100" zOrder="10" locked="false" isInGroup="-1">
<controlProperties>
<backgroundAlpha>1</backgroundAlpha>
<direction>bottom</direction>
<rightArrow>false</rightArrow>
<text>Lists%20all%20data%20series%20that%20will%20be%20available%20on%20the%20chart</text>
</controlProperties>
</control>
<control controlID="13" controlTypeID="com.balsamiq.mockups::TitleWindow" x="481" y="55" w="489" h="507" measuredW="450" measuredH="400" zOrder="11" locked="false" isInGroup="-1">
<controlProperties>
<text>Edit%20Data%20Series%20%5BMetric/Measure%5D</text>
</controlProperties>
</control>
<control controlID="14" controlTypeID="com.balsamiq.mockups::RadioButton" x="497" y="156" w="136" h="22" measuredW="53" measuredH="22" zOrder="12" locked="false" isInGroup="-1">
<controlProperties>
<state>selected</state>
<text>Metric</text>
</controlProperties>
</control>
<control controlID="15" controlTypeID="com.balsamiq.mockups::RadioButton" x="497" y="184" w="136" h="22" measuredW="43" measuredH="22" zOrder="13" locked="false" isInGroup="-1">
<controlProperties>
<text>Best</text>
</controlProperties>
</control>
<control controlID="16" controlTypeID="com.balsamiq.mockups::RadioButton" x="497" y="212" w="136" h="22" measuredW="63" measuredH="22" zOrder="14" locked="false" isInGroup="-1">
<controlProperties>
<text>Formula</text>
</controlProperties>
</control>
<control controlID="17" controlTypeID="com.balsamiq.mockups::RadioButton" x="497" y="130" w="136" h="22" measuredW="68" measuredH="22" zOrder="15" locked="false" isInGroup="-1">
<controlProperties>
<state>selected</state>
<text>Measure</text>
</controlProperties>
</control>
<control controlID="18" controlTypeID="com.balsamiq.mockups::Arrow" x="155" y="242" w="326" h="69" measuredW="150" measuredH="100" zOrder="16" locked="false" isInGroup="-1">
<controlProperties>
<backgroundAlpha>0.25</backgroundAlpha>
<direction>bottom</direction>
<leftArrow>false</leftArrow>
<rightArrow>true</rightArrow>
<text/>
</controlProperties>
</control>
<control controlID="19" controlTypeID="com.balsamiq.mockups::Arrow" x="306" y="242" w="175" h="69" measuredW="150" measuredH="100" zOrder="17" locked="false" isInGroup="-1">
<controlProperties>
<backgroundAlpha>0.25</backgroundAlpha>
<direction>bottom</direction>
<leftArrow>false</leftArrow>
<rightArrow>false</rightArrow>
<text/>
</controlProperties>
</control>
<control controlID="20" controlTypeID="com.balsamiq.mockups::List" x="615" y="126" w="317" h="113" measuredW="100" measuredH="132" zOrder="18" locked="false" isInGroup="-1">
<controlProperties>
<text>Peak%201m%20Power%0APeak%201m%20WPK%0APeak%201s%20Power%0APeak%201s%20WPK%0APeak%205s%20Power%0APeak%205s%20WPK</text>
</controlProperties>
</control>
<control controlID="21" controlTypeID="com.balsamiq.mockups::TextInput" x="615" y="102" w="317" h="-1" measuredW="58" measuredH="27" zOrder="19" locked="false" isInGroup="-1">
<controlProperties>
<text>Metrics</text>
</controlProperties>
</control>
<control controlID="22" controlTypeID="com.balsamiq.mockups::VerticalScrollBar" x="916" y="126" w="-1" h="113" measuredW="16" measuredH="100" zOrder="20" locked="false" isInGroup="-1"/>
<control controlID="24" controlTypeID="com.balsamiq.mockups::Label" x="498" y="101" w="-1" h="-1" measuredW="30" measuredH="21" zOrder="21" locked="false" isInGroup="-1">
<controlProperties>
<text>Type</text>
</controlProperties>
</control>
<control controlID="26" controlTypeID="com.balsamiq.mockups::Label" x="497" y="264" w="104" h="-1" measuredW="35" measuredH="21" zOrder="22" locked="false" isInGroup="-1">
<controlProperties>
<text>Name</text>
</controlProperties>
</control>
<control controlID="27" controlTypeID="com.balsamiq.mockups::Label" x="497" y="304" w="131" h="-1" measuredW="106" measuredH="21" zOrder="23" locked="false" isInGroup="-1">
<controlProperties>
<text>Axis%20Label%20/%20Units</text>
</controlProperties>
</control>
<control controlID="28" controlTypeID="com.balsamiq.mockups::Label" x="497" y="342" w="131" h="-1" measuredW="36" measuredH="21" zOrder="24" locked="false" isInGroup="-1">
<controlProperties>
<text>Curve</text>
</controlProperties>
</control>
<control controlID="29" controlTypeID="com.balsamiq.mockups::Label" x="497" y="378" w="131" h="-1" measuredW="44" measuredH="21" zOrder="25" locked="false" isInGroup="-1">
<controlProperties>
<text>Symbol</text>
</controlProperties>
</control>
<control controlID="30" controlTypeID="com.balsamiq.mockups::Label" x="499" y="416" w="131" h="-1" measuredW="35" measuredH="21" zOrder="26" locked="false" isInGroup="-1">
<controlProperties>
<text>Stack</text>
</controlProperties>
</control>
<control controlID="31" controlTypeID="com.balsamiq.mockups::Label" x="499" y="448" w="131" h="-1" measuredW="32" measuredH="21" zOrder="27" locked="false" isInGroup="-1">
<controlProperties>
<text>Color</text>
</controlProperties>
</control>
<control controlID="32" controlTypeID="com.balsamiq.mockups::Label" x="499" y="484" w="111" h="-1" measuredW="55" measuredH="21" zOrder="28" locked="false" isInGroup="-1">
<controlProperties>
<text>Fill%20Curve</text>
</controlProperties>
</control>
<control controlID="33" controlTypeID="com.balsamiq.mockups::TextInput" x="618" y="261" w="97" h="-1" measuredW="79" measuredH="26" zOrder="29" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="34" controlTypeID="com.balsamiq.mockups::TextInput" x="616" y="301" w="97" h="-1" measuredW="79" measuredH="26" zOrder="30" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="35" controlTypeID="com.balsamiq.mockups::ComboBox" x="618" y="340" w="95" h="-1" measuredW="55" measuredH="24" zOrder="31" locked="false" isInGroup="-1">
<controlProperties>
<text>Line</text>
</controlProperties>
</control>
<control controlID="36" controlTypeID="com.balsamiq.mockups::ComboBox" x="618" y="378" w="95" h="-1" measuredW="64" measuredH="24" zOrder="32" locked="false" isInGroup="-1">
<controlProperties>
<text>Circle</text>
</controlProperties>
</control>
<control controlID="37" controlTypeID="com.balsamiq.mockups::CheckBox" x="627" y="417" w="-1" h="-1" measuredW="20" measuredH="21" zOrder="33" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="38" controlTypeID="com.balsamiq.mockups::CheckBox" x="627" y="483" w="-1" h="-1" measuredW="20" measuredH="21" zOrder="34" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="39" controlTypeID="com.balsamiq.mockups::ColorPicker" x="620" y="447" w="-1" h="-1" measuredW="26" measuredH="28" zOrder="35" locked="false" isInGroup="-1"/>
<control controlID="40" controlTypeID="com.balsamiq.mockups::Label" x="738" y="264" w="104" h="-1" measuredW="52" measuredH="21" zOrder="36" locked="false" isInGroup="-1">
<controlProperties>
<text>Highlight</text>
</controlProperties>
</control>
<control controlID="41" controlTypeID="com.balsamiq.mockups::Label" x="736" y="304" w="104" h="-1" measuredW="47" measuredH="21" zOrder="37" locked="false" isInGroup="-1">
<controlProperties>
<text>Outliers</text>
</controlProperties>
</control>
<control controlID="42" controlTypeID="com.balsamiq.mockups::Label" x="738" y="342" w="104" h="-1" measuredW="50" measuredH="21" zOrder="38" locked="false" isInGroup="-1">
<controlProperties>
<text>Baseline</text>
</controlProperties>
</control>
<control controlID="43" controlTypeID="com.balsamiq.mockups::Label" x="738" y="416" w="104" h="-1" measuredW="84" measuredH="21" zOrder="39" locked="false" isInGroup="-1">
<controlProperties>
<text>Smooth%20Curve</text>
</controlProperties>
</control>
<control controlID="44" controlTypeID="com.balsamiq.mockups::Label" x="738" y="446" w="104" h="-1" measuredW="63" measuredH="21" zOrder="40" locked="false" isInGroup="-1">
<controlProperties>
<text>Trend%20Line</text>
</controlProperties>
</control>
<control controlID="45" controlTypeID="com.balsamiq.mockups::CheckBox" x="842" y="417" w="-1" h="-1" measuredW="20" measuredH="21" zOrder="41" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="46" controlTypeID="com.balsamiq.mockups::CheckBox" x="842" y="448" w="20" h="21" measuredW="20" measuredH="21" zOrder="42" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="47" controlTypeID="com.balsamiq.mockups::NumericStepper" x="837" y="263" w="95" h="-1" measuredW="41" measuredH="24" zOrder="43" locked="false" isInGroup="-1">
<controlProperties>
<text>0</text>
</controlProperties>
</control>
<control controlID="48" controlTypeID="com.balsamiq.mockups::NumericStepper" x="837" y="301" w="95" h="-1" measuredW="41" measuredH="24" zOrder="44" locked="false" isInGroup="-1">
<controlProperties>
<text>0</text>
</controlProperties>
</control>
<control controlID="49" controlTypeID="com.balsamiq.mockups::NumericStepper" x="837" y="341" w="95" h="-1" measuredW="61" measuredH="24" zOrder="45" locked="false" isInGroup="-1">
<controlProperties>
<text>-999</text>
</controlProperties>
</control>
<control controlID="50" controlTypeID="com.balsamiq.mockups::TitleWindow" x="991" y="57" w="489" h="507" measuredW="450" measuredH="400" zOrder="46" locked="false" isInGroup="-1">
<controlProperties>
<text>Edit%20Data%20Series%20%5BFormula%5D</text>
</controlProperties>
</control>
<control controlID="51" controlTypeID="com.balsamiq.mockups::RadioButton" x="1007" y="158" w="136" h="22" measuredW="53" measuredH="22" zOrder="47" locked="false" isInGroup="-1">
<controlProperties>
<state>up</state>
<text>Metric</text>
</controlProperties>
</control>
<control controlID="52" controlTypeID="com.balsamiq.mockups::RadioButton" x="1007" y="186" w="136" h="22" measuredW="43" measuredH="22" zOrder="48" locked="false" isInGroup="-1">
<controlProperties>
<text>Best</text>
</controlProperties>
</control>
<control controlID="53" controlTypeID="com.balsamiq.mockups::RadioButton" x="1007" y="214" w="136" h="22" measuredW="63" measuredH="22" zOrder="49" locked="false" isInGroup="-1">
<controlProperties>
<state>selected</state>
<text>Formula</text>
</controlProperties>
</control>
<control controlID="54" controlTypeID="com.balsamiq.mockups::RadioButton" x="1007" y="132" w="136" h="22" measuredW="68" measuredH="22" zOrder="50" locked="false" isInGroup="-1">
<controlProperties>
<text>Measure</text>
</controlProperties>
</control>
<control controlID="58" controlTypeID="com.balsamiq.mockups::Label" x="1008" y="103" w="-1" h="-1" measuredW="30" measuredH="21" zOrder="51" locked="false" isInGroup="-1">
<controlProperties>
<text>Type</text>
</controlProperties>
</control>
<control controlID="59" controlTypeID="com.balsamiq.mockups::Label" x="1007" y="266" w="104" h="-1" measuredW="35" measuredH="21" zOrder="52" locked="false" isInGroup="-1">
<controlProperties>
<text>Name</text>
</controlProperties>
</control>
<control controlID="60" controlTypeID="com.balsamiq.mockups::Label" x="1007" y="306" w="131" h="-1" measuredW="106" measuredH="21" zOrder="53" locked="false" isInGroup="-1">
<controlProperties>
<text>Axis%20Label%20/%20Units</text>
</controlProperties>
</control>
<control controlID="61" controlTypeID="com.balsamiq.mockups::Label" x="1007" y="344" w="131" h="-1" measuredW="36" measuredH="21" zOrder="54" locked="false" isInGroup="-1">
<controlProperties>
<text>Curve</text>
</controlProperties>
</control>
<control controlID="62" controlTypeID="com.balsamiq.mockups::Label" x="1007" y="380" w="131" h="-1" measuredW="44" measuredH="21" zOrder="55" locked="false" isInGroup="-1">
<controlProperties>
<text>Symbol</text>
</controlProperties>
</control>
<control controlID="63" controlTypeID="com.balsamiq.mockups::Label" x="1009" y="418" w="131" h="-1" measuredW="35" measuredH="21" zOrder="56" locked="false" isInGroup="-1">
<controlProperties>
<text>Stack</text>
</controlProperties>
</control>
<control controlID="64" controlTypeID="com.balsamiq.mockups::Label" x="1009" y="450" w="131" h="-1" measuredW="32" measuredH="21" zOrder="57" locked="false" isInGroup="-1">
<controlProperties>
<text>Color</text>
</controlProperties>
</control>
<control controlID="65" controlTypeID="com.balsamiq.mockups::Label" x="1009" y="486" w="111" h="-1" measuredW="55" measuredH="21" zOrder="58" locked="false" isInGroup="-1">
<controlProperties>
<text>Fill%20Curve</text>
</controlProperties>
</control>
<control controlID="66" controlTypeID="com.balsamiq.mockups::TextInput" x="1128" y="263" w="97" h="-1" measuredW="79" measuredH="26" zOrder="59" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="67" controlTypeID="com.balsamiq.mockups::TextInput" x="1126" y="303" w="97" h="-1" measuredW="79" measuredH="26" zOrder="60" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="68" controlTypeID="com.balsamiq.mockups::ComboBox" x="1128" y="342" w="95" h="-1" measuredW="55" measuredH="24" zOrder="61" locked="false" isInGroup="-1">
<controlProperties>
<text>Line</text>
</controlProperties>
</control>
<control controlID="69" controlTypeID="com.balsamiq.mockups::ComboBox" x="1128" y="380" w="95" h="-1" measuredW="64" measuredH="24" zOrder="62" locked="false" isInGroup="-1">
<controlProperties>
<text>Circle</text>
</controlProperties>
</control>
<control controlID="70" controlTypeID="com.balsamiq.mockups::CheckBox" x="1137" y="419" w="-1" h="-1" measuredW="20" measuredH="21" zOrder="63" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="71" controlTypeID="com.balsamiq.mockups::CheckBox" x="1137" y="485" w="-1" h="-1" measuredW="20" measuredH="21" zOrder="64" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="72" controlTypeID="com.balsamiq.mockups::ColorPicker" x="1130" y="449" w="-1" h="-1" measuredW="26" measuredH="28" zOrder="65" locked="false" isInGroup="-1"/>
<control controlID="73" controlTypeID="com.balsamiq.mockups::Label" x="1248" y="266" w="104" h="-1" measuredW="52" measuredH="21" zOrder="66" locked="false" isInGroup="-1">
<controlProperties>
<text>Highlight</text>
</controlProperties>
</control>
<control controlID="74" controlTypeID="com.balsamiq.mockups::Label" x="1246" y="306" w="104" h="-1" measuredW="47" measuredH="21" zOrder="67" locked="false" isInGroup="-1">
<controlProperties>
<text>Outliers</text>
</controlProperties>
</control>
<control controlID="75" controlTypeID="com.balsamiq.mockups::Label" x="1248" y="344" w="104" h="-1" measuredW="50" measuredH="21" zOrder="68" locked="false" isInGroup="-1">
<controlProperties>
<text>Baseline</text>
</controlProperties>
</control>
<control controlID="76" controlTypeID="com.balsamiq.mockups::Label" x="1248" y="418" w="104" h="-1" measuredW="84" measuredH="21" zOrder="69" locked="false" isInGroup="-1">
<controlProperties>
<text>Smooth%20Curve</text>
</controlProperties>
</control>
<control controlID="77" controlTypeID="com.balsamiq.mockups::Label" x="1248" y="448" w="104" h="-1" measuredW="63" measuredH="21" zOrder="70" locked="false" isInGroup="-1">
<controlProperties>
<text>Trend%20Line</text>
</controlProperties>
</control>
<control controlID="78" controlTypeID="com.balsamiq.mockups::CheckBox" x="1352" y="419" w="-1" h="-1" measuredW="20" measuredH="21" zOrder="71" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="79" controlTypeID="com.balsamiq.mockups::CheckBox" x="1352" y="450" w="20" h="21" measuredW="20" measuredH="21" zOrder="72" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="80" controlTypeID="com.balsamiq.mockups::NumericStepper" x="1347" y="265" w="95" h="-1" measuredW="41" measuredH="24" zOrder="73" locked="false" isInGroup="-1">
<controlProperties>
<text>0</text>
</controlProperties>
</control>
<control controlID="81" controlTypeID="com.balsamiq.mockups::NumericStepper" x="1347" y="303" w="95" h="-1" measuredW="41" measuredH="24" zOrder="74" locked="false" isInGroup="-1">
<controlProperties>
<text>0</text>
</controlProperties>
</control>
<control controlID="82" controlTypeID="com.balsamiq.mockups::NumericStepper" x="1347" y="343" w="95" h="-1" measuredW="61" measuredH="24" zOrder="75" locked="false" isInGroup="-1">
<controlProperties>
<text>-999</text>
</controlProperties>
</control>
<control controlID="83" controlTypeID="com.balsamiq.mockups::SearchBox" x="1128" y="103" w="315" h="-1" measuredW="120" measuredH="25" zOrder="76" locked="false" isInGroup="-1">
<controlProperties>
<text>%3D%20Formula...</text>
</controlProperties>
</control>
<control controlID="84" controlTypeID="com.balsamiq.mockups::TextArea" x="1135" y="125" w="293" h="124" measuredW="200" measuredH="140" zOrder="77" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="85" controlTypeID="com.balsamiq.mockups::VerticalScrollBar" x="1412" y="126" w="-1" h="123" measuredW="16" measuredH="100" zOrder="78" locked="false" isInGroup="-1"/>
<control controlID="87" controlTypeID="com.balsamiq.mockups::Label" x="1147" y="130" w="-1" h="-1" measuredW="35" measuredH="21" zOrder="79" locked="false" isInGroup="-1">
<controlProperties>
<text>Fields</text>
</controlProperties>
</control>
<control controlID="88" controlTypeID="com.balsamiq.mockups::Label" x="1308" y="131" w="70" h="-1" measuredW="59" measuredH="21" zOrder="80" locked="false" isInGroup="-1">
<controlProperties>
<text>Operators</text>
</controlProperties>
</control>
<control controlID="89" controlTypeID="com.balsamiq.mockups::Button" x="1147" y="151" w="-1" h="-1" measuredW="107" measuredH="27" zOrder="81" locked="false" isInGroup="-1">
<controlProperties>
<text>1s%20Peak%20Power</text>
</controlProperties>
</control>
<control controlID="90" controlTypeID="com.balsamiq.mockups::Button" x="1149" y="183" w="-1" h="-1" measuredW="107" measuredH="27" zOrder="82" locked="false" isInGroup="-1">
<controlProperties>
<text>1s%20Peak%20Power</text>
</controlProperties>
</control>
<control controlID="91" controlTypeID="com.balsamiq.mockups::Button" x="1149" y="215" w="-1" h="-1" measuredW="107" measuredH="27" zOrder="83" locked="false" isInGroup="-1">
<controlProperties>
<text>1s%20Peak%20Power</text>
</controlProperties>
</control>
<control controlID="92" controlTypeID="com.balsamiq.mockups::Button" x="1301" y="152" w="85" h="27" measuredW="49" measuredH="27" zOrder="84" locked="false" isInGroup="-1">
<controlProperties>
<text>AND</text>
</controlProperties>
</control>
<control controlID="93" controlTypeID="com.balsamiq.mockups::Button" x="1303" y="184" w="85" h="27" measuredW="42" measuredH="27" zOrder="85" locked="false" isInGroup="-1">
<controlProperties>
<text>OR</text>
</controlProperties>
</control>
<control controlID="94" controlTypeID="com.balsamiq.mockups::Button" x="1305" y="216" w="85" h="27" measuredW="40" measuredH="27" zOrder="86" locked="false" isInGroup="-1">
<controlProperties>
<text>%3E%3D</text>
</controlProperties>
</control>
<control controlID="95" controlTypeID="com.balsamiq.mockups::VerticalScrollBar" x="1266" y="126" w="-1" h="123" measuredW="16" measuredH="100" zOrder="87" locked="false" isInGroup="-1"/>
<control controlID="96" controlTypeID="com.balsamiq.mockups::TitleWindow" x="1508" y="61" w="489" h="507" measuredW="450" measuredH="400" zOrder="88" locked="false" isInGroup="-1">
<controlProperties>
<text>Edit%20Data%20Series%20%5BBests%5D</text>
</controlProperties>
</control>
<control controlID="97" controlTypeID="com.balsamiq.mockups::RadioButton" x="1524" y="162" w="136" h="22" measuredW="53" measuredH="22" zOrder="89" locked="false" isInGroup="-1">
<controlProperties>
<state>up</state>
<text>Metric</text>
</controlProperties>
</control>
<control controlID="98" controlTypeID="com.balsamiq.mockups::RadioButton" x="1524" y="190" w="136" h="22" measuredW="43" measuredH="22" zOrder="90" locked="false" isInGroup="-1">
<controlProperties>
<state>selected</state>
<text>Best</text>
</controlProperties>
</control>
<control controlID="99" controlTypeID="com.balsamiq.mockups::RadioButton" x="1524" y="218" w="136" h="22" measuredW="63" measuredH="22" zOrder="91" locked="false" isInGroup="-1">
<controlProperties>
<state>up</state>
<text>Formula</text>
</controlProperties>
</control>
<control controlID="100" controlTypeID="com.balsamiq.mockups::RadioButton" x="1524" y="136" w="136" h="22" measuredW="68" measuredH="22" zOrder="92" locked="false" isInGroup="-1">
<controlProperties>
<text>Measure</text>
</controlProperties>
</control>
<control controlID="101" controlTypeID="com.balsamiq.mockups::Label" x="1525" y="107" w="-1" h="-1" measuredW="30" measuredH="21" zOrder="93" locked="false" isInGroup="-1">
<controlProperties>
<text>Type</text>
</controlProperties>
</control>
<control controlID="102" controlTypeID="com.balsamiq.mockups::Label" x="1524" y="270" w="104" h="-1" measuredW="35" measuredH="21" zOrder="94" locked="false" isInGroup="-1">
<controlProperties>
<text>Name</text>
</controlProperties>
</control>
<control controlID="103" controlTypeID="com.balsamiq.mockups::Label" x="1524" y="310" w="131" h="-1" measuredW="106" measuredH="21" zOrder="95" locked="false" isInGroup="-1">
<controlProperties>
<text>Axis%20Label%20/%20Units</text>
</controlProperties>
</control>
<control controlID="104" controlTypeID="com.balsamiq.mockups::Label" x="1524" y="348" w="131" h="-1" measuredW="36" measuredH="21" zOrder="96" locked="false" isInGroup="-1">
<controlProperties>
<text>Curve</text>
</controlProperties>
</control>
<control controlID="105" controlTypeID="com.balsamiq.mockups::Label" x="1524" y="384" w="131" h="-1" measuredW="44" measuredH="21" zOrder="97" locked="false" isInGroup="-1">
<controlProperties>
<text>Symbol</text>
</controlProperties>
</control>
<control controlID="106" controlTypeID="com.balsamiq.mockups::Label" x="1526" y="422" w="131" h="-1" measuredW="35" measuredH="21" zOrder="98" locked="false" isInGroup="-1">
<controlProperties>
<text>Stack</text>
</controlProperties>
</control>
<control controlID="107" controlTypeID="com.balsamiq.mockups::Label" x="1526" y="454" w="131" h="-1" measuredW="32" measuredH="21" zOrder="99" locked="false" isInGroup="-1">
<controlProperties>
<text>Color</text>
</controlProperties>
</control>
<control controlID="108" controlTypeID="com.balsamiq.mockups::Label" x="1526" y="490" w="111" h="-1" measuredW="55" measuredH="21" zOrder="100" locked="false" isInGroup="-1">
<controlProperties>
<text>Fill%20Curve</text>
</controlProperties>
</control>
<control controlID="109" controlTypeID="com.balsamiq.mockups::TextInput" x="1645" y="267" w="97" h="-1" measuredW="79" measuredH="26" zOrder="101" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="110" controlTypeID="com.balsamiq.mockups::TextInput" x="1643" y="307" w="97" h="-1" measuredW="79" measuredH="26" zOrder="102" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="111" controlTypeID="com.balsamiq.mockups::ComboBox" x="1645" y="346" w="95" h="-1" measuredW="55" measuredH="24" zOrder="103" locked="false" isInGroup="-1">
<controlProperties>
<text>Line</text>
</controlProperties>
</control>
<control controlID="112" controlTypeID="com.balsamiq.mockups::ComboBox" x="1645" y="384" w="95" h="-1" measuredW="64" measuredH="24" zOrder="104" locked="false" isInGroup="-1">
<controlProperties>
<text>Circle</text>
</controlProperties>
</control>
<control controlID="113" controlTypeID="com.balsamiq.mockups::CheckBox" x="1654" y="423" w="-1" h="-1" measuredW="20" measuredH="21" zOrder="105" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="114" controlTypeID="com.balsamiq.mockups::CheckBox" x="1654" y="489" w="-1" h="-1" measuredW="20" measuredH="21" zOrder="106" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="115" controlTypeID="com.balsamiq.mockups::ColorPicker" x="1647" y="453" w="-1" h="-1" measuredW="26" measuredH="28" zOrder="107" locked="false" isInGroup="-1"/>
<control controlID="116" controlTypeID="com.balsamiq.mockups::Label" x="1765" y="270" w="104" h="-1" measuredW="52" measuredH="21" zOrder="108" locked="false" isInGroup="-1">
<controlProperties>
<text>Highlight</text>
</controlProperties>
</control>
<control controlID="117" controlTypeID="com.balsamiq.mockups::Label" x="1763" y="310" w="104" h="-1" measuredW="47" measuredH="21" zOrder="109" locked="false" isInGroup="-1">
<controlProperties>
<text>Outliers</text>
</controlProperties>
</control>
<control controlID="118" controlTypeID="com.balsamiq.mockups::Label" x="1765" y="348" w="104" h="-1" measuredW="50" measuredH="21" zOrder="110" locked="false" isInGroup="-1">
<controlProperties>
<text>Baseline</text>
</controlProperties>
</control>
<control controlID="119" controlTypeID="com.balsamiq.mockups::Label" x="1765" y="422" w="104" h="-1" measuredW="84" measuredH="21" zOrder="111" locked="false" isInGroup="-1">
<controlProperties>
<text>Smooth%20Curve</text>
</controlProperties>
</control>
<control controlID="120" controlTypeID="com.balsamiq.mockups::Label" x="1765" y="452" w="104" h="-1" measuredW="63" measuredH="21" zOrder="112" locked="false" isInGroup="-1">
<controlProperties>
<text>Trend%20Line</text>
</controlProperties>
</control>
<control controlID="121" controlTypeID="com.balsamiq.mockups::CheckBox" x="1869" y="423" w="-1" h="-1" measuredW="20" measuredH="21" zOrder="113" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="122" controlTypeID="com.balsamiq.mockups::CheckBox" x="1869" y="454" w="20" h="21" measuredW="20" measuredH="21" zOrder="114" locked="false" isInGroup="-1">
<controlProperties>
<text/>
</controlProperties>
</control>
<control controlID="123" controlTypeID="com.balsamiq.mockups::NumericStepper" x="1864" y="269" w="95" h="-1" measuredW="41" measuredH="24" zOrder="115" locked="false" isInGroup="-1">
<controlProperties>
<text>0</text>
</controlProperties>
</control>
<control controlID="124" controlTypeID="com.balsamiq.mockups::NumericStepper" x="1864" y="307" w="95" h="-1" measuredW="41" measuredH="24" zOrder="116" locked="false" isInGroup="-1">
<controlProperties>
<text>0</text>
</controlProperties>
</control>
<control controlID="125" controlTypeID="com.balsamiq.mockups::NumericStepper" x="1864" y="347" w="95" h="-1" measuredW="61" measuredH="24" zOrder="117" locked="false" isInGroup="-1">
<controlProperties>
<text>-999</text>
</controlProperties>
</control>
<control controlID="126" controlTypeID="com.balsamiq.mockups::NumericStepper" x="1694" y="147" w="95" h="-1" measuredW="41" measuredH="24" zOrder="118" locked="false" isInGroup="-1">
<controlProperties>
<text>5</text>
</controlProperties>
</control>
<control controlID="127" controlTypeID="com.balsamiq.mockups::ComboBox" x="1797" y="145" w="95" h="-1" measuredW="69" measuredH="24" zOrder="119" locked="false" isInGroup="-1">
<controlProperties>
<text>Minute</text>
</controlProperties>
</control>
<control controlID="128" controlTypeID="com.balsamiq.mockups::Label" x="1694" y="177" w="95" h="-1" measuredW="30" measuredH="21" zOrder="120" locked="false" isInGroup="-1">
<controlProperties>
<text>Peak</text>
</controlProperties>
</control>
<control controlID="129" controlTypeID="com.balsamiq.mockups::ComboBox" x="1797" y="175" w="95" h="-1" measuredW="66" measuredH="24" zOrder="121" locked="false" isInGroup="-1">
<controlProperties>
<text>Power</text>
</controlProperties>
</control>
</controls>
</mockup>

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -1,35 +0,0 @@
<!-- $Id: faq.content,v 1.4 2006/07/05 16:59:56 srhea Exp $ -->
<p>
<center>
<big><font face="arial,helvetica,sanserif">
The Ride Summary
</font></big>
<p>
<img src="screenshot-summary.png" alt="Ride Summary Screen" align="center">
<p>
<big><font face="arial,helvetica,sanserif">
The Power, Heart Rate, Speed, and Cadence Plot
</font></big>
<p>
<img src="screenshot-plot.png" alt="Power and HR Plot" align="center">
<p>
<big><font face="arial,helvetica,sanserif">
The Critical Power Plot
</font></big>
<p>
<img src="screenshot-cpint.png" alt="The Critical Power Plot" align="center">
<p>
<big><font face="arial,helvetica,sanserif">
The Power Histogram
</font></big>
<p>
<img src="screenshot-phist.png" alt="The Power Histogram" align="center">
</center>

10
doc/user/.gitignore vendored Normal file
View File

@@ -0,0 +1,10 @@
*.aux
*.cp
*.cps
*.fn
*.ky
*.log
*.pg
*.toc
*.tp
*.vr

822
doc/user/GC3-FAQ.info Normal file
View File

@@ -0,0 +1,822 @@
This is GC3-FAQ.info, produced by makeinfo version 4.13 from
GC3-FAQ.texinfo.
This manual is for Golden Cheetah, version 3.0.
Copyright (C) 2013 Mark Liversedge

File: GC3-FAQ.info, Node: Top, Next: Top, Prev: Top
title
*****
This manual is for GoldenCheetah, version 3.0.
* Menu:
* MOST COMMON QUESTIONS OF ALL:: Most common questions
* GENERAL:: General Questions
* DATA:: Working with Data
* METRICS:: Working with Metrics
* UPLOADING AND DOWNLOADING:: Uploading and Downloading Data
* SEASONS AND EVENTS:: Seasons and Events
* CHARTS:: Configuring and Using Charts
* INDEX:: Index

File: GC3-FAQ.info, Node: MOST COMMON QUESTIONS OF ALL, Next: GENERAL, Prev: INDEX, Up: Top
1 MOST COMMON QUESTIONS OF ALL
******************************
1.1 How do I override / manually enter TSS for a ride?
======================================================
The details chart on the analysis view allows you to override metrics
on the metrics tab. By default the most common metrics are listed,
including average HR, distance and so on. From v3.0 the default setup
will also include TSS as a metric you can override here.
If the metric is not there you will need to configure GoldenCheetah to
allow it to be shown. This is simple to do and described in 3.9 below.
1.2 How do I add or remove a chart?
===================================
To add a new chart to the view you can select from the + menu on the
right hand side of the scope bar (the scope bar is underneath the
toolbar and lets you select from Home, Analysis, Train etc).
Depending upon which view you are on the charts available will differ.
For example realtime plots only appear on the Train view, whilst charts
that work with individual rides will only appear on the analysis view.
To remove a chart, when you mouse over a chart (in tabbed or tiled
mode) a small triangle will appear in the top left of the chart. This
is a menu drop down, if you click on it you will see a `Close' option.
This is the option to remove (close) the chart.
1.3 Can I enter my weight and track/plot it?
============================================
Weight can be maintained in 3 ways;
* Every athlete is setup with a weight value - this is the fallback
value should no other weight measure be available. It can be
found under preferences and athlete.
* The 'Weight' field can be maintained in the details screen. This
is found on the 'Workout' tab in the details screen by
default. Any entry here will be used for this ride ONLY.
* You can download weight from a withings scale. This is performed
manually via the menu option Tools->Get Withings Data. This is
then used to update the local measures database.
When calculating W/KG the Activity value is used if present, if not we
then fall back to the last Withing measure that was collected, and if
that is not available we then fall back to the default value for the
athlete.
The weight from withings and weight from the activity can both be
plotted separately in the LTM plots.
1.4 How do I plot x sec power best?
===================================
As of v3.0 it is still not possible to plot custom durations for power
bests. We are looking to add this in version 3.1, but for now you can
only plot 1s, 5s, 10s, 15s, 20s, 30s, 1min, 2min, 5min, 10min, 20min,
30min and 60min bests.
1.5 I can't find Aerolab / Performance Manager?
===============================================
By default we do not add these charts to the layout. Aerolab can be
added to the Analysis view via the '+' menu found to the right hand
side of the GoldenCheetah scope bar.
Similarly, the Performance manager can be added to the Home layout via
the '+' menu. We may deprecate this chart in the near future since the
LTM charts can be used to plot a PMC and we expect to implement an
interactive PMC for planning in v3.1.
1.6 What happened to weekly summary?
====================================
It has been deprecated since the Diary view allows you to summarise by
day, week and month and add charts to the view that summarise for the
selection. As the weekly summary was fixed on specific charts and did
not handle other selections (e.g. monthly) it has been deprecated in
view of the diary view.
At present you can treat the Diary view as you would have the weekly
summary - they offer the same functionality. We expect the diary view
to extend to planned workouts when we implement planning functionality
in v3.1.
1.7 Where are all the chart settings?
=====================================
All chart settings can be found under the drop down menu that appears
in the top left hand corner of a chart when you mouse over it. They
will appear as a popup dialog box.
Additionally, when you move the cursor towards the title of a chart in
a view that is tabbed (not tiled) then a small selection of the most
important settings for the chart will appear for convenience.
1.8 Where is the preferences / options panel?
=============================================
On a Mac the configurations page can be found under 'GoldenCheetah ->
Preferences' on the main menu. Whilst on all other platforms it is
found via 'Tools -> Options'.
We do this to match the general guidelines for the operating system.
1.9 How do I change the colour of the rides on the calendar/list?
=================================================================
Activities are coloured according to keywords embedded in their details
(metadata) you can configure the field that is used and the values that
are matched and the colours they are shown in from the preferences pane
via the 'Data Fields' toolbar option then select Notes Processing. The
keywords and related words are scanned for to determine if the
associated colour should be used for this ride.
They are processed in the order they are defined with the first match
being returned. Take care when using values such as 'TT' and 'race'
since these can also be part of an English word (e.g. ATTEMPT contains
'TT' and graceful contains 'race'.

File: GC3-FAQ.info, Node: GENERAL, Next: METRICS, Prev: MOST COMMON QUESTIONS OF ALL, Up: Top
2 GENERAL
*********
2.1 What is GoldenCheetah?
==========================
GoldenCheetah is primarily a program for cyclists that own a power
meter. It allows them to record, track and review their performance
against recorded data. It also allows you to ride your turbo and
collect data as you ride.
If you do not have a power meter then some of the functionality will
not be of use to you as a cyclist. But you can still record and track
progress. We support HR based TRIMP metrics for a HR based PMC for
example.
2.2 What is a good book or resource on training with power?
===========================================================
Unquestionably the bible for working with a power meter is Training and
Racing with a Power Meter by Hunter Allan and Andy Coggan. Make sure
you look at the 2nd edition since it is revised quite dramatically.
Whilst it is heavily biased towards WKO+ as a software package most of
the functions of note are also available in GoldenCheetah.
2.3 Where can I download the installer for GoldenCheetah ?
==========================================================
Stable releases are available from `http://www.goldencheetah.org'
whilst the latest and greatest code build is available from
`http://goldencheetah.stand2surf.net'. Development builds are for the
brave, since they may contain bugs. In reality the development builds
are a changing feast and often contain latest fixes too.
2.4 Where can I get the source code?
====================================
The GoldenCheetah source code is hosted on github and can be cloned
using the following url;
`git://github.com/GoldenCheetah/GoldenCheetah.git'
2.5 I am a triathlete is GoldenCheetah appropriate for me?
==========================================================
GoldenCheetah is not a multi-sport program. For tracking cycling
performance it is a good choice. But if you are looking for running and
swimming metrics and tracking then these features are not available at
present. It is an excellent choice for analysing cycling aspects of
triathlon, or working on the trainer.
2.6 Is there a mailing list?
============================
The mailing list for GoldenCheetah users is maintained via Google
Groups at
`http://groups.google.com/forum/?fromgroups=#forum/golden-cheetah-users'
the first post you make is moderated and may take a while to appear.
Once your first post is made you can make future posts without
moderation.
2.7 How do I report a bug or request a new feature?
===================================================
We use Github issues to record bugs and feature requests. You will need
to create an account on github and then post a new request or bug at
`http://www.github.com/GoldenCheetah/GoldenCheetah/issues'
2.8 How can I contribute?
=========================
Patches are most welcome via the mailing list or a pull request in
github. Of equal importance is the timely reporting of bugs and help in
testing fixes. We also desperately need volunteers to translate into
non-English languages and help with writing documentation including the
maintenance of this FAQ.
If you want to help, post a note on the golden-cheetah-users mailing
list.
2.9 Can I donate to the project?
================================
We are an open source project. Our software is developed by a
community. We do not have any facility to collect funding or spend it!
We would rather you spread the word if you think our software is good,
and maybe help out with documentation, tutorials or translations if you
can.

File: GC3-FAQ.info, Node: METRICS, Next: DATA, Prev: GENERAL, Up: Top
3 METRICS
*********
3.1 What is the difference between xPower, NP and Daniels EqP?
==============================================================
They all serve the same purpose - to express the variable power you
have generated over a given period of time as a single value. This is
so you can quantify the intensity of the ride and therefore the
training stress of the ride.
In practice, NP and xPower are largely the same, whilst Daniels EqP
place much higher emphasise on upper intensity work. For more info on
xPower see Dr Skiba's paper on BikeScore
`http://www.physfarm.com/bikescore.pdf'
3.2 What is the difference between CP and FTP?
==============================================
CP is a shorthand for CP60 in GoldenCheetah, and is computed using the
Scherer/Monod protocol using 3 and 20 minutes. Functional Threshold
Power (FTP) is an actual measure of the power an athlete sustains for
60 minutes.
Since it is very difficult for an athlete to maintain the desired
intensity FTP 'reality' tends to result in a number that is much lower
than CP 'theory'. Often users will consider the two as the same.
In GC we compute TSS and BikeScore using your 'CP' value. If you set it
to your FTP value TSS will be accurate, BikeScore is likely to be
lower. And if you set it to your CP value BikeScore will be accurate,
but TSS will be overstated.
3.3 Why does my CP chart show higher watts for a longer duration?
=================================================================
A higher power average for a longer time is possible if an effort has
been "book ended". If, for example, you did a massive 30 second
effort, followed by freewheeling for 29:30 then another massive 30
second effort, then your best average for a continuous 30 minutes would
in fact be lower that your best average for a continuous 30minutes and
30 seconds. (Thanks for Jon Hill from the Golden Cheetah Users mailing
list for this example).
3.4 Can I set a different CP/FTP for different reasons e.g. CP/FTP on a trainer?
================================================================================
We allow you to override the CP value for a specific ride by setting
the "CP" field to the value you wish to use for the ride in question.
We do not have a concept of 'separate' Cps for different purposes - you
will need to specify the CP when the data is imported into GC. But this
allows you to make manual adjustments.
We provide this functionality at user request - we do not endorse the
concept of multiple CP values. But we do recognise the ongoing debate
regarding physiological stress from working on a trainer vs on the road.
3.5 How do I seed the CTL for my PMC?
=====================================
You can seed the starting CTL (we call it LTS, for long term stress)
when you define a season. That way it is re-usable in a number of
places. To do this you edit the season (date range) in the Home View
and can set the Starting LTS.
3.6 Why is elevation different in GoldenCheetah to my other training software / website?
========================================================================================
Different programs will use different hysteresis values to smooth the
small changes in altitude. In GC we use a hysteresis value of 3m.
If this is of great concern you can adjust the hysteresis value in
preferences under the general tab.
3.7 Why is a metric e.g. TSS or average power different in GoldenCheetah to Garmin Connect?
===========================================================================================
The algorithms for calculating TSS, AP etc are static. They are
implemented exactly the same way in GoldenCheetah, Garmin Connect,
TrainingPeaks etc. The algorithms are extremely simple and not prone to
difficulty in implementation.
However, how each application treats pauses and stops or loss of data
accounts for most differences. In GoldenCheetah we always calculate
AP,TSS etc including stop time. Other applications choose to ignore or
smooth segments of short duration.
In addition, if there are anomalies in your data, with large gaps or
even time going backwards, this will drastically affect GoldenCheetah's
calculations.
We NEVER attempt to interpret data anomalies - if the results are not
as you would expect you will need to correct the data. We do not
'silently' fix the data for you. There is no secret sauce in
GoldenCheetah, we are open and transparent with your data.
3.8 How do I set the metrics shown for intervals in the various summaries?
==========================================================================
In the GoldenCheetah preference pane under the Metrics tab you can
choose the metrics that will be shown in the ride summary charts and
the metrics that will be shown in the interval summary in the analysis
sidebar.
3.9 How do I add a metric to the details screen (so I can override it) ?
========================================================================
If the metric you want (e.g. TSS) is not shown then you will need to
add it via the GoldenCheetah preferences pane. On Mac this is from the
menu option GoldenCheetah->Preferences whilst on Windows and Linux it
is under Tools->Options.
You will need to select 'Data Fields' option from preferences toolbar
and then the 'fields' tab. You will see a list of fields that are
associated with a particular screen tab. If you scroll down you should
find entries for the 'Metrics' screen tab, you can insert a new entry
here with the '+' button. You should make sure the new entry is called
exactly the same thing as the metric in question.
For 'TSS' this is relatively straight forward. For others, e.g.
'Average Heart Rate' you must make sure that the name includes spaces
etc. Once your metric has been added to the configuration you should
save that and return to the details screen where you can now maintain
it.
If you are creating a manual entry then there is no 'details' tab in
the dialog. Once you have created the entry (and again in this case TSS
can be entered in the dialog) you should go to the details tab to
maintain any other specific fields. The manual entry dialog is designed
to be simple and accept only the most common of entries.
3.10 Can you calculate gradient, virtual power or other derived series from the ride data?
==========================================================================================
Not in 3.0. We may introduce derived data series in the future.
3.11 Can I export metrics or access the metric database GC uses?
================================================================
The metrics are stored within a Sqlite 3 Database called 'metricDBv3'
that can be found in the athlete directory. You can use any Sqlite 3
tools to query and work with the db.
Alternatively you can export the db in its entirety using the
Activity->Export Metrics as CSV to export to a format you can use in a
spreadsheet program.

File: GC3-FAQ.info, Node: DATA, Next: UPLOADING AND DOWNLOADING, Prev: METRICS, Up: Top
4 DATA
******
4.1 How do I split, merge or join files?
========================================
You can split a file by time using the activity->split ride menu item
(or toolbar button).
To join two rides together (making one longer ride from two rides) you
can copy rows in the activity editor and paste special in the ride
editor (right click) and then select append mode.
If you wish to merge rides, that is much harder and would need to be
performed outside of GC or by cutting and pasting columns in the
activity editor.
4.2 How can I find 'spikes' or specific values in activity data?
================================================================
The activity editor has a function to find data on its toolbar. You can
specify a range or upper or lower limit and find values less than,
greater than or between a range of values.
Additionally, the editor will scan the file looking for anomalies -
where the data appears to be out of normal ranges. These are shown with
a wiggly red line in the editor and can also be listed by clicking on
the anomalies icon on the editor toolbar.
If the anomalies icon is not enabled on the toolbar then there are no
anomalies in the currently selected ride.
4.3 How can I fix 'spikes' or 'anomalies' in activity data?
===========================================================
You can either manually edit the values in the activity editor (there
is full undo and redo in the editor). Or you can use the fix tools that
are listed under the tool menu option (fix power spikes, fix gaps in
recording, fix gps errors, fix torque.
Each of the fix tools opens a dialog that displays texts to explain
what the fix tool does.
4.4 How can I add/remove a field to edit on the details screen?
===============================================================
The fields (metadata) that is editable can be configured in the
preferences pane under the data fields tab. Where no screen is
specified (its left blank) it will not be made available.
GoldenCheetah ships with a number of fields defined in the config but
with no screen set. If you wish to use them simply set the screen tab
to the tab you would like it to be shown on. To remove a field set the
field tab to blank.
4.5 What are 'special fields' ?
===============================
There are a number of fields that when maintained in the details screen
will be used elsewhere in the code to calculate metrics or for other
purposes.
Some examples include;
Weight - used in W/KG calculations, Sport and Workout code are used
when exporting to other file formats, Identifier is used to assign a
UUID to the activity when it is uploaded to online services and so
on.
There is a full list of special fields and their meaning in the Golden
Cheetah user guide appendices.
4.6 How do I find/add/sort/delete/edit intervals ?
==================================================
The context menu (on the right hand side of the splitter handle) for
the interval sidebar in Analysis view contains a number of options for
working with intervals.
Additionally, you can click and drag on the performance (aka ride) plot
to visually define an interval.
4.7 How can I export to a specific file format?
===============================================
Activity->Export allows you to export the activity to csv, fitlog, gc
(xml), json, Training Peaks PWX or Garmin TCX format.
4.8 Can I use GC to convert data from one format to another on the command line?
================================================================================
No. It is something we may add in v3.1
4.9 Can I delete an athlete and all his/her data?
=================================================
No. It must be done manually by removing the athlete directory via the
operating system. Please ensure you do this when GoldenCheetah is not
running.

File: GC3-FAQ.info, Node: UPLOADING AND DOWNLOADING, Next: SEASONS AND EVENTS, Prev: DATA, Up: Top
5 UPLOADING AND DOWNLOADING
***************************
5.1 Why does upload to TrainingPeaks keep failing?
==================================================
The Sport field in TrainingPeaks must have very specific values,
although this is not documented in the XML Schema. We recommend using a
sport of "Bike" if you plan on uploading rides to training peaks.
5.2 Why does download from TrainingPeaks say I need a premium account?
======================================================================
Training Peaks only allow paid up members to get access to their data.
If you are using a free service they do not let you retrieve your data.
5.3 Why is data uploaded to Strava all wrong?
=============================================
In general Strava will only use GPS data. If your ride does not contain
GPS data then Strava is not likely to play nice. In addition many of
the other data series will be ignored. This is related to Strava data
processing in V2.0 of their API.
We always upload as TCX since the JSON flavour of their API appears to
have less functionality.
5.4 What settings do I need to get GoldenCheetah to upload to my Google Calendar?
=================================================================================
The upload to Google Calendar uses their CalDAV API, and as such needs
to specify a collection. This means when entering the details in the
passwords pane of preferences you should use the following for the
caldav url:
`https://www.google.com/calendar/dav/xxxx@gmail.com/events/'
Where xxxx is your username. The username will need to be repeated in
the username field and obviously set the password too.
5.5 When setting up my Withings wifi scales where do I get the userid and key ?
===============================================================================
You will need to login to your Withings account
(`http://my.withings.com') and click on the `share' button at the top
of the dashboard. From there you will get a popup box with lots of
options.
If you click on `share on my website' you will be greeted with a number
of code snippets you can embed in a web page. If you look closely in
the top right hand corner there will be a box containing the user id
and public key. These are the two values you need to enter into the
options dialog.
You will now be able to retrieve withings data via the tools menu.

File: GC3-FAQ.info, Node: SEASONS AND EVENTS, Next: CHARTS, Prev: UPLOADING AND DOWNLOADING, Up: Top
6 SEASONS AND EVENTS
********************
6.1 Why are there different types of seasons?
=============================================
This is to help with planning functions. As of v3 there is no real
distinction made. Adhoc seasons are expected to be used solely as date
ranges and have no associated plan. Whilst other season types may
contain plans. This is only relevant for planning functions that are
not available yet.
6.2 What is event used for?
===========================
It is only used to annotate a LTM chart - so you can show an 'event'
that happened at a particular date. There are no rules about what
constitutes and event. It could be a race, a training camp or just a
day that was particularly meaningful e.g. illness, crash.
6.3 How do create/edit/delete seasons and events?
=================================================
Seasons and Events are created and edited in the sidebar for the Home
view. Seasons are listed under date ranges, whilst events are listed
under the events sidebar item. In both cases they can be created and
deleted from the sidebar item's drop down menu.
Please note that in v3.0 events can only be created when a user season
is selected, since events are associated with a particular season. This
constraint will be removed in v3.1.

File: GC3-FAQ.info, Node: CHARTS, Next: INDEX, Prev: SEASONS AND EVENTS, Up: Top
7 CHARTS
********
7.1 I want to plot month -1,-2 and -3 how do I do that?
=======================================================
Assuming the chart allows you to specify a date range you can select
'This' 'month' and select prior '3' to specify a month 3 years prior,
similarly 'This' 'month' and prior '2' is a month 2 months ago, whilst
'This' 'month' and prior '1' is last month.
'This' 'month' prior and 0 is just this month.
7.2 How does the mean max chart calculate CP when showing power?
================================================================
The CP algorithm searches your best power for two durations; for
anaerobic efforts it looks between 15s and 1min, for aerobic it looks
for best efforts between 10mins and an hour.
Once it has found these two best values it will curve fit the two to
enable the 60min value to be extracted. Bear in mind this is a
theoretical number and as described above is applicable to the
BikeScore algorithm. The value for FTP that the TSS algorithm requires
is simply the highest value for 60mins for the time period, assuming
you have performed a 60minute test recently.
7.3 How should I use Aerolab?
=============================
The following is a brief piece of advice from Robert Chung, from a
discussion on the Golden Cheetah Users mailing list:
Ideally, you'll want calm conditions (both in terms of wind and
traffic) but here's a quickie test you can do just to get a handle
on what to do. Try to find a loop without stop signs, or an
out-and-back with maybe a little dip or something in the middle. Make
sure you won't get hit by a car and have good sight lines. I just go
around my block a few times. Do a loop in the drops, then another
loop faster, then a loop slower; then repeat with your hands on the
hoods.
Weigh yourself and the bike and ballpark the air density.
See whether you can come close to modeling the "true" elevation profile
by sliding the CdA slider around. Even with this informal test, as
long as the wind isn't blowing too hard, you ought to be able to
see a difference between the loops where you were in the drops and
the loops where you on the hoods, and to spot little bumps and dips in
the road.
There is also an overview of Virtual Elevation to measure aerodynamics
in this YouTube video from the power seminar at Interbike 2011 given by
Jim Meyer the founder of Quarq:
`http://www.youtube.com/watch?v=b8tJnFE_BFg&feature=youtu.be&t=27m58s'
Finally, Robert Chung's original paper is included in the docs section
of the GoldenCheetah repository, you can it up here (click on 'View
Raw' to download):
`https://github.com/GoldenCheetah/GoldenCheetah/blob/master/doc/contrib/ChungVE.pdf'
7.4 My map doesn't show?
========================
This is most likely because you have a proxy that requires
authentication or session details. We do not have sophisticated support
for internet proxy servers. We will re-use the operating system
settings where they are configured.
7.5 What is the treemap plot used for?
======================================
Typically it is used to visualise where you spend your time or where
you get best results. It is not particularly useful if you do not
maintain details for each ride e.g. workout code, sport et al.
7.6 Can I change the colors in plot x ?
=======================================
With the exception of the Long Term Metric plots the colours on the
charts are configured in the GoldenCheetah preferences pane.
We want to use the same colours to plot each data series across the
charts, so you can change them globally.
The only colours you cannot change are the colours assigned to
intervals when plotting them on scatterplot or PfPv. These colours are
assigned according to their sequence.
7.7 How do you zoom in on a chart?
==================================
You can zoom in on the distribution, scatterplot and PfPv charts by
selecting the zoom area with the left click of the mouse.
On the performance (ride) plot you can zoom with the span slider at the
bottom of the chart (if you select the full plot in the chart settings).
There are no other zoom options for the other charts.
7.8 I zoomed in but can't zoom out?
===================================
Right click will zoom back out to the previous zoom level (in the case
of zooming multiple times). If you select another activity the chart
will return to fully zoomed out.
7.9 GoldenCheetah is saying there is no data for a chart, but I'm sure there is?
================================================================================
You should check in the editor if the data series is present. if the
activity is a manual activity entry it will contain no data.

File: GC3-FAQ.info, Node: INDEX, Next: MOST COMMON QUESTIONS OF ALL, Prev: CHARTS, Up: Top
Index
*****
[index]
* Menu:
* add: MOST COMMON QUESTIONS OF ALL.
(line 20)
* adhoc: SEASONS AND EVENTS. (line 9)
* Aerolab <1>: CHARTS. (line 33)
* Aerolab: MOST COMMON QUESTIONS OF ALL.
(line 69)
* algorithm: CHARTS. (line 19)
* anomalies: DATA. (line 23)
* AP: METRICS. (line 80)
* best: MOST COMMON QUESTIONS OF ALL.
(line 61)
* bug: GENERAL. (line 66)
* Chung: CHARTS. (line 33)
* clone: GENERAL. (line 40)
* colour <1>: CHARTS. (line 84)
* colour: MOST COMMON QUESTIONS OF ALL.
(line 115)
* contribute: GENERAL. (line 73)
* CP <1>: CHARTS. (line 19)
* CP: METRICS. (line 22)
* CSV: DATA. (line 88)
* CTL: METRICS. (line 63)
* cycle: SEASONS AND EVENTS. (line 9)
* Daniels: METRICS. (line 9)
* donate: GENERAL. (line 85)
* download <1>: UPLOADING AND DOWNLOADING.
(line 16)
* download: GENERAL. (line 31)
* elevation: METRICS. (line 71)
* EqP: METRICS. (line 9)
* event: SEASONS AND EVENTS. (line 18)
* feature: GENERAL. (line 66)
* FITLOG: DATA. (line 88)
* FTP: METRICS. (line 22)
* Garmin Connect: METRICS. (line 80)
* github: GENERAL. (line 40)
* Google: UPLOADING AND DOWNLOADING.
(line 33)
* install: GENERAL. (line 31)
* join: DATA. (line 9)
* JSON: DATA. (line 88)
* LTS: METRICS. (line 63)
* mail: GENERAL. (line 56)
* map: CHARTS. (line 69)
* merge: DATA. (line 9)
* month: CHARTS. (line 9)
* NP: METRICS. (line 9)
* options: MOST COMMON QUESTIONS OF ALL.
(line 106)
* override: METRICS. (line 110)
* PMC <1>: METRICS. (line 63)
* PMC: MOST COMMON QUESTIONS OF ALL.
(line 69)
* preferences: MOST COMMON QUESTIONS OF ALL.
(line 106)
* prior: CHARTS. (line 9)
* PWX: DATA. (line 88)
* remove: MOST COMMON QUESTIONS OF ALL.
(line 20)
* report: GENERAL. (line 66)
* season: SEASONS AND EVENTS. (line 9)
* settings: MOST COMMON QUESTIONS OF ALL.
(line 95)
* source: GENERAL. (line 40)
* spikes: DATA. (line 23)
* split: DATA. (line 9)
* Strava: UPLOADING AND DOWNLOADING.
(line 22)
* TCX: DATA. (line 88)
* trainer: METRICS. (line 50)
* TrainingPeaks: UPLOADING AND DOWNLOADING.
(line 9)
* treemap: CHARTS. (line 77)
* triathlete: GENERAL. (line 47)
* TSS <1>: METRICS. (line 80)
* TSS: MOST COMMON QUESTIONS OF ALL.
(line 9)
* unzoom: CHARTS. (line 108)
* upload: UPLOADING AND DOWNLOADING.
(line 9)
* VE: CHARTS. (line 33)
* weekly summary: MOST COMMON QUESTIONS OF ALL.
(line 81)
* weight: MOST COMMON QUESTIONS OF ALL.
(line 36)
* Withings: UPLOADING AND DOWNLOADING.
(line 46)
* xPower: METRICS. (line 9)
* zoom: CHARTS. (line 97)

Tag Table:
Node: Top164
Node: MOST COMMON QUESTIONS OF ALL609
Node: GENERAL6062
Node: METRICS9684
Node: DATA16676
Node: UPLOADING AND DOWNLOADING20606
Node: SEASONS AND EVENTS23090
Node: CHARTS24487
Node: INDEX29288

End Tag Table

BIN
doc/user/GC3-FAQ.pdf Normal file

Binary file not shown.

778
doc/user/GC3-FAQ.texinfo Normal file
View File

@@ -0,0 +1,778 @@
\input texinfo @c -*-texinfo-*-
@ifnotinfo
@input palatino
@end ifnotinfo
@c %**start of header
@setfilename FAQ.texinfo
@settitle Golden Cheetah FAQ
@c %**end of header
@paragraphindent 0
@copying
This manual is for Golden Cheetah, version 3.0.
Copyright @copyright{} 2013 Mark Liversedge
@end copying
@titlepage
@title Golden Cheetah FAQ
@c @subtitle subtitle-if-any
@c @subtitle second-subtitle
@author Mark Liversedge
@c The following two commands
@c start the copyright page.
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage
@c So the toc is printed at the start.
@contents
@ifnottex
@node Top,Top,Top,
@top title
This manual is for GoldenCheetah, version 3.0.
@end ifnottex
@menu
* MOST COMMON QUESTIONS OF ALL:: Most common questions
* GENERAL:: General Questions
* DATA:: Working with Data
* METRICS:: Working with Metrics
* UPLOADING AND DOWNLOADING:: Uploading and Downloading Data
* SEASONS AND EVENTS:: Seasons and Events
* CHARTS:: Configuring and Using Charts
* INDEX:: Index
@end menu
@node MOST COMMON QUESTIONS OF ALL,GENERAL,INDEX,Top
@chapter MOST COMMON QUESTIONS OF ALL
@section How do I override / manually enter TSS for a ride?
@cindex TSS
The details chart on the analysis view allows you to override metrics on the metrics tab.
By default the most common metrics are listed, including average HR, distance and so on.
From v3.0 the default setup will also include TSS as a metric you can override here.
If the metric is not there you will need to configure GoldenCheetah to allow it to be shown.
This is simple to do and described in 3.9 below.
@section How do I add or remove a chart?
@cindex add
@cindex remove
To add a new chart to the view you can select from the + menu on the right hand side of
the scope bar (the scope bar is underneath the toolbar and lets you select from Home,
Analysis, Train etc).
Depending upon which view you are on the charts available will differ. For example realtime
plots only appear on the Train view, whilst charts that work with individual rides will only
appear on the analysis view.
To remove a chart, when you mouse over a chart (in tabbed or tiled mode) a small triangle
will appear in the top left of the chart. This is a menu drop down, if you click on it
you will see a `Close' option. This is the option to remove (close) the chart.
@section Can I enter my weight and track/plot it?
@cindex weight
Weight can be maintained in 3 ways;
@itemize @bullet
@item Every athlete is setup with a weight value -- this is the fallback value should no
other weight measure be available. It can be found under preferences and athlete.
@item The 'Weight' field can be maintained in the details screen. This is found on the
'Workout' tab in the details screen by default. Any entry here will be used for this ride
ONLY.
@item You can download weight from a withings scale. This is performed manually via the
menu option Tools->Get Withings Data. This is then used to update the local measures
database.
@end itemize
When calculating W/KG the Activity value is used if present, if not we then fall back to
the last Withing measure that was collected, and if that is not available we then fall
back to the default value for the athlete.
The weight from withings and weight from the activity can both be plotted separately in
the LTM plots.
@section How do I plot x sec power best?
@cindex best
As of v3.0 it is still not possible to plot custom durations for power bests. We are
looking to add this in version 3.1, but for now you can only plot 1s, 5s, 10s, 15s, 20s,
30s, 1min, 2min, 5min, 10min, 20min, 30min and 60min bests.
@section I can't find Aerolab / Performance Manager?
@cindex Aerolab
@cindex PMC
By default we do not add these charts to the layout. Aerolab can be added to the Analysis
view via the '+' menu found to the right hand side of the GoldenCheetah scope bar.
Similarly, the Performance manager can be added to the Home layout via the '+' menu. We
may deprecate this chart in the near future since the LTM charts can be used to plot a PMC
and we expect to implement an interactive PMC for planning in v3.1.
@section What happened to weekly summary?
@cindex weekly summary
It has been deprecated since the Diary view allows you to summarise by day, week and month
and add charts to the view that summarise for the selection. As the weekly summary was fixed
on specific charts and did not handle other selections (e.g. monthly) it has been deprecated
in view of the diary view.
At present you can treat the Diary view as you would have the weekly summary -- they offer
the same functionality. We expect the diary view to extend to planned workouts when we
implement planning functionality in v3.1.
@section Where are all the chart settings?
@cindex settings
All chart settings can be found under the drop down menu that appears in the top left hand
corner of a chart when you mouse over it. They will appear as a popup dialog box.
Additionally, when you move the cursor towards the title of a chart in a view that is tabbed
(not tiled) then a small selection of the most important settings for the chart will appear
for convenience.
@section Where is the preferences / options panel?
@cindex preferences
@cindex options
On a Mac the configurations page can be found under 'GoldenCheetah -> Preferences' on the
main menu. Whilst on all other platforms it is found via 'Tools -> Options'.
We do this to match the general guidelines for the operating system.
@section How do I change the colour of the rides on the calendar/list?
@cindex colour
Activities are coloured according to keywords embedded in their details (metadata) you can
configure the field that is used and the values that are matched and the colours they are
shown in from the preferences pane via the 'Data Fields' toolbar option then select Notes
Processing. The keywords and related words are scanned for to determine if the associated
colour should be used for this ride.
They are processed in the order they are defined with the first match being returned. Take
care when using values such as 'TT' and 'race' since these can also be part of an English
word (e.g. ATTEMPT contains 'TT' and graceful contains 'race'.
@node GENERAL,METRICS,MOST COMMON QUESTIONS OF ALL,Top
@chapter GENERAL
@section What is GoldenCheetah?
GoldenCheetah is primarily a program for cyclists that own a power meter. It allows them to
record, track and review their performance against recorded data. It also allows you to ride
your turbo and collect data as you ride.
If you do not have a power meter then some of the functionality will not be of use to you
as a cyclist. But you can still record and track progress. We support HR based TRIMP metrics
for a HR based PMC for example.
@section What is a good book or resource on training with power?
Unquestionably the bible for working with a power meter is Training and Racing with a Power
Meter by Hunter Allan and Andy Coggan. Make sure you look at the 2nd edition since it is
revised quite dramatically. Whilst it is heavily biased towards WKO+ as a software package
most of the functions of note are also available in GoldenCheetah.
@section Where can I download the installer for GoldenCheetah ?
@cindex download
@cindex install
Stable releases are available from @url{http://www.goldencheetah.org} whilst the latest and greatest
code build is available from @url{http://goldencheetah.stand2surf.net}. Development builds are for the
brave, since they may contain bugs. In reality the development builds are a changing feast
and often contain latest fixes too.
@section Where can I get the source code?
@cindex source
@cindex github
@cindex clone
The GoldenCheetah source code is hosted on github and can be cloned using the following url;
@code{git://github.com/GoldenCheetah/GoldenCheetah.git}
@section I am a triathlete is GoldenCheetah appropriate for me?
@cindex triathlete
GoldenCheetah is not a multi-sport program. For tracking cycling performance it is a good
choice. But if you are looking for running and swimming metrics and tracking then these
features are not available at present. It is an excellent choice for analysing cycling
aspects of triathlon, or working on the trainer.
@section Is there a mailing list?
@cindex mail
The mailing list for GoldenCheetah users is maintained via Google Groups at
@url{http://groups.google.com/forum/?fromgroups=#forum/golden-cheetah-users} the first post you
make is moderated and may take a while to appear. Once your first post is made you can
make future posts without moderation.
@section How do I report a bug or request a new feature?
@cindex feature
@cindex bug
@cindex report
We use Github issues to record bugs and feature requests. You will need to create an
account on github and then post a new request or bug at
@url{http://www.github.com/GoldenCheetah/GoldenCheetah/issues}
@section How can I contribute?
@cindex contribute
Patches are most welcome via the mailing list or a pull request in github. Of equal
importance is the timely reporting of bugs and help in testing fixes. We also desperately
need volunteers to translate into non-English languages and help with writing documentation
including the maintenance of this FAQ.
If you want to help, post a note on the golden-cheetah-users mailing list.
@section Can I donate to the project?
@cindex donate
We are an open source project. Our software is developed by a community. We do not have
any facility to collect funding or spend it! We would rather you spread the word if you
think our software is good, and maybe help out with documentation, tutorials or
translations if you can.
@node METRICS,DATA,GENERAL,Top
@chapter METRICS
@section What is the difference between xPower, NP and Daniels EqP?
@cindex xPower
@cindex NP
@cindex Daniels
@cindex EqP
They all serve the same purpose -- to express the variable power you have generated over
a given period of time as a single value. This is so you can quantify the intensity of
the ride and therefore the training stress of the ride.
In practice, NP and xPower are largely the same, whilst Daniels EqP place much higher
emphasise on upper intensity work. For more info on xPower see Dr Skiba's paper on BikeScore
@url{http://www.physfarm.com/bikescore.pdf}
@section What is the difference between CP and FTP?
@cindex CP
@cindex FTP
CP is a shorthand for CP60 in GoldenCheetah, and is computed using the Scherer/Monod
protocol using 3 and 20 minutes. Functional Threshold Power (FTP) is an actual measure of
the power an athlete sustains for 60 minutes.
Since it is very difficult for an athlete to maintain the desired intensity FTP 'reality'
tends to result in a number that is much lower than CP 'theory'. Often users will
consider the two as the same.
In GC we compute TSS and BikeScore using your 'CP' value. If you set it to your FTP value
TSS will be accurate, BikeScore is likely to be lower. And if you set it to your CP value
BikeScore will be accurate, but TSS will be overstated.
@section Why does my CP chart show higher watts for a longer duration?
@cindex CP
A higher power average for a longer time is possible if an effort has been "book ended".
If, for example, you did a massive 30 second effort, followed by freewheeling for 29:30
then another massive 30 second effort, then your best average for a continuous 30 minutes
would in fact be lower that your best average for a continuous 30minutes and 30 seconds.
(Thanks for Jon Hill from the Golden Cheetah Users mailing list for this example).
@section Can I set a different CP/FTP for different reasons e.g. CP/FTP on a trainer?
@cindex CP
@cindex FTP
@cindex trainer
We allow you to override the CP value for a specific ride by setting the "CP" field to
the value you wish to use for the ride in question. We do not have a concept of 'separate'
Cps for different purposes -- you will need to specify the CP when the data is imported
into GC. But this allows you to make manual adjustments.
We provide this functionality at user request -- we do not endorse the concept of multiple
CP values. But we do recognise the ongoing debate regarding physiological stress from
working on a trainer vs on the road.
@section How do I seed the CTL for my PMC?
@cindex PMC
@cindex CTL
@cindex LTS
You can seed the starting CTL (we call it LTS, for long term stress) when you define a
season. That way it is re-usable in a number of places. To do this you edit the season
(date range) in the Home View and can set the Starting LTS.
@section Why is elevation different in GoldenCheetah to my other training software / website?
@cindex elevation
Different programs will use different hysteresis values to smooth the small changes in
altitude. In GC we use a hysteresis value of 3m.
If this is of great concern you can adjust the hysteresis value in preferences under the
general tab.
@section Why is a metric e.g. TSS or average power different in GoldenCheetah to Garmin Connect?
@cindex TSS
@cindex AP
@cindex Garmin Connect
The algorithms for calculating TSS, AP etc are static. They are implemented exactly the
same way in GoldenCheetah, Garmin Connect, TrainingPeaks etc. The algorithms are extremely
simple and not prone to difficulty in implementation.
However, how each application treats pauses and stops or loss of data accounts for most
differences. In GoldenCheetah we always calculate AP,TSS etc including stop time. Other
applications choose to ignore or smooth segments of short duration.
In addition, if there are anomalies in your data, with large gaps or even time going
backwards, this will drastically affect GoldenCheetah's calculations.
We NEVER attempt to interpret data anomalies -- if the results are not as you would expect
you will need to correct the data. We do not 'silently' fix the data for you. There is no
secret sauce in GoldenCheetah, we are open and transparent with your data.
@section How do I set the metrics shown for intervals in the various summaries?
In the GoldenCheetah preference pane under the Metrics tab you can choose the metrics
that will be shown in the ride summary charts and the metrics that will be shown in the
interval summary in the analysis sidebar.
@section How do I add a metric to the details screen (so I can override it) ?
@cindex override
If the metric you want (e.g. TSS) is not shown then you will need to add it via the
GoldenCheetah preferences pane. On Mac this is from the menu option
GoldenCheetah->Preferences whilst on Windows and Linux it is under Tools->Options.
You will need to select 'Data Fields' option from preferences toolbar and then the
'fields' tab. You will see a list of fields that are associated with a particular screen
tab. If you scroll down you should find entries for the 'Metrics' screen tab, you can
insert a new entry here with the '+' button. You should make sure the new entry is
called exactly the same thing as the metric in question.
For 'TSS' this is relatively straight forward. For others, e.g. 'Average Heart Rate' you
must make sure that the name includes spaces etc. Once your metric has been added to the
configuration you should save that and return to the details screen where you can now
maintain it.
If you are creating a manual entry then there is no 'details' tab in the dialog. Once
you have created the entry (and again in this case TSS can be entered in the dialog)
you should go to the details tab to maintain any other specific fields. The manual entry
dialog is designed to be simple and accept only the most common of entries.
@section Can you calculate gradient, virtual power or other derived series from the ride data?
Not in 3.0. We may introduce derived data series in the future.
@section Can I export metrics or access the metric database GC uses?
The metrics are stored within a Sqlite 3 Database called 'metricDBv3' that can be found
in the athlete directory. You can use any Sqlite 3 tools to query and work with the db.
Alternatively you can export the db in its entirety using the Activity->Export Metrics
as CSV to export to a format you can use in a spreadsheet program.
@node DATA,UPLOADING AND DOWNLOADING,METRICS,Top
@chapter DATA
@section How do I split, merge or join files?
@cindex split
@cindex merge
@cindex join
You can split a file by time using the activity->split ride menu item (or toolbar button).
To join two rides together (making one longer ride from two rides) you can copy rows
in the activity editor and paste special in the ride editor (right click) and then select
append mode.
If you wish to merge rides, that is much harder and would need to be performed outside
of GC or by cutting and pasting columns in the activity editor.
@section How can I find 'spikes' or specific values in activity data?
@cindex spikes
@cindex anomalies
The activity editor has a function to find data on its toolbar. You can specify a range
or upper or lower limit and find values less than, greater than or between a range of values.
Additionally, the editor will scan the file looking for anomalies -- where the data
appears to be out of normal ranges. These are shown with a wiggly red line in the editor
and can also be listed by clicking on the anomalies icon on the editor toolbar.
If the anomalies icon is not enabled on the toolbar then there are no anomalies in the
currently selected ride.
@section How can I fix 'spikes' or 'anomalies' in activity data?
@cindex spikes
@cindex anomalies
You can either manually edit the values in the activity editor (there is full undo and
redo in the editor). Or you can use the fix tools that are listed under the tool menu
option (fix power spikes, fix gaps in recording, fix gps errors, fix torque.
Each of the fix tools opens a dialog that displays texts to explain what the fix tool does.
@section How can I add/remove a field to edit on the details screen?
The fields (metadata) that is editable can be configured in the preferences pane under
the data fields tab. Where no screen is specified (its left blank) it will not be made
available.
GoldenCheetah ships with a number of fields defined in the config but with no screen set.
If you wish to use them simply set the screen tab to the tab you would like it to be
shown on. To remove a field set the field tab to blank.
@section What are 'special fields' ?
There are a number of fields that when maintained in the details screen will be used
elsewhere in the code to calculate metrics or for other purposes.
Some examples include;
Weight - used in W/KG calculations, Sport and Workout code are
used when exporting to other file formats, Identifier is used to assign a UUID to the
activity when it is uploaded to online services and so on.
There is a full list of special fields and their meaning in the Golden Cheetah user
guide appendices.
@section How do I find/add/sort/delete/edit intervals ?
The context menu (on the right hand side of the splitter handle) for the interval
sidebar in Analysis view contains a number of options for working with intervals.
Additionally, you can click and drag on the performance (aka ride) plot to visually
define an interval.
@section How can I export to a specific file format?
@cindex PWX
@cindex JSON
@cindex TCX
@cindex CSV
@cindex FITLOG
Activity->Export allows you to export the activity to csv, fitlog, gc (xml), json,
Training Peaks PWX or Garmin TCX format.
@section Can I use GC to convert data from one format to another on the command line?
No. It is something we may add in v3.1
@section Can I delete an athlete and all his/her data?
No. It must be done manually by removing the athlete directory via the operating
system. Please ensure you do this when GoldenCheetah is not running.
@node UPLOADING AND DOWNLOADING,SEASONS AND EVENTS,DATA,Top
@chapter UPLOADING AND DOWNLOADING
@section Why does upload to TrainingPeaks keep failing?
@cindex TrainingPeaks
@cindex upload
The Sport field in TrainingPeaks must have very specific values, although this is not
documented in the XML Schema. We recommend using a sport of "Bike" if you plan on
uploading rides to training peaks.
@section Why does download from TrainingPeaks say I need a premium account?
@cindex TrainingPeaks
@cindex download
Training Peaks only allow paid up members to get access to their data. If you are
using a free service they do not let you retrieve your data.
@section Why is data uploaded to Strava all wrong?
@cindex Strava
In general Strava will only use GPS data. If your ride does not contain GPS data then
Strava is not likely to play nice. In addition many of the other data series will be
ignored. This is related to Strava data processing in V2.0 of their API.
We always upload as TCX since the JSON flavour of their API appears to have less
functionality.
@section What settings do I need to get GoldenCheetah to upload to my Google Calendar?
@cindex Google
The upload to Google Calendar uses their CalDAV API, and as such needs to specify a
collection. This means when entering the details in the passwords pane of preferences
you should use the following for the caldav url:
@url{https://www.google.com/calendar/dav/xxxx@@gmail.com/events/}
Where xxxx is your username. The username will need to be repeated in the username
field and obviously set the password too.
@section When setting up my Withings wifi scales where do I get the userid and key ?
@cindex Withings
You will need to login to your Withings account (@url{http://my.withings.com}) and
click on the `share' button at the top of the dashboard. From there you will get a
popup box with lots of options.
If you click on `share on my website' you will be greeted with a number of code
snippets you can embed in a web page. If you look closely in the top right hand
corner there will be a box containing the user id and public key. These are the
two values you need to enter into the options dialog.
You will now be able to retrieve withings data via the tools menu.
@node SEASONS AND EVENTS,CHARTS,UPLOADING AND DOWNLOADING,Top
@chapter SEASONS AND EVENTS
@section Why are there different types of seasons?
@cindex season
@cindex adhoc
@cindex cycle
This is to help with planning functions. As of v3 there is no real distinction made.
Adhoc seasons are expected to be used solely as date ranges and have no associated plan.
Whilst other season types may contain plans. This is only relevant for planning
functions that are not available yet.
@section What is event used for?
@cindex event
It is only used to annotate a LTM chart -- so you can show an 'event' that happened at
a particular date. There are no rules about what constitutes and event. It could be a
race, a training camp or just a day that was particularly meaningful e.g. illness, crash.
@section How do create/edit/delete seasons and events?
@cindex event
@cindex season
Seasons and Events are created and edited in the sidebar for the Home view. Seasons are
listed under date ranges, whilst events are listed under the events sidebar item. In
both cases they can be created and deleted from the sidebar item's drop down menu.
Please note that in v3.0 events can only be created when a user season is selected, since
events are associated with a particular season. This constraint will be removed in v3.1.
@node CHARTS,INDEX,SEASONS AND EVENTS,Top
@chapter CHARTS
@section I want to plot month -1,-2 and -3 how do I do that?
@cindex month
@cindex prior
Assuming the chart allows you to specify a date range you can select 'This' 'month'
and select prior '3' to specify a month 3 years prior, similarly 'This' 'month' and
prior '2' is a month 2 months ago, whilst 'This' 'month' and prior '1' is last month.
'This' 'month' prior and 0 is just this month.
@section How does the mean max chart calculate CP when showing power?
@cindex CP
@cindex algorithm
The CP algorithm searches your best power for two durations; for anaerobic efforts it
looks between 15s and 1min, for aerobic it looks for best efforts between 10mins and
an hour.
Once it has found these two best values it will curve fit the two to enable the
60min value to be extracted. Bear in mind this is a theoretical number and as described
above is applicable to the BikeScore algorithm. The value for FTP that the TSS algorithm
requires is simply the highest value for 60mins for the time period, assuming you have
performed a 60minute test recently.
@section How should I use Aerolab?
@cindex Aerolab
@cindex Chung
@cindex VE
The following is a brief piece of advice from Robert Chung, from a discussion on the
Golden Cheetah Users mailing list:
Ideally, you'll want calm conditions (both in terms of wind and traffic) but here's a
quickie test you can do just to get a handle on what to do. Try to find a loop without
stop signs, or an out-and-back with maybe a little dip or something in the middle. Make
sure you won't get hit by a car and have good sight lines. I just go around my block a
few times. Do a loop in the drops, then another loop faster, then a loop slower; then
repeat with your hands on the hoods.
Weigh yourself and the bike and ballpark the air density.
See whether you can come close to modeling the "true" elevation profile by sliding the
CdA slider around. Even with this informal test, as long as the wind isn't blowing too
hard, you ought to be able to see a difference between the loops where you were in the
drops and the loops where you on the hoods, and to spot little bumps and dips in the road.
There is also an overview of Virtual Elevation to measure aerodynamics in this
YouTube video from the power seminar at Interbike 2011 given by Jim Meyer the founder
of Quarq:
@url{http://www.youtube.com/watch?v=b8tJnFE_BFg&feature=youtu.be&t=27m58s}
Finally, Robert Chung's original paper is included in the docs section of the GoldenCheetah
repository, you can it up here (click on 'View Raw' to download):
@url{https://github.com/GoldenCheetah/GoldenCheetah/blob/master/doc/contrib/ChungVE.pdf}
@section My map doesn't show?
@cindex map
This is most likely because you have a proxy that requires authentication or session
details. We do not have sophisticated support for internet proxy servers. We will
re-use the operating system settings where they are configured.
@section What is the treemap plot used for?
@cindex treemap
Typically it is used to visualise where you spend your time or where you get best
results. It is not particularly useful if you do not maintain details for each ride
e.g. workout code, sport et al.
@section Can I change the colors in plot x ?
@cindex colour
With the exception of the Long Term Metric plots the colours on the charts are
configured in the GoldenCheetah preferences pane.
We want to use the same colours to plot each data series across the charts, so you
can change them globally.
The only colours you cannot change are the colours assigned to intervals when plotting
them on scatterplot or PfPv. These colours are assigned according to their sequence.
@section How do you zoom in on a chart?
@cindex zoom
You can zoom in on the distribution, scatterplot and PfPv charts by selecting the zoom
area with the left click of the mouse.
On the performance (ride) plot you can zoom with the span slider at the bottom of the
chart (if you select the full plot in the chart settings).
There are no other zoom options for the other charts.
@section I zoomed in but can't zoom out?
@cindex zoom
@cindex unzoom
Right click will zoom back out to the previous zoom level (in the case of zooming
multiple times). If you select another activity the chart will return to fully
zoomed out.
@section GoldenCheetah is saying there is no data for a chart, but I'm sure there is?
You should check in the editor if the data series is present. if the activity is a
manual activity entry it will contain no data.
@node INDEX,MOST COMMON QUESTIONS OF ALL,CHARTS,Top
@unnumbered Index
@printindex cp
@bye

BIN
doc/user/GC3-Manual.pdf Normal file

Binary file not shown.

898
doc/user/GC3-Manual.texinfo Normal file
View File

@@ -0,0 +1,898 @@
\input texinfo @c -*-texinfo-*-
@ifnotinfo
@input palatino
@end ifnotinfo
@c %**start of header
@setfilename GC3-Manual.texinfo
@settitle Golden Cheetah User Manual
@c %**end of header
@paragraphindent 0
@copying
This manual is for Golden Cheetah, version 3.0.
Copyright @copyright{} 2013 Mark Liversedge
@end copying
@titlepage
@image{"image/0-icon",140pt,140pt}
@vskip 20pt
@title Golden Cheetah User Manual
@c @subtitle subtitle-if-any
@c @subtitle second-subtitle
@author Mark Liversedge
@c The following two commands
@c start the copyright page.
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage
@c So the toc is printed at the start.
@contents
@c ********************************************************************************
@c Welcome chapter
@c ********************************************************************************
@chapter WELCOME TO GOLDENCHEETAH
@node WELCOME
@vskip 6pt
@center @strong{GoldenCheetah is an open source program for cyclists.}
@vskip 12pt
In fact, it is primarily a program for cyclists with a power meter. It provides functions
to download, import, edit, upload and analyse rides containing power data.
It can be used to analyse bike rides that do not contain power, perhaps containing speed,
cadence or GPS data. It can be used to analyse other kinds of workouts, perhaps run or
swim activities. It can be used purely as a log or journal for any activity.
@vskip 12pt
@center @strong{GoldenCheetah is primarily an open source program for cyclists that own a power meter.}
@vskip 12pt
In addition to the post-workout analysis it can also be used as a desktop application to
record and monitor workouts on a cycle trainer. It captures telemetry from ANT+ sensors
and can also work directly with Bike trainers that provide the right kind of interface.
In this manual we will be explaining how to use and configure the functions within GoldenCheetah.
We will be describing it from the perspective of a bike rider. In all cases we will be describing
how the functions within GoldenCheetah work, and how to configure them.
This is not a manual on how to train with power. We would urge you to read other books for that
kind of information and would recommend `Racing and Training with a Power Meter' by
Dr Andrew Coggan and Hunter Allan.
@section About this latest version, V3.0
This manual has been written as a companion to the latest release of GoldenCheetah, v3.0.
Released in Spring 2013, it represented an overhaul of the code and was a major update.
If you are new to GoldenCheetah then all the functions it provides will be new to you, but
for existing users, version 3.0 had introduced;
@heading 500+ bug fixes and minor enhancements
It fixed 46 serious issues and over 400 bugs in over 1,500 different
commits. GoldenCheetah is now over 120,000 lines of code. In addition
to addressing stability issues it also addressed a number of performance
related issues. Whilst the new metric functionality and database means that
a modern PC is recommended, the code is still efficient enough to run on
a netbook.
@heading Redesigned UI and UX
One of the most immediate changes you will notice with v3.0 are the
major changes to the user experience and user interface. From the
initial help screens for new users through to the redesigned preferences
pane for advanced users, it is more complete and more professional.
There are 4 views available with specific and detailed sidebars for
performance tracking (home), short term tracking (diary) as well as
the well known analysis and training views from earlier releases.
It now allows you to view charts tabbed and tiled, you can resize and
move charts around and customise them using roll-over controls. The
activity list is fully configurable and can be configured to show any
number of columns.
@heading Support for the latest bike computers
It supports direct download features for the Cyclops Joule and Joule GPS
as well as the latest SRM Powercontrol 6 and 7. We also added support for
the O-sync Macro and Macro X.
@heading Support for more telemetry
Alongside the support for the latest bike computers it also added the ability to
track and plot new data series, including; Headwind, LR Balance, Temperature and
Slope.
@heading Export and Batch Export as well as lots of new file formats
It will now export and batch export your data to a wide variety of file
formats include TCX, PWX, JSON and XML as well as FITLOG and GPX.
It also supports reading files from SportTracks, GPX, Tacx CAF and the
SLF/SMF file formats. We have also added legacy WKO+ file format support
(CP 1.0 and 1.1) as well as import of Wattbike TXT exports.
@heading Support for a wide selection of internet services
It can upload and download data from; Withings, Zeo, Strava, TrainingPeaks,
Training Stage Buch, RideWithGPS as well as Internet based calendars (calDAV)
such as Google Calendar.
@heading Realtime training significantly enhanced
Support has been added for native ANT+ removing the need for quarqd. Video Playback
is built in using VLC/QTKit. It now has a media library to organise and reference
any video content you may have from Tacx Ergvideos through Sufferfest.
It supports Virtual Power for popular devices from KK, LeMond and many other
trainers. We have added support for the amazing new Wahoo Fitness Kickr trainer
as well as the old Tacx Fortius.
It also introduces new ways to ride on the trainer including;
Streetview, SpinScan (on Computrainer) and an enhanced Workout Plot that plots
telemetry against the workout as you ride.
It also includes Computrainer calibration, a workout wizard and download
from ErgDB as well as Multi-device Support allowing you to ride with with
your ANT+ powermeter on your Computrainer, Kickr or Fortius.
@heading Advanced search and data filtering
It introduces free text search across all activities and a data filter (using the same search box)
to filter activities with specific properties. Some examples of using the filter might be
finding all rides with a TSS > 300 or perhaps those with an IF >0.9 and a duration of > 1hr.
The search and filter functions can be applied to the charts -- which means that
you can plot a PMC only where sport is "Bike" or perhaps power distribution but only
where the workout code is FTPTEST.
@heading Lots of new charts
It provides a new HR to Power analysis chart as well as a more utilitarian 2d scatter
plot. It will also use Bing as map provider for the Map chart.
The histogram and CP curve plots will now plot data for a date range rather than for
a specific ride and it will also now plot a mean max curve for HR, Power, Speed, Cadence,
xPower, VAM and NP.
@heading New metrics, including TrainingPeaks' TSS and NP
The TrainingPeaks metrics have been added to both the analysis functions as well as the
training functions (e.g. track TSS as you ride the trainer).
There are now over 100 different metrics and measures you can work with including things
like; Pace, Maximums, Gradient, VAM, wpk, time in HR Zones and many, many more.
@section Open Source
GoldenCheetah is an open source program. This means the source code is freely available to
download and compile. You can add new features and fix bugs. All we ask is that you then
share your work back to the main project.
This is how GoldenCheetah has developed since it was first created in 2006. Over 50 different
people have contributed new features and fixes in the 7 years since then.
@heading Mailing list
As you would expect there is an active community of users and developers, you can join the
discussion and contribute. The main GoldenCheetah website is @url{www.goldencheetah.org}
and the main mailing list is hosted on Google Groups and is called golden-cheetah-users.
@heading Reporting bugs and requesting new features
The code is hosted in a repository at GitHub. Github is an internet service hosting open
source and commercial code repositories for thousands of projects. In addition to hosting
projects GitHub also provides an issue tracker.
The issue tracker URL is: @url{github.com/GoldenCheetah/GoldenCheetah/issues}.
We use the GitHub issue tracker to manage all bug reports and feature requests. If you are
looking for a new feature or have experienced a problem using the software then you should
consider raising it on the issue tracker.
As a non-developer one of the most valuable contributions you can make to the project is to
provide accurate and informative bug reports. This makes it easier for the developers to fix
the code and in turn makes the software better for everyone.
@section Bit of Past and Present
In early 2006 a Cat 1 racer called Sean Rhea bought a Powertap. Back then power meters were not
very common. They certainly weren't very open. The software options were very limited. But
Sean was a bit of a geek.
He set about reverse engineering the protocol the Powertap used to communicate with the PC and
he developed a couple of command line utilities in the C programming language; `ptdl' and `ptunpk'.
These utilities downloaded data from a Powertap via its serial interface saving to `raw' files
on disk, and then read that raw file and formatted the output for inputting into GNU plot.
But it soon became clear that using the command line was not at all user friendly. A GUI was
going to be required. And so, in late 2006 Sean set about writing a GUI version using the
QT framework and moving to the C++ language (because he needed to learn QT for his new job).
This early version had the main charts you see today, indeed a lot of that early code is still
present. It could plot the ride, histograms and the CP curve that it is famous for.
From 2007 with Sean leading many new people became involved and new features
were introduced; support for SRM using the libsrm project written by Rainer Clasen. Support for
Linux, Windows, Metrics, File Formats, Power Zones and a large number of new charts including
a Performance Manager written by Eric Murray. Google Map written by Greg Lonnon.
During this time the project moved from a `hack' project to a fully fledged open source development
project and saw Jamie Kimberley, Robert Carlsen and Justin Knotzke assist Sean in managing development
with the introduction of a bugs database and more formalised releases for Linux, Mac and Windows.
In Summer 2009 a lot of the current developers joined the project, notably Damien Grauser who added
much needed support for interval analysis and Mark Liversedge who contributed WKO+ file support and
the 3d plot. Over the next 12 months v2.0 was developed introducing the training View (with Justin Knotzke)
as well as the editor and tools, metadata and long term plotting charts.
At the tail end of 2010 Sean handed leadership of the project to Mark. Sean was no longer racing and most
develpoment was now being delivered by others anyway. So in January 2011 Mark merged a number of features
that were being developed in private into the main repository and thus V3 development began.
In Spring 2013, after 3 years of development version 3 was released, along with this user guide.
Version 3 is a landmark release and provides a platform for future development - the modular views and
configurable layouts means it will be very easy to introduce new functionality and concepts without
needing to adjust the underlying code. In short, v3 provides a future platform.
@section Future Plans
Version 3.1 is already being planned and the high priority features include;
@itemize @bullet
@item Planning functions centred around the concept of an interactive performance manager chart
where you set target events and physical adaptations or performance targets with a progression of
daily stress and long term stress.
@item Interval Analysis and Comparison across separate rides, to compare efforts and track and rank
performance in intervals or `segments' of rides and routes.
@item Season by Season progression to compare and rank performance development in cycles and seasons
across the long term charts, but also the critical power and distribution charts.
@item Separation of the training view into a separate program `OpenTrainer' to enable more advanced
graphical displays including video with overlay and animations.
@end itemize
Version 3.1, hopefully, will not take so long to come to fruition and is currently targetted for Spring
2014.
@c ********************************************************************************
@c Quick start guide
@c ********************************************************************************
@chapter QUICK START GUIDE
@node QUICK
For those of you that are new to GoldenCheetah this section gets you up and running
with the software and using its basic features. For those of you with experience of
GoldenCheetah from previous releases, you might like to skip this chapter.
@section Downloading and Installing
There are four ways to get GoldenCheetah onto your PC and available for use:
@itemize @bullet
@item @strong{Download a Stable release build} - We maintain a stable release binary for download and installation
on the GoldenCheetah website, at @url{www.goldencheetah.org/download}.
@item @strong{Download a Development build} - We also provide regular build updated of the
very latest code on the GoldenCheetah development build website, at @url{www.stand2surf.net}.
@item @strong{Build from Source} - Since we provide the source code for the program
you can get the source from GitHub and build your own. But unless you plan on
contributing to the project this is probably a pointless exercise. You
could just use the pre-built binaries described above.
@item @strong{Apt-get install} - If you are running a Linux distro you can get the GoldenCheetah
binary and dependencies installed via apt-get. It is worth noting that at the time of writing
the V3 build has not yet been packaged.
@end itemize
Once you have the binary installed you can go ahead and run it, it doesn't need any
configuration before you start.
@section Running for the first time
When you run GoldenCheetah for the very first time it will prompt you with the Athlete
selection dialog box. In GoldenCheetah we allow you to create as many athletes as you
like. This may sound like it is only useful for coaches, but in fact you may want to
set up a scratch athlete to play and learn.
Either way in this first run you will not have an athlete created, and will see a blank
dialog, asking you to select or create an athlete to work with:
@vskip 12pt
@center @image{"image/1-noathlete",140pt}
@center @emph{Figure 1: Initial Dialog}
@vskip 6pt
At this point you should go ahead and click `New...'. This will open another dialog
window to create a new athlete and set some basic data.
@vskip 12pt
@center @image{"image/1-newathlete",140pt}
@center @emph{Figure 2: New Athlete Dialog}
@vskip 6pt
Whilst it is possible to configure these values in preferences or within an individual activity
you should go ahead and set up as much of the data as accurately as possible. These values
are used as defaults in many metric calculations.
If you click on the blank athlete icon on the right it is possible to set an image for the athlete
too. This isn't used anywhere at present, but that may change in the future.
The LTHR value is the HR at which the onset of blood lactate accumulates, whilst the CP value is
the maximum theoretical watts you can hold for an hour. It is very similar to your FTP (if that
is a term you understand).
Once you're happy with the settings click save and you will then be able to select your new athlete
in that initial dialog (except of course there is now an athlete listed). Go ahead and open that
athlete and you wil be greeted with GoldenCheetah, but a splash page.
@vskip 12pt
@center @image{"image/1-blankstate",280pt}
@center @emph{Figure 3: Analysis view splash screen}
@vskip 6pt
This page is shown because there is no data associated with this athlete. We need to go ahead and
download some data from your bike computer or import some data from disk or USB.
@section Downloading a ride from device
If you use a Powertap, SRM, Joule, Joule GPS or Macro-X device you will be able to download from
it directly. Please make sure the device is conected and plugged in correctly. For example, if you
are downloading from a Powertap please make sure the computer is firmly connected and displays
`HOST' on its screen.
@vskip 12pt
@center @image{"image/1-download",210pt}
@center @emph{Figure 4: Download Dialog}
@vskip 6pt
To start the download go ahead and click the download from device button. This will open up the
download dialog. Select the right kind of device and serial port before clicking on the `Download'
button. If no serial port is listed, or the port is not correct you can click on the `Rescan'
button to look again for your device. This is sometimes required if you click on `Download' before
the device is connected.
Any ride files will then be downloaded and imported into GoldenCheetah and the splash screen will
disappear to reveal the Analysis view of GoldenCheetah. Congratulations - you can now start using
GoldenCheetah to analyse and track your performance.
@section Importing data from file
To import files into GoldenCheetah you have a couple of options. You can drag and drop them from
a file explorer or from the desktop into the main GoldenCheetah window, or you can select them via
the import files button on the splash screen. Once you have done either the import activity
wizard will appear to process the selected files.
@vskip 12pt
@center @image{"image/1-import",280pt}
@center @emph{Figure 5: Import Activity Wizard}
@vskip 6pt
You will notice that the files are opened first to ensure you have the required permissions to
read them before being validated. Once validated the dialog will prompt you to edit any of the dates
(some file formats do not include date information). Once you have set the dates (if needed) you can
click on save to complete the import and save the files to disk.
The splash screen will now disapper and reveal the main GoldenCheetah analysis view and you can
now start analysing and tracking your performance.
@c ********************************************************************************
@c Basic Navigation
@c ********************************************************************************
@chapter GETTING AROUND GOLDENCHEETAH
@node NAVIGATION
@vskip 12pt
@center @image{"image/2-mainwindow",280pt}
@center @emph{Figure 6: Main window elements}
@vskip 6pt
Regardless of whether you are training with your bike trainer, reviewing recent activities in the diary
or tracking long term performance in the home view, the GoldenCheetah layout is always the same.
Looking at the figure above you will see the following components;
@itemize @bullet
@item @strong{Menu Bar} - this contains all the menu options for GoldenCheetah. The screenshot shown is
from the Mac OSX version, but the menu bar is similar in modern Linux distributions. On Windows the menu
bar will be seen within the main window rather than at the top of the screen.
@item @strong{Tool Bar} - the toolbar contains buttons to get quick access to functions that also available
within the menu bar. We place them in the toolbar because they are used very commonly, and it is handy to be
able to get at them quickly and easily.
In V3 the toolbar is biased towards functions used during analysis, but this may change as we get more feedback
from users about what they use most commonly in the other views.
@item @strong{Scope Bar} - the scope bar is used to select the view. Each view offers different functionality as
their names suggest. Additionally there is a `+' menu to the right of the scope bar for adding charts to the view
selected.
@item @strong{Side Bar} - the side bar contains selections and lists that are most appropriate for what the user
is currently doing. It changes as different views are selected in the scope bar.
@item @strong{Main View} - selected via the scope bar the main view shows the charts and windows relevant to the
view in question. Analysis View contains analysis functions and so on. Note that the view can be shown in a tabbed
style or a scrolling set of tiles.
@end itemize
The only time the main window looks different to that shown above is when running for the first time or when no
data is available. In this case a `splash' screen is shown to assist new users in importing data or setting up
devices etc.
@page
@section The Menu Bar
The GoldenCheetah menu bar is no different to any other application. The only slight confusion is the location of the
preferences pane across platform. On Windows and Linux the preferences pane can be found as Tools->Options whilst
on a Mac it is found as GoldenCheetah->Preferences.
@strong{NOTE:} Each menu is now explained in the section below, but depending upon the options installed when
the program was built you may not see all the menu options listed. If you installed a stable build from the
GoldenCheetah website it will have all available options compiled in @emph{this is not the case for Development builds}.
@heading The @emph{Athlete} menu
The Athlete menu is largely about opening and closing new windows. Since in GoldenCheetah we open a new window to
work with a specific athlete (you cannot switch athlete in the main window, you need to open another window). As a
result this menu is rather trivial:
@itemize @bullet
@item @strong{New...} - Opens the new athlete dialog we saw in the quick start guide and then proceeds to open a
@item @strong{Open...} - Opens the choose athlete dialog in order that you select an athlete to open in a new window.
@item @strong{Close} - Closes the current athlete window.
@end itemize
@strong{NOTE:} When you restart GoldenCheetah it will always open the athlete you last opened, so if you open up an
athlete and close to go back to a previous window the last Athlete that was opened will be displayed, rather than the
last one you closed. You can specify which athlete to open on the command line e.g. @code{$ ./GoldenCheetah "Mark Liversedge"}.
@heading The @emph{Activity} menu
In GoldenCheetah we refer to a ride file or any file that contains data related to an exercise you have completed as an `Activity'
this is because simply referring to it as a `ride' wouldn't be valid if, for example, it was a run!
Additionally, a prescribed activity plan (e.g. 2x20 mins at L4) we refer to as a `workout'. This may be confusing to users
that come to us from TrainingPeaks WKO+ where a workout refers to a past activity. We refer to future activities as planned
activities and past activities as just activities.
So, this menu contains functions for working with activities -- past exercises that have been recorded and imported into GoldenCheetah.
@itemize @bullet
@item @strong{Download from device...} - Also available from the tool bar this function opens the dialog to download data
directly from a device. We support SRM Powercontrol, Powertap LYC, Joule and Macro-X devices.
@item @strong{Import from file...} - This option will open a file selecton box to select one @emph{or more} files to import. Once
selected the files will be processed by the import wizard. You can also import files by just dragging and dropping them
on the analysis view.
@strong{NOTE:} If you try and drag and drop on the training view we will try and import videos and workouts (not activities).
@item @strong{Manual activity entry...} - This will open up a dialog box to create a manual entry. There is also a button on
the toolbar that does this. A manual activity gives you the opportunity to estimate time, distance, stress and other metrics
for an activity that wasn't record (for example on a gym bike). @xref{Importing Exporting Downloading and Creating Data, Manual activity}.
@item @strong{Export...} - Will open a dialog box to export the currently selected activity. You can select the directory
to export to and the file format to write the export as. This is particularly useful if you want to send your data to a
coach who requires data in a format his software understands.
For example; PWX files can be read by WKO+ and Garmin TCX files can be read by almost all sports software.
@strong{NOTE:} Whilst we offer FITLOG format for SportsTracks we would not recommend it, since the fidelity of the
file format is very suspect.
@item @strong{Batch export...} - This opens the batch export dialog, it provides the ability to select the output
directory and format to export to as well as select the activities you wish to export. Since this functions is
typically used to export data for import into another program there is a select all option too.
@item @strong{Export Metrics as CSV...} - Although the metric database is a sqlite file it can be useful to export
all the metrics as a comma separated variable format to work with in a spreadsheet. This function will export all
columns and rows to a CSV file of your choice.
@item @strong{Upload to TrainingPeaks} - This will upload the currently selected ride to TrainingPeaks.com. There are
no options since the account and password need to be defined in the preferences pane before you start.
@item @strong{Download from TrainingPeaks...} - This will open the download dialog for TrainingPeaks.com. It allows
you to select the specific activities you want to download and will match the available activities to any existing
activities by examining their date and time.
@item @strong{Upload to Strava...} - This opens the upload to strava dialog to allow you to select which data
series you want included.
@item @strong{Download from Strava...} - Download from Strava requires a Strava activity ID. Once you provide this
the activity will be downloaded and imported into your activity library. Note that there is no option to select
activities from a list since Strava do not support this (data lock-in).
@item @strong{Upload to RideWithGPS...} - This will upload the currently selected ride to RideWithGPS.com. There
are no options required.
@item @strong{Upload to Trainingstagebuch...} - This will upload the currently selected ride to TrainingStageBuch.com.
The user id and password need to be configured in the preferences pane in order for this to work.
@item @strong{Save activity} - We do not automatically save changes to activities, if you want to update the
activity you must save it. The metrics for the activity will only be updated when it is saved.
@item @strong{Delete activity...} - Permanently deletes the ride from the ride library. There is no undo so use
with caution. It will prompt to confirm you really mean it.
@item @strong{Split activity...} - Will open the split activity wizard, this wizard will allow you to find
breaks in an activity and split it into separate activities. This is of particular use when you forget to
stop recording and end up with multiple activites downloaded as a single activity.
@end itemize
@heading The @emph{Tools} menu
The Tools menu contains a selection of `handy' utilities, its a bit of a catch all for functions that are
either related to manipulating activities or don't really fit in anywhere else.
@itemize @bullet
@item @strong{Options...} - Only on Linux and Windows this opens the preferences pane. Note that the preferences
pane is an application in its own right and will remain open even when you have closed the main windows. You can
also have multiple preferences panes open at once @strong{we recommend you do not do this}.
@item @strong{Critical Power Estimator...} - Opens a dialog to estimate your CP based upon a short and long
power best or result from a specific test. We recommend using 3 minutes and 20 minutes since that aligns
with the algorithm used (Monod/Scherer).
@item @strong{Air Density (Rho) Estimator...} - Opens a tool for estimating Air Density based upon temperature
and air pressure. This is useful when working with Aerolab.
@item @strong{Get Withings Data...} - Downloads all measures for you Withings weight scale, but the user id
and public key need to be configured in the passwords section of the preferences pane.
@item @strong{Get Zeo Data...} - Downloads sleep data for your Zeo sleep monitor. You will need to have
configured the user id and pasword in the preferences pane.
@item @strong{Create a new workout...} - Opens the workout wizard for creating a training view workout. This
will create a `.erg' or `.crs' workout.
@item @strong{Download workouts from ErgDB...} - Opens a dialog to select and download training view workouts
from the internet ErgDB website.
@item @strong{Import workouts or videos...} - Opens a file dialog to select and import a workout or video into
the training view library.
@item @strong{Scan disk for videos and workouts...} - Opens a dialog to scan directoris for workouts and
videos and import into the training view library.
@item @strong{Upload Activity to Calendar} - Will create a calendar entry to any CalDAV based calendar service.
You will need to configure the URL, user and password in the preferences pane before using this.
@item @strong{Refresh Calendar} - Will read any entries from your CalDAV internet calendar to display on the
calendar view.
@item @strong{Find intervals...} - Opens a dialog to find intervals in the current activity. This menu option
is here since it has always been on the tools menu. It should really be moved to the @emph{Activity} menu.
@item @strong{Adjust Torque Values...} - An editor tool for adjusting the torque data series. This is useful
when using a Powertap without calibrating.
@item @strong{Fix GPS Errors...} - An editor tool for extrapolating and adjusting GPS values, this is useful
when your GPS device lost its satellite connection or after importing from other software and the data
contains invalide values.
@item @strong{Fix Gaps In Recording...} - GoldenCheetah expects all data series samples to have timestamps
separated by a consistent recording interval (e.g. every 1 second). This tool dialog allows you to
extrapolate values where there are gaps in recording. In future releases we may remove the need for the
data series to have regular timestamps.
@item @strong{Fix HR Spikes...} - Find and smooth out spikes in HR, usually caused by loss of conection or
iterference from overhead power lines.
@item @strong{Fix Power Spikes...} - Find and smooth out spikes in Power, usually caused by reed switch
being double triggered or recording interference.
@end itemize
@heading The @emph{View} menu
The View menu provides a menu access to the view configuration, showing and hiding UI elements as well as
switching fullscreen and adding charts to the layout.
@itemize @bullet
@item @strong{Toggle Full Screen} - As the name suggests toggles between normal and full screen. On
Linux and Mac this is also available from the F11 key (and you can use the ESC key to leave full
screen mode too). On Mac Lion we use the standard toolbar button for switching between normal and
full screen mode.
@item @strong{Show Left Sidebar} - Toggles the display of the sidebar.The button on the toolbar also
does the same. You can also drag and close the sidebar by hand.
@item @strong{Show Toolbar} - Toggles showing or hiding the tool bar.
@item @strong{Tabbed View} - Toggles tabbed or tiled mode for the current view.
@item @strong{Analysis} - Switch to the Analysis view.
@item @strong{Home} - Switch to the Home view.
@item @strong{Train} - Switch to the Training view.
@item @strong{Diary} - Switch to the Diary view.
@item @strong{Add Chart} - Opens a submenu to select a chart to add. When selected an add chart dialog
will be open showing the chart and allowing you to adjust the chart settings before it is added to the
current view.
@item @strong{Reset Layout} - Will reset the current view layout to the application default. This is
useful if you spoil your setup, or want to fall back to the current application default. Note that the
application default will change and improve over time.
@end itemize
@heading The @emph{Window} menu
Simply lists the current windows you have open and allows you to select the window to raise and make
the current window focus.
@page
@section The Toolbar and Scope bar
@vskip 12pt
@center @image{"image/2-toolbar",350pt}
@center @emph{Figure 7: Tool Bar and Scope Bar}
@vskip 6pt
Working from left to right in the toolbar, there are a number of buttons to download and import
activities that are mostly relevant to the analysis view;
and lastly a search box;
@itemize @bullet
@item @strong{Download Activity} - Will open a dialog to download an activity from a supported
device (including Powertap Cervo, SRM Powercontrol, O-Synce Macro, Saris Joule).
@item @strong{Compose Manual Activity} - Will open a dialog to manually enter an activity, for
example when you worked out at a gym and could not record the data.
@item @strong{Find Intervals} - Will open a dialog to find peak and best intervals in an activity.
@item @strong{Split Activity} - Will open a dialog to split an activity into separate activities.
This is useful when you have an activity that spans mutiple days.
@item @strong{Delete Activity} - Deletes the currently selected activity. Will prompt the user to
confirm before doing so.
@end itemize
Then to the right of the toolbar there are a trio of buttons to control the way the
main window is laid out;
@itemize @bullet
@item @strong{Show/Hide Sidebar} - Will toggle the visibility of the sidebar, if it is hidden it
will how it. If it is shown it will hide it.
@item @strong{Tabbed Mode} - Switch the main view into tabbed mode. See Views and the Sidebar below.
@item @strong{Tiled Mode} - Switch the main view into tiled mode. See Views and the Siidebat below.
@end itemize
Lastly to the right of the toolbar there is a search/filter box;
@itemize @bullet
@item @strong{Mac OSX only Search box} - On a Mac the search box is limited to text search only, this
may change as it means one cannot use it to filter the activity list with a data filter.
@item @strong{Windows/Linux Search/Filter box} - On Windows and Linux the search box can be toggled
between a search box and filter box by clicking on the search or filter icon inside the box (and to
the left hand side). See searching and filtering below for more details.
@end itemize
Beneath the toolbar is the scope bar, this is a selector to choose from one
of four views in main view -- essentially its a selector for choosing what
you want to do with GoldenCheetah, it offers four views;
@itemize @bullet
@item @strong{Home} - The home view is for long term tracking and allows you to work with charts that
plot and analyse metrics. It is intended to be used to reviewing progress and identify what is and is
not working (or perhaps historically, what has worked and what hasn't).
In this view the scope is @emph{generally} limited to the date range or season selected in the associated
sidebar -- the currently selected ride is not relevant in this view.
@item @strong{Diary} - The diary view is for tracking recent rides - looking at the data in terms of the
last day, week or month. As planning functions arrive in v3.1 this view will become more funcitonally
rich, but for now it is more or less a configurable version of the old @emph{Weekly Chart}.
In this view the scope is limited to the day, week or month of the currently selected activity. As you
select different activities the date range changes to reflect this.
To select the summarisation level (day, week or month) the summary sidebar contains a drop down selector.
See Figure 8 below.
@vskip 12pt
@center @image{"image/2-dayweekmonth",70pt}
@center @emph{Figure 8: Summary level selector}
@vskip 6pt
@item @strong{Analysis} - The analysis view is where you review and analyse individual activities.
As well as using the numerous analysis charts you can also edit and adjust the telemetry data within
the activities and add your own narratives and texts. The narrative fields are configurable to
your tastes, see `Metadata' in chapter 4.
In this view the scope is limited to the currently selected activity in the sidebar.
@end itemize
To the right of the scope bar is a `+' menu button;
@itemize @bullet
@item @strong{Add Chart (`+') Menu} - The charts on each view can be configured and added or deleted.
The `+' menu to the right of the scope bar lists all the charts that are available for the currently
selected view, see Figure 9 below. Selecting a chart from this menu will open the add chart dialog, which is described
below in the secion @emph{Adding and adjusting charts}.
@vskip 12pt
@center @image{"image/2-chartmenu",180pt}
@center @emph{Figure 9: The `+' Add Chart Menu}
@vskip 6pt
@strong{NOTE:} Only the windows that are relevant for the current view will be listed. You cannot, for example, add a long term
metric chart to the analysis view, or a performance chart (all plot) to the diary view.
@end itemize
@section Views & Sidebar
@vskip 12pt
@noindent @image{"image/2-sideactivity",70pt}
@noindent @image{"image/2-sideinterval",70pt}
@noindent @image{"image/2-sidediary",70pt}
@noindent @image{"image/2-sidehome",70pt}
@noindent @image{"image/2-sidesummary",70pt}
@noindent @image{"image/2-sidetrain",70pt}
@center @emph{Figure 10: Sidebars}
@vskip 6pt
scopebar, sidebar, tab/tiled, add chart menu
@section Searching and Filtering
free text search and basics of data filtering
@section Adding and adjusting charts
the dialog, title, settings, finding them again
@section Going fullscreen
key sequences, hiding and showing the toolbar
screensaver?
@section The Metric database
why, what, where, refreshing, exporting
@c ********************************************************************************
@c Working with Data
@c ********************************************************************************
@chapter IMPORTING EXPORTING DOWNLOADING AND CREATING DATA
@node Importing Exporting Downloading and Creating Data
@section Download from device
download dialog, basics for each device (plugging in etc)
@section Import from file
selecting a file, the import wizard
@section Manual activity
the manual activity dialog and refer to details screen for more "indepth" (need a better word) stuff
@section Exporting data
i A single ride
ii Multiple rides
@section Uploading and Downloading from the Cloud
i TrainingPeaks
ii Strava
iii TrainingStage Buch
iv RideWithGPS
@c ********************************************************************************
@c ANALYSIS
@c ********************************************************************************
@chapter THE ANALYSIS VIEW
@node ANALYSIS
@section About Activities and Intervals
@section Sidebar actions and context menus
o activities
o intervals
@section Editing and adjusting data
o using the editor
i basics
ii anomalies
iii find
o advanced editor functions
i the `fix' tools
ii copying, cutting and pasting
@c ********************************************************************************
@c ANALYSIS CHARTS
@c ********************************************************************************
@chapter ANALYSIS VIEW CHARTS
@node ANALYSIS CHARTS
i Activity Summary
ii Details
iii Summary and Details
iv Editor
v Performance
vi Critical Mean Maximals
vii Histogram
viii Pedal Force vs Velocity
ix Heartrate vs Power
x Google Map
xi Bing Map
xii 2d Plot
xiii 3d Plot
xiv Aerolab Chung Analysis
@c ********************************************************************************
@c HOME
@c ********************************************************************************
@chapter THE HOME VIEW
@node HOME
@section About Date Ranges, Seasons and Events
@c ********************************************************************************
@c HOME CHARTS
@c ********************************************************************************
@chapter PERFORMANCE TRACKING CHARTS
@node HOME CHARTS
i Long Term Metrics
- indepth howto incl. setting up a PMC++
ii Performance Manager
iii Collection TreeMap
iv Critical Mean Maximal
v Distribution
@c ********************************************************************************
@c DIARY
@c ********************************************************************************
@chapter THE DIARY VIEW
@node DIARY
@section Purpose
@section Summarising for Day / Week / Month
@section Longer term purpose (planning)
@c ********************************************************************************
@c TRAIN
@c ********************************************************************************
@chapter THE TRAIN VIEW
@node TRAIN
@section About Devices, Workouts and Video
@section Sidebar actions and context menus
o devices
o workouts
o media
@section Working with the Workout Library
- Creating a new Workout
- Getting Workouts from ErgDB
@section Setting up and starting a workout
- Using CT handlebar controller
- controlling workout from mouse + keyboard
@c ********************************************************************************
@c TRAIN CHARTS
@c ********************************************************************************
@chapter TRAINING VIEW CHARTS
@node TRAIN CHARTS
i Telemetry
ii Workout
iii Realtime
iv Pedal Stroke
v Map
vi StreetView
vii Video Player
@c ********************************************************************************
@c Configuration
@c ********************************************************************************
@chapter CONFIGURING
@node CONFIG
Intro and explain opening the Preferences Pane
@section General
@section Athlete
i About
ii Power Zones
iii HR Zones
@section Passwords
i General
ii Withings
iii Zeo
iv Google Calendar (calDAV)
@section Appearance
@section Data Fields
i Fields
ii Notes Keywords
iii Processing
@section Metrics
@section Train Devices
i Using Multiple Devices
ii Adding a device
@c ********************************************************************************
@c Appendices
@c ********************************************************************************
@unnumbered A - Supported Devices, Formats & Services
@unnumbered B - Metrics Reference
@unnumbered B - Data Filtering Reference
@unnumbered C - Glossary & Resources
@unnumbered D - OS Specifics (Directories, Drivers and Permissions)
@unnumbered Index
@printindex cp
@bye

323
doc/user/GC3-Release.info Normal file
View File

@@ -0,0 +1,323 @@
This is GC3-Release.info, produced by makeinfo version 4.13 from GC3-Release.texinfo.

File: GC3-Release.info, Node: Top, Next: Top, Prev: Top
title
*****
These release notes are for GoldenCheetah, version 3.0.
* Menu:
* WHATS NEW:: What's new in V3.0
* CONTRIBUTORS:: List of Contributors to V3.0

File: GC3-Release.info, Node: WHATS NEW, Next: CONTRIBUTORS, Prev: CONTRIBUTORS, Up: Top
1 Whats New
***********
1.1 500+ bug fixes and minor enhancements
=========================================
Over the last 3 years the performance and stability of GoldenCheetah
has been improved considerably. One of the major criticisms of the
software was it crashing.
We have fixed 46 serious issues and over 400 bugs in over 1,500
different commits. GoldenCheetah is now over 120,000 lines of code
compared to 61,000 of the previous v2.1 release. It is used by 1000s of
users around the world, from Santiago to Singapore and Auckland to
Aberdeen.
In addition to addressing stability issues we have also looked closely
at performance. Whilst the new metric functionality and database means
that a modern PC is recommended, the code is still efficient enough to
run on a netbook.
We have introduced pre-computed metrics alongside a cache of ride bests
across all the main data series to ensure that analysis of long term
data is as quick and responsive as possible. We also introduced our own
file format using JSON as an open file format, with a custom parser. We
can now read a 1hr ride 20x faster using our native format than using
an equivalent and very popular XML format.
In short, we've squashed the big bugs and made it run much faster.
1.2 Redesigned UI and UX
========================
One of the most immediate changes you will notice with v3.0 are the
major changes to the user experience and user interface. From the
initial help screens for new users through to the redesigned preferences
pane for advanced users, it provides a more complete user experience
with a slicker and more professional user interface.
We wanted an elegant and clean user interface that was intuitive to use
and revealed complexity when it was required. We think we've come
pretty close.
There are 4 views available with specific and detailed sidebars for
peformancee tracking (home), short term tracking (diary) as well as the
well known analysis and training views from earlier releases.
We now allow you to view charts tabbed and tiled, you can resize and
move charts around and customise them using roll-over controls. The
activity list is fully configurable and can be configured to show any
number of columns. We have overhauled and introduced friendly wizards
for adding devices and athletes through to manual activity entry.
The UI is largely native on a Mac and the same UI and UX has been
replicated on Linux and Windows. We also support full screen including
Lion fullscreen support on a Mac.
We have been through many, many iterations to get to this UX and it has
been widely tested and critiqued by a large community of GC users.
We think this is the best looking and most intuitive version of
GoldenCheetah ever released.
1.3 Support for the latest bike computers
=========================================
We have added direct download support for the Cyclops Joule and Joule
GPS as well as the latest SRM Powercontrol 6 and 7. We also added
support for the O-sync Macro and Macro X.
In addition to this we also fixed a few issues related to importing from
newer Garmin devices since the file format changed.
1.4 Support for more telemetry
==============================
Alongside the support for the latest bike computers we also added the
ability to track and plot new data series, including; Headwind, LR
Balance, Temperature and Slope.
1.5 Export and Batch Export as well as lots of new file formats
===============================================================
We will now export and batch export your data to a wide variety of file
formats. We believe it is your data and it should not be locked into any
sotfware. We support open formats such as TCX, PWX, JSON and XML as well
as FITLOG and GPX.
We have also added support for reading files from SportTracks, GPX, Tacx
CAF and the SLF/SMF file formats. We have also added legacy WKO+ file
format support (CP 1.0 and 1.1) as well as import of Wattbike TXT
exports.
1.6 Support for a wide selection of Cloud services
==================================================
We can now upload and download data from cloud services offered by;
Withings, Zeo, Strava, TrainingPeaks, Training Stage Buch, RideWithGPS
as well as Internet based calendars (calDAV) such as Google Calendar.
1.7 Improvements to Aerolab
===========================
There is now an autosolver for CdA and Crr Estimation in Aerolab that
removes a lot of the guesswork from curve fitting in Virtual Elevation
as well as a handy Air Density (Rho) estimator.
1.8 Realtime training significantly enhanced
============================================
We now support Native ANT+ removing the need for quarqd. Video Playback
is built in using VLC/QTKit. We manage a media library to make sure you
can re-use any content you may have from Tacx Ergvideos through
Sufferfest.
We support Virtual Power for popular devices from KK, LeMond and many
other trainers. We have added support for the amazing new Wahoo
Fitness Kickr trainer as well as the old Tacx Fortius.
In the train view we have added lots of new ways to ride on the trainer
including; Streetview, SpinScan (on Computrainer) and an enhanced
Workout Plot that plots telemetry against the workout as you ride.
Finally we've added Computrainer calibration, a workout wizard and
download from ErgDB as well as Multi-device Support allowing you to
ride with with your ANT+ powermeter on your Computrainer, Kickr or
Fortius.
1.9 Advanced search and data filtering
======================================
We now offer the ability to use free text search across all activities,
enabling lightning quick searches for past activities. We use a well
proven and fast search and indexing tool called CLucene to provide
search as you type functionality.
Additionally we have introduced a data filter (using the same search
box) to allow you to filter activities for specific properties, for
example for all rides with a TSS > 300 or perhaps those with an IF >0.9
and a duration of > 1hr.
Both the search and filter functions can be applied to the charts -
which means that you can plot a PMC only where sport is "Bike" or
perhaps power distribution but only where the workout code is FTPTEST.
We are still discovering how powerful these tools are when applied to
long term performance tracking.
1.10 Lots of new charts
=======================
It wouldn't be a new release of GoldenCheeth if we didn't introduce
some new charts for detailed forensic data analysis.
We've added a new HR to Power analysis as well as a more utilitarian 2d
scatter plot. We've added Bing as map provider for the Map chart.
But the single most asked for feature, and one that has been on the GC
wish list since it was first released is the ability to plot a
distribution for a date range. We can now do that - allowing you to
plot power distribution for a season or month or any number of
sophisticated date ranges (we also added lots of advance ways to
express date ranges).
In addition to plotting distribution charts for ride data you can also
now plot distribution charts for activity metrics. So, for example, you
can plot a distribution of ride intensity factors to see intensity mix
for a season or date range. Additionally, you can choose to plot that
as say ride time, i.e. how much time have I spent over the last season
at different intensities. Or perhaps you would like to plot TSS that has
been accumulated over the season by intensity of ride. You can do that
in version 3.
Lastly, we have also extended the CP curve to plot more than just
power. It will now plot a mean max curve for HR, Power, Speed, Cadence,
xPower, NP et al. And we even added VAM too, for you mountain goats.
1.11 New metrics, including TrainingPeaks' TSS and NP
=====================================================
Yes, we've been granted permission by our friends at TrainingPeaks to
use their cylcing metrics in the latest version of GoldenCheetah. We
know that it is one of the most popular additions.
Not only have we added them as metrics to plot and track, we've also
added them to the realtime training so you can target an intensity of
stress for a workout and monitor and adjust the intensity of the
workout as you ride.
We have also added a whole host of new metrics, there are now over 100
different metrics and measures you can work with including things like;
Pace, Maximums, Gradient, VAM, wpk, time in HR Zones and many, many
more.
1.12 Build and Platform support
===============================
For the technical amongst you we have removed mandatory Boost
Dependency, which means you can build GC with nothing more than QT4.8
installed (we will support QT5 in v3.1). We now support OpenBSD and
have moved to using version 6.1 of the QWT library.
On a related note, you can see all the versions used, contributors
involved and build settigs as we have improved the about box to give
much more useful information to developers.
1.13 We wrote some documentation!
=================================
Shock. We now have an FAQ covering over 50 of the most commonly asked
questions about GoldenCheetah. And a full user manual to compliment the
existing wiki for user generated content.
One of the other criticisms we often heard about GoldenCheetah was how
hard it was to use, and how you needed to be a cycling nerd to
understand it. We feel that the new UI and User Experience coupled with
much better documentation and help mean this should make this version
of GoldenCheetah the easiest to use yet.

File: GC3-Release.info, Node: CONTRIBUTORS, Next: WHATS NEW, Prev: WHATS NEW, Up: Top
2 Contributors
**************
2.1 Credits and Contributors
============================
Literally thousands of people regularly download, install, develop,
critique and discuss GoldenCheetah and its features and functions.
Back in 2006 a stupendously gifted guy (and Cat 1 racer) called Sean
Rhea bought a Powertap. Frustrated with the software that was available
he set about writing some utilities to plot the data. But first he had
to reverse engineer the protocol to talk to it. Back then, and to a
lesser degree now, these sports and cycling products are closed. You buy
their product and you're stuck with their software. Sean did something
amazing - he open sourced his code. By doing that he changed power
analysis completely.
Here in 2013 with ANT+, BTLE, Wahoo, TrainerRoad, PerfPro and of course
GoldenCheetah things look very different. The cycling world has gone
open. Sean can take some of the credit for that.
We stand on his shoulders.
Here in 2013 by far and away the biggest contributors to this project
are Damien Grauser and Mark Liversedge. Between the two of them they
have committed almost 90% of all code to GoldenCheetah in the last 3
years. Often working on stuff for others they are the reason this
release is written for you the cyclist .. and not us the developers.
Of equal importance is Gareth Coco our devops guru. With unfathomable
patience he has built countless release candidates and development
builds for the last 3 years. He has worked with an ever changing and
hideous array of wacky dependencies across Windows, Mac and Linux. He
is pretty much the only reason you can download and install our
software. Big, big thanks to Gareth.
Thats not to say that there aren't many other significant contributions
too; Ale Martinez has masterminded and developed multi-language support
in V3. Translations have been undertaken by Ale himself, but also by
Til Schmiedeberg, Keisuke Yamaguchi, Marco Piccirilli, Sergei
Chekhovskii and Rafael Oliveira Ribeiro. And a huge thanks to Satoru
Kurashiki who has worked tirelessly to get a Debian (and hence Ubuntu)
package created for GoldenCheetah since v2.1.
A large number of developers have contributed small and large bits of
code, and many clever coaches and athletes have donated their ideas and
best practices. I must shout out to Dr Andrea Morelli the professional
coach, for his encouragement and insight over the last 3 years and Greg
Steele for some of the most interesting and inspriring thoughts.
Here are all the contributors, all of them have made this version of
GoldenCheetah the best yet;
Alejandro Martinez, Andrew Bryson, Andy Froncioni, Austin Roach, Berend
De Schouwer, Bruno Assis, Chris Cleeland, Claus Assmann, Dag Gruneau,
Damien Grauser, Darren Hague, Dean Junk, Eric Brandt, Eric Murray,
Frank Zschockelt, Gareth Coco, Greg Lonnon, Ilja Booij, Jaime Jofre,
Jamie Kimberley, Jim Ley, John Ehrlinger, Josef Gebel, Julian
Baumgartner, Julian Simioni, Justin Knotzke, Keisuke Yamaguchi, Ken
Sallot, Luke NRG, Magnus Gille, Marc Boudreau, Mark Liversedge, Mark
Rages, Mitsukuni Sato, Ned Harding, Patrick McNerthney, Rainer Clasen,
Robb Romans, Robert Carlsen, Roberto Massa, Ron Alford, Sean Rhea,
Steven Gribble, Thomas Weichmann, Walter Burki.
Finally a big shout out to three amazing people; Jamie Kimberley who
has been the glue that held the GoldenCheetah community together,
Robert Carlsen who has always been the cool guy in the glasses that
does the cool stuff. And last but not least, my friend Justin Knotzke
who demands and gets the best from all of us.
Jamie, Robert and Justin have stepped away from regular involvement in
GoldenCheetah, but their contributions have set the standard and will
not be forgotten. Cheers Guys.

Tag Table:
Node: Top0
Node: WHATS NEW310
Node: CONTRIBUTORS9906

End Tag Table

BIN
doc/user/GC3-Release.pdf Normal file

Binary file not shown.

View File

@@ -0,0 +1,287 @@
\input texinfo @c -*-texinfo-*-
@ifnotinfo
@input palatino
@end ifnotinfo
@c %**start of header
@setfilename Release Notes.texinfo
@settitle Golden Cheetah v3.0 Release Notes
@c %**end of header
@paragraphindent 0
@titlepage
@title Golden Cheetah v3.0 Release Notes
@c @subtitle subtitle-if-any
@c @subtitle second-subtitle
@author Mark Liversedge
@end titlepage
@c So the toc is printed at the start.
@contents
@ifnottex
@node Top,Top,Top,
@top title
These release notes are for GoldenCheetah, version 3.0.
@end ifnottex
@menu
* WHATS NEW:: What's new in V3.0
* CONTRIBUTORS:: List of Contributors to V3.0
@end menu
@node WHATS NEW,CONTRIBUTORS,CONTRIBUTORS,Top
@chapter Whats New
@section 500+ bug fixes and minor enhancements
Over the last 3 years the performance and stability of GoldenCheetah
has been improved considerably. One of the major criticisms of the
software was it crashing.
We have fixed 46 serious issues and over 400 bugs in over 1,500 different
commits. GoldenCheetah is now over 120,000 lines of code compared to
61,000 of the previous v2.1 release. It is used by 1000s of users around
the world, from Santiago to Singapore and Auckland to Aberdeen.
In addition to addressing stability issues we have also looked closely at
performance. Whilst the new metric functionality and database means that
a modern PC is recommended, the code is still efficient enough to run on
a netbook.
We have introduced pre-computed metrics alongside a cache of ride bests across
all the main data series to ensure that analysis of long term data is
as quick and responsive as possible. We also introduced our own file format
using JSON as an open file format, with a custom parser. We can now read
a 1hr ride 20x faster using our native format than using an equivalent
and very popular XML format.
In short, we've squashed the big bugs and made it run much faster.
@section Redesigned UI and UX
One of the most immediate changes you will notice with v3.0 are the
major changes to the user experience and user interface. From the
initial help screens for new users through to the redesigned preferences
pane for advanced users, it provides a more complete user experience
with a slicker and more professional user interface.
We wanted an elegant and clean user interface that was intuitive to
use and revealed complexity when it was required. We think we've
come pretty close.
There are 4 views available with specific and detailed sidebars for
peformancee tracking (home), short term tracking (diary) as well as
the well known analysis and training views from earlier releases.
We now allow you to view charts tabbed and tiled, you can resize and
move charts around and customise them using roll-over controls. The
activity list is fully configurable and can be configured to show any
number of columns. We have overhauled and introduced friendly wizards
for adding devices and athletes through to manual activity entry.
The UI is largely native on a Mac and the same UI and UX has been
replicated on Linux and Windows. We also support full screen including
Lion fullscreen support on a Mac.
We have been through many, many iterations to get to this UX and it has
been widely tested and critiqued by a large community of GC users.
We think this is the best looking and most intuitive version of GoldenCheetah
ever released.
@section Support for the latest bike computers
We have added direct download support for the Cyclops Joule and Joule GPS
as well as the latest SRM Powercontrol 6 and 7. We also added support for
the O-sync Macro and Macro X.
In addition to this we also fixed a few issues related to importing from
newer Garmin devices since the file format changed.
@section Support for more telemetry
Alongside the support for the latest bike computers we also added the ability to
track and plot new data series, including; Headwind, LR Balance, Temperature and
Slope.
@section Export and Batch Export as well as lots of new file formats
We will now export and batch export your data to a wide variety of file
formats. We believe it is your data and it should not be locked into any
sotfware. We support open formats such as TCX, PWX, JSON and XML as well
as FITLOG and GPX.
We have also added support for reading files from SportTracks, GPX, Tacx
CAF and the SLF/SMF file formats. We have also added legacy WKO+ file
format support (CP 1.0 and 1.1) as well as import of Wattbike TXT exports.
@section Support for a wide selection of Cloud services
We can now upload and download data from cloud services offered by; Withings,
Zeo, Strava, TrainingPeaks, Training Stage Buch, RideWithGPS as well
as Internet based calendars (calDAV) such as Google Calendar.
@section Improvements to Aerolab
There is now an autosolver for CdA and Crr Estimation in Aerolab that
removes a lot of the guesswork from curve fitting in Virtual Elevation
as well as a handy Air Density (Rho) estimator.
@section Realtime training significantly enhanced
We now support Native ANT+ removing the need for quarqd. Video Playback
is built in using VLC/QTKit. We manage a media library to make sure you
can re-use any content you may have from Tacx Ergvideos through Sufferfest.
We support Virtual Power for popular devices from KK, LeMond and many other
trainers. We have added support for the amazing new Wahoo Fitness Kickr trainer
as well as the old Tacx Fortius.
In the train view we have added lots of new ways to ride on the trainer including;
Streetview, SpinScan (on Computrainer) and an enhanced Workout Plot that plots
telemetry against the workout as you ride.
Finally we've added Computrainer calibration, a workout wizard and download
from ErgDB as well as Multi-device Support allowing you to ride with with
your ANT+ powermeter on your Computrainer, Kickr or Fortius.
@section Advanced search and data filtering
We now offer the ability to use free text search across all activities, enabling
lightning quick searches for past activities. We use a well proven and fast
search and indexing tool called CLucene to provide search as you type functionality.
Additionally we have introduced a data filter (using the same search box) to allow
you to filter activities for specific properties, for example for all rides with a
TSS > 300 or perhaps those with an IF >0.9 and a duration of > 1hr.
Both the search and filter functions can be applied to the charts -- which means that
you can plot a PMC only where sport is "Bike" or perhaps power distribution but only
where the workout code is FTPTEST.
We are still discovering how powerful these tools are when applied to long term
performance tracking.
@section Lots of new charts
It wouldn't be a new release of GoldenCheeth if we didn't introduce some new
charts for detailed forensic data analysis.
We've added a new HR to Power analysis as well as a more utilitarian 2d scatter
plot. We've added Bing as map provider for the Map chart.
But the single most asked for feature, and one that has been on the GC wish list
since it was first released is the ability to plot a distribution for a date range.
We can now do that -- allowing you to plot power distribution for a season or month
or any number of sophisticated date ranges (we also added lots of advance ways to
express date ranges).
In addition to plotting distribution charts for ride data you can also now plot
distribution charts for activity metrics. So, for example, you can plot a distribution
of ride intensity factors to see intensity mix for a season or date range. Additionally,
you can choose to plot that as say ride time, i.e. how much time have I spent over the
last season at different intensities. Or perhaps you would like to plot TSS that has
been accumulated over the season by intensity of ride. You can do that in version 3.
Lastly, we have also extended the CP curve to plot more than just power. It will
now plot a mean max curve for HR, Power, Speed, Cadence, xPower, NP et al. And we
even added VAM too, for you mountain goats.
@section New metrics, including TrainingPeaks' TSS and NP
Yes, we've been granted permission by our friends at TrainingPeaks to use their
cylcing metrics in the latest version of GoldenCheetah. We know that it is one of
the most popular additions.
Not only have we added them as metrics to plot and track, we've also added them to
the realtime training so you can target an intensity of stress for a workout and
monitor and adjust the intensity of the workout as you ride.
We have also added a whole host of new metrics, there are now over 100 different
metrics and measures you can work with including things like; Pace, Maximums,
Gradient, VAM, wpk, time in HR Zones and many, many more.
@section Build and Platform support
For the technical amongst you we have removed mandatory Boost Dependency, which means
you can build GC with nothing more than QT4.8 installed (we will support QT5 in v3.1).
We now support OpenBSD and have moved to using version 6.1 of the QWT library.
On a related note, you can see all the versions used, contributors involved and build
settigs as we have improved the about box to give much more useful information to
developers.
@section We wrote some documentation!
Shock. We now have an FAQ covering over 50 of the most commonly asked questions about
GoldenCheetah. And a full user manual to compliment the existing wiki for user generated
content.
One of the other criticisms we often heard about GoldenCheetah was how hard it was to
use, and how you needed to be a cycling nerd to understand it. We feel that the new UI
and User Experience coupled with much better documentation and help mean this should
make this version of GoldenCheetah the easiest to use yet.
@node CONTRIBUTORS,WHATS NEW,WHATS NEW,Top
@chapter Contributors
@section Credits and Contributors
Literally thousands of people regularly download, install, develop, critique and discuss
GoldenCheetah and its features and functions.
Back in 2006 a stupendously gifted guy (and Cat 1 racer) called Sean Rhea bought a
Powertap. Frustrated with the software that was available he set about writing some
utilities to plot the data. But first he had to reverse engineer the protocol to talk to it.
Back then, and to a lesser degree now, these sports and cycling products are closed. You buy
their product and you're stuck with their software. Sean did something amazing -- he open
sourced his code. By doing that he changed power analysis completely.
Here in 2013 with ANT+, BTLE, Wahoo, TrainerRoad, PerfPro and of course GoldenCheetah things
look very different. The cycling world has gone open. Sean can take some of the credit for that.
We stand on his shoulders.
Here in 2013 by far and away the biggest contributors to this project are Damien Grauser and
Mark Liversedge. Between the two of them they have committed almost 90% of all code to
GoldenCheetah in the last 3 years. Often working on stuff for others they are the reason this
release is written for you the cyclist .. and not us the developers.
Of equal importance is Gareth Coco our devops guru. With unfathomable patience he has built
countless release candidates and development builds for the last 3 years. He has worked with an
ever changing and hideous array of wacky dependencies across Windows, Mac and Linux. He is pretty
much the only reason you can download and install our software. Big, big thanks to Gareth.
Thats not to say that there aren't many other significant contributions too; Ale Martinez
has masterminded and developed multi-language support in V3. Translations have been undertaken
by Ale himself, but also by Til Schmiedeberg, Keisuke Yamaguchi, Marco Piccirilli, Sergei Chekhovskii
and Rafael Oliveira Ribeiro. And a huge thanks to Satoru Kurashiki who has worked tirelessly
to get a Debian (and hence Ubuntu) package created for GoldenCheetah since v2.1.
A large number of developers have contributed small and large bits of code, and many clever
coaches and athletes have donated their ideas and best practices. I must shout out to
Dr Andrea Morelli the professional coach, for his encouragement and insight over the last
3 years and Greg Steele for some of the most interesting and inspriring thoughts.
Here are all the contributors, all of them have made this version of GoldenCheetah the best yet;
Alejandro Martinez, Andrew Bryson, Andy Froncioni, Austin Roach, Berend De Schouwer, Bruno Assis,
Chris Cleeland, Claus Assmann, Dag Gruneau, Damien Grauser, Darren Hague, Dean Junk, Eric Brandt,
Eric Murray, Frank Zschockelt, Gareth Coco, Greg Lonnon, Ilja Booij, Jaime Jofre, Jamie Kimberley,
Jim Ley, John Ehrlinger, Josef Gebel, Julian Baumgartner, Julian Simioni, Justin Knotzke, Keisuke Yamaguchi,
Ken Sallot, Luke NRG, Magnus Gille, Marc Boudreau, Mark Liversedge, Mark Rages, Mitsukuni Sato,
Ned Harding, Patrick McNerthney, Rainer Clasen, Robb Romans, Robert Carlsen, Roberto Massa, Ron Alford,
Sean Rhea, Steven Gribble, Thomas Weichmann, Walter Burki.
Finally a big shout out to three amazing people; Jamie Kimberley who has been the glue
that held the GoldenCheetah community together, Robert Carlsen who has always been the
cool guy in the glasses that does the cool stuff. And last but not least, my friend Justin
Knotzke who demands and gets the best from all of us.
Jamie, Robert and Justin have stepped away from regular involvement in GoldenCheetah, but their
contributions have set the standard and will not be forgotten. Cheers Guys.
@bye

32
doc/user/Makefile Normal file
View File

@@ -0,0 +1,32 @@
#
# Generate documentation files from the source .texinfo
#
all: FAQ RELEASE MANUAL
rm -f *.aux *.cp *.cps *.fn *.ky *.log *.pg *.toc *.tp *.vr
clean:
rm -f GC3-Manual.pdf GC3-FAQ.pdf GC3-FAQ.html \
GC3-FAQ.info GC3-Release.pdf GC3-Release.html GC3-Release.info
rm -f *.aux *.cp *.cps *.fn *.ky *.log *.pg *.toc *.tp *.vr
MANUAL: GC3-Manual.pdf
FAQ: GC3-FAQ.pdf GC3-FAQ.info
RELEASE: GC3-Release.pdf GC3-Release.info
## The basic commands, good on Linux/Mac
## need mingw on Windows
TEXI2PDF = texi2pdf
TEXI2HTML = texi2html
MAKEINFO = makeinfo
.SUFFIXES: .pdf .texinfo .info .html
.texinfo.info:
${MAKEINFO} $< -o $@ >/dev/null 2>&1
.texinfo.pdf:
${TEXI2PDF} -I ../contrib $< -o $@ >/dev/null 2>&1
.texinfo.html:
${TEXI2HTML} $< -o $@ >/dev/null 2>&1

BIN
doc/user/image/0-icon.pdf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
doc/user/image/1-import.pdf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

10
doc/user/image/README Normal file
View File

@@ -0,0 +1,10 @@
We only have images for the Manual since they are so large and
consume lots of disk space etc.
Each image must be a PDF file, and to make it easier to manage
and find images we name them;
section-keyword.pdf
e.g.
0-icon.pdf - the gc icon image on the first page (section 0)

BIN
doc/web/3d.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

85
doc/web/Makefile Normal file
View File

@@ -0,0 +1,85 @@
CONTENT=$(wildcard *.content)
HTML=$(subst .content,.html,$(CONTENT))
TARBALLS=$(wildcard gc_*.tgz)
OTHER= 3d.png choose-a-cyclist.png cpint.gp cpint.png critical-power-plot.png critical-power.png \
cyclist-info.png editor.png gui-preview.png histogram-analysis.png logo.jpg logo.png \
main-window.png map.png metrics-power.png metrics-timedist.png metrics-tiz.png pf-pv-plot.png \
pm.png power.zones realtime.png ride-plot.png ride-plot2.png ride-summary.png sample.gp \
sample.png weekly-summary.png google-earth.png aerolab.png
BIN= GoldenCheetah_3.0.0_Mac_32bit.dmg \
GoldenCheetah_3.0.0_Mac_64bit.dmg \
GoldenCheetah_3.0.0_Windows_Installer.exe
all: $(HTML)
.PHONY: all clean install
clean:
rm -f $(HTML)
install:
rsync -avz -e ssh $(HTML) $(TARBALLS) $(OTHER) \
goldencheetah.org:/home/srhea/wwwroot/goldencheetah.org/
install-bin:
rsync -avz -e ssh $(BIN) \
goldencheetah.org:/home/srhea/wwwroot/goldencheetah.org/
bug-tracker.html: bug-tracker.content genpage.pl
./genpage.pl "Bug Tracker" $< > $@
command-line.html: command-line.content genpage.pl
./genpage.pl "Legacy Command-Line Tools" $< > $@
contact.html: contact.content genpage.pl
./genpage.pl "Contact Us" $< > $@
contrib.html: contrib.content genpage.pl
./genpage.pl "Contributors" $< > $@
developers-guide.html: developers-guide.content genpage.pl
./genpage.pl "Developer's Guide" $< > $@
older-releases.html: older-releases.content genpage.pl
./genpage.pl "Older Releases" $< > $@
download.html: download.content genpage.pl
./genpage.pl "Download" $< > $@
release-notes.html: release-notes.content genpage.pl
./genpage.pl "Release Notes" $< > $@
release-notes_2.1.0.html: release-notes_2.1.0.content genpage.pl
./genpage.pl "Release Notes 2.1.0" $< > $@
faq.html: faq.content genpage.pl
./genpage.pl "Frequently Asked Questions" $< > $@
index.html: index.content genpage.pl
./genpage.pl "Introduction" $< > $@
license.html: license.content genpage.pl
./genpage.pl "License" $< > $@
mailing-list.html: mailing-list.content genpage.pl
./genpage.pl "Mailing Lists" $< > $@
screenshots.html: screenshots.content genpage.pl
./genpage.pl "Screenshots" $< > $@
search.html: search.content genpage.pl
./genpage.pl "Search" $< > $@
users-guide.html: users-guide.content genpage.pl
./genpage.pl "User's Guide" $< > $@
wiki.html: wiki.content genpage.pl
./genpage.pl "Wiki" $< > $@
wishlist.html: wishlist.content genpage.pl
./genpage.pl "Wish List" $< > $@
zones.html: zones.content genpage.pl
./genpage.pl "Power Zones File Guide" $< > $@

BIN
doc/web/aerolab.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View File

@@ -0,0 +1,4 @@
<p>We have an issue tracker set up at
<a href="https://github.com/GoldenCheetah/GoldenCheetah/issues">GitHub</a>.</p>
<p>Here is a <a href="https://github.com/blog/411-github-issue-tracker">
link to short video</a> about the Issue tracker.</p>

BIN
doc/web/cheetah_logo.eps Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,16 +1,5 @@
<!-- $Id: users-guide.content,v 1.5 2006/05/27 16:32:46 srhea Exp $ -->
<big><font face="arial,helvetica,sanserif">
Using the GUI
</font></big>
<p>
Using the graphical version of Golden Cheetah should be pretty
self-explanatory. Download the disk image from the <a
href="download.html">download page</a>, drag the Golden Cheetah application
into your Applications folder, open your Applications folder, and then double
click on Golden Cheetah.
<p>
<big><font face="arial,helvetica,sanserif">
Using the Command Line Utilities
@@ -22,20 +11,22 @@ several command line utilities:
<code>ptdl</code>, which downloads ride data from a PowerTap Pro version 2.21
cycling computer, <code>ptunpk</code>, which unpacks the raw bytes downloaded
by <code>ptdl</code> and outputs more human-friendly ride information, and
<code>cpint</code>, which computes your critical power (see below). All three
are written in simple C code but have only been tested on Mac OS X so far.
We've also written several Perl scripts to help you graph and summarize the
data.
<code>cpint</code>, which computes your critical power (see below). We've
also written several Perl scripts to help you graph and summarize the data.
<p>
NOTE: We no longer support the use of the command-line tools. Please use the
graphical version of GoldenCheetah instead. This documentation is here for
the benefit of the brave alone.
<p>
<big><font face="arial,helvetica,sanserif">
Extracting the Data
</font></big>
<p>
To use <code>ptdl</code>, you'll first need to install
<a href="http://www.ftdichip.com/Drivers/VCP.htm">the drivers</a> for the
FTDI chip the PowerTap Pro USB Downloader uses. Once these are installed, you
should be able to just run <code>ptdl</code> without arguments:
First, make sure you have the FTDI drivers installed, as described in the <a
href="users-guide.html">User's Guide</a>. You can then run <code>ptdl</code>
without arguments:
<pre>
$ ./ptdl

61
doc/web/contrib.content Normal file
View File

@@ -0,0 +1,61 @@
<!-- $Id: contrib.content,v 1.4 2006/09/06 04:07:18 srhea Exp $ -->
<p>Sean Rhea bought a PowerTap Pro on April 20, 2006 and immediately set
to figuring out how to use it from his Mac without using Virtual PC.
With help from Russ Cox and David Easter, he wrote two command-line
programs for downloading data from a PowerTap and interpreting that
data. Sean released these two tools, <code>ptdl</code> and
<code>ptunpk</code>, on May 4, 2006.</p>
<p>Later that year, Sean needed to learn QT for his real job, and he set
about writing a graphical version of his software for practice. He
released the first graphical version on September 6, 2006, changing the
name to GoldenCheetah in reference to an old legend from his days as a
runner.</p>
<p>Since then, a large community has contributed additional code and
other support, including:</p>
<table width="80%">
<tr>
<td valign="top" width="33%">
<ul>
<li>Robert Carlsen</li>
<li>Rainer Clasen</li>
<li>Chris Cleeland</li>
<li>J.T. Conklin</li>
<li>Dan Connelly</li>
<li>Damien Grauser</li>
<li>Steve Gribble</li>
<li>Dag Gruneau</li>
<li>Ned Harding</li>
</ul>
</td>
<td valign="top" width="33%">
<ul>
<li>Aldy Hernandez</li>
<li>Jamie Kimberley</li>
<li>Justin Knotzke</li>
<li>Andrew Kruse</li>
<li>Mark Liversedge</li>
<li>Greg Lonnon</li>
<li>Tom Montgomery</li>
<li>Eric Murray</li>
<li>Scott Overfield</li>
</ul>
</td>
<td valign="top">
<ul>
<li>Mark Rages</li>
<li>Robb Romans</li>
<li>Mitsukuni Sato</li>
<li>Berend de Schouwer</li>
<li>Julian Simioni</li>
<li>Greg Steele</li>
<li>Tom Weichmann</li>
<li>Keisuke Yamaguchi</li>
</ul>
</td>
</tr>
</table>

44
doc/web/contributors.txt Normal file
View File

@@ -0,0 +1,44 @@
Alejandro Martinez
Andrew Bryson
Andy Froncioni
Austin Roach
Berend De Schouwer
Bruno Assis
Chris Cleeland
Claus Assmann
Dag Gruneau
Damien Grauser
Darren Hague
Eric Brandt
Eric Murray
Frank Zschockelt
Gareth Coco
Greg Lonnon
Ilja Booij
Jamie Kimberley
Jim Ley
John Ehrlinger
Josef Gebel
Julian Baumgartner
Julian Simioni
Justin Knotzke
Keisuke Yamaguchi
Ken Sallot
Luke NRG
Magnus Gille
Marc Boudreau
Mark Liversedge
Mark Rages
Mitsukuni Sato
Ned Harding
Patrick McNerthney
Rainer Clasen
Robb Romans
Robert Carlsen
Roberto Massa
Ron Alford
Sean Rhea
Steven Gribble
Thomas Weichmann
Tom Weichmann
Walter Bürki

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

BIN
doc/web/critical-power.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

BIN
doc/web/cyclist-info.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

View File

@@ -0,0 +1,562 @@
<!-- $Id: users-guide.content,v 1.5 2006/05/27 16:32:46 srhea Exp $ -->
<p>This guide will teach you how to download the GoldenCheetah source code,
build it, modify it, and submit your changes to be included in the next
release. If you're just looking to use GoldenCheetah, please check out the
<a href="users-guide.html">Users Guide</a> or the
<a href="download.html">Download Page</a>.</p>
<big><font face="arial,helvetica,sanserif">
Installing dependencies
</font></big>
<p>GC requires a number of libraries. On Mac OS X, you can get most of these
through <a href="http://www.macports.org/">Mac Ports</a>. On Linux and other
Unixes, you can use whatever package manager your distribution provides. (We
list the package names for MacPorts and Ubuntu below.) On Windows, you'll
probably need to download and install everything by hand. You might also want
to read <a href="old-mailing-list-archives/2009-September/002502.html">this
mailing list message</a> or check the
<a href="https://github.com/GoldenCheetah/GoldenCheetah">INSTALL</a> documents
on GitHub.</p>
<p>You'll need the following:</p>
<table align="center" width="500">
<tr>
<td>Package</td>
<td>Version</td>
<td>MacPorts</td>
<td>Ubuntu</td>
</tr>
<tr>
<td><a href="http://qt.nokia.com/downloads">Qt</a></td>
<td>4.8.0 or later</td>
<td>qt4-mac</td>
<td>libqt4-dev</td>
</tr>
<tr>
<td><a href="http://git-scm.com/download">git</a></td>
<td>any</td>
<td>git-core</td>
<td>git</td>
</tr>
</table>
<p>If you're going to download directly from a PowerTap, you might need to
install the <a href="http://www.ftdichip.com/Drivers/D2XX.htm">FTDI USB
driver</a>. If you're going to download directly from an SRM, you need to
download and install <a href="git://github.com/rclasen/srmio.git">libsrmio</a>.
Neither of these libraries is required if you just want to import data you've
already downloaded with another program.</p>
<big><font face="arial,helvetica,sanserif">
Checking out the code
</font></big>
<p>Once you've downloaded and installed the above dependencies, you need to
check out the GC source code. GC uses <em>git</em> for version control. To
checkout the code, execute this command:</p>
<blockquote>
<pre>
git clone git://github.com/GoldenCheetah/GoldenCheetah.git
</pre>
</blockquote>
<p>That should create a new directory, <code>GoldenCheetah</code>, in your
current working directory. In the rest of this document, we'll reference
paths relative to that directory. You can find the source code in
<code>GoldenCheetah/src</code>, for instance. Likewise, this
document is in <code>GoldenCheetah/doc/developers-guide.content</code>.<p>
<big><font face="arial,helvetica,sanserif">
Building an executable
</font></big>
<p>To build GC, we currently use <em>qmake</em>, which comes with the Qt
libraries referenced above. All local configuration is stored in the file
<code>gcconfig.pri</code>, which you create by copying
<code>gcconfig.pri.in</code>, both in the <code>GoldenCheetah/src</code>
directory. Additionally, GoldenCheetah uses a patched version of <a
href="http://sourceforge.net/projects/qwt/">Qwt</a> which is located in the
<code>GoldenCheetah/qwt</code> directory. You'll need to copy the
configuration file <code>qwtconfig.pri.in</code> to <code>qwtconfig.pri</code>
and edit that file if needed. The steps you'll take are as follows:</p>
<blockquote>
In the top level GoldenCheetah directory
<pre>
cp src/gcconfig.pri.in src/gcconfig.pri
cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri
vi src/gcconfig.pri # Follow the directions at the top of the file.
vi qwt/qwtconfig.pri # This may not need to be edited to successfully build.
qmake build.pro # called qmake-mac in MacPorts
make
</pre>
</blockquote>
<p>We're aware that a lot of people would rather use a configure-like script
for the build process. We would too, but none of us know
<a href="http://www.gnu.org/software/autoconf/">autoconf</a> well
enough to integrate it with Qt on Mac, Linux, and Windows. If you can help
us out with that, please post a message on the
<a href="https://groups.google.com/forum/?fromgroups&hl=en#!forum/golden-cheetah-users">GoldenCheetah User's
Google Group</a>.</p>
<big><font face="arial,helvetica,sanserif">
Making changes
</font></big>
<p>Now that you've got GC up and running, you can add whatever features you want.
We generally frown on dogmatic coding conventions, and we're big fans of the
"rough consensus and running code" philosophy. That said, please do your best
to adhere to the following style guidelines:</p>
<ul>
<li>Use spaces instead of tabs.
<li>Do not end lines with whitespace. End every file with a newline.
Otherwise git becomes angry. This command will
highlight any whitespace problems in commit <em>abcd0123</em> in red:
<blockquote>
<pre>
git show --color abcd0123
</pre>
</blockquote>
<li>Avoid "using namespace ..." in header files.
<li>Don't declare global variables in header files. If you must use a global
variable, declare it <code>static</code> within a .cpp file.
<li>Only call C++'s operator <code>new</code> within the constructors and
<code>reset</code> functions of <code>std::auto_ptr</code> etc.
or when passing a parent pointer to a Qt class (so that the parent
deletes the child). Never call <code>delete</code> explicitly.
<li>Do not use <code>malloc</code> or <code>free</code> unless forced to by an
external C library.
<li>Allocate large buffers on the heap, not on the stack.
<li>When the Qt or C++ standard library has an appropriate function, use it.
<li>Only use external libraries with GPL-compatible licenses.
<li>Avoid C-style casts. Learn and use C++'s <code>static_cast</code>,
<code>reinterpret_cast</code>, etc.
</ul>
<p>Not all of the GoldenCheetah code follows these guidelines today, but we're
working on it. You can help out by adhering to them in new code.</p>
<hr width="20%"/>
<p>At some point, you'll probably decide that a change you've made is worth
sharing with others. You'll use <em>git</em> again to share your changes, and
the following sections will show you how. A warning: git is pretty hard to
learn, but it's worth it. Once you get used to it, you'll be surprised you
ever put up with another revision control system.</p>
<big><font face="arial,helvetica,sanserif">
Committing changes to git
</font></big>
<p> An example will make this section more concrete. Since my SRM doesn't
record altitude, let's say that I get annoyed that the Ride Summary always
shows "Elevation Gain (feet): 0.0", so I change the code not to show any ride
metric whose value is zero. <em>git-diff</em> shows exactly what I've
changed:</p>
<blockquote>
<pre>
$ cd GoldenCheetah/src
$ git diff
diff --git a/src/RideItem.cpp b/src/RideItem.cpp
index 6971b9b..c368725 100644
--- a/src/RideItem.cpp
+++ b/src/RideItem.cpp
@@ -362,6 +362,8 @@ RideItem::htmlSummary()
assert(displayName.length() &gt; 0);
const RideMetric *m = metrics.value(name);
assert(m);
+ if (m-&gt;value(false) == 0.0)
+ continue;
if (m-&gt;units(metricUnits) == "seconds") {
QString s("&lt;tr&gt;&lt;td&gt;%1:&lt;/td&gt;&lt;td "
"align=\"right\"&gt;%2&lt;/td&gt;&lt;/tr&gt;");
</pre>
</blockquote>
<p>In order to share this change, I need to use <em>git-commit</em>:</p>
<blockquote>
<pre>
$ git commit RideItem.cpp
</pre>
</blockquote>
<p>git will open up an editor for me to type a commit message. It's important
to take the time to write good commit messages, as they form a history of who
has changed which lines of code and for what purpose. The first line of every
commit message should be a short description of 50 characters or less. The
second line should be blank. Subsequent lines should be less than 80
characters long and should describe the change in detail. If your commit
addresses an existing bug or feature please add a tag to the body of your
commit message. Allowable tags are "fixes" which is used to close an
issue and "refs" to reference an issue. For example, adding the text
"fixes #2" will close issue #2. Once I write the file and exit the
editor, <em>git-log</em> will show the result:</p>
<blockquote>
<pre>
$ git log -p -1
commit 30303ef2d11f4bead0860b969b4b74814053b76b
Author: Sean Rhea &lt;sean.c.rhea@gmail.com&gt;
Date: Wed Sep 2 21:04:33 2009 -0400
don't include zero metrics in ride summary
When a device doesn't have altitude, there's no reason to show it. Likewise
with heart rate if the user wasn't wearing a heart rate monitor during a ride.
Maybe in the future this behavior could be enabled on a per-metric basis.
diff --git a/src/RideItem.cpp b/src/RideItem.cpp
index 6971b9b..c368725 100644
--- a/src/RideItem.cpp
+++ b/src/RideItem.cpp
@@ -362,6 +362,8 @@ RideItem::htmlSummary()
assert(displayName.length() &gt; 0);
const RideMetric *m = metrics.value(name);
assert(m);
+ if (m-&gt;value(false) == 0.0)
+ continue;
if (m-&gt;units(metricUnits) == "seconds") {
QString s("&lt;tr&gt;&lt;td&gt;%1:&lt;/td&gt;&lt;td "
"align=\"right\"&gt;%2&lt;/td&gt;&lt;/tr&gt;");
</pre>
</blockquote>
<p>Note that had I changed more than one file, I would have just listed them
all when I ran <em>git-commit</em>. For example,</p>
<blockquote>
<pre>
$ git commit file1.cpp file2.cpp
</pre>
</blockquote>
<p>I can also commit everything I've changed all at once via</p>
<blockquote>
<pre>
$ git commit . # note the 'dot'
</pre>
</blockquote>
<big><font face="arial,helvetica,sanserif">
Managing commits
</font></big>
<p>git works best if you commit early and often. For example, I usually
commit a few times as I'm writing a new feature. Once I get my code to
compile, I commit it again. Then if I fix any bugs that turn up during
runtime, I commit the bug fixes. Then maybe I go back and clean up the new
code, now that I understand the problem better, and I commit those changes,
too.</p>
<p>The reasoning behind all of these commits is that commits are like save
points in a video game. If at any point I decide I'm messing things up,
I can just go back to the previous commit. <em>git-diff</em> shows me my
uncommitted changes. Let's say that I've decided I should also change the
text in the Ride Summary to reflect the fact that I'm only showing non-zero
metrics now. Here's my change:</p>
<blockquote>
<pre>
$ git diff
diff --git a/src/RideItem.cpp b/src/RideItem.cpp
index c368725..2ff9c49 100644
--- a/src/RideItem.cpp
+++ b/src/RideItem.cpp
@@ -159,13 +159,13 @@ static const char *metricsXml =
" precision=\"1\"/&gt;\n"
" &lt;/metric_group&gt;\n"
" &lt;metric_group name=\"Averages\"&gt;\n"
- " &lt;metric name=\"average_speed\" display_name=\"Speed\"\n"
+ " &lt;metric name=\"average_speed\" display_name=\"(Non-zero) Speed\"\n"
" precision=\"1\"/&gt;\n"
- " &lt;metric name=\"average_power\" display_name=\"Power\"\n"
+ " &lt;metric name=\"average_power\" display_name=\"(Non-zero) Power\"\n"
" precision=\"0\"/&gt;\n"
- " &lt;metric name=\"average_hr\" display_name=\"Heart rate\"\n"
+ " &lt;metric name=\"average_hr\" display_name=\"(Non-zero) Heart rate\"\n"
" precision=\"0\"/&gt;\n"
- " &lt;metric name=\"average_cad\" display_name=\"Cadence\"\n"
+ " &lt;metric name=\"average_cad\" display_name=\"(Non-zero) Cadence\"\n"
" precision=\"0\"/&gt;\n"
" &lt;/metric_group&gt;\n"
" &lt;metric_group name=\"BikeScore&#8482;\" note=\"BikeScore is a trademark
</pre>
</blockquote>
<p>But now I decide I don't like that change--I'd rather do it another way.
No problem. <em>git-checkout</em> will restore the previous version committed:</p>
<blockquote>
<pre>
$ git checkout src/RideItem.cpp
</pre>
</blockquote>
<p>If I want to restore the entire directory to the state of the last commit,
I checkout the whole directory:</p>
<blockquote>
<pre>
$ git checkout . # note the 'dot'
</pre>
</blockquote>
<p>Alternatively, if I had already committed this change, I can use
<em>git-reset</em> to throw away my latest commit like this:</p>
<blockquote>
<pre>
$ git reset --hard HEAD^
</pre>
</blockquote>
<p>Be careful with that one, though--it's irreversible.</p>
<big><font face="arial,helvetica,sanserif">
Combining commits
</font></big>
<p>Coming back to our example, let's say I instead decide to change the ride
summary a little differently and commit it:</p>
<blockquote>
<pre>
$ git log -p -1
commit 225f3093a206cbcc296ed1c8a25996ce1968bda6
Author: Sean Rhea <sean.c.rhea@gmail.com>
Date: Sat Sep 5 16:21:33 2009 -0400
include "non-zero" in metric group titles
diff --git a/src/RideItem.cpp b/src/RideItem.cpp
index c368725..449e19e 100644
--- a/src/RideItem.cpp
+++ b/src/RideItem.cpp
@@ -146,7 +146,7 @@ double RideItem::timeInZone(int zone)
static const char *metricsXml =
"&lt;metrics&gt;\n"
- " &lt;metric_group name=\"Totals\"&gt;\n"
+ " &lt;metric_group name=\"Non-zero Totals\"&gt;\n"
" &lt;metric name=\"workout_time\" display_name=\"Workout time\"\n"
" precision=\"0\"/&gt;\n"
" &lt;metric name=\"time_riding\" display_name=\"Time riding\"\n"
@@ -158,7 +158,7 @@ static const char *metricsXml =
" &lt;metric name=\"elevation_gain\" display_name=\"Elevation Gain\"\n"
" precision=\"1\"/&gt;\n"
" &lt;/metric_group&gt;\n"
- " &lt;metric_group name=\"Averages\"&gt;\n"
+ " &lt;metric_group name=\"Non-zero Averages\"&gt;\n"
" &lt;metric name=\"average_speed\" display_name=\"Speed\"\n"
" precision=\"1\"/&gt;\n"
" &lt;metric name=\"average_power\" display_name=\"Power\"\n"
</pre>
</blockquote>
<p>Now I have two commits, which I can see with <em>git-log</em>:</p>
<blockquote>
<pre>
$ git log origin/master..devel-guide
commit 225f3093a206cbcc296ed1c8a25996ce1968bda6
Author: Sean Rhea &lt;sean.c.rhea@gmail.com&gt;
Date: Sat Sep 5 16:21:33 2009 -0400
include "non-zero" in metric group titles
commit df657cd3f0dcb8484a468c2efb04da77ee0472e0
Author: Sean Rhea &lt;sean.c.rhea@gmail.com&gt;
Date: Wed Sep 2 13:42:33 2009 -0400
don't include zero metrics in ride summary
When a device doesn't have altitude, there's no reason to show it. Likewise
with heart rate if the user wasn't wearing a heart rate monitor during a ride.
Maybe in the future this behavior could be enabled on a per-metric basis.
</pre>
</blockquote>
<p>If I'm happy with my changes, I can share them with the world just
like they are using <em>git-format-patch</em>. In this case, however, these
two changes should really be combined into one: the second change was
something I should have done along with the first, I just didn't think of it
at the time. I can use <em>git-rebase -i</em> to combine them:</p>
<blockquote>
<pre>
$ git rebase -i origin/master
</pre>
</blockquote>
<p>That will bring up an editor window with a list of my changes, like
this:</p>
<blockquote>
<pre>
pick df657cd don't include zero metrics in ride summary
pick 225f309 include "non-zero" in metric group titles
# Rebase df33fe2..920643f onto df33fe2
#
# Commands:
# p, pick = use commit
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
</pre>
</blockquote>
<p>The directions are pretty self explanatory. You can reorder commits by
reordering their lines in this file. You can drop a commit by removing it
from the file entirely. You can also change the first word on a line from
"pick" to "squash", and git will combine that commit with the one that comes
before it. That's what I want to do here. I change line 2 of this file so
that the first two lines are:</p>
<blockquote>
<pre>
pick df657cd don't include zero metrics in ride summary
squash 225f309 include "non-zero" in metric group titles
</pre>
</blockquote>
<p>Then I write the file and quit the editor. Git does a little work
saying:</p>
<blockquote>
<pre>
Rebasing (1/2)
</pre>
</blockquote>
<p>And then it brings up another editor window that shows both of my commit
messages. I edit the two message to combine them into one, write the file,
and exit the editor. git says:</p>
<blockquote>
<pre>
Successfully rebased and updated refs/heads/master.
</pre>
</blockquote>
<p>And I can see the result with <code>git log -p</code>.</p>
<big><font face="arial,helvetica,sanserif">
Submitting a patch
</font></big>
<p>Okay, <em>now</em> I'm ready to share my change. I'll use
<em>git-format-patch</em>:
<blockquote>
<pre>
$ git format-patch HEAD^
0001-don-t-include-zero-metrics-in-ride-summary.patch
</pre>
</blockquote>
<p>In the <code>GoldenCheetah/src</code> directory I'll now find a <em>patch
file</em>, <code>0001-don-t-include-zero-metrics-in-ride-summary.patch</code>,
that other people can use to include my change in their own local git
repositories.</p>
<p>If you have a patch you'd like to share with others, we recommend that you
<a href="https://help.github.com/articles/fork-a-repo">fork</a> the main GIT
repository and submit a
<a href="https://help.github.com/articles/creating-a-pull-request">pull request</a>
with your patch. Alternatively you can join the
<a href="https://groups.google.com/forum/?fromgroups#!forum/golden-cheetah-developers">
Golden Cheetah Developer's Group</a> and post a patch there.</p>
<big><font face="arial,helvetica,sanserif">
Applying patches
</font></big>
<p>Let's say I email the patch above to the mailing list, and it sounds like a
useful feature to you. To test it yourself, you can download the patch file
to your <code>GoldenCheetah/src</code> directory and apply it to your
repository using <em>git-am</em>:</p>
<blockquote>
<pre>
$ git am 0001-don-t-include-zero-metrics-in-ride-summary.patch
Applying: don't include zero metrics in ride summary
</pre>
</blockquote>
<p>If you now type, "git log", you'll see that "don't include zero metrics in
ride summary" has been added to your repository.</p>
<p>If enough people like a patch, and it doesn't introduce any new bugs, one
of the GoldenCheetah maintainers will probably commit it to the official GC
repository on github.</p>
<big><font face="arial,helvetica,sanserif">
Staying up to date
</font></big>
<p>In order to keep your local repository up to date with
the official one, you use <em>git-fetch</em> followed by
<em>git-rebase</em>:</p>
<blockquote>
<pre>
$ git fetch origin
$ git rebase origin/master
First, rewinding head to replay your work on top of it...
Fast-forwarded master to origin/master.
</pre>
</blockquote>
<p>Note that, unlike above, we didn't supply a "-i" option to
<em>git-rebase</em> this time.</p>
<p><em>git-fetch</em> downloads a copy of all the patches at github to
your local repository, but it doesn't apply them. <em>git-rebase</em> undoes
the changes that are unique to your local repository, applies any new patches
from <code>origin/master</code>, and then re-applies your patches.</p>
<p>If you have uncommitted changes, the rebase will fail:</p>
<blockquote>
<pre>
$ git rebase origin/master
src/RideItem.cpp: needs update
cannot rebase: you have unstaged changes
</pre>
</blockquote>
<p>Commit your changes with <em>git-commit</em> and then re-run the
<em>git-rebase</em>. It will work this time.</p>
<p>For developers who are used to subversion, this need to commit changes
before rebasing is the most annoying aspect of git. All I can say is that you
won't mind it much after time. Because you can use "git rebase -i" to
combine, reorder, and even drop commits, a commit in git is much lighter
weight than one in subversion. As I said above, commit early and often.</p>
<p>If the changes from github conflict with yours, you'll have to merge.
<em>git-rebase</em> will exit with an error and a list of directions on how to
fix things. Read them carefully.</p>

82
doc/web/download.content Normal file
View File

@@ -0,0 +1,82 @@
<!-- $Id: download.content,v 1.6 2009/01/09 20:45:03 rcarlsen Exp $ -->
<p>
Golden Cheetah is available in binary form for
Linux x86, Mac OS X (universal binary), and Windows.
It is also available as source code.
</p>
<p>
Golden Cheetah downloads data from all versions of the PowerTap
computer including the new Joule. Previously you needed to have the
FTDI USB Drivers installed if you were using the PowerTap USB cradle
(as opposed to the older, serial cable). This should not be necessary.
If you are having problems then you can manually install the
<a href="http://www.ftdichip.com/Drivers/D2XX.htm">FTDI USB driver</a>.
</p>
<p>
On Linux and Mac OS X, Golden Cheetah also downloads from the SRM PCV. On Mac
OS X, you'll need to install <a href="http://osx-pl2303.sourceforge.net/">the
open source PL2303 driver</a> to download from an SRM. Please see the
<a href="https://github.com/GoldenCheetah/GoldenCheetah/wiki/Installing-the-d2xx-drivers-on-mac-os">WIKI</a> article
- <a href="https://github.com/GoldenCheetah/GoldenCheetah/wiki/Pcv-on-mac-os-x">
PCV on Mac OS X</a> for further information.
</p>
<p>
<font face="arial,helvetica,sanserif">
<big><strong>Download Release 3.0</strong></big>
</font>
</p>
<ul>
<li><a href="GoldenCheetah_3.0.0_Windows_Installer.exe">Windows 32-bit (runs on 64bit as well)</a>
<li><a href="GoldenCheetah_3.0.0_Mac_32bit.dmg">Mac OS X Intel 32bit (10.6+)</a><br>
<li><a href="GoldenCheetah_3.0.0_Mac_64bit.dmg">Mac OS X Intel 64bit (10.6+)</a><br>
</ul>
</p>
<p>
Installation is simple. Download the file for your operationg system.<br>
On Mac, open the DMG and drag and drop where you would like to install.<br>
For Windows, run the Installer and follow the prompts.<br>
</p>
<p>
There is a <a href="https://github.com/GoldenCheetah/GoldenCheetah/blob/master/doc/user/GC3-Manual.pdf?raw=true">Manual</a>
and a <a href="https://github.com/GoldenCheetah/GoldenCheetah/blob/master/doc/user/GC3-FAQ.pdf?raw=true">FAQ</a> that
you can use to help you use the program.
</p>
<p>
There is the older Version 2.1.0 <a href="/users-guide.html">User's Guide</a> on how to install
and use Golden Cheetah that can assist also.
</p>
<p>
You can also <a href="release-notes.html">view the release notes</a> for 3.0
or <a href="older-releases.html">download older releases</a> of Golden Cheetah.
</p>
<p>
<font face="arial,helvetica,sanserif">
<big><strong>Development Releases</strong></big>
</font>
</p>
<p>Gareth Coco has also made
<a href="http://goldencheetah.stand2surf.net/">regular development builds</a>
available. These binaries are based on the latest source code, so they may have
more features and less (but sometime more) bugs than the stable release above.
</p>
<p>
<font face="arial,helvetica,sanserif">
<big><strong>Source Code</strong></big>
</font>
</p>
<p>
The Golden Cheetah source code is available via git. See the
<a href="developers-guide.html">Developer's Guide</a> for more information.
You can also <a href="http://github.com/GoldenCheetah/GoldenCheetah/tree/master/">browse
the source on github</a>.
</p>

BIN
doc/web/editor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

32
doc/web/faq.content Normal file
View File

@@ -0,0 +1,32 @@
<!-- $Id: faq.content,v 1.4 2006/07/05 16:59:56 srhea Exp $ -->
<p>
<b><i>GoldenCheetah doesn't find my PowerTap on Ubuntu Linux.</i></b>
<p>
If you're using the USB cradle (as opposed to the older, serial one),
the FTDI driver sometimes conflicts with the braille terminal in the
default Ubuntu installation. Try unplugging the PT cradle from the
computer and uninstalling <code>brltty</code>:
<blockquote>
<code>sudo apt-get remove brltty</code>
</blockquote>
Then plug the device back in and it should work.
<p>
<b><i>I downloaded a .dmg, opened it, dragged and dropped GoldenCheetah into
Applications, double-clicked on it, and nothing happened. What
gives?</i></b>
<p>
Are you running OS X Tiger (10.4) or later? You need to be.
If you are, and you're still
having this problem, open Terminal (in Applications -&gt; Utilities) and type
this at the prompt:
<blockquote><pre>
/Applications/GoldenCheetah.app/Contents/MacOS/GoldenCheetah
</pre></blockquote>
then press &lt;return&gt; and send an email to the mailing list with
whatever it prints out. We'll help you debug it.

View File

@@ -16,7 +16,7 @@ open (FILE, "$content_file") or die "Could not open $content_file";
print<<EOF;
<!--
Copyright (c) 2006 Sean C. Rhea (srhea\@srhea.net)
Copyright (c) 2006-2008 Sean C. Rhea (srhea\@srhea.net)
All rights reserved.
This file was automatically generated by genpage.pl. To change it,
@@ -26,16 +26,25 @@ print<<EOF;
<html>
<head>
<title>Golden Cheetah: PowerTap Software for Mac OS X</title>
<meta name="keywords" content="powertap mac cycling performance">
<title>Golden Cheetah: Cycling Performance Software for Linux, Mac OS X, and Windows</title>
<meta name="keywords" content="powertap srm linux mac cycling performance">
<style type='text/css'>
li {
margin: .5em 0
}
body {
color: #000000;
background: #ffffff;
}
:link {
color: #5e431b;
}
:visited {
color: #996e2d;
}
</style>
</head>
<body text="#000000"
link="#5e431b"
vlink="#996e2d"
alink="#000000"
bgcolor="#ffffff">
<table width="95%" border="0" width="100%" cellspacing="10">
<tr>
@@ -45,32 +54,18 @@ print<<EOF;
<img src="logo.jpg" width="175" height="175" alt="Picture of Cheetah">
<p> <b><a href="index.html">Introduction</a></b>
<br> <b><a href="screenshots.html">Screenshots</a>
<br> <b><a href="users-guide.html">User's Guide</a>
<br> <b><a href="faq.html">FAQ</a>
<br> <b><a href="license.html">License</a></b>
<br> <b><a href="download.html">Download</a></b>
<br> <b><a href="screenshots.html">Screenshots</a>
<br> <b><a href="wiki.html">Wiki</a>
<br> <b><a href="users-guide.html">User's Guide</a>
<br> <b><a href="developers-guide.html">Developer's Guide</a>
<br> <b><a href="faq.html">FAQ</a>
<br> <b><a href="wishlist.html">Wish List</a>
<br> <b><a href="license.html">License</a></b>
<br> <b><a href="contrib.html">Contributors</a></b>
<br> <b><a href="search.html">Search</a></b>
<br> <b><a href="cgi-bin/mailman/listinfo/golden-cheetah-users">Mailing List</a></b>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-2993461533095312";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as";
google_ad_type = "text";
google_ad_channel ="";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "5E431B";
google_color_url = "996E2D";
google_color_text = "000000";
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br> <b><a href="mailing-list.html">Mailing List</a></b>
<br> <b><a href="bug-tracker.html">Bug Tracker</a></b>
</center>
</td>
@@ -87,7 +82,7 @@ google_color_text = "000000";
Cheetah</font></b></big></big></big>
<br>
<big><font face="arial,helvetica,sanserif">
PowerTap Software for Mac OS X
Cycling Performance Software for Linux, Mac OS X, and Windows
</font></big>
<p>
</td></tr>
@@ -114,9 +109,9 @@ while (<FILE>) {
}
close (FILE);
if (defined $last_mod) {
print "<p><hr><em>Last modified $last_mod.</em>\n";
}
#if (defined $last_mod) {
# print "<p><hr><em>Last modified $last_mod.</em>\n";
#}
print<<EOF;

BIN
doc/web/google-earth.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 KiB

View File

Before

Width:  |  Height:  |  Size: 203 KiB

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

46
doc/web/index.content Normal file
View File

@@ -0,0 +1,46 @@
<!-- $Id: index.content,v 1.1 2006/05/16 14:24:50 srhea Exp $ -->
<p>
<center>
<em>To all those volunteers who selflessly give their time and without whom
amateur sport would not exist.</em>
<br>
-- Graeme Obree, in the dedication of <em>Flying Scotsman</em>
</center>
<p>
GoldenCheetah is a software package that:
<ul>
<li>Downloads ride data directly from the CycleOps PowerTap and the SRM
PowerControl V. Support for SRM PowerControl VI and VII is planned for the
future.<p>
<li>Imports ride data downloaded with other programs, including TrainingPeaks
WKO+ and the manufacturers' software for the Ergomo, Garmin, Polar, PowerTap,
and SRM devices.<p>
<li>Provides a rich set of analysis tools, including a critical power graph,
BikeScore calculation, histogram analysis, a best interval finder, and a pedal
force versus pedal velocity chart, to name just a few.<p>
<li>Is available for Linux, Mac OS X, and Windows.<p>
<li>Is released under an Open Source license.
</ul>
<p>
We believe that cyclists should be able to download their power data
to the computer of their choice, analyze it in whatever way they see fit, and
share their methods of analysis with others.
<hr width="20%"/>
<small>
<p>
* WKO+ and TrainingPeaks are trademarks of Peaksware, LLC.
<br/>
** BikeScore is a trademark of Dr. Philip Friere Skiba, PhysFarm Training
Systems LLC.
</p>
</small>

BIN
doc/web/logo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
doc/web/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

View File

@@ -0,0 +1,17 @@
<p>
There are two mailing lists for the Golden Cheetah project:
<p><a href="http://groups.google.com/group/golden-cheetah-users">Golden
Cheetah Users</a> is a list for submitting bug reports, feature requests, and
constructive criticism. It's a good place to search if you have a question
that someone might have already answered. It's also where we discuss new
features, plans, etc. On busy days there may be as many as 20 emails sent to
Golden Cheetah Users.
<p><a href="http://groups.google.com/group/golden-cheetah-announce">Golden
Cheetah Announce</a> is a lower volume, moderated list where we post
announcements of new releases, important bug fixes, etc. If you don't want to
get a lot of email, but you do want to know when we put out a new release,
this is the list for you. It receives one or two emails per month.

BIN
doc/web/main-window.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

View File

@@ -1,5 +1,6 @@
#!/bin/sh
# $Id: mkdmg.sh,v 1.2 2006/09/06 23:23:03 srhea Exp $
export PATH=/usr/local/Trolltech/Qt-4.1.1-static/bin:$PATH
VERS=`date +'%Y-%m-%d'`
OS=`uname -s`
CPU=`uname -p`
@@ -7,22 +8,24 @@ SUFFIX="$VERS"_"$OS"_"$CPU"
rm -rf tmp
mkdir tmp
cd tmp
svn checkout svn+ssh://goldencheetah.org/home/srhea/svnroot/goldencheetah/trunk goldencheetah
svn checkout svn+ssh://goldencheetah.org/home/srhea/svnroot/goldencheetah/trunk/src goldencheetah
cd goldencheetah
qmake
make
mv src/gui/GoldenCheetah.app ..
make clean
rm doc/gc_*.tgz
rm doc/GoldenCheetah_*.dmg
mv gui/GoldenCheetah.app ..
#make clean
#rm doc/gc_*.tgz
#rm doc/GoldenCheetah_*.dmg
#rm doc/GoldenCheetah_*.tgz
cd ..
strip GoldenCheetah.app/Contents/MacOS/GoldenCheetah
find . -name .svn | xargs rm -rf
tar czvf src.tgz goldencheetah
rm -rf goldencheetah
SIZE=`du -csk * | grep total | awk '{printf "%.0fm", $1/1024+5}'`
strip GoldenCheetah.app/Contents/MacOS/GoldenCheetah
#find . -name .svn | xargs rm -rf
#tar czvf src.tgz goldencheetah
SIZE=`du -csk GoldenCheetah.app | grep total | awk '{printf "%.0fm", $1/1024+5}'`
hdiutil create -size $SIZE -fs HFS+ -volname "Golden Cheetah $VERS" tmp.dmg
hdiutil attach tmp.dmg
cp -R GoldenCheetah.app src.tgz /Volumes/Golden\ Cheetah\ $VERS/
cp -R GoldenCheetah.app /Volumes/Golden\ Cheetah\ $VERS/
hdiutil detach /Volumes/Golden\ Cheetah\ $VERS/
hdiutil convert tmp.dmg -format UDZO -o GoldenCheetah_$SUFFIX.dmg
hdiutil internet-enable -yes GoldenCheetah_$SUFFIX.dmg

BIN
doc/web/map.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

BIN
doc/web/metrics-power.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Some files were not shown because too many files have changed in this diff Show More