Compare commits

...

1473 Commits

Author SHA1 Message Date
Mark Liversedge
0ca339ced6 Version 3.4 RC2
.. update versioning
2016-11-05 11:19:40 +00:00
grauser
c1a644b5a3 LTM: Correction for table without highlight
Thank you Ale
2016-11-04 22:18:30 +01:00
grauser
d1dd455e52 LTM : Highlight higher or lower values in table view
fix #2168
2016-11-04 00:09:24 +01:00
Alejandro Martinez
f65bf25cb9 Merge pull request #2171 from amtriathlon/master
Fixed RideSummary refresh when selected ride changes while not visible
2016-11-01 22:20:08 +02:00
Alejandro Martinez
887c060aa3 Fixed RideSummary refresh when selected ride changes while not visible
Fixes #2170
2016-11-01 15:38:47 -03:00
grauser
21fd8a6964 FIT : Changes in CIQ reading 2016-10-31 23:13:33 +01:00
grauser
454b928b3f Small correction 2016-10-31 23:08:37 +01:00
grauser
f2388fef06 Translation 2016-10-31 23:08:37 +01:00
Alejandro Martinez
0de0f5dbbb Merge pull request #2157 from amtriathlon/master
Set Sport to Bike and process defaults on Download
2016-10-31 19:32:50 +02:00
Mark Liversedge
3f5037faf7 Merge pull request #2162 from lumanz/master
Chinese Translation Update
2016-10-30 22:52:24 +00:00
lumanz
6866abd836 Chinese Translation Update 2016-10-30 23:17:45 +08:00
Mark Liversedge
2a4d96b1d9 Fix infinite loop hang in DanielsPoints
.. the attenuation loop would run forever if values computed were
   infinite or not a number.
2016-10-30 11:03:45 +00:00
Mark Liversedge
4d82937f90 Merge pull request #2159 from bstegmaier/bugfix/2158_wheel_perimeter
Fix bug in wheel perimeter calculation
2016-10-28 10:43:34 +01:00
Benedikt Stegmaier
d2b70c8b17 Fix bug in wheel perimeter calculation
fixes #2158

Issue:
The contents of the combo box, the array holding the raw mm values and
the index range checks were out of sync.
This led to wrong or no values at all during the wheel perimeter
calculation.

Changes:
* Add missing rim diameter 584mm
* Adjust rouding error in tire casing diameter
* Make index range checks more robust by using the actual array size
  instead of just assuming a length
* Display ISO5775/ETRTO mm values in combo box
2016-10-28 11:06:46 +02:00
Alejandro Martinez
99674fe8df Set Sport to Bike and process defaults on Download
When the device is isBikeOnly, default to true for all currently
supported devices, except Moxy.
Fixes #2156
2016-10-27 13:43:59 -03:00
Alejandro Martinez
ae0f18448c Merge pull request #2155 from amtriathlon/master
Process linked defaults on Manual Entry
2016-10-27 17:42:25 +02:00
Alejandro Martinez
41993161d4 Process linked defaults on Manual Entry
Fixes #2154
2016-10-27 10:18:29 -03:00
Mark Liversedge
8d2212b8b3 Merge pull request #2153 from amtriathlon/master
Added Simple Average trend type to Metrics Trends charts
2016-10-26 14:54:59 +01:00
Mark Liversedge
e162e1c5bb Merge pull request #2151 from antoniusriha/fix_seg_fault_after_close
Fix seg fault that occurs after closing app
2016-10-26 14:52:30 +01:00
Mark Liversedge
0854892900 Merge pull request #2150 from antoniusriha/fix_leak_in_refreshCustomTable
Fix a leak in refreshCustomTable
2016-10-26 14:51:52 +01:00
Alejandro Martinez
1928b5b511 Added Simple Average trend type to Metrics Trends charts
Combined with the Group By feature, it allows a simple way
to see weekly, monthly and yearly averages for cumulative
metrics s.t. Duration, Distance, TSS, etc.
2016-10-26 10:01:07 -03:00
Antonius Riha
fb069346f1 Free application object before returning from main 2016-10-25 18:48:43 +02:00
Antonius Riha
64d3ed3b3d Fix a leak in refreshCustomTable 2016-10-25 16:50:05 +02:00
Mark Liversedge
869c00bc67 Reduce compiler warnings from gcc5
.. lots of warnings about unused global variables that
   are being used to call functions before main

.. a few other smaller nits that could be fixed easily

.. now get fewer warnings and more meaningful to then
   review and resolve them
2016-10-23 11:19:56 +01:00
Alejandro Martinez
bb99bc6d1e Merge pull request #2142 from amtriathlon/BestTime
Changed BestTime metrics units to minutes for better charting
2016-10-20 10:03:22 -03:00
grauser
3ece3e070a Fit : Small correction for native fields 2016-10-19 23:20:00 +02:00
Alejandro Martinez
0b77d468c4 Changed BestTime metrics units to minutes for better charting
It is a more natural unit is most cases and allows enhanced
plotting in LTM charts since seconds are converted to hours.
Labels and ToolTip are shown in sexagesimal format.
2016-10-19 15:28:08 -03:00
grauser
9048db61e0 XData : Add copy/paste 2016-10-19 17:46:21 +02:00
Mark Liversedge
eee3a0bb13 Merge pull request #2117 from Joern-R/Sorting
Improve sorting in ride navigator
2016-10-19 14:29:25 +01:00
Mark Liversedge
76145eb2c0 Fix SEGV on delete season phase
.. the code was never written, so the season code just
   crashes using an index of -1 into the season array

.. updated LTMSidebar.cpp to catch delete phase and handle
   it appropriately, but the real fix should be to abstract
   the code added into the Season/Phase classes.

Fixes #2139.
2016-10-17 12:12:40 +01:00
Alejandro Martinez
aaa73664dd Merge pull request #2138 from amtriathlon/CalendarPopup
Added Calendar Popup to QDateEdit fields with default format
2016-10-16 13:17:52 -03:00
Mark Liversedge
a39c50a20f Revert "Fix ComparePane Memory Leak"
This reverts commit f6c218873c.

Since it has a major regression.

Fixes #2112
2016-10-16 12:23:17 +01:00
Alejandro Martinez
d596b3d5c3 Added Calendar Popup to QDateEdit fields with default format
To enhance usability, specially when the locale uses 2 digits years.
Fixes #2123
In some places s.t. TPDowloadDialog and FileStore it was already set.
Not added to RideMetadata and RideImportWizard where 4 digits year is fixed.
2016-10-15 09:08:41 -03:00
Alejandro Martinez
5f31c94702 Merge pull request #2131 from amtriathlon/multisport
Skip non relevant metrics for RideSummary in Trends view
2016-10-14 10:18:51 -03:00
Alejandro Martinez
3ac0ec7e94 Recognized Ugo Borello
Contributed an updated Italian translation for v3.4
2016-10-14 10:09:06 -03:00
Ugo Borello
a6450d9c7f Updated Italian Translation 2016-10-14 10:07:16 -03:00
Alejandro Martinez
585fa93124 Merge pull request #2136 from amtriathlon/master
Changed PMCDate start date to first activity minus 1 day
2016-10-14 09:51:52 -03:00
Alejandro Martinez
10de0029e7 Changed PMCDate start date to first activity minus 1 day
When it predates the first season so that first activity is included
Fixes #2135
2016-10-11 19:52:00 -03:00
grauser
f300ccc40c FIT : don't overide existing standard native field 2016-10-11 23:45:53 +02:00
grauser
911a0533bb FIT: debug trace 2016-10-11 21:24:47 +02:00
Alejandro Martinez
a23bd488dc Trends RideSummary Shows only Relevant Metrics on activities lists
Avoiding non relevant metrics for each sport allows to
show more relevant metrics on the available columns.
2016-10-10 10:59:53 -03:00
Alejandro Martinez
1a7b258af6 Skip non relevant metrics on ComparePane
and RideSummary in CompareMode.
Metrics have to be relevant for at least one activity
on some of the compared date ranges to be shown.
2016-10-08 22:36:06 -03:00
Alejandro Martinez
2c027d8c6f Speedup isMetricRelevantForRides method
Shortcut or is enough
2016-10-08 09:50:26 -03:00
Alejandro Martinez
694e7688ae Skip non relevant metrics for RideSummary in Trends view
Adds isMetricRelevantForRides(specification, metric) to RideCache
to check if a metric isRelevant for some of the activities passing
the specification
Also reduces from 3 to 1 the calls to getRideTypeCounts
2016-10-07 21:17:43 -03:00
Mark Liversedge
30a11abeed Merge pull request #2125 from Joern-R/compare-drag
UI Nit - Compare Pane Action not marked in View menu
2016-10-07 19:29:03 +01:00
Mark Liversedge
dfb7483398 Merge pull request #2128 from Joern-R/NPE
Fix SIGSEGV in RideNavigator List in Sidebar on Activities View
2016-10-07 19:28:09 +01:00
Mark Liversedge
d51cd480b4 Merge pull request #2129 from Joern-R/saveAll
Add "Save all modified activities" feature
2016-10-07 19:26:16 +01:00
Joern
e7ab127b51 Add "Save all modified activities" feature
... re-using the existing functions recognizing modified activities
... allowing to save all, without remembering to save one-by-one or
    leaving GC to make sure that all was saved
2016-10-06 16:24:22 +02:00
Joern
15b52b0732 Fix SIGSEGV in RideNavigator List in Sidebar on Activities View
... when changing the ride by clicking in the list - while change e.g. Detail data in the activities view GC aborted
    because the proxyIndex.internalPointer() was not initialized
    checking the initialization like in the other cases in the code fixed the problem
2016-10-06 14:56:03 +02:00
Joern
b018ded8f8 UI Nit - Compare Pane Action not marked in View menu
... when ComparePane is opened by drag&drop event menu item "Show Compare Pane" was not marked active
2016-10-04 15:18:07 +02:00
Alejandro Martinez
248a4b70c4 Merge pull request #2124 from amtriathlon/multisport
Show only metrics relevant for some compared intervals
2016-10-03 19:34:16 -03:00
Alejandro Martinez
b1cff2bb48 Show only metrics relevant for some compared intervals
In ComparePane and RideSummary, to have a cleaner interval
comparison for multisport users having interval metrics
configured for different sports or cyclists using
metrics based on data not always present.
Fixes #2110
2016-10-03 14:51:53 -03:00
Joern
a1bc53fe61 Merge pull request #2119 from Joern-R/filestore
Fix Dump in Dropbox sync without network access ...
2016-10-03 18:14:18 +02:00
Alejandro Martinez
566b0ee527 Merge pull request #2121 from amtriathlon/master
Format Pace metrics labels as mm:ss in Metric Trends Charts
2016-10-03 10:21:18 -03:00
Alejandro Martinez
b580e27c8e Format Pace metrics labels as mm:ss in Metric Trends Charts
Modification of previous commit: fc5f899a19
to consider pace based formulas, it is sligthly simpler BTW.
2016-10-02 17:52:31 -03:00
Joern
142b1889e4 Fix QT4 build errors ...
... for sorting improvement
2016-10-02 19:50:39 +02:00
Joern
559feba1fb Fix Dump in Dropbox sync without network access ...
... improve error messages for upload/sync in case of no network access
... fix "authorized" icon position for Dropbox in Options
2016-10-02 19:30:57 +02:00
Joern
2f6bb8a38b Improve sorting in
... compare pane for time/duration fields
... ride navigator for numeric fields e.g. average speed (which were sorted as string before)
2016-10-02 17:57:45 +02:00
grauser
e0336f2eac Fit : Use developer id and field num for XData too. 2016-10-02 11:12:06 +02:00
grauser
fad08d699d French translation (slow) progress 2016-10-02 10:40:23 +02:00
grauser
e586193d25 Fit : Two developer field can have the same field number
fix #2115
2016-10-02 10:40:15 +02:00
Alejandro Martinez
7cfb9709e7 Merge pull request #2105 from amtriathlon/translation
Completed Dutch translation for v3.4
2016-09-28 16:25:10 -03:00
Alejandro Martinez
236e45e4ab Completed Dutch translation
Contributed by Marcel Breij
2016-09-28 15:15:29 -03:00
grauser
85ac88aedb Pwx : Add Garmin Cycling Dynamics in Pwx writer (export) 2016-09-28 17:10:59 +02:00
Mark Liversedge
ca6c4ea8d9 Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2016-09-28 07:35:26 +01:00
Alejandro Martinez
a9af33c6d1 Updated Dutch translation
Contributed by Marcel Breij
2016-09-28 07:11:37 +01:00
Alejandro Martinez
39abbaf7f4 Updated Spanish translation 2016-09-28 07:11:37 +01:00
Alejandro Martinez
1da5f04c03 Enabled common metadata fields for translation
and minor fixes to enable translation in RideEditor PasteEspecial dialog
2016-09-28 07:11:37 +01:00
grauser
611fd30b8b Pwx : Add test file with Garmin Cycling Dynamics
fix #2100
2016-09-28 07:11:37 +01:00
grauser
fb009b3b57 Pwx: Add Garmin Cycling Dynamics 2016-09-28 07:11:37 +01:00
grauser
4cd1b4f0ae Update french translation 1/2 2016-09-28 07:11:36 +01:00
Alejandro Martinez
54ef5cef26 Updated Dutch Translation
Contributed by Marcel Breij
2016-09-28 07:11:36 +01:00
Alejandro Martinez
07e2dec702 Updated Spanish Translation 2016-09-28 07:11:36 +01:00
Alejandro Martinez
dff45023cf Fixed non-translatable column headers
On RideEditor Search and Named Searchs
2016-09-28 07:11:36 +01:00
Alejandro Martinez
a23b9e00c1 Added Dutch to CloudDB Charts languages 2016-09-28 07:11:36 +01:00
Mark Liversedge
c18fd05d79 Disable R if it fails to embed
.. so we don't keep grumbling to the user.
2016-09-28 07:11:36 +01:00
Alejandro Martinez
3a5f52de46 Merge pull request #2104 from amtriathlon/translation
Minor Translation Fixes and Update
2016-09-27 21:53:23 -03:00
Alejandro Martinez
61beaf789c Updated Dutch translation
Contributed by Marcel Breij
2016-09-27 21:12:34 -03:00
Alejandro Martinez
986d3d8ba9 Updated Spanish translation 2016-09-27 21:11:08 -03:00
Alejandro Martinez
cd3e9a1465 Enabled common metadata fields for translation
and minor fixes to enable translation in RideEditor PasteEspecial dialog
2016-09-27 21:09:00 -03:00
grauser
1ad76d5d81 Pwx : Add test file with Garmin Cycling Dynamics
fix #2100
2016-09-27 23:15:06 +02:00
grauser
39c66c7cf8 Pwx: Add Garmin Cycling Dynamics 2016-09-27 23:08:07 +02:00
grauser
a2c9bd2cf8 Update french translation 1/2 2016-09-27 22:28:31 +02:00
Alejandro Martinez
5b01dda94a Merge pull request #2102 from amtriathlon/translation
Some minor translation related fixes
2016-09-27 13:55:22 -03:00
Alejandro Martinez
5f34b1f4f0 Updated Dutch Translation
Contributed by Marcel Breij
2016-09-27 11:38:58 -03:00
Alejandro Martinez
198ca1ba25 Updated Spanish Translation 2016-09-27 11:22:29 -03:00
Alejandro Martinez
0c743fcb40 Fixed non-translatable column headers
On RideEditor Search and Named Searchs
2016-09-27 11:16:51 -03:00
Alejandro Martinez
ee2c924bfe Added Dutch to CloudDB Charts languages 2016-09-27 11:03:31 -03:00
Mark Liversedge
d69b163b55 REST API disabled by default
.. if the setting has not been made in options/prefs we
   set the API web services to be disabled.

.. this is to stop warning messages about windows firewall
   that will appear, and also to reflect the fact that
   the majority of users will likely not require the
   web services anyway.
2016-09-27 08:18:49 +01:00
Mark Liversedge
22084d4fc6 Disable R if it fails to embed
.. so we don't keep grumbling to the user.
2016-09-26 15:40:25 +01:00
Mark Liversedge
edbc9b91e2 3.4 RC1
.. versioning
2016-09-25 09:49:04 +01:00
Mark Liversedge
edf91dc7ad Fix integer constant is too large for 'long' type
.. use long double constant
2016-09-24 16:19:52 +01:00
Alejandro Martinez
385418ed4d Merge pull request #2097 from amtriathlon/master
Format pace as mm:ss in labels and tooltips for Metrics Trends charts
2016-09-24 08:40:51 -03:00
Mark Liversedge
ea7aa2ccf4 Options to Preferences regardless of language
.. when translating "Options" they are no longer put into
   the main menu on OSX.

.. we now explicitly set the menu type to ensure this
   happens regardless of the text.
2016-09-24 11:01:27 +01:00
Joern
c9c5c9af25 Merge pull request #2099 from Joern-R/DE1
Fix Translation DE (Summary)
2016-09-24 11:38:53 +02:00
Joern
e7679a6b70 Fix Translation DE (Summary) 2016-09-24 11:07:41 +02:00
Alejandro Martinez
fc5f899a19 Format Pace metrics labels as mm:ss in Metric Trends Charts
Fixes #2063
2016-09-23 19:29:13 -03:00
Alejandro Martinez
bdd7da9618 Show pace as mm:ss in Metrics Trends chart tooltip
Reported in #2063
2016-09-23 18:38:19 -03:00
Alejandro Martinez
780467ba8d Merge pull request #2094 from amtriathlon/master
Changed toLatin1 for toStdString on gchart import
2016-09-23 08:41:18 -03:00
Alejandro Martinez
c401256df8 Changed toLatin1 for toStdString on gchart import
To allow the use of non-ascii characteres on chart title
Tested with accented spanish vowels
Fixes #2092
2016-09-22 18:57:53 -03:00
Alejandro Martinez
5e1722b167 Updated Dutch Translation
Contributed by Marcel Breij <marcel.breij@xs4all.nl>
2016-09-22 11:12:07 -03:00
Alejandro Martinez
a7676f6db6 Merge pull request #2093 from amtriathlon/translations
Added Dutch translation
2016-09-21 19:35:17 -03:00
Alejandro Martinez
dd31b7d354 Fixed typo 2016-09-21 16:50:57 -03:00
Alejandro Martinez
0f1fd2c11c Added Dutch translation
Initial translation contributed by Marcel Breij <marcel.breij@xs4all.nl>,
Added recognition to contributors list
Fixes #1898
2016-09-21 16:26:30 -03:00
Joern
4347b4d62a Merge pull request #2091 from Joern-R/DE
Update Translation DE for 3.4
2016-09-20 20:15:44 +02:00
Joern
2901f8841d Update Translation DE for 3.4 2016-09-20 19:08:04 +02:00
Mark Liversedge
bffad3ed7b Merge pull request #2090 from MaksVasilev/ru-translation
Russian translation update and fix
2016-09-20 11:37:40 +01:00
maksvasilev
830e1116d9 Russian translation update and fix 2016-09-20 12:37:39 +03:00
Alejandro Martinez
e5b2393f73 Merge pull request #2088 from amtriathlon/master
Completed Spanish Translation for V3.4
2016-09-19 15:27:03 -03:00
Mark Liversedge
07b15656ef Fix Workout Editor Scaling Issue
.. caused by storing points as ints not doubles.
2016-09-19 18:54:28 +01:00
grauser
f2d8db24c3 FIT : Don't create interval for partial segment
fix #2089
2016-09-19 18:47:23 +02:00
Alejandro Martinez
221ed41b86 Completed Spanish Translation for V3.4 2016-09-19 12:55:39 -03:00
grauser
48f32e3c8e FIT : Add FR630 and FR230 devices 2016-09-18 11:55:51 +02:00
grauser
8e72d06139 FIT : Small correction in DeviceInfo 2016-09-18 00:26:21 +02:00
grauser
bbab282c8c FIT : ignore record field 87 (even in EXTRA) 2016-09-18 00:15:57 +02:00
grauser
9e88ab57e1 FIT : Keep track of field name for native deve field 2016-09-18 00:13:40 +02:00
grauser
e86b28102b FIT : Use offset and scale from DEVE fields 2016-09-17 23:55:06 +02:00
Alejandro Martinez
322e452cbf Updated Spanish Translation
Finished CloudDB UI
2016-09-17 17:54:07 -03:00
grauser
00e3e13e59 FIT : Update cadence valeu with fractionnal value 2016-09-17 21:45:10 +02:00
grauser
3921a295d4 FIT: Add an EXTRA XData serie for unsupported native fields. 2016-09-17 16:06:58 +02:00
Mark Liversedge
1c18ddfb40 Merge pull request #2052 from gernot-hochmuth/master
Fix calculation of minimum values of SmO2 and tHb and average of tHB
2016-09-16 22:10:48 +01:00
Alejandro Martinez
dcbaa08a5a Merge pull request #2085 from amtriathlon/FixLapSwim
Added Fix Lap Swim tool
2016-09-15 10:36:58 -03:00
Alejandro Martinez
7de54f0adb Added Fix Lap Swim tool
To regenerate second-by-second data based on updated length-by-length info
and to recompute accumulated time and distance.
Laps are regenerated using pause lengths as markers.
2016-09-14 21:19:46 -03:00
grauser
fba90c504b FIT : Correct Field name for not supported native field 2016-09-14 20:08:27 +02:00
grauser
1a19fa46fe FIT : Remove unused method 2016-09-13 22:18:52 +02:00
grauser
adc7b7a40e FIT : Use series symbol name for XData name (native fields) 2016-09-13 22:15:46 +02:00
Mark Liversedge
4418ff9b3f Compile nits
.. maybe cause issues on Win build.
2016-09-13 13:32:00 +01:00
Jeffrey Friedl
e52b7c121b Export GPX file format 2016-09-12 20:12:06 +01:00
Joern
43925093a3 Merge pull request #2081 from Joern-R/master
Update Translation DE
2016-09-10 20:15:23 +02:00
Joern
04e293b659 Update Translation DE 2016-09-10 19:26:48 +02:00
Mark Liversedge
f6c218873c Fix ComparePane Memory Leak
.. delete data created on drop into compare pane.
2016-09-10 15:26:56 +01:00
Mark Liversedge
94e184dfc4 Fix XDATA in Compare Mode
.. the xdata wasn't being copied when dropping into the
   compare pane. This has been resolved, but might be worth
   looking closely at likely memory leak.
2016-09-09 16:04:25 +01:00
Mark Liversedge
4c9445e7af Fix RowPerfect 3 CSV Import
.. handle intervals properly
.. fix offsetting of intervals in RideFile.cpp (ancient bug!)
2016-09-08 22:59:19 +01:00
Mark Liversedge
56170241f3 XDATA_UNITS accepts wildcards too 2016-09-08 21:22:20 +01:00
Mark Liversedge
0a4b97cec6 XDATA(name, series, ...) accepts wildcards
.. you can now use the XDATA function to return XDATA field
   values using a wildcard.

.. this is likely to be most useful for ignoring the xdata
   name when searching for a specific data series.

.. e.g. XDATA("*", "YAW", repeat) will get the YAW data series
   regardless of the name of the xdata name that the user
   chooses.
2016-09-08 20:25:19 +01:00
grauser
b84eb4f660 Fit : Add a short label methode for native field 2016-09-08 00:33:49 +02:00
grauser
000d1c7e49 FIT Developer Fields : Use only one deve fields as native 2016-09-07 23:52:17 +02:00
grauser
12107d1519 FIT Developer Fields : Ignored native deve fields in XDATA 2016-09-07 23:34:02 +02:00
grauser
474f5b5287 FIT Developer Fields : Use native fields 2016-09-07 22:28:35 +02:00
Mark Liversedge
6e14c1eaf7 FIT Developer Fields native_field_num
.. extracting with a view to identifying special cases in
   the FIT developer fields.

.. in this instance the Moxy series have special values of
   54 and 57, but its not clear how we can handle this in a
   generic fashion (the whole thing is stinky).
2016-09-07 17:32:26 +01:00
Alejandro Martinez
7337a79e14 Merge pull request #2075 from amtriathlon/master
Added Reset to default to Analysis Sidebar Navigator
2016-09-07 10:57:19 -03:00
Alejandro Martinez
736e97a5ac Merge pull request #2080 from amtriathlon/ManualWorkouts
Don't override Duration and Distance for Manual Workouts with laps
2016-09-06 19:39:06 -03:00
grauser
061d1f5e63 FitRideFile: Some corrections for developer fields 2016-09-06 22:20:05 +02:00
Alejandro Martinez
f78d37a525 Don't override Duration and Distance for Manual Workouts with laps
To avoid problems with interval Duration and Distance
due to issue #2078
2016-09-06 15:44:43 -03:00
Alejandro Martinez
5e72770d9f Added Reset to default to Analysis Sidebar Navigator
To fix issues when column widths go crazy or column
name colisions after language change (ex. italian Data)
Fixes #1960
2016-09-02 13:52:52 -03:00
Alejandro Martinez
43720febd9 Merge pull request #2074 from lumanz/master
Simplified Chinese translation minor update and fix
2016-09-01 11:02:04 -03:00
lumanz
404303068a Simplified Chinese translation update and fix for V3.4. 2016-09-01 19:50:51 +08:00
Alejandro Martinez
5416e80c95 lupdate on all translation files
plus some new spanish translations
2016-08-30 20:45:08 -03:00
Alejandro Martinez
6674dca5e9 Merge pull request #2066 from MaksVasilev/ru-translation
Russian translation update and fix
2016-08-30 20:29:49 -03:00
grauser
d65e7fdc14 FitRideFile: Developer fields can be float, string or int
- Honnor valueType
   - More than one fields can have the same name
2016-08-26 23:40:25 +02:00
Mark Liversedge
32628f0291 Fix Temperature Metric/Imperial conversion
Fixes #2065
2016-08-26 17:31:16 +01:00
Mark Liversedge
b1190a9db6 Add XData UNITS support Part 2 of 2
.. added to DataFilter XDATA_UNITS("..", "...") returns the units as
   a string.

.. added to the various dialogs in RideEditor, to enable units and
   series name to be set and edited by the user.
2016-08-26 11:37:34 +01:00
Mark Liversedge
8e42b48bd8 Add XData UNITS support Part 1 of 2
.. added to JSON file format, set when importing from RP3 and FIT files

.. primarily used by FIT developer fields that contain unit data

.. but we add units for file formats where we know them (as an english
   language string)

.. in part 2 we will add units to the datafilter expressions and the
   dialogs in the ride editor to let users edit unit names along with
   value names.
2016-08-26 09:27:08 +01:00
maksvasilev
ce8883b178 Russian translation update and fix 2016-08-24 19:49:19 +03:00
grauser
711be63fc3 FitRideFile: Add XData serie for Developer fields 2016-08-24 17:46:58 +02:00
Mark Liversedge
08433306b8 Version 3.4 Development Build
.. interim version prior to v4 to get FIT file support
   into a release build.
2016-08-23 16:37:09 +01:00
Mark Liversedge
7ae9f32e04 Less Debug 2016-08-23 16:30:43 +01:00
grauser
303b820139 FitRideFile: Parse files with developer fields (FIT 2.0)
but don't use filed values yet
2016-08-21 22:41:22 +02:00
grauser
19e8cfeb85 Remove debug logs 2016-08-19 23:20:01 +02:00
grauser
957ae47099 FitRideFile : Read asynchronous Heart Rate data
fix #2001
2016-08-19 22:53:13 +02:00
Mark Liversedge
1a4ce01bbb Merge pull request #2055 from erikboto/qwkcode-fixes
Qwkcode fixes
2016-08-19 15:04:43 +01:00
Erik Botö
fb29b8c821 Train: Don't check how intervals relate to CP when compressing qwkcode into Nx blocks 2016-08-17 21:31:34 +02:00
Erik Botö
454653d6e2 Train: fix inconsistent lap numbers before and after save/load 2016-08-17 21:31:20 +02:00
Mark Liversedge
6ef99dcb5c Fix Compare AllPlot UserData SEGV
.. array indexing issue when using userdata and comparing rides.
2016-08-16 20:05:53 +01:00
Mark Liversedge
1a07c011a9 Merge pull request #2046 from MaksVasilev/translation
Russian translation fix
2016-08-13 20:01:36 +01:00
gernot-hochmuth
417c586073 Identification of Garmin Vivoactive and BSX Insight 2 in FIT-file import
A Garmin Vivoactive Sportswatch may be identified by its product code 1907.
A BSX Insight 2 Sensor may be identified by the manufacturer code 98 and the product code 2.

References #2040
please review
2016-08-13 15:24:02 +02:00
maksvasilev
607ba902e1 Russian translation fix 2016-08-13 16:11:10 +03:00
gernot-hochmuth
76b8ef4a57 Added metric running speed in CSV-file import recorded by BSX-Insight2
In CSV-files recorded by a BSX-Insight 2 sensor the running speed measured using a footpod is denoted as *speed*. Running speed is recorded in m/s. Conversion to km/h is implemented. The metric is converted to mph if GC is configured to use non metric units.

please review
2016-08-13 13:20:49 +02:00
gernot-hochmuth
4bac858c05 Fixed errors in Calculation of Avg(SmO2) and Avg(tHb).
The calculation of the mean included zeroes but zero is not
a valid value for these metrics.
2016-08-13 12:41:31 +02:00
gernot-hochmuth
e891976f01 Fix calculation of minimum values of SmO2 and tHb and average of tHb
In file src/Metrics/BasicRideMetrics.cpp the minimum values of SmO2 and tHb and the average of tHb are calculated incorrectly. In functions compute of class MinSmO2 resp. class MintHb actually the maximum values get computed.
For MinSmO2 the comparison in function compute should read:

```c++
    if (point->smo2 >= 0.0f && (notset || point->smo2 < min)) {
        min = point->smo2;
        if (point->smo2 > 0.0f && notset)
            notset = false;
    }
```

with min being a double initialized to 0.0f and notset a boolean initialized to true.
For MinSmO2 we've got to handle that the first recorded values might be zero, e.g. when the athlete did not attach the Moxy sensor to the muscle prior to starting recording. If the comparison given above holds true we have to verify that we get a valid value > 0 first before allowing SmO2 to fall down to zero again.

For MintHb the comparison in function compute should read:

```c++
    if (point->thb > 0.0f && (notset || point->thb < min)) {
        min = point->thb;
        notset = false;
     }
```

with min being a double initialized to 0.0f and notset a boolean initialized to true.
Please note that for physiological reasons the minimum value of tHb must not be zero as this would imply that the muscle under observation were totally drained from blood.

At the end of functions compute in classes MinSmO2 and MintHb we have to set the correct value:

```c++
    setValue(min); // was max before
```

In class AvgtHb we have to take into account that tHb must not be zero as well for the same reason as stated above. In function compute the comparison should read:

```c++
    if (point->thb > 0.0f) {
        total += point->thb;
        ++count;
    }
```

References #2050
please review
2016-08-13 12:25:48 +02:00
Mark Liversedge
2c228cf148 Merge pull request #2049 from amtriathlon/SwimMetrics
Added Average Swim Pace for the 4 strokes
2016-08-10 20:48:45 +01:00
Alejandro Martinez
aa324b40f0 Added Average Swim Pace for the 4 strokes
Using length by length XData, if available
2016-08-10 15:38:14 -03:00
Mark Liversedge
d2e64d2657 Merge pull request #2045 from erikboto/qwkcode_laps
Train: Add lap handling to qwkcode
2016-08-10 09:25:13 +01:00
Mark Liversedge
e0c366e1b9 Merge pull request #2048 from chocoby/add_pioneer_cycle_computer
Add Pioneer SGX-CA500 FIT support
2016-08-10 09:22:11 +01:00
Kenta Okamoto
a6fbc107c9 Remove unnecessary spaces 2016-08-10 14:31:43 +09:00
Kenta Okamoto
ab6e8398c3 Add Pioneer SGX-CA500 FIT support 2016-08-10 14:25:12 +09:00
maksvasilev
912fbef2b5 Russian translation fix 2016-08-09 02:29:23 +03:00
maksvasilev
0ff932728e Russian translation fix 2016-08-08 19:21:22 +03:00
Erik Botö
78f449fc92 Train: Add lap handling to qwkcode 2016-08-08 17:35:33 +02:00
Mark Liversedge
d6d74bdb15 Merge pull request #2043 from amtriathlon/PostProcess
Added postprocess(processor, filter) function to formulas
2016-08-08 08:26:14 +01:00
Alejandro Martinez
5cf9802a17 Added postprocess(processor, filter) function to formulas
to run an specific Data Processor, even if not configured to run
automatically on import, over existing activities which pass the
filter expression using configured parameters.
Fixes #2037
2016-08-07 17:33:30 -03:00
Mark Liversedge
54162f4b38 Merge pull request #2038 from amtriathlon/AutoProcess
Added autoprocess(filter) function to formulas
2016-08-06 08:17:38 +01:00
Alejandro Martinez
98cdfdc74e Added autoprocess(filter) function to formulas
to run Data Processors configured to run automatically on import
over existing activities which pass the filter expression
Fixes #2037
2016-08-05 20:39:52 -03:00
Mark Liversedge
74fdc4e2db Merge pull request #2036 from amtriathlon/master
BatchExportDialog now honors context filter
2016-08-05 08:55:34 +01:00
Alejandro Martinez
c987ffacaa BatchExportDialog now honors context filter
To allow export of selected activities
Fixes #2035
2016-08-04 20:28:05 -03:00
Mark Liversedge
107bbb9e62 Merge pull request #2030 from amtriathlon/master
Prevent a crash when selecting an interval after PowerTap download
2016-07-31 14:57:02 +01:00
Alejandro Martinez
9134796381 Prevent a crash when selecting an interval after PowerTap download
Reproducible downloading/importing a PowerTap .raw file and
selecting an interval for the first time, _model->series is NULL
in this case, no model case added for safety
2016-07-31 09:50:31 -03:00
Mark Liversedge
838bde4c8d Sketch of Planning UX
Need to think through how each of the pieces interact with each other, but this is a basic view of a planning widget.
2016-07-30 12:09:51 +01:00
Mark Liversedge
1010d53c95 Merge pull request #2027 from lumanz/master
zh-cn translation update
2016-07-30 09:01:23 +01:00
lumanz
ec1770ffe1 zh-cn translation update 2016-07-30 13:12:04 +08:00
grauser
6304853dce Route : Remove debug line 2016-07-28 23:52:43 +02:00
grauser
e0aa980d30 Metrics : Efficiency Factor for run : use power if available 2016-07-28 23:50:22 +02:00
grauser
1d34f0eb8d Joule: Mark end of interval in interval mode. 2016-07-28 23:50:22 +02:00
grauser
cf3055cfbc RunMetrics : Add stride length 2016-07-28 23:50:22 +02:00
grauser
8f106c09de Route : Minimum precision of 50m seems insufficient. Return to 100m 2016-07-28 23:50:22 +02:00
Mark Liversedge
b85cd76842 Merge pull request #2024 from amtriathlon/Defaults
Set linked defaults on import
2016-07-27 18:13:03 +01:00
Alejandro Martinez
cc02714983 Set linked defaults on import
For defaults which depend, directly or indirectly, on fields automatically
set on import
Fixes #2023
2016-07-27 13:28:45 -03:00
Mark Liversedge
db2be38399 RideFile::NA -> NA_REAL for R chart
.. translate from RideFile::NA values to R NA values
   when putting xdata into an activity data.frame.
2016-07-26 09:38:25 +01:00
Mark Liversedge
63d3e61a99 Add XDATA to R:GC.activity()
.. get access to XDATA to work with it in R
2016-07-23 12:17:05 +01:00
Mark Liversedge
e89f5abeeb Hack in main.cpp for metric documentation
.. disabled by default, but can run to get a list
   of metrics and their descriptions to update the wiki
2016-07-23 10:37:07 +01:00
Mark Liversedge
32bcbcd544 Refactor xdataValue() into RideFile
.. so it can be used across the code

.. but especially to enable RTool to use it when creating
   a data.frame for ride data to include xdata series.
2016-07-23 10:04:38 +01:00
grauser
9862bd02a2 RunMetrics: Add a first EI metric and move Pace in RunMetrics 2016-07-23 09:42:43 +02:00
Mark Liversedge
88ce4667a5 Merge pull request #2020 from amtriathlon/XData
RideEditor - Propagate interval selection to XData series
2016-07-22 21:11:51 +01:00
Alejandro Martinez
f2ca12a4c0 RideEditor - Propagate interval selection to XData series 2016-07-22 16:15:30 -03:00
Mark Liversedge
4d96c93588 Merge pull request #2019 from amtriathlon/SwimMetrics
Added some common swimming metrics
2016-07-22 08:31:33 +01:00
Alejandro Martinez
bed8953744 Added some common swimming metrics
Stroke Rate: counting both arms for crawl/back corrected by 3m push-off when Pool Length is defined
Swim Pace: average swim pace in min/100m or min/100yd when Cadence>0, to avoid kick/drill sets
Strokes Per Length: counting only the arm with the watch, pool length defaults to 50m
SWolf: Strokes Per Length plus time in seconds, pool length defaults to 50m
Also moved Distance Swim and Pace Swim from BasicRideMetrics.cpp
2016-07-21 20:12:52 -03:00
grauser
2af323ce05 RunMetrics : Add Average Running Vertical Oscillation and Ground Contact Time 2016-07-21 23:48:33 +02:00
grauser
4b4c0059c7 Fit: debug 2016-07-20 22:05:53 +02:00
Mark Liversedge
8d463fd64d XDATA in DataFilter 2 of 3
.. implement sparse, interpolate and resample is a shorthand
   for interpolate (for now).
2016-07-20 20:03:10 +01:00
Mark Liversedge
6f4a349c7f Add Row Perfect 3 sample file
.. to the tests/rides directory
2016-07-19 15:43:23 +01:00
Mark Liversedge
532d5144da Row Perfect 3 CSV File Support
.. all data added as XDATA.
.. time, distance, power and hr available in standard data too.
2016-07-19 15:41:07 +01:00
Mark Liversedge
053daf830d DataFilter Arrays and INDEX
.. when working with user data and user metrics its often
   useful to work with arrays or index into the ride data.

.. a new variable INDEX is available that is the sample
   number in the array of samples that make up the ride.

.. you can dereference samples in a ride using the []
   operator so POWER[55] is the 55th sample for power.

.. when iterating you should consider the recording interval
   so NN <- 1200 / RECINTSECS would set NN to the number of
   samples in 20 minutes.

.. you can also use your own arrays: MYARRAY[44] <- 100 will
   set the 44th item in MYARRAY to 100.

.. the old vector syntax [ date : date ] has been deprecated
   since it is too complex !
2016-07-18 19:55:58 +01:00
Mark Liversedge
7d7a288e23 RideEditor force setTabBar on RideSelected
.. even if the data series are the same, as the data will
   be different !
2016-07-17 22:39:22 +01:00
Mark Liversedge
fcee30697e DataFilter XDATA code improvement
.. a much simpler approach to aligning the xdata series
   with the standard series, using a single index.

.. its faster and makes implementing the four different
   merge algorithms much more straight forward.

.. committing alone to separate from the implementation
   of separate algorithms.
2016-07-17 21:01:35 +01:00
Mark Liversedge
535b143f01 XDATA in DataFilter fixups
.. for thread safety the Leaf tree must NOT be used for state
   data when parsing / evaluating data filters -- the
   DataFilterRuntime object should be used.

.. updated to use this for xcurrent/xnext during XDATA
   processing which fixes UserMetric calculation using XDATA
   for intervals

.. also added a 'print' function in the datafilter syntax to
   help with debugging calculations.
2016-07-17 14:00:34 +01:00
Mark Liversedge
e74dffc23f AllPlot hide empty user data series
.. when using xdata we don't plot a blank curve
   when there isn't any xdata in the activity
2016-07-16 15:55:53 +01:00
Mark Liversedge
0f416e1ab8 XDATA in DataFilter 2 of 3
.. now we return values when working with metrics and user data

.. you can now create user metrics and user data to plot on the
   allplot or metrics charts

.. the XDATA function currently always returns a 'repeat' of the
   last value used until a new value is available, will fix this
   in commit 3 of 3
2016-07-16 13:42:40 +01:00
Mark Liversedge
8d27627c9d XDATA in DataFilter 1 of 3
.. Filter rides for presence of XDATA by name using the syntax:
   XDATA("XDATANAME", "SERIESNAME", sparse|repeat|interpolate|resample)

.. this is the first of 2 commits, in this one we have added XDATA to
   the rideitem and rideDB.json so we can check if XDATA is present
   without opening the ridefile

.. this allows us to return true or false for an XDATA(..) call when
   working across rideitems (not data points) in DataFilter evaluate,
   note that the join control (sparse,repeat etc) is ignored when you
   are filtering ride items

.. in the next commit we will add the ability to get at the xdata
   values when iterating in user data or user metrics

.. there are likely to be further refinements for the outer join
   required to support interpolation and resampling in a third commit.
2016-07-16 11:46:35 +01:00
Mark Liversedge
657d989c69 RideEditor XDATA setTabBar() fixup
.. rather than using setTabBar() to keep resetting the view
   for the XDATA tabs in RideEditor the model updates the
   views correctly.

.. makes the editing of XDATA more responsive and doesn't
   keep resizing columns on every change.
2016-07-15 16:34:32 +01:00
Mark Liversedge
57fdcc2616 Merge pull request #2016 from amtriathlon/BestTime
Added bestime(km) to formulas
2016-07-14 20:56:08 +01:00
Alejandro Martinez
80e173abf9 Added bestime(km) to formulas
To have a general way to track best times for non stardard
distances in Metrics Trends charts and User Defined Metrics.
2016-07-14 15:13:33 -03:00
Mark Liversedge
8198bdf3b1 RideEditor tabs "+" to add new XDATA series
.. akin to the + tab in excel worksheets.
2016-07-14 10:11:01 +01:00
Mark Liversedge
06856edd38 Merge pull request #2015 from Joern-R/Windows-CI
Appveyor - CI for Windows
2016-07-13 19:15:19 +01:00
Joern
2e30b42637 Appveyor - CI for Windows
... substitute unstable Chocolatery Installation of Flex and Bison by own versions
2016-07-13 17:54:12 +02:00
grauser
d30b38f315 Headwind : small correction : wind allready in km/h 2016-07-13 16:45:28 +02:00
grauser
db6c73799a Tools : Add a tool to derive headwind from weather data
Just moved the original code from Vianney (in FitRideFile) to create a new tool
2016-07-13 15:51:06 +02:00
grauser
ec8c613e04 FitRideFile: Changes in decodeDevice (not used) 2016-07-13 15:51:06 +02:00
Alejandro Martinez
5fde12f28e Moved sample swims and runs to separate folders
parallel to rides folder
2016-07-13 10:42:46 -03:00
Mark Liversedge
8806810302 Merge pull request #2013 from amtriathlon/SwimXData
Added SWIM XData for pool swims
2016-07-13 09:16:35 +01:00
Alejandro Martinez
45d5ba8bf4 Added SWIM XData for pool swims
One record per length with 3 fields:
TYPE: 0-pause, 1-free, 2-back, 3-breast, 4-fly, 5-drill, 6-mixed, 7-IM
DURATION: seconds per length
STROKES: total strokes per length
Related to #2010
2016-07-12 20:44:06 -03:00
Mark Liversedge
974edf1395 Merge pull request #2009 from amtriathlon/BestTime
Best time for standard distances
2016-07-12 19:30:26 +01:00
Alejandro Martinez
52319d159b Removed dangling references to BestIntervalDialog.h 2016-07-12 11:24:34 -03:00
Alejandro Martinez
0bbc571ccc Added Best time metric for common distances
For swims, runs, TTs and rows
2016-07-12 11:24:34 -03:00
Alejandro Martinez
ef0b2e4acc Deprecated BestIntervalDialog
Added Specification parameter to AddIntervalDialog::findPeaks
So it can be used as a more general replacement for
BestIntervalDialog::findBests and findBestsKPH
2016-07-12 11:23:47 -03:00
Mark Liversedge
cee69b61d4 Increase Metric Schema Version
.. for the new running metrics.
2016-07-12 15:00:37 +01:00
grauser
e367d5bf86 CSVRideFile : import wahoo MA (Motion Analysis ?) csv files 2016-07-11 23:41:48 +02:00
grauser
0c1a62830c Tools : Convert running cadence from spm to rpm 2016-07-11 01:00:46 +02:00
grauser
3cf0a3e298 Metrics : Add average and max running cadence 2016-07-11 00:59:53 +02:00
Mark Liversedge
29bbd44469 V4.0 1607 Development Build 2016-07-10 20:19:06 +01:00
Mark Liversedge
07c4adf83d Ride Editor XDATA row/col add/delete
.. context menu on xdata editor row/column headings now
   adds functions to add/remove rows and columns

.. users can now manually create and maintain XDATA in the
   ride editor

.. the UX is a bit naff and needs to be cleaned up; the
   visual cues are missing on redo/undo and the performance
   is poor since setTabBar is called too frequently. Will
   look to fix these nits over the next few days.

Conflicts:
	src/FileIO/XDataTableModel.cpp
2016-07-10 18:58:53 +01:00
Mark Liversedge
7516999ed6 Merge pull request #2008 from Joern-R/XData
Fix XDATA Model Compile errors on Windows
2016-07-10 14:30:52 +01:00
Mark Liversedge
3170e438a9 Ride Editor Remove XDATA by closing tab
.. get ride of the xdata by closing its tab at the bottom
   of the chart. This is similar to how worksheets are
   removed in Excel and should be intuitive to most people.

.. a warning is issued before removing the data, but it can
   be undone as all data commands are performed on the
   command stack
2016-07-10 11:03:17 +01:00
Joern
9578193b40 Fix XDATA Model Compile errors on Windows 2016-07-10 11:43:51 +02:00
Mark Liversedge
544af862ee Fix XDataEditor compile error on Windows
.. refactoring to base class of QTableView but forgot to
   update code compiled in Windows only.
2016-07-10 10:08:50 +01:00
Mark Liversedge
1c96edc7c9 Ride Editor Cosmetic Nits
.. clean up before adding editor functions to add/remove
   rows and columns etc.
2016-07-09 17:46:57 +01:00
Mark Liversedge
142da526d2 Fix Ride Editor Header Background Style
.. been meaning to do this for ages!
2016-07-09 17:07:59 +01:00
Mark Liversedge
f0b93900eb Ride Editor XDATA cell delegate
.. mostly just handles the time column.
2016-07-09 14:28:57 +01:00
Mark Liversedge
b9bcce225e Add XDATA to Ride Editor Part 2 of 2
.. added the ability to edit point values with XDATA
   series displayed as 'worksheets' within the ride editor,
   in keeping with the 'Spreadsheet' UX

.. need to refine the cosmetics and work on more useful
   functions like add/remove row/column etc but the basic
   view and edit functions are in place.
2016-07-09 12:08:34 +01:00
Mark Liversedge
aaec9ce43c Add XDATA to Ride Editor Part 1 of 2
.. add XDataDialog and tabs to the ride editor, so you can
   add and remove xdata and the individual data series.

.. next commit will add editing of the xdata values.
2016-07-04 16:33:37 +01:00
grauser
dfff9e2ba6 Fit : Convert cad to rcad if run is detected after records 2016-06-28 23:48:48 +02:00
grauser
2828e42cdb Fit: Add Device types (Stryd and Wahoo) 2016-06-28 22:59:43 +02:00
Mark Liversedge
5eeb3a443b Retain Distance Precision on TCX Export
.. was exported rounded to the nearest meter.
2016-06-28 06:30:08 +01:00
Mark Liversedge
50de7d6ee1 Merge pull request #2005 from CaptainOnly/master
Modify bluetooth device to get cadence from crank based power meters …
2016-06-27 07:11:53 +01:00
Erik Hons
bf802f9439 Fix rollover code to use correct constant (how embarassing!) 2016-06-26 21:31:59 -05:00
Erik Hons
c0505a4d26 Modify bluetooth device to get cadence from crank based power meters and to handle roll over in cadence data 2016-06-26 16:14:50 -05:00
Mark Liversedge
08afaacb02 Merge pull request #2004 from amtriathlon/master
Changed x-axis scale for CV from log to linear
2016-06-25 07:23:51 +01:00
Alejandro Martinez
3c4aa1776f Changed x-axis scale for CV from log to linear
Short distances were over-represented with log scale
and Speed-Distance devices are not precise enough for
very short durations.
2016-06-24 20:47:58 -03:00
Mark Liversedge
5c32aa8a76 Merge pull request #2003 from amtriathlon/master
Updated HrZones fingerprint to include trimp factors
2016-06-24 09:16:29 +01:00
Alejandro Martinez
38a5822b60 Updated HrZones fingerprint to include trimp factors
Also fixed PaceZones fingerprint to consider 2 decimals
Fixes #2002
2016-06-23 19:13:21 -03:00
Mark Liversedge
6c73ce6692 XDATA Fix Memory Leak and Example Weather File
.. there was a memory leak in RideFile and FitRideFile

.. added a test file with weather data that can be used to
   test XDATA processing (it has 10 weather points with
   wind, humidity etc).
2016-06-20 09:59:31 +01:00
grauser
f31868909f FitRideFile : Weather data small correction 2016-06-19 23:24:32 +02:00
grauser
d81f1468fa FitRideFile : Add weather xdata 2016-06-19 23:15:23 +02:00
grauser
efd17ddcb4 Map : Add a fullPlot 2016-06-19 15:40:00 +02:00
Joern
305e199a97 Update Readme.md
... correct link to dev-builds to point to GitHub
2016-06-19 14:03:18 +02:00
Mark Liversedge
2fccbd0504 JsonRideFile XDATA support
.. added a new 'XDATA' element for the JsonRideFile and
   RideFile classes.

.. this allows ride file readers to extract and load any
   time series data that doesn't neccessarily fit into
   the usual data points.

.. this was added to support weather data from FIT files
   and also to support 3rd party merging data with the
   GC supported data.

.. ** IMPORTANT ** the XDATA segment is added at the END
   of the JSON format. So older parsers will fail to read
   but will have loaded all data already (i.e. they will
   fail gracefully enough)

   This means files with XDATA can be read by earlier
   versions of GC, but the XDATA will be discarded.
2016-06-19 10:25:03 +01:00
Mark Liversedge
544d22f93b Increase Default Stride Length from 78 to 115cm
.. 78cm is a typical walking stride length.

.. we need to think about the best way to set this.
2016-06-18 08:54:59 +01:00
Mark Liversedge
d5c155b752 Fix Footpod Running Cadence
.. should be 'cycles' per minute (i.e. a pair of steps, one left
   and one right)

.. previously it was number of 'steps' per minute (i.e. how many
   footsteps did you take in one minute)
2016-06-17 15:21:19 +01:00
Mark Liversedge
a8903ea93d ANT+ icon colors
.. make them visible in the add device wizard (not white on white)
2016-06-17 10:09:00 +01:00
Mark Liversedge
cb6f061624 Merge pull request #2000 from amtriathlon/UserMetrics
Compute User Metrics after Builtins are completed
2016-06-16 19:14:20 +01:00
Mark Liversedge
f93e055e44 Add ANT+ Stride Length Config
.. when adding ANT+ devices
2016-06-16 18:16:52 +01:00
Mark Liversedge
35753ab4e4 ANT+ Footpod Support
.. will pair and count strides to derive speed and cadence

.. this commit covers the ANT+ side of things, will now
   update the config to enable the user to set stride length
2016-06-16 16:50:50 +01:00
Alejandro Martinez
28a7292504 Compute User Metrics after Builtins are completed
To allow for User Metrics depending on Buitins
without the need to scan for dependencies
2016-06-15 21:02:27 -03:00
Mark Liversedge
e0a00ef04f Merge pull request #1998 from amtriathlon/RunningPower
Running power
2016-06-14 22:46:50 +01:00
Alejandro Martinez
2f34970de4 TSS doesn't apply to runs or swims
When runs have power PMC metrics are inconsistent otherwise, better
to have separated rTSS/sTSS which could be added as builtin or user
defined metric.
2016-06-14 18:12:43 -03:00
Alejandro Martinez
d72417266e FixDerivePower doesn't apply to runs and swims
For Running we have an specific data processor
this enables to configure them to run automatically
according to sport
2016-06-14 18:12:43 -03:00
Mark Liversedge
7021fb7a86 R version number fix
.. wasn't being captured properly in About > Version
2016-06-14 17:55:07 +01:00
Mark Liversedge
aeb2e259ff Merge pull request #1997 from lumanz/master
Simplified Chinese Update
2016-06-14 14:42:32 +01:00
lumanz
bcfa81a38f Simplified Chinese Update 2016-06-14 21:01:07 +08:00
grauser
0ca2575bc4 RideMap : no currentData() in QT 4 2016-06-12 15:50:56 +02:00
grauser
ea82b2c533 Route : Increase precision 2016-06-12 15:47:53 +02:00
grauser
119a1cad46 Route : Increase search precision
(Changes in last commit)
  Increase precision from 10m to 1m to use with smaller segment
2016-06-12 14:49:58 +02:00
grauser
0f545d622c RideMap : Add tile server combo 2016-06-12 14:41:09 +02:00
Joern
f4267647a7 Merge pull request #1991 from Joern-R/View1
CloudDB - Charts
2016-06-09 07:18:49 +02:00
Mark Liversedge
e2c6bdc4f6 Merge pull request #1994 from Joern-R/OSM
Maps - OSM map enhancement
2016-06-08 20:05:15 +01:00
Joern
caffabc4c6 Maps - OSM map enhancement
... enable to use a custom tile server for OSM maps

Examples are here: http://thunderforest.com/maps/
2016-06-07 20:09:22 +02:00
Mark Liversedge
4bd0b003e6 Remove headwind from FIT file processing
.. it should be calculated in a data processor rather
   than in the file processor.

.. Damien is looking to add one, so commenting it out
   for now (so the code can be reused if needed).
2016-06-06 16:58:29 +01:00
Mark Liversedge
f961976c45 Merge pull request #1992 from amtriathlon/master
Pool Length in metadata and detection for PWX/TCX files
2016-06-06 07:30:04 +01:00
Alejandro Martinez
4c7faf5991 Added Pool Length detection for PWX and TCX files
The first length is assumed to be Pool Length
2016-06-05 20:45:04 -03:00
Alejandro Martinez
15b16497f9 Added Pool Length to metadata.xml 2016-06-05 20:44:36 -03:00
Mark Liversedge
9616d53fb1 Merge pull request #1990 from Joern-R/Nickname
CloudDB - only one Nickname in GC
2016-06-05 13:48:20 +01:00
Joern
33eb173d90 CloudDB - Charts
... show description of view (Trends,...) in the counter string
    so that a user understand the different between the available
    and total upload counter
2016-06-05 14:24:31 +02:00
Joern
51e132c45b CloudDB - only one Nickname in GC
... re-use existing Nickname from Athlete preferences
2016-06-05 13:56:36 +02:00
Mark Liversedge
f44f70a4a4 Development Build 1606
.. pushing out build for June 2016
2016-06-04 12:21:03 +01:00
grauser
f5a37a107c Correct wrong commit 2016-06-02 18:11:47 +02:00
grauser
ac6394c2d6 TrainView : Record displayed SMO2/THB/O2HB/HHB (Muscle oxygen data) 2016-06-02 18:06:26 +02:00
Alejandro Martinez
01180e7bc5 Fill only pause laps on FIT Lap Swims 2016-06-01 20:14:02 -03:00
Mark Liversedge
9ff682d94a Merge pull request #1987 from amtriathlon/FitSwim
Changed Interval generation for Lap swimming FIT files
2016-06-01 06:57:20 +01:00
Alejandro Martinez
1864c27dca Changed Interval generation for Lap swimming FIT files
Simpler and more robust lap alignment
Fixed for empty lengths due to false starts and
pauses in some devices s.t. Garmin 910xt
Added 2 contributed test files
2016-05-31 21:23:03 -03:00
grauser
90a18e8d67 Bin2RideFile: Add some device type 2 2016-05-31 23:25:37 +02:00
grauser
f743430e5c Bin2RideFile: Add some device type 2016-05-31 23:11:09 +02:00
grauser
7c23c5b37a RideMapWindow : comments in GcWindowRegistry 2016-05-31 23:01:08 +02:00
grauser
57a837f3c2 RideMapWindow : An unified Map Chart (1/2)
Use New Map instead of old Google or Bing Map
2016-05-31 22:51:54 +02:00
grauser
d6cf7ad4ed Route: Create route segment from interval : use first and last points 2016-05-31 22:32:06 +02:00
grauser
e661ea0b62 Charts : We can change chart name even with no controls 2016-05-31 22:32:06 +02:00
Mark Liversedge
f6f2c4f151 Merge pull request #1986 from antoniusriha/allow_min_binWidth_of_1_in_3D
Allow min value of 1 for binWidth in 3D plot
2016-05-31 20:23:17 +01:00
Antonius Riha
cebaf2a846 Allow min val of 1 for binWidth in 3D plot 2016-05-31 15:23:29 +02:00
Mark Liversedge
335977bd02 Merge pull request #1984 from antoniusriha/reverse_color_range
Reverse color range in 3D plot to run from blue (low) to red (high)
2016-05-31 12:26:15 +01:00
Antonius Riha
f6cb9f01bf Reverse color range in 3D plot to run from blue (low) to red (high) 2016-05-31 12:38:54 +02:00
Mark Liversedge
80340f9918 Merge pull request #1983 from Joern-R/CloudDB1
CloudDB - Popups - Cosmetics
2016-05-30 19:51:12 +01:00
Joern
80f5f96590 CloudDB - Popups - Cosmetics
... align terminology (upload/download vs. import/publish)
... make pushbuttons right-aligned (in sync with most GC dialogs)
... ask for confirmation before finally deleting a chart from CloudDB
2016-05-30 19:46:26 +02:00
Mark Liversedge
45c6eee4d2 Add Upload/Download chart to View Menu
.. in MainWindow
2016-05-30 18:31:46 +01:00
Mark Liversedge
7ee4406c6e Fix GcChartWindow for OSX
.. QtMacVideoWindow was missed during the refactor
2016-05-30 16:33:04 +01:00
Mark Liversedge
c09a974418 GcChartWindow Refactor
.. use GcChartWindow as the base class for all charts -- so
   we can truly upload *any* chart to the cloudDB

.. miscellaneous charts that were still defined as GcWindow
   have been converted to GcChartWindow

.. GcChartWindow layout issues (using QGridLayout insted of
   a QStackedLayout) are fixed which will also resolve a few
   rendering issues related to NOWEBKIT.

.. Aerolab needed lots of cosmetic fixups once it became
   a GcChartWindow

.. Added 'Upload Chart...' to mirror the 'Download Chart..'
   option on the hamburger menu as users will instinctively
   look for the option there instead of under the chart menu.
2016-05-30 16:07:39 +01:00
Mark Liversedge
696101b40d Fix QAction for Download Chart...
.. a snafu using the same action twice for add chart and then
   for download chart in chartbar/mainwindow
2016-05-29 21:41:20 +01:00
Mark Liversedge
57bbb0938c Chart Setting Menu re-order
.. make it a bit cleaner
2016-05-29 19:08:59 +01:00
Mark Liversedge
2d2ba7f4b1 CloudDB terminology
.. simplify some of the wording related to working with the
   GAE instance.
2016-05-29 18:36:26 +01:00
Mark Liversedge
f75ac16acd Merge pull request #1982 from Joern-R/CloudDB-GChart-2
CloudDB - gChart support - improvements
2016-05-29 18:03:19 +01:00
Joern
ac385a29da Fix CI compile errors - CloudDB - gchart
... and remove unused test variables
2016-05-29 18:37:45 +02:00
Joern
5c01f4f398 CloudDB - gChart support
... add "Sport" metadata as filter option
... move "Import" from main menue to "add chart"
... make chart lists context sensitive on home, activities and diary
... import directly - without extra dialog
2016-05-29 18:12:21 +02:00
Alejandro Martinez
98c6301d35 Fixed CV override for GOVSS and SwimScore
Copy paste error, cv is a double not an int as cp
2016-05-29 12:28:20 -03:00
Mark Liversedge
3b3f51111e Merge pull request #1980 from Joern-R/CloudDB-GChart
CloudDB - add .gchart Support
2016-05-28 18:41:16 +01:00
Joern
a0db5efdcf CloudDB - add .gchart Support
... add export support for the new .gchart format (allowing to post all chart types to CloudDB)
... add import in main menu for the new .gchart format
... allow to import multiple charts at once

... remove specific LTM Chart support (menu, db,... -since this is covered by general .gchart format)
2016-05-28 12:03:05 +02:00
Mark Liversedge
93619967cf Recognise Antonius Riha 2016-05-28 09:48:33 +01:00
Mark Liversedge
51f7bb00c8 Merge pull request #1978 from antoniusriha/fix_binWidth
Fix loading of binWidth setting in 3d plots
2016-05-28 09:38:07 +01:00
Antonius Riha
c2a839fd30 Fix loading of binWidth setting in 3d plots 2016-05-28 00:20:04 +02:00
Mark Liversedge
52ece5e98c R Fix SEGV on GC.activity if empty
.. if the workout has no data to return, then don't
   return null in dfForActvity, return an empty list.
2016-05-27 22:52:26 +01:00
Mark Liversedge
24ad194793 R Fix GC.activity(split=)
.. you can now fetch activities as a list and split them
   based upon gaps in recording (recording anomalies).

.. this is to support trackeR; data should already be cleaned
   by the user, but thats not always the case (!)
2016-05-27 19:23:54 +01:00
Mark Liversedge
5f8dddf723 R is optional !
.. broken in HomeWindow cancelling scripts when ESC hit.
2016-05-27 18:56:01 +01:00
Mark Liversedge
8f3043a07b R GC.activity(split=)
.. but disabled due to a strange malloc error, which is likely
   to be related to the R garbage collector.
2016-05-27 18:42:00 +01:00
Mark Liversedge
7382b13cca Fix RChart update flicker
.. turn off/on updates enabled.
2016-05-27 12:09:30 +01:00
Mark Liversedge
a09c15fdc5 V4.0 Crash Dialog deprecated
.. we no longer show the crash dialog, it didn't really provide
   data that was that useful and is a bit quirky and cumbersome
2016-05-27 11:56:32 +01:00
Mark Liversedge
749fb30035 R Fixup User Interrupting for Windows
.. errant use of OSX/Linux only stuff.
2016-05-27 11:37:35 +01:00
Mark Liversedge
da41e0ec70 R Interrupt Long Running Script with ESC
.. as users would expect in RStudio etc
2016-05-27 11:15:23 +01:00
Mark Liversedge
b3607eedad R Use List not Pairlist (Part 2 of 2)
.. completes the updates to RTool.cpp

.. as predicted by forming the pmc data.frame via an S3
   list instead of a pair list the merge() function works
   properly and column names are retained.
2016-05-26 21:19:52 +01:00
Mark Liversedge
236d34be82 R Use List not Pairlist (Part 1 of 2)
.. we should use a list not an old pair list when constructing
   lists and data.frames.

.. to ensure better compatibility with coercion functions in R
   and also possibly to resolve known issues with merge()

.. this is part 1 of 2, breaking up the mass changes to the many
   data wrangling functions in RTool.cpp

.. it also contains an update to RLibrary to resolve the functions
   used when working with lists (SET_VECTOR_ELT).
2016-05-26 19:53:53 +01:00
Mark Liversedge
3bec73087a R don't create a data.frame of data.frames !
.. R doesn't like this, but we only did it when returning
   multiple activitieis in GC.activity() when passing activity=
   with a list / vector.
2016-05-26 14:39:44 +01:00
Mark Liversedge
4b872d2049 Add Stress TSS v cTSS .gchart example
.. to the test directory.
2016-05-24 12:07:08 +01:00
Mark Liversedge
06197cf899 Import .gchart workflow improvements
.. allow user to select target view for trends/diary charts
   since they can be used on either

.. don't just add when only 1 chart imported, always let the
   user confirm and adjust

.. use translated names for the views so they are more meaningful
   to the end user
2016-05-24 08:51:39 +01:00
Mark Liversedge
659d25a32f Merge pull request #1975 from amtriathlon/master
Use Cycling zones when there is no ranges for Running
2016-05-23 23:27:20 +01:00
Mark Liversedge
8a261521ab R Chart stop ignoring drag/drop events
.. the default methods in QGraphicsView handle these
   events; we don't want this since we handle them in
   mainwindow

.. fixes drag-n-drop onto mainwindow as well as working
   with the compare pane 'auto-open'.
2016-05-23 23:03:14 +01:00
grauser
929e62f35a Translation : correct translation for 'Remove Column' 2016-05-23 23:29:25 +02:00
grauser
6f8d5b72af Update French ts 2016-05-23 23:26:36 +02:00
grauser
2be23ad917 SyncRideFile: grade/Slope is a signed value 2016-05-23 23:06:07 +02:00
Mark Liversedge
fd6b7722cb QT4.8 compatibility fixup 2016-05-23 20:51:50 +01:00
Mark Liversedge
626f012cd3 CP/W' estimste chart added
.. to tests/charts

[skip ci]
2016-05-23 20:49:31 +01:00
Mark Liversedge
fb4f70ecad Merge pull request #1964 from mtbkeith/FixSomeDoc-2016-0511
Minor document updates for MAC
2016-05-23 20:27:03 +01:00
Alejandro Martinez
83b24f54f9 Use Cycling zones when there is no ranges for Running
Both for HR and Power, fixes #1974
2016-05-23 16:16:25 -03:00
Mark Liversedge
4632af3af7 QT4.8 compatability. 2016-05-23 20:03:05 +01:00
Mark Liversedge
6890986543 QTableWidget header needed 2016-05-23 19:59:49 +01:00
Mark Liversedge
fb04e1ee17 Import Multiple .gchart Dialog
.. to enable user to select which ones to import
.. only kicks in if >1 charts are imported.
2016-05-23 18:53:01 +01:00
Mark Liversedge
a58dd8458a Some .gcharts to test
.. added to test/charts

[skip ci]
2016-05-23 15:34:31 +01:00
Mark Liversedge
c635b1ec4b Fix Enum MVJSON_TYPE_OBJECT reference 2016-05-23 15:24:02 +01:00
Mark Liversedge
1b3eeeec06 Drag/Drop .gchart to import and select it
.. A single .gchart file being dropped into MainWindow will
   add and select it on the view.

.. still need  to add a dialog when dropping multiple charts
   to let user control if they want them all.
2016-05-23 15:22:31 +01:00
Mark Liversedge
8ec4c625cd Parse .gchart JSON format
.. using mvjson not Qt Json classes, to avoid a dependency on
   Qt5. The format was kept simple specifically to avoid that.

.. the chart ultimately is defined a list of properties with
   a key and value.
2016-05-23 13:00:50 +01:00
Mark Liversedge
fa541e3673 Export Charts using ".gchart" JSON format
.. export any chart to a file for sharing with others

.. the import functionality will come next (and will need to
   determine property formats by querying the newly created
   chart metatypes).
2016-05-23 10:50:13 +01:00
Mark Liversedge
2c80c78f8b R athlete.zones(date=..., sport=...)
.. so you can get the config for a specific date
2016-05-22 13:04:00 +01:00
Mark Liversedge
cc9f918dee R GC.athlete.zones()
.. returns a dataframe of all zone config
2016-05-22 12:07:21 +01:00
Mark Liversedge
d8862a50a7 R Add filter="..." to metrics, meanmax and peaks
.. the ability to apply a datafilter to the data retrieved
   is extended to the season.metrics, season.meanmax and
   season.peaks methods

.. this helps to let GC filter out e.g. power data is present
   before we do anything in R since GC is faster and it also
   reduces the data being passed back etc.
2016-05-21 20:18:09 +01:00
Mark Liversedge
963051a041 Fix QCheckBox compile error 2016-05-21 16:44:53 +01:00
Mark Liversedge
efcb9deadf R Canvas no OpenGL on OSX
.. sigh.
2016-05-21 12:13:35 +01:00
Mark Liversedge
9cfd84b6d1 Fix MeanMax Computation trailing Zero
.. clean it up, rather than resolve source (there is still a
   problem in there somewhere).

.. at least now interval plots and model fits aren't skewed
   by a trailing zero value
2016-05-21 10:38:49 +01:00
Mark Liversedge
81984ed091 R OpenGL rendering fixup
.. was temporarily removed as it caused rendering issues
   with reveal controls.
2016-05-21 10:11:38 +01:00
Mark Liversedge
de69d170e9 R save/restore all graphical parameters
.. par.default has all default values
.. par.gc is default updated to include theme

.. par(par.gc) is called before every plot
2016-05-21 09:40:06 +01:00
Mark Liversedge
d26eeaf255 R Console history reduced
.. we really don't need 10k history on errors in the rchart

.. this is a hangover from the early development that should
   have been reduced before being published
2016-05-21 08:58:42 +01:00
Mark Liversedge
f4f01041e1 R Chart Reveal Controls
.. to show/hide the console
2016-05-21 08:33:20 +01:00
Mark Liversedge
f8e431e0d4 R Hourglass when busy
.. in case of long-running scripts
2016-05-20 15:16:42 +01:00
Mark Liversedge
93cc7069e4 Merge pull request #1969 from antoniusriha/align_allplot_allplotinterval
Align interval bars plot with main plot
2016-05-19 20:44:35 +01:00
Mark Liversedge
2431795ca8 Merge pull request #1971 from amtriathlon/RunningPower
Running power
2016-05-19 15:51:13 +01:00
Alejandro Martinez
5401e7b4fc Fixed refresh when series are added in DataProcessors
Update "Data" tag in RideFile::setDataPresent
2016-05-19 10:45:53 -03:00
Mark Liversedge
7c9e2cb5ea R Fix rownames in GC.activity(activity=...)
.. make a well formed data.frame.
2016-05-18 17:36:38 +01:00
Mark Liversedge
f2512eb276 R GC.activity(activity=...)
.. You can now specify which activity to retrieve by passing
   a POSIXct date time representing the start time of the ride

.. this is mostly useful when used in conjunction with
   GC.activities(filter=...) to select ride dates.
2016-05-18 17:01:15 +01:00
Mark Liversedge
eb1013208a R GC.activities(filter="")
.. allow user to pass a data filter to evaluate when getting
   a list of activities.

.. e.g. GC.activities('Workout_Code = "1L2")
   will get a list of activity start times where the workout
   code is 1L2.
2016-05-18 14:41:22 +01:00
Mark Liversedge
e8228f6beb R API honour search/filter in use
.. when returning values we honour whatever filter is active
   at the time from home sidebar or the search box

.. it is applied regardless of which view the chart is on.
2016-05-18 13:13:41 +01:00
Antonius Riha
134dd9f662 Align interval bars plot with main plot
This commit fixes the issue that the interval bars (in AllPlotInterval) are not correctly aligned
with the interval sections in the main plot (AllPlot). This is done by calculating the margins from
the main plotting area to the border and setting left and right margin of the interval plot
accordingly.
2016-05-18 12:34:33 +02:00
Mark Liversedge
98cec80c4e R reset par(mfrow=c(1,1)) before runScript
.. so we don't inherit parameters across charts (!)
2016-05-18 11:25:27 +01:00
Alejandro Martinez
e2b66b7bd9 Add Running Power Data Processor
Based on a spreadsheet provided by Kraig Willet <kraig.willet@gmail.com>
2016-05-17 18:08:44 -03:00
Mark Liversedge
087426b545 Merge pull request #1968 from Joern-R/No-R
No-R-Build Error
2016-05-16 18:46:12 +01:00
Joern
2fd4f35287 No-R-Build Error
... fix build failing if GC_WANT_R is not set
2016-05-16 19:28:25 +02:00
Mark Liversedge
3fb565ff2d Dev Build 1605 Version Strings
.. update for 1605 dev release.
2016-05-16 15:26:39 +01:00
Mark Liversedge
7f76cd9cfe R Windows query Registry for InstallPath
.. so user doesn't have to set it.

.. also fixed a SEGV crash dereferencing libR->errors when its not
   been set (!).
2016-05-16 12:22:33 +01:00
Mark Liversedge
67b60e5623 R R_HOME configuration improvements
.. Add option to disable embedded R in preferences

.. Better diagnostics if load fails

.. If we find it in the usual place we load and set R_HOME
   automatically without requiring R_HOME or config

.. The config option overrides R_HOME not the other way around
2016-05-16 11:32:11 +01:00
Mark Liversedge
465718b10b Merge pull request #1967 from amtriathlon/GarminSwim
Adjust Laps for Garmin Swim FIT files
2016-05-15 20:47:10 +01:00
Alejandro Martinez
616cad5575 Add Pool Length Tag to SML file parser 2016-05-15 15:34:21 -03:00
Alejandro Martinez
1bcf2a2f20 Adjust Laps for Garmin Swim FIT files
Use total duration for both length and lap messages to synch them,
even when using drill mode. Tested with Garmin Swim and 920xt files.
Garmin 310xt is special cased since it doesn't generate rest length messages
Add Pool Length in meters as metadata
2016-05-15 15:00:28 -03:00
Mark Liversedge
2decc8624b R GC.athlete() extends
.. to include more details and render the athlete.home()
   function unneccessary.
2016-05-15 17:25:21 +01:00
Alejandro Martinez
aefbdca45f Merge pull request #1959 from amtriathlon/master
Fallback to Start with Cycling zones for Running
2016-05-15 12:52:40 -03:00
Mark Liversedge
62200b4725 Activity Checksum Metric
.. added a checksum metric for an activity that can be used as a key
   in R scripts to invalidate / reuse caches.

.. when R scripts are computationally expensive we can store the
   results in a cache with a key for the activity involved -- then
   the cache is tied to a particular activity (and state).

.. since caching in R has many options we may develop a 'basic'
   cache function that can be guaranteed to be available to any
   script so they can be shared.
2016-05-15 14:36:47 +01:00
Mark Liversedge
a7f5813e86 R REmbed.h ref QString too early
.. the definition of setenv on Windows was prior to the
   include for QString leading to a compiler error.
2016-05-14 13:59:52 +01:00
Mark Liversedge
fd8caf3230 R Update LD_LIBRARY_PATH/PATH on load
.. since dependancies are in the same directory. e.g.
   blas, mlpack and fortran libs.
2016-05-14 13:54:30 +01:00
Mark Liversedge
d2089e9ae6 R Dynamic Load Diags
.. quick debug message if load() fails for any reason.
2016-05-14 12:48:31 +01:00
Mark Liversedge
8b9a19af93 R QT4.8 QLibrary::resolve() returns void *
.. not void(*)()
2016-05-14 09:37:36 +01:00
Mark Liversedge
b53ed44cc9 Fix QFunctionPointer on QT4.8 builds
.. the typedef was introduced in QT5
2016-05-14 09:22:28 +01:00
Mark Liversedge
e5b1c93e4d R Version Fixup
.. get runtime version loaded and show on crash dialog and console
   since the runtime may be different from compile time as it is
   now dynamically loaded.
2016-05-14 09:10:46 +01:00
Mark Liversedge
ddbeab86e0 R Always use dynamic loading
.. no need to define GC_WANT_R_DYNAMIC any more since it is now
   working across all 3 supported platforms.

.. we need to improve the way R_HOME is configured and validated
   for non-technical users.
2016-05-14 08:54:49 +01:00
Mark Liversedge
dba02cc49f R Dynamic Library (Windows)
.. fixed up to work on Windows too.

.. needed to add a couple of functions used by Windows;
   getRUser(), get_R_HOME() and getDLLVersion().

.. also needed to add a path to the DLL that included the
   address space (x64 or i386).
2016-05-14 08:04:11 +01:00
Mark Liversedge
6782f5a393 R CMD config --cppflags
.. needed to be reinstated
2016-05-14 00:32:10 +01:00
Mark Liversedge
e2a93c82e6 R Dynamic Library OSX
.. don't link in the libs since macdeployqt will add
   them to the dmg.
2016-05-14 00:22:49 +01:00
Mark Liversedge
1b0d9b1bbb R Load Dynamic Library (OSX and Linux)
.. we can now load the installed dynamic library rather than
   distributing with the version we built with.

.. the lib is loaded and symbols resolved at runtime.

.. need to fixup for Windows and remove GC_WANT_R_DYNAMIC option
   and make it the way we integrate R for GC_WANT_R
2016-05-13 23:26:51 +01:00
Keith Reynolds
c39a52a3a1 Minor document updates.
URL and version updates; Nokia has transferred ownership of Qt to Digia back in 2012.
2016-05-11 23:03:17 -04:00
Alejandro Martinez
939af6c0ef Fallback to Start with Cycling Power zones for Running
When there is no Running Power zones defined to easy
transition from current config.
2016-05-11 11:43:03 -03:00
Alejandro Martinez
e9dd189864 Fallback to Start with Cycling HR zones for Running
When there is no Running HR zones defined to easy
transition from current config.
Fixes #1958
2016-05-11 11:26:45 -03:00
Mark Liversedge
90c94b5499 R Load Library at Runtime (wip)
.. add Graphics device entry points and almost done with defining
   proxy functions to call at runtime

.. will need to create a QLibrary object to load and resolve
   symbols for the proxies to call next.

.. if you add GC_WANT_R_DYNAMIC to gcconfig.pri it enables
   this, but it will crash, this is a wip.
2016-05-11 07:54:31 +01:00
Mark Liversedge
d65aac3035 Merge pull request #1956 from amtriathlon/RunHr
Add support for running HR zones
2016-05-09 21:51:34 +01:00
Alejandro Martinez
735756fcdf Add support for running HR zones part 3
Changed ride cache and charts to use zones according to sport(s)
2016-05-09 15:21:47 -03:00
Alejandro Martinez
88adfa1e78 Add support for running HR zones part 2
Chanted HrZonePage, LTPage and HrSchemePage to allow
separate editing for running and cycling
2016-05-09 15:21:47 -03:00
Alejandro Martinez
adb3692738 Add support for running HR zones part 1
Zones: parameterize for running
Athlete: create zones for cycling and running
2016-05-09 15:21:47 -03:00
Mark Liversedge
8d16fe26b0 R Load Library at Runtime (wip)
.. just starting out by redefining endpoints into the R shared
   library. Its incomplete but committed as a checkpoint.
2016-05-09 14:39:43 +01:00
Mark Liversedge
b3ca71bfd6 R Optimise refresh
.. don't when not visible as it slows everyone down !
2016-05-09 10:13:15 +01:00
Mark Liversedge
57f2eb10d4 R add compare=FALSE to GC.season.peaks
.. can now compare peaks in R
2016-05-08 20:57:39 +01:00
Mark Liversedge
a59f917dd3 R GC.season.peaks(all=FALSE, series, duration)
.. get peak values across rides in a season.

.. series="power", or series=c("power", "heart.rate") and
   duration=1 or duration=c(1,10,100)

.. where series is a mean maximal series in the ride file cache
   and duration is in seconds

.. will make this compare aware shortly.
2016-05-08 18:47:59 +01:00
Mark Liversedge
0fcda1f291 R GC.activity.metrics(compare=FALSE)
.. to get the metric and metadata for the current activity.
2016-05-08 13:10:39 +01:00
Mark Liversedge
29aad55f2f Merge pull request #1953 from Joern-R/R-1
R - use fixed Series names
2016-05-07 19:34:28 +01:00
Mark Liversedge
a023617031 R GC.season.meanmax(all=FALSE, compare=FALSE)
.. return meanmax data for a date range.
2016-05-07 19:10:21 +01:00
Mark Liversedge
136186e0a6 R GC.season(all=FALSE, compare=FALSE)
.. get a dataframe with season details

.. all lists all seasons, compare lists those being compared and
   if neither true returns the currently selected season

.. also renamed functions so we now have

   GC.season.metrics -> GC.metrics
   GC.season.pmc -> GC.pmc

   but he old GC.metrics/pmc are retained for backward compatibility
2016-05-07 12:20:35 +01:00
gcoco
3eada25d28 hLine USB2 ANT+ dongle
Thanks to Diego Heredia Sanchez
2016-05-07 00:39:17 -04:00
Joern
b7c53fd767 R - defined / use fixed series names / only in english
... use fix series names (which cannot be translated) - to have R-code which works independent of the GC language
2016-05-06 19:37:09 +02:00
Joern
d18f4f9c97 Update Translation DE 2016-05-06 19:04:25 +02:00
Mark Liversedge
82917666ea GC.page(width=500, height=500)
.. change the page dimensions to plot on.

.. the default is 500x500, but any ratio can be set

.. if none is specified it will always plot to 500x500
2016-05-06 16:38:16 +01:00
Mark Liversedge
e686ebde3e Honor GC_WANT_R in options/preferences
.. don't need to configure R_HOME if R support isn't baked in.
2016-05-06 12:31:53 +01:00
Mark Liversedge
a611b93f7b Update comment re canvas co-ordinates
.. it was incorrect and didn't explain how the world
   co-ordinates are mapped.

.. no code changes, just comments.

[skip ci]
2016-05-06 09:48:47 +01:00
Mark Liversedge
8e39d3e1f3 Fix saveState SEGV
.. introduced in previous commit.
2016-05-06 09:17:10 +01:00
Mark Liversedge
7c9814a52d R Chart Initial Splitter Sizes
.. some users get confused, so make the splitter sit
   in the middle (ish) to help them

.. need to still fixup save/restore splitter position
   to chart config.
2016-05-06 08:22:16 +01:00
Mark Liversedge
9505a23a6a R Fix text scaling via world transform
.. instead of hacking the text to avoid a global world
   transform we now transform y ourselves

.. it looks like text needs to be centered will test and
   fix shortly.
2016-05-05 19:15:54 +01:00
Mark Liversedge
9eacadadef RGraphicsDevice honor font size
.. since labels go awry. But it highlights issues with the
   text transformations that we should fix.
2016-05-05 18:58:40 +01:00
Mark Liversedge
6804f596e0 R Chart Screenshot for Wiki 2016-05-05 18:06:15 +01:00
Mark Liversedge
e358cff9b4 R Graphics Device Circle x,y bug
.. QT drawing uses x,y as top left of ellipse rect, whilst
   R was expressing it as a centre point.
2016-05-05 17:24:09 +01:00
Mark Liversedge
8d92859efc R default ride color
.. was using invertColor and resulted in white on dark for the
   default setup and was very jarring. The color is toned down
   to a gray if it results in white.
2016-05-05 17:24:09 +01:00
Mark Liversedge
ac844aa651 R Video gif for wiki
So we can add a link to vimeo on the wiki
2016-05-05 16:00:17 +01:00
Mark Liversedge
306ae970c7 Wiki R Chart
.. a bubble chart for the wiki
2016-05-05 11:33:31 +01:00
grauser
5e73bae75a Interval : don't need to overide name for Peak Power standard durations 2016-05-05 10:12:02 +02:00
grauser
e9ebc20af4 Interval : Add Search for Peak Speed, Peak Pace 2016-05-05 09:43:46 +02:00
grauser
7fa49cf802 Interval: Use "Peak" for intervals by time for Power or Hr 2016-05-05 09:43:46 +02:00
Mark Liversedge
44a91b1b91 R compile warnings
.. in RGraphicsDevice.cpp due to loads of unused method parameters
2016-05-04 19:25:18 +01:00
Mark Liversedge
c03871bda9 Merge pull request #1951 from Joern-R/R-Win
R - Windows Build
2016-05-04 19:19:07 +01:00
Joern
9f6c9d8e94 R - Windows Build
... differentiate 32bit and 64bit .lib for R.DLL for build
2016-05-04 19:08:24 +02:00
Mark Liversedge
0a209fd7b8 R GC.activity.wbal(compare=FALSE)
.. now compare enabled.
2016-05-04 15:51:56 +01:00
Mark Liversedge
241f5aaf6c R GC.activity.wbal()
.. returns a vector of w'bal for ride in 1s samples.

.. will update for compare in next commit.
2016-05-04 15:18:43 +01:00
Mark Liversedge
ee37e17d96 Peak HR not Best HR
.. in interval names
2016-05-04 12:04:33 +01:00
Mark Liversedge
344da00a9d R GC.activity.meanmax()
.. returns a data.frame with meanmax arrays for the
   series that are present
2016-05-04 11:39:14 +01:00
Mark Liversedge
d9b9a1f303 Bluetooth need QT5.5 not QT5.4
.. it was just a tech preview in 5.4 and not shipped
   with the pre-build libs
2016-05-04 07:52:42 +01:00
Alejandro Martinez
b7415b8962 Merge pull request #1950 from amtriathlon/master
Fixed HRV to HR in SML files
2016-05-03 21:35:28 -03:00
Alejandro Martinez
42b8f043d8 Fixed HRV to HR in SML files
To avoid HR gaps when < 60 bpm
Added test file with HRV and no HR
2016-05-03 19:19:42 -03:00
grauser
d1e22ee4a2 Interval : Search by Heart rate 2016-05-03 23:10:31 +02:00
Mark Liversedge
4a5cf58557 R paste code, don't take formatting
.. its ugly !!
2016-05-03 21:17:15 +01:00
Mark Liversedge
f58d9b7cbf R add ride color to metrics()
.. so you can pass to plot functions e.g. scatter plot
   with the color of each dot controlled by the GC config
2016-05-03 19:49:45 +01:00
Mark Liversedge
4dd042be22 R Metrics include Metadata
.. so you can use Workout_Code and friends to classify
   or color etc
2016-05-03 19:16:31 +01:00
Mark Liversedge
b26d84a325 R data.frames must have a row name
.. we just make it numeric
2016-05-03 13:26:40 +01:00
Mark Liversedge
b2efdf321d R GC.pmc(all=FALSE, metric="TSS")
.. add a new method to fetch a data.frame of PMC data
   for the passed metric, by default it returns for the
   selected date range, all=TRUE will fetch all dates.
2016-05-03 10:13:57 +01:00
Mark Liversedge
633ff519f1 Merge pull request #1946 from amtriathlon/SML
Import HR from R-R data for SML files
2016-05-02 20:08:22 +01:00
Alejandro Martinez
28ec053cd5 Import HR from R-R data for SML files
Fixes #1841
2016-05-02 15:11:49 -03:00
Mark Liversedge
6aeb8eedef R OSX bundle dylib fixing tool
.. see util/osx_bundle_fix.sh

.. couldn't quite get it fully automated, for some reason
   you may need to run it multiple times.
2016-05-02 19:00:19 +01:00
Mark Liversedge
8b9eab0a44 R compare date range signals
.. refresh when compare state changes
2016-05-02 11:23:23 +01:00
Mark Liversedge
3e09970f09 R Compare DateRange
.. GC.metrics(compare=TRUE) added

.. you can now plot metrics for different date ranges in the
   same way you can plot different intervals/activities.
2016-05-02 10:01:55 +01:00
Mark Liversedge
29c80f3e76 R nits
.. use opengl on Linux/Mac, its worth it for speed

.. new chart comment mentions activity(compare=TRUE)
2016-05-01 22:08:59 +01:00
Mark Liversedge
ac0c3cab6d R Support Compare Mode
.. GC.activity(compare=TRUE) will return a list of compares

.. If you are not in compare mode it will be 1 element long
   and represent the currently selected ride

.. otherwise it will have one entry for each activity dropped
   into the compare pane

.. each element has a $activity and a $color

Example:

df <- GC.activity()
.. do plot ..

Now:

compares <- GC.activity(compare=TRUE)
for (compare in compares) {
   df <- compare$activity
   col <- compare$color

   .. do plot ...
}
2016-05-01 21:08:41 +01:00
Mark Liversedge
b30fec7676 OSX Release Build R libs into Bundle
.. a script to copy the R dylibs to the app bundle and
   update the paths to the libs
2016-04-30 21:44:37 +01:00
Mark Liversedge
3f86522287 Development Build DEV-1604
.. update version macros
2016-04-30 18:25:17 +01:00
Mark Liversedge
ef27426442 Merge pull request #1942 from Joern-R/R-Win1
R-Windows - Includes
2016-04-30 16:24:34 +01:00
Mark Liversedge
f7bc0d33a5 Merge pull request #1939 from erikboto/monark_fix_for_restarts
Monark: Fix out of sync issue when restarting bike when connected
2016-04-30 14:30:04 +01:00
Joern
e6b5caa09a R-Windows - Includes
.. don't use R command function to find the includes. but R_HOME
2016-04-30 12:29:18 +02:00
Mark Liversedge
2b31d62ef6 R GC.metrics(all=TRUE) and Trend Chart
.. you can pass all=TRUE|FALSE to GC.metrics if you want to
   override the date range selection

.. also added connect to daterange select so a trend chart
   will refresh when you select a date range
2016-04-30 09:17:15 +01:00
Mark Liversedge
0856dd088c R Command Line Option --no-r
.. to disable embedded R - useful if startup is causing
   issues or crashes.
2016-04-29 20:44:19 +01:00
Mark Liversedge
8a4d261343 R nits / tidy ups
.. highlighter and default script
2016-04-29 19:52:25 +01:00
Mark Liversedge
32657246b4 R Script syntax highlighter
.. basic stuff, no completer.
2016-04-29 19:12:25 +01:00
Mark Liversedge
647067c82b R Script on Ride Selected
.. set a script to run when an activity is selected

.. this allows a plot to be generated and displayed when
   you select a ride in analysis view

.. the script is stored with the chart settings
2016-04-29 14:06:25 +01:00
Mark Liversedge
410aa95a99 R Multi-line commands
.. >> prompt for a continuation line

.. ^C to kill wherever we are and start again
2016-04-29 10:25:38 +01:00
Mark Liversedge
08c4142279 R pull in OpenGL for hardware acceleration
.. although its disabled in RCanvas for now, it will
   be re-enabled when settings are allowed.
2016-04-29 09:58:08 +01:00
Mark Liversedge
02455a2e6a Windows Fix Scrollbar Style
.. add-page/sub-page were not styled correctly (!!)
2016-04-29 09:52:43 +01:00
Mark Liversedge
b05f9db500 R remove out of date docs/utils
.. since we don't need RInside/Rcpp now.

[skip ci]
2016-04-29 09:14:59 +01:00
Mark Liversedge
57e76f04b0 R set default repo at startup
.. so install.packages() works without user having to
   set or select a mirror.
2016-04-29 09:03:49 +01:00
Mark Liversedge
458f4b9e71 R Plot Acceleration via OpenGL
.. plot canvas now uses OpenGL to accelerate painting
2016-04-28 23:05:22 +01:00
Mark Liversedge
26fdbd47fa R argv/verbose clean up
.. didn't use argc/argv in R initialisation
.. accidentally enabled verbosity
2016-04-28 19:20:43 +01:00
Mark Liversedge
4af3e929f7 R Windows Fixup
.. Embedded R now supports on Windows
2016-04-28 17:49:28 +01:00
Mark Liversedge
6cdd81198f R Windows Build Support
.. it now builds and runs on Windows

.. there is a runtime crash when embedded  R is initialised
   that needs to be reolved

                    ** NOTE **

R is not distributed with a .lib that can be linked to
with the MS VC linker. Instead, we need to generate a
lib and exp file from the dll:

1. dumpbin /exports R.dll > R.def
2. edit the .def output to have EXPORTS at the top and
   a list of functions only (last column, delete the rest)
3. lib /machine:x64 /def:R.def

After linking remember to copy the DLLs to the GoldenCheetah
build directory from the $R_HOME/bin/x64/*.dll
2016-04-28 17:04:40 +01:00
Mark Liversedge
acd09f91aa R boolean. 2016-04-28 08:58:41 +01:00
Mark Liversedge
50bfca2a3a R Another workaround for QT4 TRUE/FALSE conflict
.. resolving compile time issues with CI that don't
   occur on your own builds is horrible.
2016-04-28 08:28:13 +01:00
Mark Liversedge
c3eb308dc4 R More Rboolean enums nonsense
.. sigh.
2016-04-28 08:11:17 +01:00
Mark Liversedge
e56a65e659 Rboolean::FALSE not FALSE
.. and a few more tidy ups.

.. never cease to be amazed at how some developers
   will feel its OK to define generic symbols like
   TRUE and FALSE in their code (!!)

.. R is a mess.
2016-04-28 07:53:14 +01:00
Mark Liversedge
63107eb2fb Rboolean::TRUE not TRUE
.. since TRUE is #defined in QT4. sigh.
2016-04-28 07:47:56 +01:00
Mark Liversedge
9ed2850bbd Use Rinternals.h not Rdefines.h
.. Rdefines is ancient.
2016-04-27 22:36:23 +01:00
Mark Liversedge
255665da91 <stdexcept> for std::runtime_error
.. missing header.
2016-04-27 22:08:26 +01:00
Mark Liversedge
ddf0fa80de CI GC_WANT_R retry without RInside/Rcpp
.. reactrivate building with R support now we do not
   have RInside and Rcpp
2016-04-27 21:52:43 +01:00
Mark Liversedge
831e50b4ff R OSX fixups for no RInside/Rcpp
.. mostly startup issues when R_HOME is not known

.. need to think carefully about how we get the user to
   register the R home. We could let them select the R
   binary so we can run `R RHOME` and apply that (?)
2016-04-27 20:55:02 +01:00
Mark Liversedge
97c0d50eaf R Fix Version
.. in version dialog etc
2016-04-27 19:59:11 +01:00
Mark Liversedge
760a5f610a R Trap Console i/o
.. and redirect to rtool
2016-04-27 19:34:38 +01:00
Mark Liversedge
cfaa741473 R Replace RInside
.. we no longer need RInside or Rcpp as we use
   100% R API calls to embed

.. the following need to be resolved:

   1. R_HOME / Options *must* be set to startup
      embedded R but we don't check / restart or
      default via system("R HOME")

   2. Output is not trapped - all output is sent
      directly to the console you started GC on

.. will fixup the 2 above before finally:

   3. Build for Windows using MSVC !
2016-04-27 18:39:08 +01:00
Mark Liversedge
561430a7ff R Preferences set R_HOME
.. allow the user to browse and set the home directory for
   the R install -- in preparation for replacing Rinside with
   our own code to embed R
2016-04-27 12:31:23 +01:00
Mark Liversedge
4bfad2ebd2 R DLL/SO not required (!)
.. we can register routines when embedding via the
   R_getEmbeddingDLLInfo()

.. so we just register our functions directly now
   in RTool rather than needing a dynamic library.

.. its cleaner and there are no nasty casts and build
   settings required
2016-04-27 08:11:01 +01:00
Mark Liversedge
90e61b6aad R GC.metrics()
.. no longer needs Rcpp, we now have no code that
   is directly dependant upon Rcpp being installed.

.. we can now look at replacing RInside.
2016-04-26 21:33:49 +01:00
Mark Liversedge
d709c43486 R GC.activity()
.. uses native R API to create the dataframe, removing Rcpp.
2016-04-26 19:27:13 +01:00
Mark Liversedge
da0d9dd848 R GC.activities()
.. remove need for Rinside/Rcpp
2016-04-26 17:29:09 +01:00
Mark Liversedge
8eb1d321ea R GC.athlete and athlete.home
.. reimplemented with native R API

.. switched to .Call in R function since .C means all functions
   return void and must return by a pass by reference parameter.
2016-04-26 15:58:03 +01:00
Mark Liversedge
ea2a6179ef R Restructure src
.. and fix Linux build of R shared library
2016-04-26 12:23:13 +01:00
Mark Liversedge
0e74453c84 Remove RTool.cpp -fpermissive from src.pro
.. its not needed as the workaround of using an extern "C" function
   to perform the function pointer cast conforms to standard.

.. this just simplifies src.pro that was getting heavy
2016-04-26 08:03:54 +01:00
gcoco
ba5d897b1a windows.h not Windows.h 2016-04-25 19:39:18 -04:00
Mark Liversedge
6faca37f60 R Use Rf_PrintValue not Rcpp::print
.. slowly removing all the Rcpp dependencies.
2016-04-25 23:07:42 +01:00
Mark Liversedge
eb3daa3a9a R OSX qmake cp RGoldenCheetah.so post link
.. to address warnign in previous commit.
2016-04-25 23:01:20 +01:00
Mark Liversedge
66bc83f881 R SHLIB OSX Fixups (SEE WARNING IN COMMIT MSG)
.. fixup R SHLIB build and integration to work on OSX

                  **** WARNING ****

If you build for OSX with GC_WANT_R You will need to
manually copy RGoldenCheetah.so into the app bundle.

$ cp RGoldenCheetah.so ./GoldenCheetah.app/Contents/MacOS

                  *****************
2016-04-25 22:48:22 +01:00
Mark Liversedge
a5de4ed1c3 R GC.version() build() not using Rcpp
.. just declare them as normal R functions.

.. only 3 more functions to convert; activity/ies and metrics.
2016-04-25 20:36:43 +01:00
Mark Liversedge
2735803d55 R SHLIB GC.display()
.. phew. that was hard.

.. To register routines with R you need to place them in a shared
   library.

.. The routines we want to register are part of  the GC codebase so
   cannot be linked into that shared library (it would be the whole
   of GC).

.. So; we have a shared library (RGoldenCheetah.cpp) which has stubs
   for all the registered functions and an array of pointers to the
   actual functions.

.. We load the library (once R is embedded it is loaded in main.cpp)

.. After the library is loaded we then call one of its public
   functions (GCInitialiseFunctions) to tell it where all the GC
   functions are (we only have GCdisplay at present for this proof
   of the concept).

.. Along the way we need to deref/cast DL_FUNC in RTool.cpp which
   is not permitted in ISO C, so we also update qmake to add a
   special rule to compile `dodgy' sources with -fpermissive. And
   the only dodgy source is RTool.cpp.

.. This commmit will break GC_WANT_R builds on OSX, and will be
   fixed up shortly.

.. The motivation behind this is to avoid RInside/Rcpp for Windows
   builds -- enabling R support (which is not currently possible).
2016-04-25 20:11:03 +01:00
Mark Liversedge
d6a3d3eb57 Fixup BT40 into right section of src.pro
.. with QT5 dependencies.
2016-04-25 16:48:49 +01:00
Mark Liversedge
1877b6a2a1 Merge pull request #1936 from viiru-/bt40_conversion
Bt40 conversion
2016-04-25 16:34:12 +01:00
Mark Liversedge
24dd1124fc R SHLIB RGoldenCheetah
.. to use the R C API for to avoid use of Rcpp and RInside

.. the shlib doesn't do anything and isn't loaded in RTool
   at this point. Need to get this working cross-platform
   and iron out the build time nits.
2016-04-25 15:55:18 +01:00
Arto Jantunen
f0527a5a58 Add support for BTLE speed and cadence sensors 2016-04-25 15:55:15 +03:00
Arto Jantunen
aa2b45fc08 Add support for BTLE power sensors 2016-04-25 09:57:04 +03:00
Arto Jantunen
7fdd378d17 Add support for BTLE HR sensors 2016-04-25 09:57:04 +03:00
Arto Jantunen
3129b82ecd Add support for subscribing to BTLE services 2016-04-25 09:57:04 +03:00
Arto Jantunen
22ded4eb48 Add support for connecting to BTLE devices and scanning for services 2016-04-25 09:57:04 +03:00
Arto Jantunen
b05c1eca98 Rewrite BT40Controller using Qt BTLE support 2016-04-25 09:56:58 +03:00
Arto Jantunen
4024d84a67 Remove WFAPI support 2016-04-25 09:55:57 +03:00
Mark Liversedge
6b12547e27 R Add GC.metrics()
.. to return a data.frame of all metrics
2016-04-23 23:54:25 +01:00
Mark Liversedge
148317022a R apply themes to par() options
.. the GC theme is used to set the graphical parameters
   used by standard plotting commands.
2016-04-23 20:32:51 +01:00
Mark Liversedge
e576e6b6c9 R Parser don't crash on parse more
.. if the R parser is waiting for more input don't crash
.. just keep going waiting for more input.
2016-04-23 18:02:14 +01:00
Mark Liversedge
e6bf65779c R Not Supported on Windows
.. so don't even try to build and warn via qmake

.. RInside/Rcpp do not suport MSVC
.. Microsoft Open R may help, but doesn't at this point
.. we can revisit at a later date.
2016-04-23 11:27:20 +01:00
Mark Liversedge
48c3783dac Fix Compare Pane Buttons on Mac
.. just use QT buttons instead of Mac.
2016-04-22 22:21:18 +01:00
Mark Liversedge
06b56e7eb8 R avoid hang on console messaging
.. RInside is single threaded and hangs the event
   loop on the main thread (grrrr).
2016-04-21 21:48:10 +01:00
Mark Liversedge
47c10ed0c1 R Antialias and Text Color
.. enable antialising and honour text colors (instead
   of always black!)
2016-04-21 12:26:46 +01:00
Mark Liversedge
d945228080 R Honour Drawing Colors/Lines etc
.. apply the GEContext settings when drawing on the
   canvas to get proper output (e.g. ggplot2 works)
2016-04-20 20:38:11 +01:00
Mark Liversedge
804f4499e0 R Plot Zoom Mousewheel
.. and scrollbar styling
2016-04-20 15:30:12 +01:00
Mark Liversedge
39b63223cd R Canvas with Basic Primitives
.. not complete, but we now have a canvas (QGraphicsView)
   to plot the R output without needing to use x11() or
   quartz(), window() etc.

.. the primitives do not honour the graphic engine context so
   all lines etc are white on black.

.. will fix and improve in followup commits, need to test
   with QT4.8 and cross-platform.
2016-04-20 14:04:32 +01:00
Mark Liversedge
cba05ce7a1 R $$variable substitution
.. since the R runtime is shared by charts we offer the ability
   to prefix variables with $$ to ensure they don't conflict
   across multiple RCharts.

.. $$d <- GC.activity() would actually be parsed within R as
   gc0d <- GC.activity(). The next chart would get gc1 and so
   on.

.. it is optional, so charts could share data structures (but
   wonder why you might do that)

.. we still need to encapsulate the code to plot within a
   script to ensure it is refreshed when the chart is selected
   or underlying data changes.
2016-04-19 20:19:29 +01:00
Mark Liversedge
ac044d4606 R GraphicsDevice Circles now work
.. believe it or not the R base code for plot (plot.c)
   skipped plotting circles if they were white on white.

.. took me 4 hours to fix this by setting startcol and
   startfill in DevDesc for the device.

.. But at least the R driver now works properly -- we can
   now integrate with a qt widget.
2016-04-19 19:02:42 +01:00
Joern
c303e03057 CI - Windows - Back to nmake
... free CI does only offer one core, so no need to install Jom - back to nmake
2016-04-19 08:40:03 +02:00
Mark Liversedge
352db67b6e R GraphicsDevice Primitives WIP
.. the R graphics device now gets called for hist() so we can
   work on the interaction with a QT widget now.

.. still have other problems to deal with (!)
2016-04-18 23:26:32 +01:00
grauser
a4afef5fbd AllPlot : Point Hover for time of day 2016-04-18 22:13:29 +02:00
Joern
878d92408f CI - Windows - JOM - Shimgen 3
... wrong path for jom
2016-04-18 21:42:10 +02:00
Joern
f767d738a8 CI - Windows - JOM - Shimgen 2 2016-04-18 21:33:17 +02:00
Joern
f2db0c4638 CI - Windows - JOM - Shimgen
... jom not working via shimgen, use direct path instead
2016-04-18 21:30:25 +02:00
Joern
811a88c90a CI-Windows - use JOM
... use jom not nmake for parallel building
2016-04-18 20:34:53 +02:00
Mark Liversedge
760269f858 R GraphicsDevice WIP
.. GoldenCheetahGD is instantiated

.. GC.display() to create new GD
   GC.activate() to activate the GD

NOTE: a fair amount of qDebug() in at present as
      the graphics functions are being created.
2016-04-18 14:04:02 +01:00
Mark Liversedge
bef48b93f5 R Console Backspace/Left Arrow
.. fix for wrapped lines.
2016-04-17 22:06:14 +01:00
Mark Liversedge
7525be38fc R Incorrect Header "RGraphics.h" 2016-04-17 21:36:27 +01:00
Mark Liversedge
857292e47d R Add Skeleton for Graphics Device
.. basic code framework for a graphics device
.. committed to check cross-platform build
2016-04-17 21:12:12 +01:00
Mark Liversedge
1b6350a2a6 R Fix GC.activity()
.. return a valid data.frame
.. use POSIXct UTC

[is now compatible with the trackeR package]
2016-04-17 16:13:03 +01:00
grauser
5801757445 AllPlot : 'msecsSinceStartOfDay' only in recent Qt 2016-04-16 23:10:29 +02:00
grauser
5edec0c931 AllPlot : Clean last commented code 2016-04-16 22:39:50 +02:00
grauser
c3fa83b21a AllPlot: Plot by time of day (simplier version) 2016-04-16 22:35:59 +02:00
grauser
a80023e25d AllPlot: Plot by time of day 2016-04-16 22:25:25 +02:00
grauser
000ac63b01 RideMapWindow: Show/hide markers 2016-04-15 17:29:40 +02:00
Mark Liversedge
b398008e92 R Don't output results of "print()"
.. to avoid duplication
2016-04-14 22:51:03 +01:00
Mark Liversedge
8052439022 R Console exceptions
.. don't crash when cannot initialise (e.g. when RInside not
   available or R is not installed)

.. handle messaging via signals to trap 'late' messages from
   the R Runtime
2016-04-14 21:16:13 +01:00
Mark Liversedge
002169d53b RConsole Fix Hit Enter Mid-Line
.. no longer splits, but submits the line to process.
2016-04-13 21:01:40 +01:00
Mark Liversedge
4338574c76 R GC.activities()
.. returns a list of all activities. Represented via their
   starttime as a vector of datetimes
2016-04-13 20:18:38 +01:00
Mark Liversedge
894e694556 R GC.activity() improvements
.. don't fill with lots of missing series when they're obscure
.. distinguish between time and seconds
2016-04-13 20:05:19 +01:00
Mark Liversedge
f418a8658e R GC.activity() compatibility with trackeR
.. use names in the data.frame that don't contain spaces and
   are compatible with other R packages (e.g. trackeR)
2016-04-13 17:44:47 +01:00
Mark Liversedge
b39a24cb57 CI Travis Disable GC_WANT_R for now
.. c++11, 5.5.1, stdlib conflicts across dependencies
2016-04-13 09:47:32 +01:00
Mark Liversedge
aa20c747bf CI Travis OSX clang++ stdlib
.. need to select which one to use with clang++ on QT5
2016-04-13 09:10:49 +01:00
Mark Liversedge
ea85368797 CI Travis Build with GC_WANT_R
.. build with R support baked in.
2016-04-13 08:38:54 +01:00
Mark Liversedge
5257d01d35 CI Travis Should Fix Shell Escape Hell
.. shaking my head, escaped YAML for escaped Shell, for sed.
2016-04-12 21:49:53 +01:00
Mark Liversedge
ae674018ff CI Travis Sed syntax and escaped commands
.. losing the will to live.
2016-04-12 21:45:28 +01:00
Mark Liversedge
d4755b7d7a CI Travis Shell Escape Again 2016-04-12 21:41:17 +01:00
Mark Liversedge
a3050b7648 CI Travis Shell Escape Hell
.. something is broken in .yml markup (!?)
2016-04-12 21:37:28 +01:00
Mark Liversedge
b617b3ac04 CI Travis sed and shell escapes 2016-04-12 21:31:31 +01:00
Mark Liversedge
e4cc32c83d CI Travis Shell Escape Error (?)
.. not sure why their was a mismatched " at runtime
   it looks ok to me. So changed to ' in an attempt to fix
2016-04-12 21:13:32 +01:00
Mark Liversedge
b9ce4b1dcb CI Travis RInside Fix
.. sed command line error
2016-04-12 20:52:03 +01:00
Mark Liversedge
f86b7eb49a CI Travis install RInside
.. with CALLBACKS enabled
2016-04-12 20:35:36 +01:00
Mark Liversedge
a0dc8354d9 CI Travis Rcpp install (again)
.. halfwittery in last commit
2016-04-12 20:17:59 +01:00
Mark Liversedge
38b9e2cbbb CI Travis Install Rccp
.. in readiness for RInside build and install
   with GC_WANT_R
2016-04-12 20:02:39 +01:00
Mark Liversedge
e1c9caef5b CI update install-packages.R
.. to reflect we need to build with RInside with
   callbacks enabled.

[skip ci]
2016-04-12 19:48:06 +01:00
Mark Liversedge
ff2e70972c CI Install R update
.. brew tap homebrew/science
   to see if that finds it
2016-04-12 19:31:53 +01:00
Mark Liversedge
b08a87fd39 CI Travis Install R
.. getting ready to build with GC_WANT_R
2016-04-12 19:24:13 +01:00
Mark Liversedge
a0df01317e R Console History
.. using up/down arrows
2016-04-12 19:01:00 +01:00
Mark Liversedge
85052d9e6d R GC.activity() function
.. to get a dataframe containing all the
   data in a ride.
2016-04-12 17:45:48 +01:00
Mark Liversedge
aee825ddc0 Merge pull request #1925 from amtriathlon/master
Fixed AvgSpeed to fallback to Distance/Duration when there are no sam…
2016-04-12 17:44:44 +01:00
Alejandro Martinez
ed73cd57d2 Fixed AvgSpeed to fallback to Distance/Duration when there are no samples
This behavior was changed after compute() refactor.
2016-04-12 13:02:10 -03:00
Mark Liversedge
02d84726ff R Chart refactor with RTool
.. refactoring code to introduce an RTool for working
   with RInside and Rcpp and move code away from main.cpp

.. get ready to write all the data accessors in a way
   that supports multiple athlete windows.
2016-04-12 15:55:03 +01:00
Mark Liversedge
fe5a397ee4 RChart Athlete/Home
.. add GC.athlete and GC.athlete.home to the variables
   list - setting context every time we parse any kind
   of expression.
2016-04-12 00:52:01 +01:00
Mark Liversedge
39fe77a385 R Chart Console and "GC" object
.. now have a console in the RChart to issue R commands.
   Its very basic and doesn't handle multi-line commands
   well nor support up/down to cursor through history.

.. added a "GC" object with 3 variables
   GC.version - a version string
   GC.build - build id, later always higher
   GC.home - root of all athlete directories

.. No access yet to athlete, metrics, models and rides.
   This will come very shortly; need to decide on best
   way to handle accessing different athletes within
   a single global context.
2016-04-12 00:33:57 +01:00
Mark Liversedge
8660278eda Add new RConsole Chart
.. to trend and analysis view

.. its a blank chart for now, building begins now we are
   ready to support this across all platforms.
2016-04-11 16:37:40 +01:00
Mark Liversedge
ff6c55d8c7 Add RInside Developer Instructions
... see doc/user/RInside.txt
2016-04-11 15:44:31 +01:00
Mark Liversedge
ecee694abf Fix compile error for last commit 2016-04-09 21:24:40 +01:00
Mark Liversedge
0827de9ce0 R integration and Version in About
.. integration fixups for cross platform
.. RInside will need to be built with callbacks enabled
.. R Version is shown in about version
2016-04-09 20:47:44 +01:00
Mark Liversedge
22b3399de7 Fix R src.pro to make cross-platform
.. working on Linux and now OS X
2016-04-09 13:01:13 +01:00
Mark Liversedge
5c8e1850df Fix SEGV on Cancel at Startup
.. of you cancel before opening an athlete you get a SEGV
   on some platforms under some conditions (threads)

.. we now tidy up a little better and avoid deleting static
   objects when application->exec() has not been called.
2016-04-09 10:47:32 +01:00
Mark Liversedge
819bee6749 Add -lR and -lRInside for 'R' Chart
.. still working on the build/configuration to get things
   started. main.cpp now creates an instance of RInside
   that is shared by all athletes/charts.

.. not clear if this is going to work (!)

.. pushing to repo to test cross-platform support during
   development. It /should/ not impact any code since it
   will be an optional dependency.
2016-04-08 12:22:44 +01:00
Mark Liversedge
a3802d5102 Add an 'R' Chart
.. first part just to get the configuration ready to
   build out a chart for the trend and activity view

.. src.pro and gcconfig.pri are updated to link in with
   the RInside/Rcpp package install (new dependency)

.. there is a script in util called install-packages.R
   which can be run to install the packages so long as
   R is available:

   $ R CMD BATCH util/install-packages.R
2016-04-08 11:45:34 +01:00
Erik Botö
3f56981f1c Monark: Fix out of sync issue when restarting bike when connected 2016-04-08 12:44:40 +02:00
Mark Liversedge
2c26e88b57 Ride Editor Find and Replace
.. extend the find dialog to enable the user to replace
   and replace all values found in one hit.
2016-04-07 17:18:17 +01:00
Mark Liversedge
c4034c344c Merge pull request #1923 from dresco/timestamp
Fix corrupt timestamps on Windows builds
2016-04-07 14:17:23 +01:00
Jon Escombe
21bd66e616 Fix corrupt timestamps on Windows builds
The logic for building the timeval struct wasn't quite right.
2016-04-07 13:26:08 +01:00
Mark Liversedge
39479b328b Merge pull request #1922 from erikboto/add_tw_garmin_edge_520
FitRideFile: Add Garmin Edge 520 Taiwan version
2016-04-06 20:27:50 +01:00
Mark Liversedge
41d47ba8cd Merge pull request #1921 from amtriathlon/master
Fixed LTMPlot so By Week grouping starts on monday
2016-04-06 20:27:40 +01:00
Erik Botö
60ded8f955 FitRideFile: Add Garmin Edge 520 Taiwan version
Fixes Issue #1919
2016-04-06 20:46:20 +02:00
Alejandro Martinez
2fbb04c46a Fixed LTMPlot so By Week grouping starts on monday
instead of Wednesday due to missing parentheses
2016-04-06 15:23:01 -03:00
Mark Liversedge
fea3490571 DataFilter Update Syntax
.. allow single character variable name

.. dereference via $name not just name perhaps to
   consider user prompts to set values at runtime
2016-04-06 18:43:27 +01:00
Mark Liversedge
ae5de68b03 Merge pull request #1920 from lumanz/master
Update gc_zh-cn.ts
2016-04-06 15:54:47 +01:00
Sping Zhao
5c02277f76 Update gc_zh-cn.ts 2016-04-06 20:49:19 +08:00
Mark Liversedge
3027ccd546 Merge pull request #1899 from erikboto/filetype_by_suffix_export
Use filename suffix to determine filetype if possible during export
2016-04-03 18:36:29 +01:00
Mark Liversedge
88dd8e1660 Merge pull request #1912 from leukzx/master
Added virtual power support for the Tacx Sirius trainer.
2016-04-03 18:34:04 +01:00
Mark Liversedge
6e8c3c5b38 Handle NOWEBKIT for QT < 5 Gracefully
.. if NOWEBKIT is set in gcconfig.pri when QT < 5 we unset it, since
   it is only supported for QT versions > 5.0 where QWebEngine is
   available

.. gcconfig.pri.in has also been updated to have a line to set
   NOWEBKIT as a signpost to the user

.. we /could/ use the sed s/#DEFINES/DEFINES technique in .travis.yml
   now to set NOWEBKIT always and it will only take effect if building
   with QT5
2016-04-03 08:16:35 +01:00
gcoco
740bee0faf Fix QT install.
Allows sub-version so we can do QT5.5.1 (Webkit) and QT5.6 (Webengine) at a later date.
2016-04-02 17:36:41 -04:00
gcoco
e55ff4bd08 Allow QT version choice for MAC
[ci skip]
2016-04-02 17:35:28 -04:00
Mark Liversedge
8e53a386f0 Cleaner version of previous commit
.. just clear the tree, no need to traverse it.
2016-04-02 20:40:20 +01:00
Mark Liversedge
85f93627c2 Fix LTMSidebar::resetSeasons SEGV
.. takeChild(0) called repeatedly caused a crash for every
   season that had no children.
2016-04-02 20:33:25 +01:00
Mark Liversedge
c9178dbc53 CI Travis QT5 issues
.. added -Wno-c++11-narrowing to fix build of qwtplot3d libs
.. travis/install-qt.sh has some diags
2016-04-02 19:48:02 +01:00
Joern
63497f898e Update README.md
... link to correct CI project
2016-04-02 19:31:10 +02:00
Maxim A
7c74a0b175 Added virtual power support for the Tacx Sirius trainer. 2016-04-02 13:57:06 +05:00
Joern
40469a2cba Add Windows CI Status 2016-04-02 10:08:12 +02:00
Joern
bb4e733938 Update appveyor.yml 2016-04-02 09:34:07 +02:00
Mark Liversedge
210fbdf2f1 Fix const(e)
.. was broken since "e" is a one character symbol
   and we want 2 character symbols.
2016-04-01 20:16:49 +01:00
Mark Liversedge
6eea862be9 Merge pull request #1911 from Joern-R/CI
GitHub Integrated CI for Windows Build
2016-04-01 19:30:19 +01:00
Joern
ebcaa4d657 GitHub Integrated CI for Windows PRs
... using AppVeyor.com
... only 64Bit builds with QT 5.6.0 / MSVC2015
... all libraries included (pre-compiled)
... using QtWebEngine configuration, not QtWebKit
2016-04-01 19:54:59 +02:00
Mark Liversedge
e518c15005 Merge pull request #1908 from erikboto/monark_updates
Monark updates
2016-03-29 19:56:16 +01:00
Erik Botö
27f4761f96 Monark: Refactor to remove one class 2016-03-29 12:51:42 +02:00
Erik Botö
3c9520331a Monark: Rework to use an enum for model 2016-03-29 12:51:42 +02:00
Erik Botö
a765d99534 Monark: Use gradient for controlling kp 2016-03-29 12:51:42 +02:00
Mark Liversedge
60f4c58c31 Merge pull request #1907 from amtriathlon/master
Changed select latest activity to skip future activities
2016-03-28 19:29:26 +01:00
Alejandro Martinez
4a0629204e Changed select latest activity to skip future activities
When there are (planned) activities with future days it is
annoying to start at the latest planned activity, this change
try to select the latest which is not in the future.
2016-03-28 12:35:12 -03:00
Mark Liversedge
413b10cd0b Invalidate PMC Cache when any rideitem changes
.. to be on the safe side we just invalidate all PMC caches
   when a rideitem changes.
2016-03-28 11:31:11 +01:00
Mark Liversedge
10d3002c10 Merge pull request #1904 from amtriathlon/master
Fixed removal of planned workouts
2016-03-26 15:42:09 +00:00
Alejandro Martinez
821ce49753 Fixed removal of planned workouts
Rename failed due to wrong directory
2016-03-26 11:32:31 -03:00
Mark Liversedge
355c94e931 .gitignore .user files
[skip ci]
2016-03-26 11:02:41 +00:00
Mark Liversedge
03cc15e489 Fix JS warning with null div
.. in RideSummaryWindow we update to show
   progress of the model estimates, but it
   errors if the html is not set or is blank
   and does not contain the div 'modhead'.
2016-03-26 10:33:22 +00:00
Mark Liversedge
6c8322deb2 Shadow Build Support
The following will always be located in the
source directories so we can find them across
the different trees:

* ../lib/libqwt.a
* ../kqoauth/libkqoauth.a (linux only)
* ./Resources

The references are made via $${PWD} which is
the directory for the currently processed
.pro file.
2016-03-26 09:55:38 +00:00
grauser
0a3f1fe2ed RideMapWindow: Add OSM Map 2016-03-26 00:08:00 +01:00
Mark Liversedge
2434dc55e4 Merge pull request #1903 from amtriathlon/master
Add today marker when LTM chart goes to the future
2016-03-25 18:17:36 +00:00
Mark Liversedge
e9671ada84 Best Exhaustion R metric
.. mostly fails to solve (!)
2016-03-25 17:41:56 +00:00
Alejandro Martinez
50be159496 Add today marker when LTM chart goes to the future
Useful for planning
2016-03-25 13:06:04 -03:00
Mark Liversedge
beb663fa44 CP/W' Solver Allow Overlay
.. don't clear results, let the user clear them
   when ready -- so you can run multiple solver
   runs and look at the results visually.
2016-03-25 13:00:37 +00:00
Mark Liversedge
3a6a4cbbf2 Fix compile time warning
.. reorder initialisation warning (its harmless) but is a tad
   annoying as it commands attention !
2016-03-25 09:42:33 +00:00
grauser
cc486762f0 Add RideMapWindow : An unified Map Chart (1/2) 2016-03-25 09:28:25 +01:00
Mark Liversedge
b1e5bfb081 CP/W' Solver Colors
.. R is in range 0.2 - 1.0 realistically
2016-03-24 20:30:00 +00:00
Mark Liversedge
d9493e3d62 Thread Safety for PD Estimates (SEGV)
.. we refresh in a thread so need to protect
   access to them via a QMutex.
2016-03-24 20:03:45 +00:00
grauser
61b4ad3274 BingMap: Correct interval highlighting 2016-03-24 14:45:24 +01:00
Erik Botö
4b31535399 Use filename suffix to determine filetype if possible during export 2016-03-24 12:37:05 +01:00
Mark Liversedge
c02bacc57b Revert "Fix "out-of-source" build"
This reverts commit 95548d9258.

It causes a rebuild every time make is called.
2016-03-24 08:23:36 +00:00
Mark Liversedge
f3fbad5848 Import Wizard Error messages
.. better handling
.. manual apply of Magnus Gille PR.
2016-03-24 07:48:05 +00:00
Mark Liversedge
94a00a9c16 Merge pull request #1894 from Joern-R/Build
Fix "out-of-source" build
2016-03-24 07:31:24 +00:00
Mark Liversedge
0ed92912bd Merge pull request #1889 from erikboto/fix_plot_resize_trainview
WorkoutWidget: increase x-axis length during workouts if needed
2016-03-24 07:30:49 +00:00
grauser
35c8585b07 BingMap: compatible QtWebEngine + small corrections 2016-03-24 00:51:39 +01:00
Mark Liversedge
c0530778a8 Ridefile Interval types fix
.. added EXHAUSTION but didn't follow it through, but it
   was left defined in RideFile.h.
2016-03-23 20:43:13 +00:00
grauser
b41b3a9c10 GoogleMapControl: Small changes
Google Maps API warning: SensorNotRequired
     https://developers.google.com/maps/documentation/javascript/error-messages#sensor-not-required
2016-03-23 21:16:18 +01:00
grauser
9e52e7b534 GoogleMapControl: compatible QtWebEngine 2016-03-23 20:36:22 +01:00
grauser
6765c0599c ModelLab: Add version 7.3 2016-03-23 20:36:22 +01:00
Mark Liversedge
c7311a5595 Fix Strava Build
.. error introduced in commit 08dca02f13
2016-03-23 18:43:12 +00:00
Mark Liversedge
d2a5da6b23 Static analyzer serious bugs fixed
.. all are memory leaks
2016-03-23 18:43:12 +00:00
Mark Liversedge
ff398616b5 Merge pull request #1897 from lumanz/master
Update language setting in CloudDBCommon.cpp
2016-03-23 16:42:24 +00:00
Mark Liversedge
474eb562c1 typos in comments 2016-03-23 13:25:25 +00:00
Sping Zhao
454790a5ca Update CloudDBCommon.cpp 2016-03-23 20:55:05 +08:00
Mark Liversedge
339deeca16 Hack fix for CERVO 2016 date bug
.. LYC set the date to 2000 from 2016 !

.. we check the date when downloading from a CERVO and if the year
   is set to 2000 we set it to the current year.

.. if the date resulting is in the future (e.g download a ride in Jan
   2017 from a ride in Dec 2016) then we subtract a year.

.. it will be interesting to see what happens in 2017 !
2016-03-23 11:18:03 +00:00
Mark Liversedge
63be824773 Power Color in ERG and MRC mode
.. courtesy of Claus Assmann
2016-03-22 13:21:55 +00:00
Mark Liversedge
933d5cce86 Merge pull request #1896 from erikboto/nowebkit_buildfix
LTMWindow: Fix missing include when building NOWEBKIT without GC_HAS_…
2016-03-22 12:12:47 +00:00
Erik Botö
e7a99edf61 LTMWindow: Fix missing include when building NOWEBKIT without GC_HAS_CLOUD_DB 2016-03-22 12:40:33 +01:00
Mark Liversedge
307a8c785d RideSummaryWindow wait till set before runJavaScript()
.. not clever to run JS on the summary before any content is loaded
2016-03-21 15:19:26 +00:00
Mark Liversedge
697e513ad0 Fix LTM Tracker SEGV
.. fix uninitialised data
2016-03-21 14:02:03 +00:00
Mark Liversedge
4f7e7759b3 RideSummaryWindow refresh optimisation
.. for every time the ride item changed signal caused a refresh the
   intervals changed signal would cause a second refresh straight away.
2016-03-21 12:19:32 +00:00
Mark Liversedge
9df6d2188d Merge pull request #1895 from AartGoossens/feature/refactor_hrpw_plot
Refactor of HrPw code FR > EN
2016-03-20 19:08:35 +00:00
Aart Goossens
eed3cd7073 Added .swp to .gitignore
.swp files are swap files for VIM
2016-03-20 19:41:29 +01:00
Aart Goossens
76abbd4bf4 Refactor of HrPw code FR > EN 2016-03-20 19:41:25 +01:00
Mark Liversedge
8c38695419 Qt 5.6 NOWEBKIT fixups for OSX
.. OAuthDialog changes had a logic error in the
   conditionals for WebKit v WebEngine
2016-03-20 15:10:28 +00:00
Mark Liversedge
e90ba5dbd1 Fixup missed in prior commit. 2016-03-20 14:21:39 +00:00
Mark Liversedge
888a41098f Fixups NOWEBKIT when not set
.. builds without NOWEBKIT broke with last commit
2016-03-20 13:52:30 +00:00
Mark Liversedge
8b73af182e Qt 5.6 Support - NOWEBKIT
.. remove Webkit dependency if the user adds the following
   to their gcconfig.pri: DEFINES += NOWEBKIT

.. at present the build disables:
   * Bing map
   * Google map
   * Ride Window
   * Street View

.. since QT 5.6 enables c++11 dependent libs may no longer
   compile with c++11 enabled (e.g. qwtplot3d)

.. this is experimental and in place to enable further work
   on deprecating the webkit dependency in GoldenCheetah v4.0
2016-03-20 13:25:00 +00:00
gcoco
6817a519a7 Add -lusb-1.0
Make it easier to understand that this is using libusb-compat and libusb-1.0.
[ci skip]
2016-03-19 10:34:14 -04:00
Joern
95548d9258 Fix "out-of-source" build
... translation files are searched for in the "src" dir, but where created in the build dir
2016-03-19 12:54:53 +01:00
Mark Liversedge
c4fb16dcd9 Add Device Wizard Size Hint
.. lots of devices to choose from now, dialog needs to be larger.
2016-03-19 10:58:04 +00:00
gcoco
5930a43f3a Reenable Qt 5 builds
Use a script to install Qt. We force Qt5 to pick Qt 5.5.1
[ci skip]
2016-03-18 21:44:52 -04:00
gcoco
8905afd22e Install Qt 5.5.1 from brew
Because QT 5.6 breaks stuff
[ci skip]
2016-03-18 21:42:50 -04:00
Mark Liversedge
831964715c CI Disable QT5 test builds as 5.6 breaks things
.. notably c++11 needed which breaks a few dependencies

.. WebKit is not available and breaks our builds

.. we will likely need to fixup WebEngine and c++11 in some
   fashion. This may mean we deprecate qwtplot3d and we
   pre-build WebKit for builds
2016-03-18 21:42:08 +00:00
Mark Liversedge
a8ce6cf05e Merge pull request #1893 from erikboto/add_kettler_support
Add support for Kettler Ergo Bikes
2016-03-18 21:39:51 +00:00
Mark Liversedge
d2b98d26bd UserData Dialog SizeHint
.. coding through a letterbox is never fun, so made it a bit bigger
2016-03-18 17:27:28 +00:00
Erik Botö
fc8fd45070 WorkoutWidget: increase x-axis length during workouts if needed 2016-03-18 12:55:03 +01:00
Mark Liversedge
bdcbb84b12 DataFilter fix unary '-'
.. was evaluating to zero always.
2016-03-18 11:39:30 +00:00
Mark Liversedge
af69e86e8b Solver Display CP config box fix
.. x,y co-ord of box was too low as used W' from not W' to
   as the maximum value.
2016-03-17 22:30:44 +00:00
Mark Liversedge
48720e7ae1 CP/W' label on SolverDisplay nit 2016-03-17 20:12:52 +00:00
Mark Liversedge
3aab4f4f8b Hack for Uncompressed MouseMove Events on X11 QT5 < 5.6
.. there is a fixup for this in Qt 5.6 but not prior and
   it causes horrible performance problems on the QXT
   span slider on Linux, which is irritating when trying
   to zoom into an area of a ride.
2016-03-17 18:37:23 +00:00
Mark Liversedge
f4e16bf5c3 Fix initialisation bug
.. count=0 in SolverDisplay
2016-03-17 13:59:23 +00:00
Mark Liversedge
4913560f90 Recognise Johan Martensson 2016-03-17 11:53:46 +00:00
Johan Martensson
ea969c18e2 Fix for Withings Readings without Weight
.. when searching for weight in withings readings there will
   be measurements that do not include weight -- these are
   now skipped to avoid returing a 0kg weight.
2016-03-17 11:50:40 +00:00
Mark Liversedge
83f026d9d4 Solver Display Cursor labels for CP/W'
.. so you can explore the solutions found

NOTE: there is a hack in this to avoid mouse event compression
      issues on QT5 < 5.6 on X11 (Linux).
2016-03-17 11:03:32 +00:00
Mark Liversedge
a135bdb1d3 CP/W' Solver code tidy
.. destructor to prevent memory leak
.. reset when solver completes
.. sizeHint for better layout if screen big enough
2016-03-17 08:06:51 +00:00
Mark Liversedge
d71fba12f8 Solver Display Cosmetic Nits
.. frame for plot and spacing of dialog.
2016-03-16 20:24:33 +00:00
Mark Liversedge
9e5a348539 Solver Display limit painting
.. don't paint dots for cost > 100kJ. It was good for debugging
   and checking the solver, but now its just distracting and a
   very large performance overhead.
2016-03-16 19:53:37 +00:00
Mark Liversedge
ee3bcb4224 Solver Display Color Code Tau
.. red low, green mid, blue high
2016-03-16 18:44:09 +00:00
Mark Liversedge
a314f28847 SolverDisplay show config box
.. show area covered by current configuration for CP and W'
   as context for the solver and enlarged by 10% for good
   measure.
2016-03-16 16:45:38 +00:00
Mark Liversedge
29b0815341 Merge pull request #1887 from lumanz/master
Language setting update for Simplified Chinese
2016-03-16 12:39:59 +00:00
Sping Zhao
bd88c1a81f Update src.pro 2016-03-16 20:00:47 +08:00
Sping Zhao
6621c4c1f3 Update application.qrc 2016-03-16 19:59:45 +08:00
Sping Zhao
3d6b6d6f78 Update Pages.cpp 2016-03-16 19:58:01 +08:00
Mark Liversedge
6bad8a6a2e Solver Solve for W'bal=500
.. athletes fail at around 500J not 0 !

.. see http://www.ncbi.nlm.nih.gov/pubmed/24509723
2016-03-16 10:53:35 +00:00
Mark Liversedge
e0daa72b3c CP Solver Colors
.. color the solutions found by cost

.. it looks like there is some kind of continuous solution
2016-03-16 08:59:56 +00:00
Mark Liversedge
931ce07e99 CP/W' Solver Part 3 of 3
.. added a visualisation of the search progress.
.. can be refined later to color lowest cost etc.
2016-03-15 22:29:11 +00:00
Erik Botö
5300f5179d Add support for Kettler Ergo Bikes 2016-03-15 20:41:39 +01:00
Mark Liversedge
2173688939 Solver Part 2c of 3
.. threading didn't improve performance, it made things worse!

.. but now added R for differential formula; this is the recharge
   factor for recovery.
2016-03-15 14:50:18 +00:00
Mark Liversedge
140b700beb Allow Tau in Metadata to override
.. since we solve for it, should let the user set it in the ridefile.
2016-03-15 11:39:41 +00:00
Mark Liversedge
3e3d9a6b7f Merge pull request #1886 from lumanz/master
Added new translation for simplified Chinese
2016-03-15 07:17:49 +00:00
Sping Zhao
5004851b01 Merge pull request #1 from lumanz/lumanz-patch-1
Added new translation file for simplified Chinese
2016-03-15 07:31:15 +08:00
Sping Zhao
b32a63e1c1 Update src.pro 2016-03-15 07:29:33 +08:00
Sping Zhao
3876f593f1 Added files via upload 2016-03-15 07:27:24 +08:00
Mark Liversedge
88aaa73504 comment nit
.. cut and paste comment in the cp solver was a tad misleading!
2016-03-14 21:39:08 +00:00
Mark Liversedge
88e964d3b2 CP/W' Solver Part 2b of 3
.. let the user stop the iterations

.. part c (last part of 2) needs to support threads
2016-03-14 20:56:13 +00:00
Mark Liversedge
9ec933b30f Solver User Constraints
.. user can constrain the search space to plausible ranges for their
   training status and history
2016-03-14 19:48:58 +00:00
Mark Liversedge
131e55738e CPSolver Simulated Annealing Fixups
.. probability(), temperature() and neighbour() functions were
   not implemented for a correct SA implementation.

.. results still need to be constrained to avoid solutions that
   are implausible for the athlete status or history
2016-03-14 18:20:39 +00:00
Mark Liversedge
a4f07b1457 Solver Integral and Differential
.. support either model

.. the simulated annealling algorithm isn't quite right, need
   to look at the probability function and improve it.
2016-03-13 09:37:01 +00:00
Mark Liversedge
2c1e715b51 Don't need a static counter
.. bit of a brain fart. fixed.
2016-03-12 19:04:34 +00:00
Mark Liversedge
b60690e66a Performance Nit OSX
.. too many updates slowed it down *badly*
2016-03-12 15:29:28 +00:00
Alejandro Martinez
f518cf6f74 Merge pull request #1880 from amtriathlon/master
Finished Metrics Descriptions
2016-03-12 11:31:48 -03:00
Alejandro Martinez
24071a9736 Added tooltip for metadata fields and PMC metrics on LTM charts 2016-03-12 10:51:25 -03:00
Alejandro Martinez
cbe24160a7 Added initialize method and descriptions to MMP Percentage, Fatigue Index and Pacing Index
initialize enables tr() to work since it is ran after translator tables are loaded
2016-03-12 10:51:23 -03:00
Alejandro Martinez
18860210d6 Added remaining metric descriptions
For plain power and pace peak metrics the name is descriptive enough
2016-03-12 10:51:22 -03:00
Alejandro Martinez
df19d4ec72 Added Descriptions for WPrime metrics 2016-03-12 10:51:20 -03:00
Alejandro Martinez
4694fc3091 Added Descriptions for Time and Percent of Time in Zone metrics 2016-03-12 10:48:46 -03:00
Alejandro Martinez
88137a7a24 More Metrics Descriptions
Aerobic Decoupling, Daniels Points, Left Right Balance and TRIMPs
2016-03-12 10:48:43 -03:00
Mark Liversedge
d493d881a5 CP/W' Solver Part 2a of 3
.. added a solver using a simulated annealing algorithm.

.. the solver is constrained to physiologically plausible
   values, but these may not be valid for the athlete. So
   a second update is required to allow the user to constrain
   the solver.

.. secondly, the algorithm cannot be halted and doesn't use
   multiple CPUs/threads should they be available this should
   be in a second update to part 2

.. finally, a visualisation is needed to show the solver progress
   across the search space to give the user an indication of
   where the best solutions were found (especially if they don't
   constrain it themselves).
2016-03-12 11:35:36 +00:00
Mark Liversedge
de0a1e93f1 CP/W' Solver Part 1 of 3
.. add the dialog to mainwindow, but not functioning.

.. Part 2 will add the Solver and Part 3 will add the
   progress visualisation.

[this is a recommit after reverting the previous one
 that borked line endings to MSDOS crlf]
2016-03-11 16:10:26 +00:00
Mark Liversedge
9fb184c748 Revert "CP/W' Solver Part 1 of 3"
.. line endings inadvertently set to MSDOS, causes all change history
   in the file to be lost, so reverting and will push again.
2016-03-11 15:53:12 +00:00
Mark Liversedge
3d741aea3f ChartBar margins too think on Mac
.. looked weird.
2016-03-11 15:42:55 +00:00
Mark Liversedge
7e559a7bf6 CP/W' Solver Part 1 of 3
.. add the dialog to mainwindow, but not functioning.

.. Part 2 will add the Solver and Part 3 will add the
   progress visualisation.
2016-03-11 15:04:38 +00:00
Mark Liversedge
a0536ed2ec Merge pull request #1882 from erikboto/fix_own_dropbox_id_bug
Settings.h:  Don't redefine GC_DROPBOX_CLIENT_ID if it's defined in g…
2016-03-11 12:11:26 +00:00
Mark Liversedge
a2dba1edfc Merge pull request #1881 from erikboto/basic_fe-c_stationary_support
Add basic support for ANT-FE-C Stationary Bikes
2016-03-10 14:41:42 +00:00
Erik Botö
d8212649a8 Settings.h: Don't redefine GC_DROPBOX_CLIENT_ID if it's defined in gcconfig.pri 2016-03-10 13:34:40 +01:00
Erik Botö
b9b8aec852 Add basic support for ANT-FE-C Stationary Bikes 2016-03-10 12:10:53 +01:00
Mark Liversedge
8f1bceaa61 Merge pull request #1879 from amtriathlon/master
Added Descriptions for Skiba cycling metrics
2016-03-09 18:35:26 +00:00
Alejandro Martinez
c0dbad1d05 Added Descriptions for Skiba cycling metrics 2016-03-09 13:56:12 -03:00
Mark Liversedge
98d93a7184 Remove errant qDebug 2016-03-09 14:08:19 +00:00
Mark Liversedge
47f7dee3bf LTM None means None
.. when plotting dots with symbol none we don't
   plot anything. This is useful for just plotting
   top or bottom N.
2016-03-09 14:06:15 +00:00
Mark Liversedge
bf7f570fc8 Fix LTMOutliers crash
.. out of bounds memory access
2016-03-09 12:45:51 +00:00
Mark Liversedge
8974cd8ab2 src.pro nit
.. QT Creator refactoring of ToolsDialog -> EstimateCPDialog
   updated src.pro, but not in the places we like.
2016-03-09 08:40:46 +00:00
Mark Liversedge
9c3f9523fd Tidy Up Tools Menu
.. options should be the last menu item
.. rename ToolsDialog -> EstimateCPDialog
.. move findIntervals to Activity menu
2016-03-09 08:27:16 +00:00
Mark Liversedge
43f4416a26 Merge pull request #1878 from amtriathlon/master
Added Descriptions for Coggan Metrics
2016-03-09 07:46:55 +00:00
Alejandro Martinez
fc690eeeda Added Descriptions for Coggan Metrics 2016-03-08 21:07:45 -03:00
Mark Liversedge
cc13edd833 Fix QT4 build on QVector::removeAt
.. it wasn't available till QT 5.
2016-03-08 21:34:08 +00:00
Mark Liversedge
99e3a50985 To Exhaustion Metric
.. count of marks in activity for points of exhaustion, mostly useful
   for filtering on rides that contain them
2016-03-08 21:29:48 +00:00
Mark Liversedge
fbfa02e73e Fixup Mark Exhaustion
.. allow delete
.. refresh properly
.. double click on axis to edit list of exhaustions in the ride
2016-03-08 21:07:56 +00:00
Mark Liversedge
5b26bb7bdc Exhaustion Lines Initial
.. marking exhaustion, a WIP
2016-03-08 08:28:07 +00:00
Mark Liversedge
6c120ec4aa Merge pull request #1876 from amtriathlon/master
Completed BasicRideMetrics descriptions
2016-03-08 07:27:27 +00:00
Alejandro Martinez
3d93e34785 Completed BasicRideMetrics descriptions 2016-03-07 20:56:05 -03:00
Mark Liversedge
bd83dc782a Merge pull request #1873 from viiru-/fix-1829
Fix build failure reported as #1829
2016-03-06 10:14:50 +00:00
Arto Jantunen
e6700f569c QWT: Remove qwt_scale_map_table.h from SOURCES 2016-03-06 11:52:55 +02:00
Mark Liversedge
7622d47770 Compile time nits
.. cleaning out warnings.
2016-03-06 08:57:24 +00:00
Mark Liversedge
f7e8625f7f Merge pull request #1872 from gcoco/udev-rule
Add USB1 stick
2016-03-06 08:36:14 +00:00
gcoco
19ab30289f Add USB1 stick
So that those using USB will have write capabilities
2016-03-05 21:59:54 -05:00
Alejandro Martinez
f7a1a0fbd1 Added metric description tooltip in curve settings for LTM charts 2016-03-05 14:49:09 -03:00
Alejandro Martinez
583100df89 Merge pull request #1871 from amtriathlon/translations
Update Translations to the new src directory structure
2016-03-05 13:52:22 -03:00
Alejandro Martinez
814cb5b990 Merge pull request #1870 from amtriathlon/master
Show metric description as tooltip in config metric lists
2016-03-05 13:24:23 -03:00
Alejandro Martinez
4686bc497f Fixed Italian Translation in Diary Sidebar
Date format was incorrectly translated to plain text
Days of the week were not abreviated
2016-03-05 13:22:01 -03:00
Alejandro Martinez
7ba1ea8437 Update translations to the new src directory structure 2016-03-05 13:08:26 -03:00
Alejandro Martinez
5b91fbbb4d Show metric description as tooltip in config metric lists
For builtin metrics it shows the newly added description if available
and refers to the Glossary otherwise
For user defined metrics it is the text provided by the user
Complete descriptions for Running and Swimming metrics and partial
update for BasicMetrics, it defaults to a message referring to the wiki.
Fixes #1850
2016-03-05 10:59:55 -03:00
Mark Liversedge
1f88091178 Don't need QtScript in src.pro
.. we don't use it and its deprecated in QT 5.6 anyway
2016-03-03 20:56:42 +00:00
Mark Liversedge
6025681f92 Fixup for GoogleDrive on QT < 5.4
.. rather than only build with Google Drive support if
   using QT5.4 just adapt the code to avoid issues with
   QJsonObject -> operator present in QT5.x < 5.4.

.. see https://bugreports.qt.io/browse/QTBUG-29573
2016-03-03 19:21:23 +00:00
Mark Liversedge
4fa88281d4 Fix Preferences Save useMetricUnits bug
.. when saving weight/height the saveClicked() function was using the
   value in context->athlete->useMetricUnits to decide if to perform
   conversion of the values stored in the widgets -- BUT -- it will
   reflect the value BEFORE our update since it has not been updated
   yet (via the configChanged() signal.

.. instead we look at the pending value when deciding if the values
   need conversion.

Fixes #1868
2016-03-02 21:12:30 +00:00
Mark Liversedge
82fe34affc GoogleDrive needs QT 5.4 or higher
.. so update in src.pro and MainWindow.
2016-03-02 07:58:46 +00:00
Mark Liversedge
e4f815e075 Merge pull request #1867 from gille/google
Fixes for v3 API.
2016-02-29 08:01:22 +00:00
Magnus Gille
eed0c1e368 Fixes for v3 API.
DownloadURL no longer exists so we have to create it ourselves.
Page size no longer limited to 100.
2016-02-28 19:50:46 -05:00
Mark Liversedge
0fe65b4ce2 MSVC .gitignore
*.opt
2016-02-27 11:04:00 +00:00
Mark Liversedge
181d304d41 Fix src.pro always linking
.. infuriating issue of always running the linker step when
   running make, even if not needed.
2016-02-27 10:12:05 +00:00
Mark Liversedge
2233f53757 UML Future Chart Update
.. using Visual Paradigm 13.0
2016-02-27 10:12:05 +00:00
Mark Liversedge
be3d263922 Merge pull request #1864 from Joern-R/WinBuild
WinBuild Problem
2016-02-27 10:11:50 +00:00
Joern
f19024e717 WinBuild
... icon not found on Windows/MSVC compile
2016-02-27 10:46:09 +01:00
Mark Liversedge
2529acab31 Revert "Fix src.pro always linking"
This reverts commit 836def1f20.

It breaks Travis-CI and the .qm files are not rebuilt when deleted.
2016-02-26 21:54:09 +00:00
Mark Liversedge
836def1f20 Fix src.pro always linking
.. thanks to Ivor Hewitt for the fix
2016-02-26 21:00:52 +00:00
Mark Liversedge
adbe8443fd Future Chart Design Update
.. simplified a little.
2016-02-26 17:52:45 +00:00
Mark Liversedge
37de998ccf Windows Disable ScreenSaver Train View
.. previously it was disabled via VLC, but if you're not running
   with video then the screensaver will kick in on Windows.

.. we now disable it via the Windows API too

Fixes #1859
2016-02-26 12:49:49 +00:00
Mark Liversedge
74b21037d1 Reorg Mac plist location fixed 2016-02-26 11:05:44 +00:00
Mark Liversedge
cc6bd2c077 Clean qtsoap common.pri
.. just to get rid of tedious warning in QT Creator
2016-02-26 10:21:14 +00:00
Mark Liversedge
052b82c611 .gitignore QT creator autosave files
[ci skip]
2016-02-26 10:04:11 +00:00
Mark Liversedge
804f30502e Reorg tidy src directory
.. move the fluff that has collected into the src directory
   to somewhere more appropriate.
2016-02-26 09:28:28 +00:00
Mark Liversedge
18cf59bd37 Reorg LTMSidebar belongs in "Gui"
.. not in Charts
2016-02-26 08:37:45 +00:00
Mark Liversedge
dab964b9af Reorg Wizards belong in "Gui"
.. not FileIO
2016-02-26 08:33:32 +00:00
Mark Liversedge
e9fce8da1a Fix "SOURCE" Typo in src.pro
.. for local developments
2016-02-26 07:46:55 +00:00
Mark Liversedge
67b3185e5d Reorg Dialogs belong in "Gui"
.. so new developers can find them !
2016-02-26 07:41:28 +00:00
Mark Liversedge
f4774b675e Recognise Lucas Garoto
.. for contributions to the wiki
2016-02-26 07:28:28 +00:00
Mark Liversedge
6e55f1803a Ignore QT Creator src.pro.user file
.. its a local file and not relevant to anyone else.
2016-02-25 18:20:00 +00:00
Mark Liversedge
e7fe61f367 Move RideCache to Core
.. it was in FileIO
2016-02-25 16:37:12 +00:00
Mark Liversedge
5564348be9 Fixup Directory reorg for Windows
.. windowsico.rc points to wrong image
2016-02-25 15:40:05 +00:00
Mark Liversedge
6f55ca62e9 Fixup Directory Reorg for Travis-CI and OSX builds
.. wrong path for D2XX
.. Secrets.h has moved
.. QtMacVideoWindow.h should be in Gui
2016-02-25 15:28:20 +00:00
Mark Liversedge
0a20387c34 Mv antlog python script to util 2016-02-25 15:03:22 +00:00
Mark Liversedge
7b582a9168 Restructure source directory
Introducing a directory structure to make it a bit less
daunting for new developers and perhaps even old hands.

The main folders all start with an upper character, so src
files are now located in;

* Core - Core data structures
* Gui - Main GUI elements
* Metrics - Models and Metrics
* FileIO - Device and File I/O
* Charts - All the chart types
* Cloud - Working with Web Resources
* Train - Anything Train View specific
* ANT - Our ANT+ Stack
* Resources - Images, Translations, Web etc

Apologies to anyone who needs to merge across this update.
2016-02-25 14:51:53 +00:00
Mark Liversedge
dc59b4763b UML Design Future Chart
.. using scatter plot of metrics as a basis to develop a class
   hierarchy to replace all chart 'types' by a single suite of
   classes

.. this is to enable easier additions of features like interval
   analysis and UX as well as greater consistency (data that is
   available, functions etc)

.. but for v4.0 we will just use this to introduce a scatter plot
   for the trends view and develop it further in v4.1

.. this is the initial class design.
2016-02-25 10:38:37 +00:00
Mark Liversedge
154d0c6c92 OSX Don't Embolden Fonts
.. for the scopebar and sidebar items, the bold font looks
   rather garish on OS X. But less so for Windows/Linux.
2016-02-24 15:12:34 +00:00
Mark Liversedge
3db170ec4c MainWindow LHS Action Buttons gone
.. for OSX
2016-02-24 13:18:20 +00:00
Mark Liversedge
aae03a3f1d Fix User Metrics XML parsing
.. \\n -> \n processing was missed.
2016-02-22 10:43:55 +00:00
Mark Liversedge
f9ae19f7ed MainWindow LHS Action Buttons gone
.. for Linux and Windows (will resolve OSX separately).
2016-02-21 18:25:10 +00:00
Mark Liversedge
ec2738d023 Merge pull request #1855 from Joern-R/CloudDB-Chart
CloudDB - Chart
2016-02-21 15:45:16 +00:00
Joern
f144480068 Fix Errors and Warning for CI
... cross-platform compilation errors
2016-02-21 13:17:38 +01:00
Joern
77248ecf56 CloudDB - Chart
... fixes and refactoring of duplicate code
... preparation for further artifacts
2016-02-21 12:24:03 +01:00
Mark Liversedge
6e8ef811f0 src.pro nits
.. from train view controls patch
2016-02-21 09:48:28 +00:00
Mark Liversedge
f4effc77dd Recognise Ivor Hewitt 2016-02-20 22:01:46 +00:00
Mark Liversedge
dfd3b4e572 Merge pull request #1854 from ihewitt/performance
Performance improvements
2016-02-20 21:59:11 +00:00
Ivor Hewitt
21d2c0bedf Some performance improvements.
Helps startup time a bit more, mainly by removing
all of the QTextEdit controls used for html esacping
and moving them into a utils class.
also stopped excessive looping in setymax where axis height
was small.
simpler implementation of ceil used rather than calling qCeil.
2016-02-20 20:28:25 +00:00
Mark Liversedge
ac4a9d4f00 Recognise Daniel Besse
.. for cTSS solution and proof
2016-02-20 17:09:38 +00:00
Daniel Besse
10d000ee04 cTSS mathematical proof
.. outlines the mathematical proof for the x/y exponents of 4 and 1
2016-02-20 17:06:53 +00:00
Mark Liversedge
30464db0af Fix Import Halt on Need Dates
.. not sure why we check twice so removed, it blocked imports
.. made the Step 3 label a little more user friendly
2016-02-20 17:02:12 +00:00
Mark Liversedge
c771c57d83 Fix use of NP in samples datafilters
.. in user metrics and user data series.
2016-02-19 21:18:54 +00:00
Mark Liversedge
3cc9888090 TrainView Controls minor nits
.. initialise intensityAdjust
.. center the controls
2016-02-19 17:47:24 +00:00
Mark Liversedge
a1643d2d68 Merge pull request #1847 from erikboto/trainview_intensity_squash
Trainview intensity squash
2016-02-19 17:29:06 +00:00
Mark Liversedge
d428edb082 Minor performance Improvements
.. to avoid expensive calls to QT functions (e.g. translating
   (tm) symbol via QTextDocument.
2016-02-19 00:16:48 +00:00
Mark Liversedge
c168d2f74a Merge pull request #1849 from gille/google
Fix out of bounds access in FixSmo2.cpp
2016-02-16 16:37:16 +00:00
Alejandro Martinez
c7c7ee6b68 Merge pull request #1848 from amtriathlon/master
Try to load translation file from GCROOT first
2016-02-16 12:52:32 -03:00
Erik Boto
2a1c56311b Views: fix issue after renaming (missed some instances) 2016-02-16 16:48:12 +01:00
Magnus Gille
c41d5758f9 Fix out of bounds access in FixSmo2.cpp 2016-02-16 10:36:48 -05:00
Mark Liversedge
dae9863649 Merge pull request #1846 from dresco/g3_power_spikes
Fix speed & power spikes from Powertap G3
2016-02-16 14:47:27 +00:00
Alejandro Martinez
9ca6990c1a Try to load translation file from GCROOT
To allow translators test his work using standard builds
Also updated translation files
2016-02-16 09:31:42 -03:00
Jon Escombe
aa70fbca81 Fix speed & power spikes from Powertap G3
G3 hubs intermittently broadcast battery status messages, which
were being treated as telemetry and saved into lastMessage. This
was then corrupting the ANT_WHEELTORQUE_POWER calculations for
speed & power after each battery message.

Note: don't have a G3 to verify this agaist, but this fix makes
sense given the supplied log files!
2016-02-16 10:15:52 +00:00
Mark Liversedge
08f71fa859 Merge pull request #1845 from gille/google
Don't send passwords over HTTP.
2016-02-16 06:52:28 +00:00
Magnus Gille
0c48b0caf0 Don't send passwords over HTTP. 2016-02-16 00:53:22 -05:00
Mark Liversedge
7ddb569079 Merge pull request #1844 from gille/google
Google Drive API v3 + bug fix for uploading files without syncing first.
2016-02-15 19:08:02 +00:00
Magnus Gille
f6bdefe4c1 Port GoogleDrive integration to GoogleDrive API v3. 2016-02-15 13:12:09 -05:00
Magnus Gille
f65be7f793 Fix a bug where GoogleDrive requires that it's opened before we can actually upload things. 2016-02-15 13:12:09 -05:00
Mark Liversedge
7f78699023 Merge pull request #1842 from gille/dropbox
Make sure we don't log any tokens in the gc crash dialog.
2016-02-15 07:26:19 +00:00
Magnus Gille
7e0d64d99f Make sure we don't log any tokens in the gc crash dialog. 2016-02-15 00:22:54 -05:00
Mark Liversedge
1a13e1c961 ChartBar use QT widgets on OSX
.. retire the use of Cocoa widgets
2016-02-14 21:35:12 +00:00
Mark Liversedge
c657654a2e Sidebar Item Honour Font Config
.. the sidebar handles now honour font config so
   on hi-dpi displays if you increase the font
   size it will be applied to the sidebar now.
2016-02-14 21:11:40 +00:00
Mark Liversedge
7b257a4bb1 Workout Editor Scrollbar on Change
.. as the workout increases and decreases in size as
   you edit it, the scrollbar adjusts to suit.
2016-02-14 20:49:27 +00:00
Mark Liversedge
55b7b6781d Target Power Color (CTPOWER)
.. so you can customise the color of target power when
   plotting in train view
2016-02-12 17:08:09 +00:00
Mark Liversedge
c277d2fc68 Workout Editor Zoom Record Nits
.. hide scrollbar
.. deminish plotted telemetry under y-axis
2016-02-11 22:28:11 +00:00
Mark Liversedge
d1c636afa9 Workout Editor Ensure Visible
.. when zoomed if you highlight the qwkcode the view makes sure
   the gui is visible and centered if poss.

.. also ensures 'now' is centred and visible when recording - makes
   the view useful as a close-up view of 'whats coming up' during
   recording.
2016-02-11 21:31:21 +00:00
Mark Liversedge
6a1e7e9bed Workout Editor NULL Workout
.. view got messed up when the workout is null making it
   impossible to see / change a workout from new (d'oh).
2016-02-11 20:18:49 +00:00
Mark Liversedge
8dc42e233e Fix SearchBox Animation/Size on OSX
.. the animation / width did not get set correctly on
   OS X; so now we stop any animation and reset for OSX
2016-02-11 15:03:36 +00:00
Mark Liversedge
6ac937884f Fix Graphics corruption on QT < 5 2016-02-10 07:56:10 +00:00
Mark Liversedge
53591fd8a7 Workout Editor Zoom Animation
.. zooming in / out now animates to make it less jarring.

.. we now need to add 'ensureVisible' for the cursor when
   cursoring down the qwkcode to make sure block is visible
   on the gui side when zoomed.
2016-02-09 21:48:14 +00:00
Mark Liversedge
5d4157d7fe Fix Mac Scope Bar & Fullscreen Toolbar
.. the toolbar no longer gets hidden on fullscreen.

.. the scope bar uses the QT widgets and therefore also
   now honour the font config on a Mac
2016-02-09 19:27:40 +00:00
Mark Liversedge
5b1dbcec35 MainWindow Scopebar honour font config
.. instead of fixing to 10px
2016-02-09 16:23:48 +00:00
Mark Liversedge
9345fa47ca Merge pull request #1827 from dresco/configchange
Do not action ConfigChange mid-workout
2016-02-09 15:38:18 +00:00
Mark Liversedge
b9a5c9345d Merge pull request #1838 from simashin/master
add some Russian translation
2016-02-09 15:37:06 +00:00
Mark Liversedge
41df2a234d Workout Editor Scrollbar OSX
.. it needs some styling as standard ones are jarring.
2016-02-09 15:21:06 +00:00
Mark Liversedge
53083c792b Workout Editor Scrollbar Windows QT5.6
.. better styling.
2016-02-09 15:18:44 +00:00
Mark Liversedge
7db149c37e Workout Editor Zoom and Scroll
.. quite pleased with this one !
2016-02-09 14:53:06 +00:00
Mark Liversedge
42d8d03855 ChartBar size nit
.. when preferences change. We really need to fix the
   sidebar items, scopebar and toolbar to do the same.
2016-02-08 22:28:50 +00:00
Mark Liversedge
6c56620fbf UserMetric Fix "Test" in Preferences
.. now user metrics will reference pre-computed metrics
   during the computeMetrics() call, we need to NOT do
   this when they're empty.

.. there is really only one time this happens - when we
   are testing a metric in the preferences pane.
2016-02-08 22:05:37 +00:00
Mark Liversedge
0f0aec935b DataFilter add "config(ftp)"
.. as well as config(cp)
2016-02-08 21:47:13 +00:00
Mark Liversedge
967077e809 Merge pull request #1837 from amtriathlon/master
User Defined Metrics UI nits
2016-02-08 21:31:40 +00:00
simashin
a4e7291d08 add some Russian translation 2016-02-09 00:16:17 +03:00
Alejandro Martinez
0aab0bc236 User Defined Metrics UI nits
Changed EditUserMetricDialog parent so that Options/Preferences dialog doesn't get hidden by main window
Added double-click as an alternative to edit button
2016-02-08 15:49:13 -03:00
Mark Liversedge
88e559d07e User Metrics Fix Interval Symbols
.. use the symbols computed for an interval when calculating
   for an interval and not those calculated against the entire
   ride.

.. we now use datafilters in a lot of contexts and should
   consider moving to handling scope more formally within
   the language grammar.
2016-02-08 17:15:59 +00:00
Mark Liversedge
7fe0babd43 Workout Editor New + Save As
.. allow the user to create a new workout and also
   to save as a new file, which are complementary functions.

.. we also now prompt the user if they have made changes that
   have not been saved to make sure they don't lose them by
   accident.
2016-02-08 14:58:25 +00:00
Mark Liversedge
872f5d7f9f eCP code comments 2016-02-08 03:07:09 +00:00
Mark Liversedge
c3d1bf9cbd eCP lab plots comments
.. just commented code and renamed some variables to make the
   code a little easier to follow.
2016-02-07 17:47:08 +00:00
grauser
637214283a ScatterPlot: Remove NA value for both side ! 2016-02-06 16:25:37 +01:00
grauser
ce40818add ScatterPlot: ignore NA values for lr balance 2016-02-06 15:46:42 +01:00
Mark Liversedge
9e959c1fc6 SplashScreen coding nits
.. a few bits of code were not removed from the different
   approaches taken whilst developing the splash progress
   window before the last commit, so cleaning them away.
2016-02-06 12:55:24 +00:00
Mark Liversedge
5e6ddba735 Loading Splash Screen
.. just shows progress indicator so you know something
   is happening whilst the cache is reloaded from store.
2016-02-06 12:04:43 +00:00
Mark Liversedge
6158666e5c Merge pull request #1833 from Joern-R/TRAIN
TrainMode - Don't allow to close GC Window if active/updating data
2016-02-06 09:44:22 +00:00
Mark Liversedge
7335e523e8 No RLV on Mac, but does do video, just not VLC
.. fixup the #ifdef logic for OSX to avoid crash.
2016-02-05 21:00:09 +00:00
grauser
b312bb23c6 LTMSidebar: Correct crash on adding new season 2016-02-05 21:46:53 +01:00
Joern
053e28311a Train Mode - Window Close (enhancement)
... popup and block closing only when running (recording or pause recording)
2016-02-05 20:42:37 +01:00
Joern
3e5a19f284 TrainMode - Don't allow to close GC Window if active
... while TrainMode - realtime data is updated/displayed
... (and avoid SEGV when closing)
2016-02-05 19:32:38 +01:00
Mark Liversedge
bbdb82f33d Merge pull request #1832 from Joern-R/TRAIN
TrainView
2016-02-05 18:16:27 +00:00
Joern
ff1d7b9e28 Fix Media Library / non-standard ASCII characters for VLC player
... video not shown when path contains non-standard chars
2016-02-05 17:54:03 +01:00
Mark Liversedge
120b31d758 2P CP Model interval defaults
.. tweaked defaults to look in
   2-3 minute range for an effort
   7-20 minute range fro ae effort
2016-02-05 15:48:19 +00:00
Mark Liversedge
042e215df1 PDModel store peak efforts for all models
.. not just eCP.

.. highlights a major issue for the Veloclinic
   model implementation that needs to be corrected.
2016-02-05 14:59:37 +00:00
Mark Liversedge
f201ad8823 Plot Peak Efforts on eCP model
.. show the peak efforts that were selected whilst
   converging to estimate model parameters.
2016-02-05 12:11:27 +00:00
Mark Liversedge
fbc9e2c708 eCP model peak points
.. The eCP model keeps a note of the peak efforts used to derive the
   model parameters. This is so we can work with them later, possibly
   to store in the ride item and plot alongside the model etc

.. we may choose to use confidence intervals across them since they
   will always represent the peak "anaerobic and/or aerobic" efforts
   in each ride.
2016-02-05 11:43:08 +00:00
Joern
277a05925e Train - RLV
... only supported on VLC for now - don't offer with other players
2016-02-04 19:25:31 +01:00
Jon Escombe
054f1d7ceb Do not action ConfigChange mid-workout
Is disruptive as it zaps and recreates the devices. Instead
flag the changes to apply when workout ends.
2016-02-03 10:36:51 +00:00
Erik Botö
b189ddf4db Rename TrainIntensityAdjustment to TrainBottom 2016-01-31 13:25:02 +01:00
Mark Liversedge
afd1a6ab6c Train view Autoconnect config
.. let the user decide if they want to auto-connect
   devices in train view.
2016-01-31 11:16:01 +00:00
Mark Liversedge
54ce2aeaa7 Merge pull request #1821 from Joern-R/CloudDB-Status
CloudDB - Message Handling
2016-01-31 10:32:43 +00:00
Joern
b0a90589c2 CloudDB - Message Handling
... centralize message handling
... add status-based message
... revert try-out for build in src.pro from last commit (no reason to change this)
2016-01-31 11:11:54 +01:00
Mark Liversedge
19790f5c33 Merge pull request #1820 from Joern-R/CloudDB-Status
CloudDB - Status Handling
2016-01-30 20:12:21 +00:00
Joern
ff867e1b22 CloudDB - Build Variable missing GC_Cloud...
... fix use of "Secrets.h" - only required in "..Common" after refactoring
... fix crash reading charts (from clean cache)
2016-01-30 19:48:33 +01:00
Joern
2a914b60c8 CloudDB - Status Handling
... show status of CloudDB
... refactor some duplicate common variables
2016-01-30 19:17:30 +01:00
Erik Botö
17a7b4f660 TrainView: Move controls into bottom and add intensity controls 2016-01-29 13:43:49 +01:00
Mark Liversedge
5ad0f237ee Desktop Geometry SEGV
.. set desktop in MainWindow before building
   all the views.
2016-01-29 08:27:55 +00:00
Mark Liversedge
35678e2765 Merge pull request #1817 from Joern-R/libUsbWindows
Fix need to have "libusb0.dll" installed on Win32
2016-01-28 20:40:28 +00:00
Mark Liversedge
915adb79f0 Workout Editor MMP Log Scale
.. set to off, but the code is there if we
   want to display MMP with a log scale.
2016-01-28 19:24:16 +00:00
Joern
782bc43904 Fix need to have "libusb0.dll" installed on Win32
... GC needed a "libusb0.dll" being available on Windows system to be able to start (even if not used)
... Library/dll is now dynamically searched and loaded if available - allowing GC to start even if the system
    has no "libusb0.dll" installed/available
2016-01-28 19:36:01 +01:00
grauser
dde16978ad CsvRideFile: Add Power to W'Balance export 2016-01-28 19:15:09 +01:00
grauser
717fab4337 LeftRighBalance: display left and right % 2016-01-27 23:35:59 +01:00
grauser
d0cf13369e CSVExport : Add W' balance export 2016-01-27 22:31:51 +01:00
Mark Liversedge
09e97f0ce9 Merge pull request #1816 from dresco/telemetry
Auto-connect telemetry in train view
2016-01-26 16:22:33 +00:00
Jon Escombe
f6ccddcf67 Auto-connect telemetry in train view
Auto connects to the selected train device(s), re-connects if device
selection or configuration changes. Adds a temporary button to
manually toggle connected state.

Emits signal on change of view to support connect/disconnect on view change.
Only gathers telemetry when on train view tab, unless during workout.

Decouples the gui timer from session start/stop. Only updates time and
distance if session is running. Passes the running/paused state into
context, and only updates performance plot while running.

Builds list of active devices when connecting - used to disconnect the
previous selections when they have already changed in the device tree widget.

Disables whichever train view controls are not applicable to the current state.

Dependent on timing, the closing ANT channel can transition into a closed state
before it's checked, resulting in it being re-opened.

When the ANT channel is closed and then immediately re-opened (for instance when
changing the device selection in train view), it may generate a libusb error
message. Adds a small delay to the closing, enabling the device to settle.
2016-01-26 15:56:36 +00:00
Mark Liversedge
f2a279154d HR Reference Line for show series
.. add new HR reference lines feature to allplot when
   showing by series as well as for full/stacked plot.
2016-01-26 10:43:53 +00:00
grauser
25e8b7fa5d DataPresent : lrbalance default at NA now 2016-01-26 00:06:05 +01:00
grauser
6d567b691a AllPlot : Add reference line for HR 2016-01-25 23:50:11 +01:00
Mark Liversedge
b048194bb7 Train View Keyboard Shortcuts
.. added methods to implement a keyboard shortcut
   when in train view.

.. now down to Jon and Vianney to decide what keys
   will map to which functions.
2016-01-25 19:42:31 +00:00
Mark Liversedge
4e26c1afa2 Add Secrets.h to CloudDBCurator 2016-01-25 18:46:05 +00:00
Mark Liversedge
d5b8cea918 Merge pull request #1811 from Joern-R/clouddb1
CloudDB - Enhance Curation handling
2016-01-25 18:39:07 +00:00
Joern
fb9814d740 Add "--clouddbcurator" to help text
... if compiled with CloudDB option
2016-01-25 18:53:22 +01:00
grauser
9623351c06 PolarRideFile: Merge issue 2016-01-24 22:29:19 +01:00
grauser
750e032631 Revert last wrong commits 2016-01-24 22:17:44 +01:00
grauser
09782f666f Merging issue 2016-01-24 21:47:57 +01:00
grauser
1047ab9083 Small add to previous commit 2016-01-24 21:46:53 +01:00
grauser
81910cfdc6 :q 2016-01-24 21:45:02 +01:00
grauser
809c9334b7 Edit Model parameters 2016-01-24 21:45:02 +01:00
grauser
11a6e130e9 LeftRighBalance: (1/2) default with NA Value for new file No balance for every point in files like FIT or TCX 2016-01-24 21:43:56 +01:00
Joern
56bd39f494 Fix missing variables for CloudDB
... include build secrets/variables
2016-01-24 20:05:46 +01:00
Joern
357f4224db CloudDB - Enhance Curation handling
... add menu for Curation only if started with "--clouddbcurator" option
... restructure menus (User vs. Curator)
... add Curator validation (check athlete UUID vs. entry in Curator DB)
2016-01-24 19:32:37 +01:00
Mark Liversedge
e9268e9121 Merge pull request #1810 from Joern-R/Misc
Misc Fixes
2016-01-24 15:36:08 +00:00
Joern
8d6e215d63 Fit Device - Recognize FR220 2016-01-24 16:13:14 +01:00
Joern
dfa4ab9659 Fix Derive Power Preferences Dialog
... all parameter must be in one line to fit into the table in the preferences dialog
2016-01-24 16:03:11 +01:00
Mark Liversedge
ba57688b2d Zwift Support Fixups
.. ErgFile member variables needed to be updated after
   using the ZwoParser since they are used at runtime.
2016-01-24 14:08:39 +00:00
Mark Liversedge
5d8ab001a2 Train View Power Background vs Target Power
.. if your power output is not within 5% of the
   target power and you're in ERG mode the the
   background color of the dial is changed to
   let you know.

   RED background power is > 105% of target
   BLUE background power is < 95% of target

   Basically mimics the scheme used in TrainerRoad.
2016-01-24 12:41:42 +00:00
Mark Liversedge
f0dde6cb0e Merge pull request #1808 from Joern-R/cloudDB5
Add Cache for CloudDB/Charts
2016-01-24 11:12:43 +00:00
Mark Liversedge
9b6a64d8d0 Workout Editor Click-hold timeout bug
.. the timer event for click and hold was not cleared
   when the user pressed the mouse again (typically when
   drawing points very quickly).

.. this mean't that the timeout from an earlier click event
   arrived just after a new click event causing a block to
   be added rather than a point.

.. we now clear the timer event when a new mouse click arrives
   and set a new timer from this event.
2016-01-24 11:08:16 +00:00
Mark Liversedge
4a60c0ab94 AllPlotWindow remove NULL code
.. not sure what it was trying to fix, but it didn't actually
   do anything except declare a couple of variables and set them
   to a value that was never used.

.. compiler no longer warnds 'unused variables'.
2016-01-24 10:50:37 +00:00
Joern
d73edc5302 Add Cache for CloudDB/Charts
... substitute test version of QNetworkDiskCache by own dedicated Cache
2016-01-24 11:47:17 +01:00
Mark Liversedge
8576d794b3 PolarRideFile.cpp code clean
.. use of tabs and shitty formatting.
2016-01-24 10:47:17 +00:00
Mark Liversedge
6206ee9e07 GPX parsing uninitialised variable warning
.. the code is a MESS!

.. next commit to clean formatting, this one has better
   handling of initialisation of the gpxresult pointer.
2016-01-24 10:34:07 +00:00
Mark Liversedge
63f3196897 Shutup QT QString::length signed overflow warning
.. compiler trying to be helpful but we already check for
   overflow in the expression.
2016-01-24 10:22:11 +00:00
Mark Liversedge
a133d33f9e CloudDB C++11 semantics and coding nit
.. Initialising class members in definition is not
   supported in C++98

.. Fixed use of '=' operator where '==' was intended.
2016-01-24 10:05:20 +00:00
Mark Liversedge
ae78d5d360 Merge pull request #1807 from Joern-R/cloudDB5
Adding Edit/Delete/Curate for User and Curator
2016-01-23 19:02:36 +00:00
Joern
0fdb0c14d9 Adding Edit/Delete/Curate for User and Curator
... multiple refactoring to support this
... adding new Menu Actions for CloudDB (first concept)
... fix "mini" popup appearing when starting GC
2016-01-23 19:29:29 +01:00
grauser
a6d16f15d3 TcxParser : Add pedal metrics from ActivityExtension/v2
Note : the schema http://www.garmin.com/xmlschemas/ActivityExtension/v2 is unavailable at this moment
2016-01-23 14:32:37 +01:00
Mark Liversedge
8eef4e7eec ERG File Properties "FILENAME" => "FILE NAME"
.. the save function in the workout editor erroneously
   used a field name of FILENAME when it should have
   been FILE NAME.
2016-01-23 10:30:11 +00:00
Mark Liversedge
bde354dd21 Test Workouts Make them possible !
.. fix the workouts that are badly scaled to ensure
   that they are actually workable.

.. they can still be used for testing functionality.
2016-01-23 10:25:22 +00:00
Mark Liversedge
d05f44a0e2 Zwift ZWO SAVE workout support
.. we can also write Zwift workout files using the
   workout editor.

.. it doesn't retain texts, and category/categoryIndex
   we can fix that when we look at metadata.
2016-01-22 17:46:15 +00:00
Mark Liversedge
b7423c2fce Zwift ZWO workout support
.. add support to read and run Zwift ZWO workouts.
   these are an XML format file.

.. write support will be added shortly.
2016-01-22 14:37:55 +00:00
Mark Liversedge
3bd0edb4e3 Workout Editor QWKcode edit undo/redo
.. disable right click menu, filter ^Z amd ^Y for undo
   and redo and add a red/undo command when qwkcode changes.
2016-01-21 19:15:30 +00:00
Mark Liversedge
5d3f9b88cd Workout Editor Save (ERG, MRC only)
.. no support for pgmf or CRS
.. but no edit suport for CRS either.
.. no support yet for ZWO either
2016-01-21 17:08:31 +00:00
Mark Liversedge
aa1cd718b0 Workout Editor Optimise QWKcode hover
.. minor changes to make hover/highlight faster.
2016-01-20 21:57:51 +00:00
Mark Liversedge
0f114b4135 Workout Editor Fix SEGV
.. hover qwkcode when cleared the line
2016-01-20 19:59:52 +00:00
Mark Liversedge
23e9b8009d Train View Controls at Bottom of Screen
.. its just a temporary measure but moving them to the bottom
   of the screen as they're really annoying popping up over the
   main view -- have to move them out of the way EVERY time I
   go into train view is a ballache !!
2016-01-20 18:53:16 +00:00
Mark Liversedge
bedb15e29c Workout Editor Hover block Qwkcode Edit
.. when cursoring up and down the Qwkcode text
   the hover block now highlights the block in
   the workout plot so you can see what points
   the line is relevant to.
2016-01-19 20:09:15 +00:00
Mark Liversedge
8664f2b105 Workout Editor Reset Hover Indexes
.. in ::fromQwkcode()
2016-01-19 17:53:18 +00:00
Mark Liversedge
0bac511391 Workout Editor QWKCODE round-trip
.. ensure duplicate points survive the round-trip
   from points -> qwkcode -> points to enable editing
   of qwkcode and mixing with undo/redo.

.. point data now stored as ints not doubles and use
   integer arithmetic etc. Makes things more consistent
   and a hell of a lot faster.
2016-01-19 17:15:52 +00:00
Mark Liversedge
86db9e78a4 Workout Editor Qwkcode Edit
.. update the workout when the user edits the qwkcode
   in the properties sidebar.
2016-01-19 14:15:51 +00:00
Mark Liversedge
c9ede38d0f Workout Editor QT4 doesn't like Q_DECL_OVERRIDE
.. so removed from codeeditor.h

   *sigh*
2016-01-19 09:09:13 +00:00
Mark Liversedge
ea11ae92ec Workout Editor Fix QT4 plus highlighting
.. QT code supplied was QT5 only, fixed up to compile
   on QT4 by including relevant headers

.. moved the responsibility for code highlighting back
   to the editor as it is the sensible place to do it.
2016-01-19 08:52:49 +00:00
Mark Liversedge
bd2fa41e0d Workout Editor Qwkcode Editor
.. has line numbers, but will change to be
   time and distance offsets.
2016-01-19 08:27:56 +00:00
grauser
1d31577119 PMCData: Correct expected expected rolling stress calculation
fix #1803
2016-01-18 23:31:23 +01:00
Mark Liversedge
8fed460543 Workout Editor Qwikcode highlight aesthetics
.. use block format on the text edit, much nicer.
2016-01-18 21:54:15 +00:00
Mark Liversedge
477f413553 Workout Editor qwkcode follow cursor
.. when hovering over sections of a workout hover highlight
   in the qwkcode and ensure it is visible.
2016-01-18 19:42:25 +00:00
Mark Liversedge
cba2c3ee43 Workout Editor Hover QWKCode
.. as you hover over the workout plot it will highlight the
   line in the qwkcode (shown via properties) that this block
   is being defined by.
2016-01-18 16:02:27 +00:00
Mark Liversedge
6d0b523189 QStringList::join() QT4 compatibility
.. don't pass a char, pass a string to use in the join.
2016-01-18 14:08:09 +00:00
Mark Liversedge
846727dd94 Workout Editor Properties aka qwkcode
.. add a text edit to edit the workout quickly
   without having to use a gui or work with the
   ERG file format.

.. need to make it round-trip, hover highlight
   and generally make it easier on the eye.
2016-01-18 13:45:12 +00:00
Mark Liversedge
76c95b7298 Merge pull request #1804 from WaterworthD/master
Fix for #1798 "Crash when "Copy to Library" selected in Tacx Fortius …
2016-01-18 09:10:39 +00:00
Dave Waterworth
7a5a126b4d Fix for #1798 "Crash when "Copy to Library" selected in Tacx Fortius device wizard"
context pointer was accessed but not intialised. Removed and accessed through parent pointer instead
2016-01-18 17:23:48 +13:00
Mark Liversedge
a7ed36cff7 Workout Editor this->ergFile SEGV
.. always a bad idea to use method parameter names that
   hide membor variables. Hey-ho.
2016-01-17 22:47:28 +00:00
Mark Liversedge
1cb9c71dda Merge pull request #1802 from WaterworthD/master
Fixes for Fortius USB timeout issue and new Fortius VR driver package…
2016-01-17 21:28:41 +00:00
Mark Liversedge
94b6521918 Workout Editor Fix ErgFile SEGV on Duration
.. when updating an ergfile after edit if the duration of
   the workout has changed the "Duration" member needs to be
   updated to reflect the change since it is used by
   wattsAt() to decide if at the last section of the erg file.
2016-01-17 21:03:58 +00:00
Dave Waterworth
7f8305c2b3 Fixes for Fortius USB timeout issue and new Fortius VR driver package built with Zadig
- Fortius read was timing out on some hardware
- If read fails then write fails
- Moved write before read to rectify
- Added windows 10 x64 compatible driver inf built with Zadig
2016-01-18 09:48:52 +13:00
Mark Liversedge
dfb398dd81 Workout Editor Notify Plots when ErgFile Upated
.. so other plots see changes we made (without saving).

.. the reason we don't insist on saving the erg file is
   because we often increase intensity or repeat sections
   just for a one off run.
2016-01-17 19:31:48 +00:00
Mark Liversedge
421ee3b128 Workout Editor Apply Edits when Workout Starts
.. the changes made within the editor are applied to the in-memory
   representation when the workout is started -- that way the edits
   are executed.

.. the workout changes are not saved (yet).
2016-01-17 18:47:14 +00:00
Mark Liversedge
ab17f42596 Workout Editor Realtime Plotting
.. will now plot telemetry as you are recording so can be
   used as a drop in replacement for ErgFilePlot.

.. bear in mind it does not support slope mode yet, so
   cannot be used for CRS, MRC and PGMF workouts.
2016-01-17 16:43:55 +00:00
Mark Liversedge
5267b9c1da Merge pull request #1801 from dresco/ANT
Write ANT log under athlete directory
2016-01-17 15:43:56 +00:00
Jon Escombe
5daefcaf4f Write ANT log under athlete directory
When pairing, will be under temp directory
2016-01-17 14:48:20 +00:00
Mark Liversedge
92b9c9736d Workout Editor Size Sensitive
.. will adjust what is shown when resized to a small size

.. will hide toolbar whilst recording

.. getting ready to plot telemetry when recording so we
   can replace the workout plot.
2016-01-17 12:23:23 +00:00
Mark Liversedge
869036de82 Unused variable nit 2016-01-17 11:36:38 +00:00
Mark Liversedge
cfcffc88d8 Workout Editor Filter Events
.. we should filter keyboard events that we grab since
   cursor keys cause the view to be scrolled up and down
   when in tiled view (!)
2016-01-17 11:28:32 +00:00
Mark Liversedge
f1a2da3847 Merge pull request #1780 from Joern-R/MSVC
MSVC - Memory leak
2016-01-17 11:04:21 +00:00
Mark Liversedge
2ef4ad838a Merge pull request #1796 from Joern-R/CloudDB3
CloudDB - Chart Dialog
2016-01-17 11:03:28 +00:00
Mark Liversedge
324d7a2d7c Add CloudDB to Secrets.h
.. need GC_CLOUD_DB_BASIC_AUTH and GC_CLOUD_DB_APP_NAME
2016-01-17 10:40:57 +00:00
Mark Liversedge
2eb662785e CI Build with CloudDB
.. since src.pro removes for QT4 this should work.
2016-01-17 10:27:05 +00:00
Mark Liversedge
0b7fdd8b88 CloudDB src.pro enforce QT >= 5.5
.. we need QT5.5 for CloudDB, so if user has selected it
   for build we need to make sure they are using the right
   version of QT.
2016-01-17 10:21:51 +00:00
Mark Liversedge
65d1e9f91a Qt5.5 QtInfoMsg handling
.. just make debug the default in the switch statement that
   handles QT debug messaging.
2016-01-17 10:02:20 +00:00
Mark Liversedge
007d94282f GoldenCheetah.org V4 defaults
.. for v4 development we now have a new default config
   URL on goldencheetah.org
2016-01-17 10:01:28 +00:00
Mark Liversedge
b7a12553c7 Library Search UI Nit
.. too small.
2016-01-16 19:49:16 +00:00
Mark Liversedge
74c75e11d1 Workout Editor Reset Hover Nit 2016-01-16 19:49:16 +00:00
Joern
067cac240a CloudDB - Chart Dialog
... double-click on "small chart" opens Window with full version (re-sizable)
... pictures stored as PNG (not JPG) any more (due to much better quality when showing full chart screenshot)
2016-01-16 20:29:14 +01:00
Mark Liversedge
7cb0a49a25 Merge pull request #1795 from Joern-R/CloudDB3
CloudDB - C++98 compatibility
2016-01-16 18:00:30 +00:00
Joern
01121b0f4c CloudDB - Fix refactoring error
... cache not read with the same version like written
... be precise (POST -> 201, GET->200)
2016-01-16 15:44:57 +01:00
Joern
9021d72725 CloudDB - C++98 compatibility
... don't use C++11 specific features
2016-01-16 15:01:19 +01:00
Mark Liversedge
b2bc8df586 Merge pull request #1794 from Joern-R/CloudDB3
Cloud DB - various enhancements
2016-01-16 10:21:03 +00:00
Joern
533d283356 Cloud DB - Charts
... adjust to API change - Header substructure
2016-01-16 10:57:19 +01:00
Joern
ea0096cbe9 CloudDB - Chart
... refactoring - introduce "header" struct for API
... enhance error handling w.r.t. exceeding GAE free Quota
2016-01-16 10:57:19 +01:00
Joern
66c1ddebfb CloudDB / Charts
... add "common" feature for this and future CloudDB artifacts
... add Cache for Chart Headers
... add Language parameter for Chart publishing
... add Text and Language as Filter for Chart Selection
2016-01-16 10:57:19 +01:00
Joern
0bb71a8d9a CloudDB - Publish Dialog
... validate (simple) and store Nickname and Email Adress
2016-01-16 10:57:19 +01:00
Joern
4120a18bdc CloudDB - T&C Acceptance Popup
... provide Terms&Conditions acceptance Popup (first proposal of T&C)
    ... will need Native Speaker adjustments
... track T&C acceptance / rejection in properties
2016-01-16 10:57:19 +01:00
Mark Liversedge
2e894e629f Recognise Irvin Sirotić 2016-01-15 16:48:28 +00:00
Irvin Sirotić
c752449ab3 TrainingPeaks PWX support L/R balance
.. on import and export, using the "pwrright" element.

.. this is not part of the public PWX schema but has
   been used by ipbike when writing PWX, and may or may
   not be supported by TrainingPeaks.com
2016-01-15 16:24:56 +00:00
Mark Liversedge
5c758e7c44 Workout Editor Lap Highlighting 2016-01-15 16:24:56 +00:00
grauser
07f50fec7b CSVRideFile: Read iBike device type and version 2016-01-14 23:15:49 +01:00
Mark Liversedge
18d795be74 Workout Editor Lap Markers
.. and wip for save/properties.
2016-01-13 16:06:26 +00:00
Mark Liversedge
183ba72658 Merge pull request #1777 from bdb/fix-bugs-and-warnings
Fix bugs and warnings
2016-01-13 10:56:50 +00:00
Mark Liversedge
4e1867b823 Workout Editor Red TTE, Amber 85% TTE
.. graduated to give insight into how tough the workout
   is related to TTE, but not just a binary can/can't do it!
2016-01-12 18:59:37 +00:00
Mark Liversedge
851dc1b627 Merge pull request #1790 from max-f/blackburn_tech_fluid_virtual_power_support
Added virtual power support for the Blackburn Tech Fluid trainer
2016-01-12 15:03:45 +00:00
Mark Liversedge
eabc80b84e Workout Editor Warn Impossible Intervals
.. using the sustained interval algorithm we can now
   find sections of a ride that are impossible to
   complete according to the 2 parameter model.

.. only looks at durations > 2 mins.
2016-01-12 13:17:59 +00:00
Max
ff4950f84d Added virtual power support for the Blackburn Tech Fluid trainer 2016-01-11 23:16:22 +01:00
Mark Liversedge
80f11bad54 WorkoutEditor Paste Undo X-Axis
.. rescale the x-axis back when undoing a paste command.
2016-01-10 17:23:35 +00:00
Mark Liversedge
04768ebeca Wokout Editor Paste (raw)
.. this pastes a 'block' that has been copy/cut
   but needs to be updated to work in an expected
   way -- it pastes points, not blocks which leads
   to situations that will confuse users.

.. one fix would be to be paste intelligently to
   avoid duplicate points and "join" the pasted
   blocks to the existing blocks.
2016-01-10 17:13:55 +00:00
Mark Liversedge
4fba1da587 Merge pull request #1785 from Joern-R/CloudDB1
CloudDB - Charts
2016-01-09 18:02:14 +00:00
Joern
0b8cff4053 CloudDB - Charts
... remove wrong "Connect"
2016-01-09 18:28:37 +01:00
Mark Liversedge
a917460d44 Merge pull request #1784 from Joern-R/CloudDB1
CloudDB - LTM Charts - multiple changes
2016-01-09 17:20:14 +00:00
Joern
c0310fe9f4 ClouDB - LTM Charts - multiple changes
... move Chart Import to Library/Sidebar (and remove from LTMTool)
... enhance Import Dialog / First Filter function - Curated
... introduce local Cache to not re-read all time
... read/display in chunks of 10 charts from GAE
... simplify find structure (in sync with CloudDB)
    ... no statusId, no explicite versioning

... Refactoring of File and Class Names to provide a common
    structure for future CloudDB artifacts
2016-01-09 17:39:34 +01:00
Mark Liversedge
e60554f958 Workout Editor Cut/Copy
.. to cut and copy the block selection to the clipboard.
   this is very different to delete points since it will
   shift the remaining points to fill the gap.

.. from a UX perspective the cut/copy/paste functions will
   work with BLOCKS not POINTS. This may cause a bit of
   confusion.... not sure how to deal with that.
2016-01-09 11:41:40 +00:00
Mark Liversedge
ccaff70a40 Workout Editor Scale Y-Axis
.. automatically.
2016-01-08 22:02:20 +00:00
Mark Liversedge
1c12c593a3 Workout Editor Show CP line
.. on background.
2016-01-08 12:16:22 +00:00
Mark Liversedge
01c8da904f Workout Editor Selection Block nit
.. fix window resize paint artefacts on the cursor
   and selection block geometry.
2016-01-08 12:02:31 +00:00
Mark Liversedge
5e9e02aaae Zwift Workout Test Files
.. a couple of files in Zwift format to use for
   testing support for importing files created
   by the Zwift workout editor.
2016-01-08 11:15:42 +00:00
Mark Liversedge
1b5b700ace Workout Editor Selection Block
.. now have a selection block which is rendered onto
   the editor. this will be what gets copied and pasted
   with ^x ^c ^ y etc.
2016-01-08 10:50:34 +00:00
Brian Bergstrand
9fd91e6da5 Comment grammar fix 2016-01-07 21:18:52 -06:00
Brian Bergstrand
d66c8a40b0 Fix possible (though unlikely) duplicate ride item interval IDs 2016-01-07 21:18:52 -06:00
Brian Bergstrand
bb8d292f0d Fix sqrt() NOP
Line comment was used to comment out a multi-line statement.
2016-01-07 21:18:51 -06:00
Brian Bergstrand
244eaf2802 Fix LTM settings not getting updated properly 2016-01-07 21:18:51 -06:00
Brian Bergstrand
0d7143bd88 Remove unused class ivars 2016-01-07 21:18:51 -06:00
Brian Bergstrand
40e5d45a5c Fix forward type warnings for 'class' vs 'struct' 2016-01-07 21:18:51 -06:00
Brian Bergstrand
a5a9824295 Fix shadowed virtual method warning due to missing 'const' 2016-01-07 21:18:51 -06:00
Brian Bergstrand
ee07b18a7b Fix enum conversion warning 2016-01-07 21:18:51 -06:00
Brian Bergstrand
2725ea7d29 Fix constructor initialization order warnings 2016-01-07 21:18:51 -06:00
Brian Bergstrand
f1571fb482 Fix type conversion warnings with abs()
Just use std::abs() which provides type specific overloads.
2016-01-07 21:18:51 -06:00
Brian Bergstrand
5584723811 Fix 'unused function' warning when using QT5 2016-01-07 21:18:51 -06:00
Brian Bergstrand
ef7d1d3795 Remove deprecated 'register' keyword 2016-01-07 21:18:51 -06:00
Brian Bergstrand
1fcc94c7f4 Fix various 'unused variable' warnings 2016-01-07 21:18:50 -06:00
Brian Bergstrand
ef48e0c7b7 Remove unused BikeScore variable 2016-01-07 21:18:50 -06:00
Brian Bergstrand
d160467f0d Fix qwt 'comparison is always false'/true warnings 2016-01-07 21:18:50 -06:00
Brian Bergstrand
c0a8422c30 Remove unused functions 2016-01-07 21:18:50 -06:00
Brian Bergstrand
fe1609eb0e Fix possible wrong QwtDate::ceil() values 2016-01-07 21:18:50 -06:00
Brian Bergstrand
1639abee81 Add qmake Xcode generator side car patterns to ignore file 2016-01-07 21:18:50 -06:00
Mark Liversedge
a4a67cba56 Gitignore Coverity Files
.. as they shouldn't be included in the tree
2016-01-07 20:15:37 +00:00
Mark Liversedge
b52d865998 Coverity Status badge
.. in README.md
2016-01-07 19:44:54 +00:00
Mark Liversedge
89b5aff954 Workout Editor Align Move Block
.. align indicators now appear when drag moving a block
   in the same fashion as when dragging a point.
2016-01-07 18:01:59 +00:00
Mark Liversedge
7f2c42898b Merge pull request #1783 from gille/strava
Strava
2016-01-07 17:43:03 +00:00
Magnus Gille
08dca02f13 Move Strava secrets to Secrets and make Pages.cpp more robust incase Secrets.h gets picked up along the way in the future. 2016-01-07 01:34:19 -05:00
Magnus Gille
78834c1bfc Fix private file uploads. It's a boolean when you download but uses 0/1 for uploading. Also added support for settings rides as commutes and trainer rides. 2016-01-07 01:33:46 -05:00
Magnus Gille
7065d70960 Enable gzip compression for Strava uploads. 2016-01-07 01:18:15 -05:00
Mark Liversedge
3ea174a81b Merge pull request #1781 from dresco/ANT
ANT fixes
2016-01-06 19:49:06 +00:00
Jon Escombe
7b09d3a115 Disable high priority search
This prevents channel searches from taking precedence over
established connections.

When the timeslots for searching and established channels
overlap, the search will blocked for that period instead
of the established channel.

This prevents data loss on the established channels at the
expense of potentially longer search time (only in the case
of channel collisions).
2016-01-06 19:01:46 +00:00
Jon Escombe
342a33ebc1 Differentiate between channel search types
High and low priority channel search timeouts are managed
separately. This patch adds support for setting both types.
2016-01-06 19:01:10 +00:00
Jon Escombe
76c80bab5d Actually use the quick search timeout
Was checking the quick search flag against the channel number
instead of the channel flags!
2016-01-06 19:00:33 +00:00
Jon Escombe
32f66e6e0b Show remote control commands in pairing dialog
Displays the last received command code in the data
field of the pairing dialog.
2016-01-06 18:33:10 +00:00
Jon Escombe
ba41b4b98f Master (remote control) channel fixes
Moved the signal to stop the timer from AttemptTransition() to
Close(), as was not reliably reached.

Also disconnect the timer event slot on close, to avoid multiple
calls on subsequent sessions.
2016-01-06 18:31:59 +00:00
Jon Escombe
958c0717a5 ANTChannel::ChannelEvent() minor fixes
Fixes related to debugging..

Recognise TX events from the master channel (avoid dropping
through to default handler).

Parse the event messages correctly, was checking wrong byte.
2016-01-06 18:30:30 +00:00
Joern
c74c74ea27 MSVC - Memory leak
... missed delete[] of allocated arrays
2016-01-06 13:18:44 +01:00
Joern
d65a58d452 Merge pull request #1778 from Joern-R/WinInstaller
Adding latest Win Installer definitions
2016-01-06 11:25:47 +01:00
Joern
df12830a61 Adding latest Win Installer definitions
... based on Nullsoft Installer System 2.4.9
... adding a copy of the GC iconreferenced in installer files
2016-01-06 10:55:18 +01:00
grauser
ed4ab41077 Change phase position in season.xml
For compatibility with older version of GC
2016-01-06 08:28:33 +01:00
GRAUSER Damien
0949c6070a Season: Add phases (base, build, peak,...) 1/2 2016-01-05 22:01:10 +01:00
Mark Liversedge
016ba66a3a Fix mem leak in FitRideFile
.. don't use read to buffer, just seek.

Fixes #1775
2016-01-05 20:18:28 +00:00
Mark Liversedge
da82e01ef5 Merge pull request #1756 from amtriathlon/master
RideSummary: added Time in Pace Zones for date ranges and fixed compare mode
2016-01-05 20:00:56 +00:00
Mark Liversedge
d92b7baf50 Workout Widget Smart Guide Y-Axis
.. now shows markers on Y-axis when moving / dragging
   points etc around.
2016-01-05 13:05:07 +00:00
Mark Liversedge
ba78b36b6d Workout Editor Smart Guides 2
.. now shoes x-axis guides when dragging a
   block or point around.
2016-01-05 11:55:47 +00:00
Mark Liversedge
f971ccff4b Workout Editor Smart Guides
.. just a simple indicator in the x-axis for now
   when points are selected. may extend to the y-axis
   as well.

.. lots more to come on smart guides but needs a lot
   of thought and play time.
2016-01-04 22:05:01 +00:00
Mark Liversedge
5ae5da1b0f Don't include runs in estimates
.. estimates should be sport specific (modality)

.. this is a hack to fixup cycling, but the whole estimate
   code needs to be reworked as it isn't well thought through
   and isn't well integrated into the rest of the code.

.. thanks to Jon Beverley for heads up and code fixes.
2016-01-04 15:58:56 +00:00
Mark Liversedge
6c707fd94f Workout Editor Create Block 'glitch'
.. when directly under a point it created a nasty
   glitch. This was caused by bounds checking > <
   and not = to.
2016-01-04 15:19:55 +00:00
Mark Liversedge
37441f108d BSX Test File from a Ramp Test
.. thanks to Neil Pugh for the example. Its also quite
   interesting to see SMO2 respond to the test.
2016-01-04 14:34:43 +00:00
Mark Liversedge
ec3e38158f Workout Editor ^A Select all
.. forgot when doing other things.
2016-01-04 14:14:38 +00:00
Mark Liversedge
63d273de50 MSVC ANT.cpp compile error on gettimeofday()
.. not available, use get_timeofday() instead.
2016-01-04 13:29:34 +00:00
Mark Liversedge
aa0cf5b2d6 Workout Editor Power and Duration Label
.. when hovering over blocks.
2016-01-04 11:01:37 +00:00
Mark Liversedge
7958cd7cce Workout Editor Create Block Drag
.. when you create a block (by pressing and holding the mouse
   button) it now enters dragging mode (dragblock state) to allow
   the user to move it around before releasing the mouse button
   to create.

.. we DESPERATELY need guides to appear whilst dragging (!)
2016-01-04 09:55:10 +00:00
Mark Liversedge
1a5f0780a1 Workout Editor MMP Curve
.. now shows MMP curve as you edit.

.. WIP code for block selection is also in there but
   needs some work done to it !
2016-01-03 23:09:11 +00:00
Mark Liversedge
414c9eb15f Cut and Paste
.. so far
2016-01-03 21:17:06 +00:00
Mark Liversedge
3cb292a88e Merge pull request #1769 from vlcvboyer/antlog
ANT: log sent messages
2016-01-03 19:30:48 +00:00
vlcvboyer
ca5d636e45 log sent messages 2016-01-03 18:58:33 +01:00
Alejandro Martinez
05a3869b54 Fixed LTMPlot to honor filters in CompareDateRange
Useful to compare filtered multisport data s.t. sport specific PMCs
2016-01-03 13:38:54 -03:00
Alejandro Martinez
9f06d48c42 Added Time in Pace Zones to RideSummary in Trends Compared Mode
For Date Ranges and Intervals, only when activities are homogeneous
to select the correct Pace Zones
Also enabled Time in Power Zones only when activities are homogeneouse
to select the correct Power Zones
2016-01-03 13:38:52 -03:00
Alejandro Martinez
e55d1af0f2 Add filters to CompareDateRange
Mainly for multisport use
2016-01-03 13:38:51 -03:00
Alejandro Martinez
d44e4bea31 Added Time in Pace Zones to RideSummary for date ranges
Only when the involved activities are all runs or swims
2016-01-03 13:38:49 -03:00
Mark Liversedge
f470803ac2 Workout Editor SEGV
.. when click and hold to create a block when the cursor
   is directly above a point.
2016-01-03 15:55:05 +00:00
Mark Liversedge
2b6af76527 Workout Editor Create Block
.. press and hold a mouse button to create a block
   whilst in draw mode (or shifted in select mode).

.. will add a block in the middle or at the end of
   the workout depending on where you click.
2016-01-03 14:56:43 +00:00
Mark Liversedge
b3c09260f9 Merge pull request #1768 from jonbev/RowPro
Add RowPro csv import
2016-01-03 14:51:01 +00:00
jonbev
60f66982b3 Add RowPro csv import 2016-01-03 14:06:11 +00:00
Mark Liversedge
f6062ab5ef Merge pull request #1767 from Joern-R/clouddb
CloudDB
2016-01-03 13:14:02 +00:00
Joern
dcac0a0925 CloudDB
... add configuration settings to gcconfig.pri.in
2016-01-03 13:04:13 +01:00
Mark Liversedge
255aadab46 MSVC Linker flags for LibKML
.. avoid warning message and linker restart when
   linking with KML libs.
2016-01-03 09:19:35 +00:00
Mark Liversedge
a072163db2 Workout Editor Shift Toggles Draw/Select
.. so in draw mode shift lets you select and
   in select mode shift lets you draw.
2016-01-03 09:06:50 +00:00
Mark Liversedge
5d4679b035 Merge pull request #1765 from gille/readdir
Implement support for multiple scopes in GoogleDrive
2016-01-03 08:49:08 +00:00
Magnus Gille
ff50dcebba Complete support for new scopes and make readdir() only update the currently read directory. 2016-01-02 23:26:28 -05:00
Magnus Gille
6a69b6c3a8 Make OAuth scope configurable for GoogleDrive. 2016-01-02 20:42:20 -05:00
grauser
fb19cf9691 MergeActivityWizard : Display offset when adjusting 2016-01-03 00:56:33 +01:00
grauser
f8076d1d09 MergeActivityWizard: Simply order activities descending 2016-01-03 00:31:16 +01:00
Mark Liversedge
cb6fb85181 Workout Editor Block Cursor
.. better aesthetics

.. need to think about handles and showing
   %MMP for the interval (i.e 100% means this is a
   maximal effort).
2016-01-02 22:56:07 +00:00
Mark Liversedge
5591ea7bc7 Workout Editor Block Cursor Again!
.. tidy up when it is shown and refreshed.
2016-01-02 18:51:18 +00:00
Mark Liversedge
30412d5a0f Workout Editor Block Cursor Performance
.. refactor as paint based approach was awful
   from a utility and performance perspective.

   Even though it was just a UX experiment it
   bombed to CPU on Linux and Windows.
2016-01-02 18:21:39 +00:00
Mark Liversedge
afb3be78b6 Workout Editor Block Cursor Fix
.. needs to have pointer in it !

.. we may need to do this in the eventFilter rather than
   the paint event to stop repainting every time the cursor
   moves and also to manage block selection etc.
2016-01-02 16:38:20 +00:00
Mark Liversedge
c8ee808916 Workout Editor Block Cursor
.. just to get used to it and see how it might work, when
   we start working with blocks as well as points.
2016-01-02 16:17:28 +00:00
Mark Liversedge
b9bcd5fd90 Workout Editor Select/Draw Mode
.. the toolbar draw/select buttons now set the mode.

.. in select mode you can select points (same as holding
   shift whilst in draw mode).

.. this is just to make the UX less complex for casual users.
2016-01-02 15:06:24 +00:00
Mark Liversedge
2f4e94259c Merge pull request #1763 from dresco/antlog_timestamp
Antlog timestamp
2016-01-02 14:08:48 +00:00
Mark Liversedge
012511d6c6 Workout Editor Clear Selection on Rect Select
.. when using a rectangle selection we clear all
   the currently selected points. More often than
   not this behaviour is preferred, we could add a
   keyboard modifier in the future.
2016-01-02 13:48:59 +00:00
Jon Escombe
01e0e3c8ad And rename python script to match 2016-01-02 13:42:08 +00:00
Jon Escombe
d5e0097816 Change to file extension as suggested 2016-01-02 13:37:39 +00:00
Mark Liversedge
986085619d Merge pull request #1762 from dresco/antlog_timestamp
Add timestamps to raw ANT log
2016-01-02 13:33:24 +00:00
Mark Liversedge
dfbb035971 Workout Editor Cursor Keys Move Points
.. constrained editing with the cursor keys moving
   points up down left and right
2016-01-02 13:31:56 +00:00
Jon Escombe
68ad8b7bb3 Add timestamps to raw ANT log
Changes filename to antlog2.bin
Adds a simple python decoding example
2016-01-02 12:46:19 +00:00
Mark Liversedge
66b2b111a0 MSVC Array Semantics
.. MSVC will not create variable length arrays on the
   stack. They need to be allocated on the heap.
2016-01-02 11:50:06 +00:00
Mark Liversedge
b1a3cd58f9 Workout Editor RideFileCache::fastSearch()
.. added a static fastSearch() function to the
   RideFileCache class to perform a search on a
   single series of data without any data prep.

.. its super quick and will work with the workout
   editor recompute() function, but need to think
   about how we can display the MMP curve as we
   edit.
2016-01-02 10:58:46 +00:00
Mark Liversedge
bdb8d63a30 Workout Editor Key Commands undo/redo/delete
.. via ^Z, ^Y and DEL key

.. DEL will delete the selected points
2016-01-01 19:34:56 +00:00
Mark Liversedge
2b3505462c Workout Editor Selection Cosmetics
.. select v hover color of points was too brash.
   there is still plenty of room for improvement.
2016-01-01 16:12:44 +00:00
Mark Liversedge
7cc82c857b Merge pull request #1761 from Joern-R/MSVC6
MSVC - Google Drive Code
2016-01-01 14:24:21 +00:00
Mark Liversedge
dbf8b09548 Merge pull request #1760 from dresco/remote_control
Remote control
2016-01-01 14:24:05 +00:00
Mark Liversedge
8e240ee661 Workout Editor Selection Tools
.. for now pressing SHIFT and CLICK will enable
   selecting points.

   shift-click when hovering on a point will toggle
   selection of that point

   shift-click in space will start a rectangle select
   tool; as it drags it will select points within it.

   hitting the ESC key will clear all selections.

.. the toolbar button "Select" needs to be integrated
   into this scheme so users don't need to know about
   the ability to select with the shift key (as we had
   this before with intervals and it wasn't intuitive
   to casual users).
2016-01-01 14:20:20 +00:00
Jon Escombe
fa7d4a9a95 Merge branch 'master' into remote_control
Conflicts:
	src/ANT.h
	src/ConfigDialog.cpp
	src/ConfigDialog.h
	src/src.pro
2016-01-01 12:46:42 +00:00
Joern
a49e9cdb92 MSVC - Google Drive Code
... Macro Definition is working different on MSVC
2016-01-01 13:32:50 +01:00
Jon Escombe
7cc2cc6cd7 Remote control - less qDebug() 2016-01-01 10:23:21 +00:00
Mark Liversedge
f7c31a78be Workout Editor Resampling Error
.. resampling is the WRONG approach for the erg points
   they need to be INTERPOLATED!

.. e.g. a ramp from 0w to 100w over 10 minutes was previously
   resampled as 10 minutes of 0w followed by a jump to 100w
   and thus W'bal was way off !!
2016-01-01 10:18:13 +00:00
Mark Liversedge
3cccd647ec Workout Editor Toolbar Color
.. used wrong background color for train view.
2016-01-01 08:51:49 +00:00
Mark Liversedge
58352f4b72 Workout Editor Plot W'bal
.. as you edit the workout, its especially
   useful when scaling a workout to increase
   or decrease the intensity.
2016-01-01 00:47:49 +00:00
gcoco
3f046bcecd Oops. Wrong repo 2015-12-31 18:14:11 -05:00
gcoco
113ce091fa Update .travis.yml 2015-12-31 18:11:47 -05:00
Mark Liversedge
78dc9ddb8a Merge pull request #1759 from gille/google
Improved gitignore, ignore patch leftovers and emacs temporaries.
2015-12-31 22:30:15 +00:00
Magnus Gille
9824770110 Improved gitignore, ignore patch leftovers and emacs temporaries. 2015-12-31 17:17:05 -05:00
Mark Liversedge
dae514f586 Workout Editor Show TSS/IF
.. we calculate for ourselves since its probably
   quite expensive to calculate every metric.

.. could look to use the metric factory in the future
   if we want to make these metrics more configurable
2015-12-31 21:10:54 +00:00
Mark Liversedge
135df4b3ab Merge pull request #1748 from gille/google
Add support for syncing to GoogleDrive.
2015-12-31 19:54:53 +00:00
Magnus Gille
74ca328196 QT4 bug fix in Pages.h and authoriseGoogle improvement. 2015-12-31 13:21:23 -05:00
Magnus Gille
56bf17c6d1 QJsonParseError only exists in QT5. 2015-12-31 13:08:22 -05:00
Magnus Gille
c624433386 Remove debug. 2015-12-31 12:58:25 -05:00
Magnus Gille
945d3fd7c1 Improved JSON string parsing in QT4. This uses a regexp based parser. 2015-12-31 12:56:52 -05:00
Mark Liversedge
6d571b8ca5 Merge pull request #1758 from Joern-R/MSVC5
Linux debug build problem with QWT after MSVC related patch
2015-12-31 17:19:03 +00:00
Joern
efe97be345 Linux debug build problem with QWT after MSVC related patch
... Windows/MSVC QWT config creates 2 libs (release and debug)
... previous patch to support MSVC for this did not consider the different behaviour on other OS
    so this is reverted and changed to be platform specific
2015-12-31 17:54:50 +01:00
Mark Liversedge
577e08930e Merge pull request #1757 from Joern-R/MSVC4
MSVC - Problems detected when compiling Debug Code
2015-12-31 16:54:17 +00:00
Mark Liversedge
cd3474b810 Workout Editor QT4 compatibility
.. needed to create a QPoint for WorkoutWidget::scale()
   and only got an int from QWheelEvent::delta() where
   in QT5 deltaAngle() returns a QPoint.
2015-12-31 16:00:27 +00:00
Joern
19aa3e142c Fix Deletion sequence in destructor of AllPlot
... error/exception only visible when running in Debug Mode
... the destructor fo tooltip fires (via multiple step) and mouse even to AllPlot standard,
    which at that point is already deleted - changing the sequence let's GC
    end gracefully also in Debug Mode
2015-12-31 16:46:34 +01:00
Mark Liversedge
f6323a67ab Workout Editor QT4 compatibility
.. fix compile error on QWheelEvent::angleDelta() which
   was called delta() in QT4
2015-12-31 15:38:11 +00:00
Joern
e4216c351b MSVC - Fix Assert error when compiled in Debug mode
... Assert error in MSVC-core library when running code compied with /MDd (debug mode)
... Solution - removed BUGFix code related to QTBUG-14831 (which worked fine until now)
... Tested under MSVC (Release && Debug) QT 5.6.0 and MinGW (Release) QT 5.4.2
2015-12-31 16:19:42 +01:00
Mark Liversedge
58f2840050 Workout Editor Scale via MouseWheel
.. gui only, so need to add 'CP' widget to scale
   by manually changing that too.
2015-12-31 15:14:54 +00:00
Jon Escombe
20bed06094 Remote control config [3/3]: Use configured remote control codes
Utilise the user configured remote control command mappings
2015-12-31 12:51:37 +00:00
Jon Escombe
4453e869b7 Remote control config [2/3]: Config UI
Additions to options page and config file to manage the mappings
between ANT+ remote control codes and native GC actions
2015-12-31 12:39:04 +00:00
Jon Escombe
bea64dc718 Remote control config [1/3]: New classes
Add new RemoteControl classes to manage and map the supported
ANT+ remote control command codes
2015-12-31 12:38:00 +00:00
Mark Liversedge
83dea1b3b1 Workout Editor Redo/Undo
.. we only have two commands; create and move point
   but baking this in early so we can adopt it for
   all other commands as they arrive.

.. due to the interactive nature of a graphical editor
   the command class behaves differently to the one
   used on the ride data editor; commands are added to
   the stack when they complete (so move point isn't a
   history of the mouse cursor moving its just the begin
   and end point).
2015-12-31 12:01:21 +00:00
Magnus Gille
a7b561e7a3 GoogleDrive, now with proper directory support. 2015-12-31 02:50:51 -05:00
Mark Liversedge
874779ec09 Merge pull request #1755 from amtriathlon/master
RideSummary in Trends shows Power Zones according to sport
2015-12-30 21:49:24 +00:00
Alejandro Martinez
77cadf2874 RideSummary in Trends shows Power Zones according to sport
Only when the activities included are homogeneous
2015-12-30 17:53:59 -03:00
Mark Liversedge
5106549120 Workout Editor x/y labels
.. mostly a checkpoint commit since not much
   development done today.
2015-12-30 15:13:26 +00:00
Mark Liversedge
bca2d5145b Merge pull request #1753 from Joern-R/MSVC3
MSVC - QWT Debug vs. Release
2015-12-30 15:12:57 +00:00
Joern
1e0cb4a39f MSVC - QWT Debug vs. Release
... MSVC does not accept mixed libraries (debug/release) when linking
... patch has been tested with MingGW/GCC as well
2015-12-30 15:40:36 +01:00
Magnus Gille
2fb2b7aa4c Add missing default for GC_GOOGLE_DRIVE_CLIENT_ID and Secrets.h to GoogleDrive.cpp. 2015-12-29 10:47:24 -05:00
Mark Liversedge
cc8253489e Merge pull request #1749 from Joern-R/MSVC2
MSVC - LibUSB
2015-12-29 14:41:51 +00:00
Joern
7a2a3050c6 MSVC - Video VLCPlayer
... #warning is unsupported
... uinstd.h not available/required
2015-12-29 13:12:49 +01:00
Joern
e725c77e5e MSVC - LibUSB
.. uinstd.h not required/available unser MSVC
2015-12-29 12:41:28 +01:00
Mark Liversedge
f445189e77 Workout Editor Alignment Guide
.. when dragging a point all points with the same
   Y value are highlighted to help with alignment.
2015-12-29 10:22:17 +00:00
Mark Liversedge
a1e89909b1 Workout Editor X-axis Constraint
.. don't move beyond points to left and right
2015-12-29 09:19:13 +00:00
Magnus Gille
95bffb30af Add support for syncing to GoogleDrive.
This uses GoogleDrive v2 API.
2015-12-29 02:01:36 -05:00
Mark Liversedge
38c54628de Workout Editor Rough Prototype
.. of point based editing, which is a bit difficult
   without constraints like snap-to, guides, undo
   or delete. But the basic concept is there to play
   with.

.. of course it will still be possible to edit in a more
   traditional 'blocks' and 'rectangles' way too but that
   code hasn't been written yet.
2015-12-28 22:38:02 +00:00
Mark Liversedge
284864bb95 CI Fix gcconfig.pri -lz
.. the logic for gcconfig.pri was reversed
   and now we must uncomment for local compress
   libs, rather than getting them by default.
2015-12-28 19:09:39 +00:00
Mark Liversedge
04ec5349bd Fixup src.pro
.. compress and maths libs with win32 and gnu toolchain
.. WINKIT_INSTALL to specify where winkit is installed for MSVC toolchain
.. update gcconfig.pri to reflect this
2015-12-28 18:46:06 +00:00
Mark Liversedge
5e59fbe0b7 Workout Editor - Part 1 of MANY
.. initial code to display an ERG file for editing

.. this just introduces the basic model for rendering
   the erg file and loading the model.

.. the interaction model using a 'points' editor will
   follow next and then one to use 'blocks'.

.. There is a LONG way to go, this commit is just to
   put a checkpoint down and test across platforms
2015-12-28 16:44:28 +00:00
Mark Liversedge
229a43062b tidy up formatting src.pro 2015-12-26 20:18:00 +00:00
Mark Liversedge
6d4207871d -l -l snafu in src.pro
.. breaks OS X but not Win or Linux interestingly.
2015-12-26 14:41:35 +00:00
Mark Liversedge
222ccc4708 Platform neutral SRC.PRO
.. all libs are now resolved using -Lfolder and -llib
   rather than any reference to .a or .lib
2015-12-26 11:47:45 +00:00
Mark Liversedge
2ca332911f More src.pro cleaning
.. most importantly start to remove any reference
   to .lib or .a library files since these differ
   depending upon toolchain.

.. instead we should use a combination of
   LIBS += -Lfolder
   LIBS += -llib

.. so for example
   LIBS += ../qwt/lib/libqwt.a

   becomes
   LIBS += -L../qwt/lib -lqwt

   and is now platform neutral.

.. this needs to be applied throughout to ensure
   src.pro works for MSVC and GNU toolchains
2015-12-26 10:45:30 +00:00
Mark Liversedge
4b6de65e04 Remove reference to code pushed early
.. in previous commit.
2015-12-25 20:30:58 +00:00
Mark Liversedge
192708c3ab Reorganise src.pro
.. it had become a bit of a mess with various changes
   over the last 5 years so restructured into 3 sections

   * core and platform config
   * optional dependencies
   * source and headers

   This is to help make it easier to maintain, especially
   since support for the MSVC toolchain is likely to mean
   it is modified quite a bit (in section 2 anyway)
2015-12-25 20:10:44 +00:00
Mark Liversedge
2bf9337cda Merge pull request #1746 from maxammann/master
Fixed a german translation in AboutDialog to have a fixed length
2015-12-25 11:39:21 +00:00
Max Ammann
e7fa19e5d6 Fixed translation in AboutDialog to have a fixed length 2015-12-25 12:11:39 +01:00
Mark Liversedge
f70f175e92 Version Dialog MSVC/GCC
.. formatting how version is shown.
2015-12-24 22:57:59 +00:00
Mark Liversedge
682f33c6ba MSVC Toolchain in src.pro
.. just for QWT and MS User32/Gdi32 libs when
   compiling with MS Visual Studio 2015
2015-12-24 22:04:01 +00:00
Mark Liversedge
2057669fbe Fix Computrainer TXT parsing
.. when the values are quoted but contain spaces, since this
   breaks the regexp for finding the separator which uses a
   comma -or- a space.
2015-12-24 17:19:13 +00:00
Mark Liversedge
512fc323ed RideMetric.h logic !
.. the assert condition was lost, only issue a debug
   message if the dependent metric is unknown.
2015-12-24 16:07:14 +00:00
Mark Liversedge
1c6843cdb8 Update gcconfig.pri.in for win_flex/bison
.. so developers don't need to guess what to add
   to gcconfig.pri when using them with VS2015/MSVC
2015-12-24 15:31:02 +00:00
Mark Liversedge
d743fdd3ec No Assert in RideMetric.h
.. gets rid of an iritating compiler warning when
   compiling with VS2015 and MSVC

.. is good because user metrics aren't fixed so the
   assert assumption is wrong now

.. means we have to add assert.h to all the source
   files that had it from including RideMetric.h
   and want to use it.
2015-12-24 15:26:29 +00:00
Mark Liversedge
cc5ba4bf29 Visual Studio 2015 / MSVC2015 compatibility
.. fixup win_flex errors related to isatty
   and prefix not being set on the command line
2015-12-24 15:11:33 +00:00
Mark Liversedge
d86215c5a0 Merge pull request #1745 from Joern-R/msvc1
Visual Studio 2015 / MSVC2015 compatibility
2015-12-24 12:03:04 +00:00
Joern
484a59a640 Fix Build for QT 4 2015-12-24 11:32:49 +01:00
Joern
9935edecd3 Visual Studio 2015 / MSVC2015 compatibility
... first set of syntax error fixes to compile GC using Visual Studio 2015
... changes are encapsulated and tested to not conflict with GCC compilation

Note: there is no full compatibility - so GC is not building with MSVC2015 yet
2015-12-24 11:08:31 +01:00
Mark Liversedge
c46bc137a0 IntervalSummaryWindow SEGV user metric missing
.. if you delete a user metric after adding it to the
   interval metrics list the interval summary window
   will crash.

.. the fix goes to source where the RideMetric::compute()
   method now ignores metrics that are not known instead
   of adding a NULL pointer to the results.
2015-12-23 19:02:01 +00:00
Mark Liversedge
fa47344b8e More test charts
.. aggregate using a formula
.. modality using formula
2015-12-23 16:28:03 +00:00
Mark Liversedge
a7728c6bc2 DataFilter fix builtins (again)
.. the DataFilterFunctions[] were not processed correctly
   after validation of calls to named functions was added
   and the correction applied previously only worked for
   functions defined by the lexer/parser, not those defined
   in DataFilterFunctions[]

.. this fixes that, but it would be nice if this was cleaned
   up in to one unified place in the datafilter.
2015-12-23 15:34:27 +00:00
Mark Liversedge
c329f2bb08 Merge pull request #1741 from amtriathlon/master
Fixes autofilter when field names are translated
2015-12-22 16:41:52 +00:00
Alejandro Martinez
9b7597edd7 Fixes autofilter when field names are translated 2015-12-22 13:11:46 -03:00
Mark Liversedge
c9e1c919e3 ::addRide bool planned
.. should have been added at the end of the parameter
   list since it and tempActivity are optional parameters.

.. it broke import via RideImportWizard.
2015-12-22 15:22:03 +00:00
Mark Liversedge
cff326a1b1 RideSummaryWindow filter missing metrics
.. since we can now delete metrics when they
   are user defined. Previously the summary
   would crash if a Bests metric didn't exist.
2015-12-22 12:46:24 +00:00
Mark Liversedge
1f126c98e0 DataFilter Editor Match { }
.. added matching braces as well as brackets in the
   editor since it can get pretty hairy now we
   have code blocks and named functions using braces.
2015-12-22 10:30:12 +00:00
Mark Liversedge
e1e834aa08 Fix CL in PfPv plot
.. recent commit for Pmax on the PfPv plot introduced
   a  stray line of code settng cranklength incorrectly.
   This results in the QA plot being blank and a warning
   message from qDebug() about trying to read a cyclist
   setting incorrectly.
2015-12-22 08:18:28 +00:00
grauser
8080712d4a RideNavigator : Don't crash is no selection 2015-12-21 19:04:37 +01:00
Mark Liversedge
711cf13372 Fix RideSummary SEGV
.. logic error if/else for plotting rides vs dateranges
   along with assumption that zones will not be NULL (esp
   for running) lead to a repeated crash when running power zones
   are not defined.

.. additionally, when summarising for a date range the table was
   displayed for running vs cylcing based upon the current ride item.
   This has been changed to use cycling power zones always.

.. the proper fix would be to summarize power time in zone for running
   and cycling separately.

.. the compare logic appears to be unaware of power time in zone for
   running and so does not have the same SEGV but will also need to
   be updated to list time in zone for running and power separately.
2015-12-21 17:23:44 +00:00
Mark Liversedge
c6d2fef46c Merge pull request #1739 from amtriathlon/stryd
Add support for running power zones (Stryd) part 3
2015-12-21 15:51:50 +00:00
Alejandro Martinez
faff84a552 Changes ModelPlot tu use Zones according to sport 2015-12-21 10:56:57 -03:00
grauser
b7eadf9fb1 RideItem : Don't update path from cache 2015-12-20 23:29:05 +01:00
grauser
274fa7e8f8 PfPvPlot: Add PMax 2015-12-20 22:53:31 +01:00
grauser
5016300650 Remove planned RideFileCache 2015-12-20 22:43:29 +01:00
grauser
913a0d0c70 RideFileCache: distinguish planned activities 2015-12-20 22:43:29 +01:00
grauser
8eef00d99d LTMPlot: Don't plot expected PMC in the past 2015-12-20 22:43:29 +01:00
grauser
e44cd3f696 PMCData: Add expected data 2015-12-20 22:43:29 +01:00
grauser
15ba65544e RideCache: Add cache for planned ride 2015-12-20 22:43:29 +01:00
grauser
2497d5060a PMC: Prepare to add planned and expected values 2015-12-20 22:43:28 +01:00
grauser
527a0fa81b Directories: Add 'planned' directory in Athlete structure 2015-12-20 22:43:28 +01:00
Mark Liversedge
692f5db5f9 Fix DataFilter function validation
.. it broke all the builtin functions !

.. we need to check for user functions after all the
   builtins e.g. config(cp) was marked as inerror
   when it should not have been.
2015-12-20 20:06:52 +00:00
Alejandro Martinez
078d4ac5ad Add support for running power zones (Stryd) part 3
Final part: use the zones according to sport in metrics and charts
2015-12-19 19:08:33 -03:00
Mark Liversedge
95479401d9 DataFilter.l formatting
.. ^M and indentation
2015-12-19 11:54:36 +00:00
Mark Liversedge
2f91591198 Further to previous
.. QVector doesn't have takeAt either on QT4
2015-12-18 14:46:54 +00:00
Mark Liversedge
ae9c2b15f4 QT4 compatibility takeAt not removeAt
.. when working with RideMetric QLists.
2015-12-18 14:28:08 +00:00
Mark Liversedge
0f12872e6f User Metrics Part 3 of 4
.. User Metrics now integrated into the factory, ride cache
   and of course rides and intervals. Which means you can define
   a user metric and it will be computed and displayed like any
   of the builtin metrics.

.. lots of technical changes to support this:

   * DataFilter gets a runtime object to support multi-threading
     and uses a context for construction only - item contexts are
     used when evaluating an expression

   * RideMetric factory can now remove user metrics

   * The context in which the user modifies the user metrics will
     notify all other contexts of the change ***

*** NOTE: STRONGLY RECOMMEND THAT YOU DO NOT HAVE MULTIPLE ATHLETES
          OPEN WHEN DEVELOPING NEW METRICS SINCE IT WILL TRIGGER A
          METRIC REFRESH FOR ALL OPEN ATHLETES.
2015-12-18 13:07:56 +00:00
Mark Liversedge
212e53563f Merge pull request #1731 from vlcvboyer/check_valid_fecchannel
ensure fec_channel is valid
2015-12-18 09:17:14 +00:00
Mark Liversedge
aa6f6b78a4 Merge pull request #1732 from vlcvboyer/cosmetic_add_fixme_flag
point out a previous work in progress
2015-12-18 09:16:29 +00:00
Mark Liversedge
b24592441b Merge pull request #1733 from vlcvboyer/change_cyclist_to_athlete
change "cyclist" to "athlete"
2015-12-18 09:15:58 +00:00
Mark Liversedge
b0aff76866 Merge pull request #1734 from vlcvboyer/cosmetic_define
cosmetic: use define instead of values
2015-12-18 09:15:15 +00:00
Mark Liversedge
3a0f6d3ef4 Merge pull request #1736 from vlcvboyer/cosmetic_unused_param
indicate unused parameter
2015-12-18 09:12:26 +00:00
Mark Liversedge
55f036eca1 Merge pull request #1737 from vlcvboyer/document_fitfile
document more fit files entries
2015-12-18 09:11:54 +00:00
Mark Liversedge
79c2ff3c43 Merge pull request #1730 from flacjacket/flex-2.6
Fix FLEX version checks for 2.6.0
2015-12-18 09:11:14 +00:00
Sean Vig
c7a123907c Fix FLEX version checks for 2.6.0 2015-12-18 00:31:51 -06:00
Vianney Boyer
48e7dda3a5 change 'cyclist' to 'athlete' to be compliant with other sports 2015-12-17 23:34:46 +01:00
Vianney Boyer
b73885378f check fec channel is valid 2015-12-17 23:34:17 +01:00
Vianney Boyer
6a6a29c9d2 use define instead of values 2015-12-17 23:33:14 +01:00
Vianney Boyer
d96d115838 add FIXME flag on old comment 2015-12-17 23:31:45 +01:00
Vianney Boyer
a872ebd7c6 indicate unused parameter 2015-12-17 23:31:03 +01:00
Mark Liversedge
6becfe2aef Merge pull request #1729 from amtriathlon/stryd
Add support for running power zones (Stryd) part 2
2015-12-17 22:25:07 +00:00
Mark Liversedge
8e230c15af Merge pull request #1728 from vlcvboyer/fix_flex26
fix flex version check when >= 2.6
2015-12-17 22:24:52 +00:00
Vianney Boyer
7ffcdec165 document more fit files entries 2015-12-17 22:51:39 +01:00
Alejandro Martinez
10306ca3e1 Add support for running power zones (Stryd) part 2
ZonePage, CPPage and SchemePage changes to support separate editing
Zones and Settings to allow for separate GC_USE_CP_FOR_FTP
RideItem and Coggan metrics are running aware por power zones
2015-12-17 18:37:42 -03:00
Vianney Boyer
bca7990776 fix flex version check when >= 2.6 2015-12-17 21:40:20 +01:00
Mark Liversedge
6b9af54899 Merge pull request #1727 from amtriathlon/stryd
Add support for running power zones (Stryd) part 1
2015-12-17 15:44:24 +00:00
Alejandro Martinez
149e3a8c2d Add support for running power zones (Stryd) part 1
Zones: parameterize for running
Athlete: create zones for cycling and running
ConfigDialog cleanup: removed unused zones member
2015-12-17 12:11:11 -03:00
Mark Liversedge
82363469a8 Merge pull request #1726 from amtriathlon/master
Changed cached paceZoneRange to be sport specific
2015-12-16 20:31:30 +00:00
Alejandro Martinez
eefa8db75b Changed cached paceZoneRange to be sport specific
And use it to compute Run and Swim metrics
2015-12-16 13:30:45 -03:00
Mark Liversedge
16e1ec0a4d User Metric Test Button Works
.. quick push to allow cross platform functional
   and performance testing of User Metric computation
2015-12-16 12:42:53 +00:00
Mark Liversedge
d6c8949355 Major RideMetric compute() refactor
Update of all metrics to work with a RideItem
not directly with a RideFile.

When iterating over the activity samples we now
use a Specification and RideFileIterator to bound
the set of samples used. This means that we can
compute metrics for intervals without having to
create a temporary ridefile.

RideItem now has first class members for zoneRange,
hrZoneRange and paceZoneRange to avoid calculating
for every metric which are stored in RideDB.json.

Compare pane continues to construct a ride file
when working with intervals since it is used lots
of charts, this is unlikely to ever change.

A SEGV in compare intervals has been fixed where
interval items were repointed to temporary compare
pane objects that are deleted - see RideItem::setFrom.

THIS COMMIT CONTAINS 3 REGRESSIONS:
1. TcxRideFile no longer computes metrics
2. FitlogRideFile no longer computes metrics
3. WorkoutWizard no longer computes metrics

-- The workout wizard will be replaced with a new
   Workout editor, whilst the RideFile metrics
   may be deprecated (but considering options)
2015-12-16 11:36:02 +00:00
Mark Liversedge
43d557f558 Merge pull request #1723 from Joern-R/gae3
CloudDB - First Draft of Charts Exchange
2015-12-13 19:42:10 +00:00
Joern
8a033a8c53 OSX - Fix renaming error 2015-12-13 20:22:28 +01:00
Joern
d50a426448 CloudDB - First Draft of Charts Exchange 2015-12-13 18:23:49 +01:00
Mark Liversedge
88ee6248b7 Merge pull request #1722 from amtriathlon/master
Fixed CV model parameters to honor imperial settings
2015-12-13 16:55:35 +00:00
Alejandro Martinez
fb3d9ec816 Fixed CV model parameters to honor imperial settings
The axis still is kph but the tooltip has dual units now
2015-12-13 13:22:21 -03:00
Mark Liversedge
105a3b05db RideFileIterator
.. useful for simplifying iteration over the ride
   samples in the metric compute() method and possibly
   elsewhere in the code

.. will iterate for rides and intervals.
2015-12-12 22:46:54 +00:00
Mark Liversedge
007d942f4e RideFilePoint is a struct
.. not a class.
2015-12-12 19:45:41 +00:00
Mark Liversedge
4c9dc5615a Specification Class Interval Support
.. the specification class is used for filtering
   rides but now also supports filtering ride points

.. this is so we can refactor the metric code to
   use a specification when computing metrics

.. the next update will include a refactor of
   all the metric compute() functions to use this
   new approach
2015-12-12 09:40:46 +00:00
Mark Liversedge
e6e25e9fcd User Metric SEGV OSX
.. fixup for Mac.
2015-12-11 19:41:28 +00:00
Mark Liversedge
09b2f4355c Tidy up context used
.. datafilter uses a context that was used to create it
   which is fine until it is used in user metrics which
   are global and shared across multiple contexts.

.. so now when evaluating a ride item we use the context
   for the rideitem being evaluated not the context of
   the data filter performing the evaluation

.. next couple of commits will need to look at the way
   we use RideItem and RideFile when computing both
   Ride and Interval metrics.
2015-12-11 19:17:53 +00:00
Mark Liversedge
c9b33c834e temp fix hang on test
.. in case anyone is playing along between
   step 2 and 3 of the user metric code update
2015-12-11 15:18:30 +00:00
Mark Liversedge
c93795ee23 nits from previous commit 2015-12-11 15:05:06 +00:00
Mark Liversedge
d7a179907d User Metric Part 2 of 4
.. User metrics can be created, deleted and edited
   in the preferences pane.

.. A new dialog has been created to create user metrics
   and will need to be updated after step 3 of this multi
   part update completes the UserMetric code and integrates
   it into the RideMetric factory.
2015-12-11 14:03:58 +00:00
Mark Liversedge
5a114ab66f Merge pull request #1721 from amtriathlon/master
Refactor calendarText
2015-12-11 08:04:26 +00:00
Alejandro Martinez
d72e75143a Refactor calendarText 2015-12-10 21:34:45 -03:00
Mark Liversedge
5011b7bf64 LTM Formula Edit
.. expand to use space as metric dialog is resized
2015-12-10 22:28:54 +00:00
Mark Liversedge
cbf5b34ded Datafilter 'stack overflow'
.. catch problems with recursion from badly
   written datafilters by limiting function
   call stack depth to 500 calls.
2015-12-10 21:53:01 +00:00
Mark Liversedge
59c13e15ec User Metric Part 1 of 4
.. User defined metrics where a user can define code
   to compute a metric from ride data that can be used
   in the same way as builtin metrics.

   * Part 1 : Introduce User Metrics, Settings and XML config
   * Part 2 : Introduce Dialog for User Metric CRUD in Preferences
   * Part 3 : Integrate with Cache refresh and fingerprints
   * Part 4 : Resolve dependency tree and related aspects

.. The user code will be via a DataFilter; this code has
   already been updated to include variables, functions and
   if/else/while constructs.
2015-12-10 17:27:33 +00:00
Mark Liversedge
6aaf5a2a7e Merge pull request #1720 from amtriathlon/master
CalendarText slight optimization
2015-12-10 15:33:52 +00:00
Alejandro Martinez
071de7ef07 CalendarText slight optimization
Use the cache to get Tag value
2015-12-10 12:15:10 -03:00
Mark Liversedge
0909a67eba Merge pull request #1719 from amtriathlon/master
Support Metrics in Calendar Text
2015-12-10 09:38:01 +00:00
Mark Liversedge
553ade5a9c Datafilter User Functions
We now have named functions that can be called in the datafilter.
This is primarily to support user defined metrics where we will expect
the user to optionally define a bunch of functions we will call as
part of the ridemetric methods (see design mock up).

.. Datafilters can be defimed in three forms;

   * a single line, typically as a filter
     e.g. TSS > 100

   * a block of code, typically as a formula
     e.g. { val <- TSS; val > 100; }

   * a program made up of functions, typically as a user metric
     e.g. { pass { TSS>100; } main { pass(); } }

.. This example is functionally equivalent to "TSS>250":

   {
        pass {

            # only filter rides with a high TSS
            TSS > 250;
        }

        main {

            # call our function to filter rides
            pass();
        }
    }

.. Functions can only be defined within a block

.. Functions must be defined before use

.. A "main" function must be defined as an entry point
   into the program if any functions are defined.
2015-12-09 20:49:08 +00:00
Alejandro Martinez
39bb27f3d8 Support Metrics in Calendar Text
When the Diary checkbox is set for a metric
"Name: value" is added to Calendar Text.
The "Weight" field is special cased to "Athlete Weight" metric.
Calendar Text is no longer stored in json files, just cached
from Metadata Configuration, Tags and Metrics values.
Fixes #1563
2015-12-08 23:06:42 -03:00
Mark Liversedge
5e66df56bd Mockup User Metric Dialog
.. add a png for those that don't have balsamiq
2015-12-08 18:07:10 +00:00
Mark Liversedge
22ae3500ee Mockup for User Metric Dialog
.. Balsamiq mock.

.. note the use of "special" symbols in the code
   to introduce blocks of code that will be called
   at certain points, these will need to be aligned
   to the RideMetric class but limited to those
   attributes that are activity specific

   isRelevantForRide()
   initialize()
   compute()
   setValue()
   setCount()

   we may want to add other attributes like aggregate
   zero and lowerisbetter to the dialog too.
2015-12-08 18:00:19 +00:00
Jon Escombe
8520205c53 Remote Control [5/5]: Pass commands to train view
Create the required signals and slots to pass received commands to
train view, and process these commands within the TrainSideBar class.
2015-12-06 20:29:17 +00:00
Jon Escombe
bba2c903e4 Remote Control [4/5]: Master device broadcast timer
The master device on a channel needs to broadcast at 4Hz. Create
a timer to trigger the broadcast messages and connect the signals
to start & stop it.
2015-12-06 18:54:21 +00:00
Jon Escombe
dfe4395b6b Remote Control [3/5]: ANT master device support
Add support for opening an ANT channel as a master device
2015-12-06 18:53:18 +00:00
Jon Escombe
6ac6debca2 Remote Control [2/5]: ANT message handling
Handle the acknowledged ANT messages containing inbound remote
control commands.
2015-12-06 18:49:06 +00:00
Jon Escombe
263d4e0069 Remote Control [1/5]: AddDeviceWizard support
As we will be the master on this channel, there is nothing to
pair, so just generate and store a random device id for later use.
2015-12-06 18:48:51 +00:00
Mark Liversedge
8f8e7593d5 DataFilter grammar reformat and comments
.. it was a bit of a mess!
2015-12-06 11:26:20 +00:00
Mark Liversedge
1a85bbd70f Added RECINTSECS and NA symbols
.. NA equates to RideFile::NA when working with
   samples or averages etc and wanting to check

.. RECINTSECS is only really available when working
   with ride samples (e.g. in user metrics coming soon)
2015-12-06 10:26:46 +00:00
Mark Liversedge
6bea3d2a3a DataFilter while loops
.. added while loops to the data filter but
   bounded to 10,000 loops to stop runaway
   code.
2015-12-06 09:57:57 +00:00
Mark Liversedge
d02951453e if/else lower case ONLY
.. to avoid conflict with Intensity Factors (IF)
   metric name
2015-12-05 22:48:57 +00:00
Mark Liversedge
69395e6cda Fixup if / else needing terminating ';'
.. needed a bit of hoop jumping to avoid

.. will also need to make if/else _lower_
   case only to avoid clash with the Coggan
   IF !
2015-12-05 22:46:11 +00:00
Mark Liversedge
4cb26cf27c DataFilter if/else support
.. Added if else logic but could not avoid
   needing the statement to be terminated with a
   semi-colon (;)

.. so examples are:

   if (TSS>100) TSS; else 0;

   if (TSS>100) {
      temp <- TSS;
      temp;
   } else {
      temp <- BikeScore;
      temp;
   }

.. Doesn't add much beyond the existing conditional statement
   using '?' and ':' but is a lot more readable (!)
2015-12-05 20:51:45 +00:00
Mark Liversedge
282445abc9 DataFilter { } syntax highlight
.. for errors etc.
2015-12-05 19:46:38 +00:00
Mark Liversedge
1717cd4605 DataFilter Introduce 'Statements'
.. start of transition to a full grammar, so now
   we have statements and compound statements.

   This update just differentiates between an expression
   which is a conditional, logical or binary expression
   versus a statement introducing a user symbol
2015-12-05 10:56:48 +00:00
Mark Liversedge
56273ea0aa DataFilter Compound Statements { ... }
.. You can now use compound statements in data filters

.. A compound statement is:
       { s1; } evaluates to s1
       { s1; s2; s3; .. sn; } evaluates to sn

.. It is possible to use the recently added user defined
   symbols to build up processing logic:

       { temp <- TSS; temp > 100 }

   is functionally equivalent to

       TSS > 100

.. At present there are no control statements outside of
   the ? and ?: operators but these will no doubt be added
   in due course.
2015-12-05 10:09:52 +00:00
Mark Liversedge
fcd7c778f5 Merge pull request #1716 from Joern-R/Settings
Settings Code Documentation
2015-12-04 21:39:23 +00:00
Joern
2c64ffa83f Settings Code Documentation
... improve documentation for developers adding new settings
2015-12-04 20:04:19 +01:00
Mark Liversedge
45880246f0 DataFilter User Symbols and '<-' assign
.. allow users to introduce their own symbols
   into a datafilter with:

   symbol <- expression

   Which will initialise symbol and evaluate it
   with the expression. The symbol can override
   a metric name, but that would be rather dumb!
2015-12-04 18:15:21 +00:00
Mark Liversedge
28f77538ae Merge pull request #1617 from vlcvboyer/windpower
Take wind into account during power estimation
2015-12-04 16:06:44 +00:00
Vianney Boyer
fc223b3b77 take headwind into account for power estimation 2015-12-04 16:30:11 +01:00
Mark Liversedge
1e51f05491 Recognise Dmitry Monakhov
.. for recent patches.
2015-12-04 14:59:09 +00:00
Mark Liversedge
62d8285f2a Merge pull request #1715 from dmonakhov/bsxinsight-fixes
dp: FixMoxy add config options (fix BSXInsight support)
2015-12-04 14:53:10 +00:00
Dmitry Monakhov
253cca6027 dp: FixMoxy add config options (fix BSXInsight support)
Number of data fields depends on sensor model
MoxySensor transmit SMO2 as cadance, tHB as speed,
BSX Insight 2 transmit only SMO2 as cadance, tHB is not supported.

So in case of BSXInsight we should not convert speed data. Let's allow
user to chose which datafields to transfer.

This patch add two new check buttons FixMoxy dialog
 - Cadence to SMO2
 - Speed to tHb
2015-12-04 17:18:48 +03:00
Mark Liversedge
5902365456 DataFilter NOT (!) Operator
.. to negate a condition e.g. !Sport = "Run"
2015-12-04 13:50:59 +00:00
Mark Liversedge
eb6fda0223 Add Italian and German sites
.. to the announce list
2015-12-04 08:40:06 +00:00
Mark Liversedge
994893c928 DataFilter add ELVIS operator
.. x ?: y

   Evaluates to x if it is non-zero, otherwise it
   evaluates to y. y is only evaluated once and only
   if x is zero. Similarly, x is only evaluated once
   and returned if it is non-zero.
2015-12-03 21:49:48 +00:00
Mark Liversedge
7945290079 Merge pull request #1713 from vlcvboyer/segment
Segment/intervals code clean up and NA value check
2015-12-03 21:42:24 +00:00
Vianney Boyer
b21fba4367 add a value validity check in decodeSegment 2015-12-03 21:38:12 +01:00
Vianney Boyer
cd6d1852b2 place back the value validity check 2015-12-03 21:31:06 +01:00
Vianney Boyer
558caa85a5 split decodeLap and decodeSegment as some fields seems different 2015-12-03 21:26:29 +01:00
Mark Liversedge
0485c873f4 NA value and Min Temperature metric
.. allow NA to be used anywhere and skipped on
   the metric trend chart.

.. add a min temperature metric

.. add a chart for tracking temperatures
2015-12-03 14:58:38 +00:00
Mark Liversedge
a0f3b33304 Fix kqoauth tracked files
.. remove them from git when we shouldn't track them
.. no need for multiple .gitignore files
2015-12-03 13:30:05 +00:00
Mark Liversedge
59a6b961c7 Sites to post announcements to 2015-12-03 13:30:05 +00:00
Mark Liversedge
92a4ec6730 Merge pull request #1702 from vlcvboyer/add_fit_data
Add more FIT files data fields description
2015-12-03 08:46:18 +00:00
Vianney Boyer
f361a27028 FIT file data 14: add warning related to valid value check 2015-12-03 00:55:07 +01:00
Vianney Boyer
76c778b158 FIT file data 13: preset var 2015-12-03 00:42:09 +01:00
Vianney Boyer
25ba461a8e FIT file data 12: detail messages type 2015-12-03 00:41:35 +01:00
gcoco
1fd039f95e V4.0 development build id
.. so we can differentiate
2015-12-02 18:40:04 -05:00
Vianney Boyer
453c8ecdd0 FIT file data 11: references to vectors instead of copy 2015-12-03 00:33:22 +01:00
Vianney Boyer
ee741d8753 FIT file data 10: parse segment messages 2015-12-03 00:30:12 +01:00
Vianney Boyer
bccfe24024 FIT file data 9 : device settings messages 2015-12-03 00:29:18 +01:00
Vianney Boyer
89c79e0549 FIT file data 8 : weather broadcast messages 2015-12-03 00:28:27 +01:00
Vianney Boyer
04ee639c69 FIT file data 7 : bearing and headwind calculation during RECORD parsing 2015-12-03 00:26:42 +01:00
Vianney Boyer
cb90839b45 FIT file data 6 : LAP messages 2015-12-03 00:24:13 +01:00
Vianney Boyer
fcd8920507 FIT file data 5 : events messages 2015-12-03 00:09:53 +01:00
Vianney Boyer
addc85afa9 FIT file data 4 : device info 2015-12-03 00:00:08 +01:00
Vianney Boyer
0985c56c76 FIT file data 3 : sports/subsports and summary 2015-12-02 23:59:11 +01:00
Vianney Boyer
1e9952f336 FIT file data 2 : descr additional files ID 2015-12-02 23:56:19 +01:00
Vianney Boyer
7ae6518f25 FIT file data 1 : create wind variables 2015-12-02 23:51:56 +01:00
Mark Liversedge
d888c13157 V4.0 development build id
.. so we can differentiate
2015-12-02 22:29:21 +00:00
Mark Liversedge
89e2a88d0c Merge pull request #1677 from nickb937/strava_id_guard
src/Settings.h: Add #ifndef around GC_STRAVA_CLIENT_ID
2015-12-02 22:21:01 +00:00
Mark Liversedge
73815f570c Merge pull request #1704 from gille/fit
Add segment support to Garmin files
2015-12-02 22:19:29 +00:00
Mark Liversedge
0001aedad7 Merge pull request #1710 from erikboto/monark_novo_support
Monark: Add support for the new Novo devices
2015-12-02 22:07:05 +00:00
Mark Liversedge
b5427d4c34 Versioning has misleading comment
.. build id for 3.3 is 3933 not 3910
2015-11-29 22:20:25 +00:00
Mark Liversedge
27b267e336 CI remove deployment
.. it doesn't work and might be better to use a
   secure ftp approach or similar.

.. need to fix this for the nightly development
   builds planned for v4.0

[skip ci]
2015-11-29 22:19:02 +00:00
Erik Botö
a40f2239c2 Monark: Add support for the new Novo devices 2015-11-29 20:12:43 +01:00
Mark Liversedge
3db4863d40 Version 3.3 Release
Major new features

Sync across PCs via Dropbox cloud storage
Sync via local folder, thumb drive, Google mounted drive etc
Added Daniels VDOT and T-Pace tools for Running
User Formulas
Restful API Web-Services for integration with R,Matlab,Orange,Tableau etc
Support FE-C trainer
Monark ERG Support
Support Stryd Power Meter for Running
BSX Insight 2 support
Ambit SML import support
RLV Support, playback to riding speed.
Video Overlays in Train View
SportsPlusHealth upload support
Backup and Autobackup
Better swim workout support incl. lap workouts
SrmRideFile: v9 support (SRM PC8)
Add new language support: Chinese(Traditional)
GPL v3 License

Severe Bugs Fixed

Fix 3DP file import 'hang'
Joule GPS+ import issues
Checkbox metadata fields not saved, ^S save errors
Fix GPU battery drain on Mac OSX
Fix HR > 8 Zone Crash
Fix 'Fix Elevation' SEGV
Fix Interval Search SEGV on High Power
DataProcessor 'Auto' runs on import only
Fix Memory Exhaustion on Mass Import/Sync
Fix SEGV when sharing activity on Strava with no internet
Fix IntervalNavigator SEGV
Fix SEGV LTM Edit

Minor new features

TrainSidebar: Delete multiple workouts
Configure CP and FTP separately
FixSmO2: Add a tool to remove anomalies in SmO2 data
Recognise more Garmin devices based on FIT SDK
Fix Freewheeling Tool
Added W'bal Work In Zone Metrics
Add W'bal Zones - Time above CP
Added Autoimport Stealth/Background Mode
TrainMode - Use Multimedia Keys
Fix Speed from Distance tool
Delete Athlete now supported
Settings stored in athlete folder config directory
Bugfix merge of hrm and gpx
Mass update metadata with set, isset and unset commands
Add a Derive Distance tool (from GPS position)
Read R-R data from polar hrm files
Add User parameters for Bike Weight and CRR to Power Estimation Tool
Multiple fixups for DataFilter expressions and precedence logic
LTM Filter for a curve
Rename Route
2015-11-29 17:11:36 +00:00
grauser
70b692ec88 Translation french update (2/2) 2015-11-29 16:05:47 +01:00
grauser
5d7df47619 Translation : update fr (1/2)
Only HelpWhatsThis remains
2015-11-29 11:33:47 +01:00
grauser
40324a6839 Translation : lupdate 2015-11-29 09:11:26 +01:00
Damien Grauser
63665aba67 Merge pull request #1686 from vlcvboyer/tr_fr_add
additional FR translations: 2nd set
2015-11-29 09:05:24 +01:00
Alejandro Martinez
fd90525f10 Add VDOT and Triathlon Run Splits sample chart 2015-11-28 22:11:50 -03:00
Alejandro Martinez
d37e5afaf4 Merge pull request #1707 from amtriathlon/master
Update Spanish Translation
2015-11-28 21:06:41 -03:00
Alejandro Martinez
364bc3b186 Update Spanish Translation
Last update for v3.3
2015-11-28 20:44:23 -03:00
Mark Liversedge
1eb27f0176 URL for v3.3 defaults at goldencheetah.org
.. updated for new path, remote content is unchanged
   from v3.2 at this point.
2015-11-28 21:55:24 +00:00
Magnus Gille
aaba5e8f0d Merge remote-tracking branch 'upstream/master' into fit
Conflicts:
	src/FitRideFile.cpp
2015-11-28 12:09:28 -05:00
Joern
6613f2c9ee Merge pull request #1703 from Joern-R/translation
Update Translation DE
2015-11-28 16:02:46 +01:00
Joern
8c5d13fc25 Update Translation DE 2015-11-28 16:03:13 +01:00
Alejandro Martinez
483b513c9b Added sample chart using VDOT and vdottime formula
Also fixed comment in rTSS and formula for VDOT
2015-11-28 11:06:57 -03:00
Mark Liversedge
ac6c9b29d0 kqoauth gitignore
.. Ignore static libs too

[skip ci]
2015-11-28 09:50:02 +00:00
Mark Liversedge
54014e0bd9 Merge pull request #1701 from vlcvboyer/fix_fit_file
fix : 'break;' was commented at same time as function
2015-11-28 09:48:08 +00:00
Mark Liversedge
1bcd7cd860 Document REST API endpoints
.. need to add more narrative

[skip ci]
2015-11-28 09:18:21 +00:00
Vianney Boyer
6f91980228 fix : 'break;' was commented at same time as function 2015-11-28 09:35:44 +01:00
Alejandro Martinez
1a1d1fd353 Added sample chart to compare GOVSS and rTSS
rTSS = 110.78 * (Hours^1.025) * (IF^2)
from http://forum.slowtwitch.com/gforum.cgi?post=1730370#1730370
xPace is used as a proxy for NGP so IF = (60/xPace)/CV
2015-11-27 20:28:14 -03:00
Mark Liversedge
95ff987fb5 More missed functions
.. defined in lexer so missed in code scan

[skip CI]
2015-11-27 21:17:23 +00:00
Mark Liversedge
6a82e19e3b Missed off formula methods
[skip CI]
2015-11-27 21:11:34 +00:00
Mark Liversedge
a37fe414b2 Merge pull request #1694 from gille/track
Update .gitignore to ignore the .prl file that is dynamically generated.
2015-11-27 20:57:46 +00:00
Mark Liversedge
c9e00ee522 Formula Syntax
.. list of valid expressions, need to document them and
   add to the goldencheetah.org website.

[skip CI]
2015-11-27 20:57:16 +00:00
Magnus Gille
53e361ca05 Update .gitignore to ignore the .prl file that is dynamically generated. 2015-11-27 15:11:34 -05:00
Magnus Gille
ca38fff251 Add support for Garmin File Segments. 2015-11-27 00:43:58 -05:00
Magnus Gille
4d075f3571 Pass references to vectors instead of copying them. 2015-11-26 23:08:23 -05:00
Mark Liversedge
541d311f8e GPL v3 Licensed
.. updated COPYING file

.. We are GPL v3 to enable mixing with other licenses that
   become important due to the libraries we optionally link
   with that are already v3 or BSD/Apache/MIT; e.g. libsamplerate,
   libkml or use LGPL; e.g. libvlc

.. The intention of upgrading this license is to enable GC
   code to be shared more widely and used in other contexts
   without the restrictions that were present in v2 of the GPL.
2015-11-25 19:48:42 +00:00
Mark Liversedge
2dd42913be CI add before_deploy:
.. to workaround issues with deployment.
2015-11-25 16:10:42 +00:00
Mark Liversedge
eef8192420 V3.3 Release Candidate 3
.. marked up.
2015-11-25 15:28:42 +00:00
Mark Liversedge
1fa9db220c Fix 3DP file import 'hang'
.. the resampling code caused issues (not 100% sure why) so
   reimplemented using the resampling method from Txt file
   processing (also for Computrainers).

.. we know that approach is accurate since it accumulates
   work and resamples to 1s intervals precisely.

.. two regression impacts; we no longer import the virtual
   altitude and sample rate is 1s not 250ms.
2015-11-25 11:58:40 +00:00
Mark Liversedge
867efe2c39 Merge pull request #1699 from amtriathlon/master
Fixes TcxParser for HRM Swim files
2015-11-25 07:50:23 +00:00
grauser
5192d6f225 Joule GPS+ has a longer response in Get Unit Software Version 2015-11-25 07:49:13 +01:00
Alejandro Martinez
7d5b6a8bd6 Fixes TcxParser for HRM Swim files
They include one Trackpoint per second with HR,
but distance only once per length.
2015-11-24 21:29:23 -03:00
grauser
7cf63b4f15 TrainSidebar: Delete multiple workouts 2015-11-24 19:47:41 +00:00
Mark Liversedge
92071e3e9a Merge pull request #1697 from erikboto/monark_error_handling
Monark error handling
2015-11-24 15:40:14 +00:00
Mark Liversedge
dc8ca6cf75 Merge pull request #1696 from amtriathlon/master
Fixes Device Type identification for FIT lap swimming files
2015-11-24 14:21:30 +00:00
Erik Botö
dbe5632e94 Monark: Bail early if we can't open serial port 2015-11-24 13:28:22 +01:00
Alejandro Martinez
490af9381a Fixes Device Type identification for FIT lap swimming files 2015-11-24 09:19:17 -03:00
Mark Liversedge
b39427256d Merge pull request #1695 from gille/zones
Remove a couple of unused variables.
2015-11-24 07:16:59 +00:00
Alejandro Martinez
32dc6fecf3 Merge pull request #1693 from amtriathlon/master
Fixes Lap Swimming import for Garmin Swim drill mode
2015-11-23 23:29:34 -03:00
Magnus Gille
7886b5e120 Remove a couple of unused variables. 2015-11-23 21:00:22 -05:00
Alejandro Martinez
e74e8fc4dd Fixes Lap Swimming import for Garmin Swim drill mode
For native FIT and TCX files exported from Garming Connect
2015-11-23 22:53:00 -03:00
Erik Botö
c90264702f Monark: Improve stability of model detection and add some error messages when connections fails 2015-11-23 22:43:04 +01:00
Mark Liversedge
65f522f732 Merge pull request #1692 from gille/master
Fix W' zone percentage calculation.
2015-11-23 08:15:16 +00:00
Magnus Gille
07e74f7165 If the duration spent is 0, we should display 0, not NaN. 2015-11-23 00:12:01 -05:00
Mark Liversedge
e7cc1f09bd Formulas config(cranklength)
.. to get the configured crank length for use in formulas
   when calculating aepf/cpv as a user data series.
2015-11-22 23:45:48 +00:00
Mark Liversedge
d0b155c12d Fix FTP/CP view update
.. the CP history table update was not taking into
   account the useCPforFTP selection and mucking up
   the table view.

Fixes #1690
2015-11-22 22:47:57 +00:00
Mark Liversedge
a3c5e2c495 Merge pull request #1685 from vlcvboyer/fix-ant
fix ANT device reset requence
2015-11-22 18:50:34 +00:00
Mark Liversedge
154a46b66d AllPlot refresh on Units changed
.. if you change the units in preferences the plot
   should be refreshed to show distance, speed, temperature
   etc in the new units

Fixes #1688
2015-11-22 08:56:36 +00:00
Vianney Boyer
b41bba4a79 additional FR translations 2015-11-21 13:55:49 +01:00
Mark Liversedge
9d41a376a8 Merge pull request #1684 from vlcvboyer/add_bounding_box
add bounding box to meters widget overlays
2015-11-21 09:57:36 +00:00
Vianney Boyer
1613f032ff fix ANT device reset requence 2015-11-21 10:46:26 +01:00
Vianney Boyer
e476c5d732 add bounding box to meters widget overlays 2015-11-21 10:29:21 +01:00
Mark Liversedge
e79fc3753f Merge pull request #1683 from erikboto/monark_power_control_support
Monark: Add support for controlling power on LCx models
2015-11-20 12:21:18 +00:00
Erik Botö
40a061eda9 Monark: Add support for controlling power on LCx models
* Only supports setLoad, no gradient mode available on Monark bikes
* Renames m_lt2 since more models are supported
2015-11-20 11:54:48 +01:00
Mark Liversedge
c1e893187b Merge pull request #1682 from amtriathlon/SML
SML Lap Swimming support
2015-11-20 08:12:57 +00:00
Alejandro Martinez
d73a55ebc9 SML Lap Swimming support
Samples of swimming type are used to update distance and speed
of periodic samples, cadence is computed counting Stroke events.
Includes test file contributed by Serban Mestecaneanu
2015-11-19 21:22:38 -03:00
Mark Liversedge
62aced9ada Merge branch 'master' of github.com:GoldenCheetah/GoldenCheetah 2015-11-19 22:29:11 +00:00
Mark Liversedge
5bbf5bd5af V3.3 Release Candidate 2
.. update build and version number
2015-11-19 22:28:50 +00:00
Mark Liversedge
f466cda9df V3.3 Release Candidate 3
.. update build and version number
2015-11-19 22:26:44 +00:00
Mark Liversedge
66c403a3c2 Merge pull request #1681 from Joern-R/traindb
TrainDB -  fix //1 remove workout error
2015-11-19 21:04:20 +00:00
Joern
f7d222d99d TrainDB - fix //1 remove workout error
... caused error in list-model since entries are added and "end-of" dbtable
... now only update of texts in upgrade to handle pre 3.3 translation problems
2015-11-19 21:45:19 +01:00
Joern
4b38aff80f Merge pull request #1680 from Joern-R/translate
Update Translation DE
2015-11-19 19:39:10 +01:00
Joern
4516c866fb Update Translation DE 2015-11-19 19:39:33 +01:00
Mark Liversedge
b881771b47 Add Athlete Unique ID
.. for future use, we create a QUUID when the athlete is
   created and it is used for ever after that point.

.. it will be used to share data with the open data initiative
   to ensure activities can be collected for a single athlete
   without revealing any personal identifiable information.
2015-11-19 17:17:21 +00:00
Mark Liversedge
f65b62c13d API error message on bad athlete
.. if url athlete name is bad or missing we
   return an error message.
2015-11-19 15:22:15 +00:00
Mark Liversedge
555e8698fc Fix TSS/IF useCPforFTP logic
.. was the wrong way around.
2015-11-19 14:40:23 +00:00
Mark Liversedge
818b1cd573 Icons in Athlete Chooser
.. make it a bit more appealling.
2015-11-19 11:17:38 +00:00
Mark Liversedge
bdb599cc62 On change useFtpForCP trigger metric refresh
.. to recompute the Coggan metrics.
2015-11-18 19:24:41 +00:00
Mark Liversedge
00b8c2cdf6 Merge pull request #1679 from amtriathlon/FitLapSwim
Fixed Length average speed on Lap Swimming FIT files
2015-11-18 18:32:13 +00:00
Alejandro Martinez
6a85293872 Fixed Length average speed on Lap Swimming FIT files
Added 33m pool to standard distances
Added debug information for lap alignment issues with Garmin Swim and 920xt
2015-11-18 14:48:13 -03:00
Alejandro Martinez
e0ac708082 Update Spanish translation 2015-11-17 17:12:08 -03:00
Nick Burrett
c15451a85c src/Settings.h: Add #ifndef around GC_STRAVA_CLIENT_ID
Allows GC_STRAVA_CLIENT_ID to be defined via gcconfig.pri as
suggested in:
  https://github.com/GoldenCheetah/GoldenCheetah/pull/1672
2015-11-17 12:48:16 +00:00
Mark Liversedge
a54370f6d8 Merge pull request #1676 from prokoudine/master
Update Russian translation
2015-11-17 09:08:58 +00:00
grauser
fb717eefce honor "Use CP for FTP" in TSS 2015-11-17 07:38:44 +01:00
Alexandre Prokoudine
f5744a49af Update Russian translation 2015-11-17 02:15:23 +03:00
grauser
3111ede203 Coggan: Combobox for "Use CP for FTP" option 2015-11-16 22:41:50 +01:00
Mark Liversedge
7f7cc46992 Merge pull request #1673 from amtriathlon/master
Fixes Lap Swimming FIT import for Garmin Swim
2015-11-16 21:05:24 +00:00
Alejandro Martinez
751a57c7a0 Added Garmin Swim sample file
Contributed by forum user Portaner
2015-11-16 15:05:48 -03:00
Alejandro Martinez
cb7501ba5d Fixes Lap Swimming FIT import for Garmin Swim
Sport is now recognized as swimming and Pool length extracted from session message
There still remain lap alignment issues in some files from Garmin Swim and 920xt
2015-11-16 14:59:41 -03:00
Mark Liversedge
58f5fbb2b4 Checkbox metadata fields not saved
.. always set to unchecked by save due to changes
   to metadataFlush()

.. this has been there since v3.2 !
2015-11-16 14:39:44 +00:00
gcoco
80adc0bfa0 Replace liboauth with kQOauth 2015-11-16 01:32:08 -05:00
Nick Burrett
6e2d9593e5 Fix Elevation Fixups & Own API Key
..Support a user defined MapQuest API key in gcconfig.pri

.. Use exceptions to trap Bad Request and API errors and
   stop processing early.

.. Delete the networkMgr object to prevent a file descriptor leak
   which can cause GC to crash when fix-elevation is configured
   for auto-processing on import of files and there are many files
   being imported.
2015-11-15 23:13:05 +00:00
Mark Liversedge
5cf48bb5bb Merge pull request #1670 from nickb937/garmin_vector
ANT: Fix STD, CRANKTORQUE and TE_PS power event interaction
2015-11-15 21:55:22 +00:00
Nick Burrett
8a5708c219 ANT: Fix STD, CRANKTORQUE and TE_PS power event interaction
The ANT_TE_AND_PS_POWER events are directly related to
either the ANT_STANDARD_POWER or ANT_CRANKTORQUE_POWER events
(whichever is sooner).  The eventCount of TE_AND_PS will match
the eventCount of either of those events to be considered valid.

This change is required for Garmin Vector pedals which deliver
a sequence of ANT_STANDARD_POWER events, interleaved with
ANT_CRANKTORQUE_POWER events and occasional ANT_TE_AND_PS_POWER
events.  Without the change, the user will experience very frequent
power drop-outs (0W readings).  With the change, the power readings
are smooth and consistent.
2015-11-15 21:29:06 +00:00
Mark Liversedge
0a259ade8f Merge pull request #1668 from vlcvboyer/ANT-FEC_addon
Collect all FE-C trainer data
2015-11-15 09:48:13 +00:00
Vianney Boyer
d70e8c4af7 Collect all FE-C trainer data 2015-11-15 09:10:20 +01:00
Jon Escombe
11e78739ff Fixup Linux build for kqoauth 2015-11-14 21:53:15 +00:00
Mark Liversedge
c294e1ff4d Recognise Erik Boto
.. in the about dialog
2015-11-14 21:28:22 +00:00
Mark Liversedge
b642b45312 Merge pull request #1501 from cgiraldo/master
Added Sigma Rox 10.0 .slf file import support (it may also work with …
2015-11-14 21:02:31 +00:00
Mark Liversedge
e8bd6a8002 Merge pull request #1553 from nickb937/strava
Strava upload: set correct activity type
2015-11-14 21:00:17 +00:00
Mark Liversedge
6cf627b2fb Merge pull request #1663 from vlcvboyer/fix_bug_out_of_range
fix bug: potential [out of range]
2015-11-14 20:57:30 +00:00
Mark Liversedge
a26c8d2ee7 Merge pull request #1664 from amtriathlon/master
Fixes Lap Swimming FIT import from Garmin 920xt
2015-11-14 20:57:02 +00:00
Mark Liversedge
b67eb536f7 Merge pull request #1665 from vlcvboyer/minor_warning_fix
minor building warning fix
2015-11-14 20:56:47 +00:00
Mark Liversedge
427d2cd346 Merge pull request #1667 from vlcvboyer/VideoOverlayText
Add missing 'text' entry to parser
2015-11-14 20:52:11 +00:00
Vianney Boyer
95d8c60761 Add missing 'text' entry to parser 2015-11-14 17:59:45 +01:00
Vianney Boyer
eab115c470 minor building warning fix 2015-11-14 12:58:13 +01:00
Vianney Boyer
3c65bc2ea4 extend out of range fix in case of bad file 2015-11-14 11:03:56 +01:00
Alejandro Martinez
a1ee851c36 Fixes Lap Swimming FIT import from Garmin 920xt
It generates both record and length messages for
each length, we use length messages to recognize
lap swimming and filter out record messages.
Includes test file contributed by Jonathan Beverley
2015-11-13 19:01:11 -03:00
Vianney Boyer
c3ef27c340 fix bug: potential [out of range] 2015-11-13 21:33:33 +01:00
Mark Liversedge
0d868745ad V3.3 RC1 Marked Up
.. First release candidate
.. still need to look at default chart settings
2015-11-13 20:11:32 +00:00
Mark Liversedge
4048bf4ef8 SportsPlusHealth checkbox error
.. if no user defined don't set the checkbox in
   the share dialog (error caused by appsetting call
   not providing a default string).
2015-11-13 18:42:39 +00:00
Mark Liversedge
3552485227 Merge pull request #1643 from LucaRa177/master
SportPlusHelp Cloud Integration
2015-11-13 18:32:53 +00:00
Mark Liversedge
4df48f0168 ANT+ Devices include FE-C
.. in description to signpost users which one to
   use when pairing a Kickr, Neo etc

.. apologies to translators for late change to
   a text string
2015-11-13 13:13:51 +00:00
Mark Liversedge
1d1eba3799 Merge pull request #1662 from erikboto/monarksupport
Monarksupport
2015-11-13 13:07:37 +00:00
Erik Botö
f1c4908e3c Monark: TrainSidebar should only use MonarkController on Qt5 2015-11-13 13:46:04 +01:00
Erik Botö
fcc9df724a Monark: TrainSidebar should only include Monark header on Qt5 2015-11-13 13:26:34 +01:00
Erik Botö
9de481c2b2 Monark: enable on Qt5 only due to qtserialport depencency 2015-11-13 13:00:09 +01:00
Erik Botö
0e459c1013 Monark: Fix bug in discover where it would never timeout trying to read 2015-11-13 12:10:29 +01:00
Mark Liversedge
e10db64186 Merge pull request #1661 from bdb/fix-mac-gpu-1655
Enable GPU switching for Mac
2015-11-13 08:22:17 +00:00
Mark Liversedge
f18d9e13bb Merge pull request #1659 from amtriathlon/LapSwim
Add support for Lap Swimming FIT files
2015-11-13 08:16:42 +00:00
Brian Bergstrand
aba22f315c Enable GPU switching for Mac
Fixes #1655.
2015-11-12 22:02:17 -06:00
Alejandro Martinez
17019ff00a Add support for Lap Swimming FIT files
The length message is used to generate 1 sample per second with speed,
cadence and distance data.
One test file is included.
2015-11-12 20:28:42 -03:00
Mark Liversedge
2055c27944 Merge pull request #1658 from dresco/ANT-FEC
ANT FE-C
2015-11-12 22:29:45 +00:00
Jon Escombe
65bee72699 ANT FE-C Add a default load (100W) in train view
Otherwise FE-C devices start at 0W in manual erg mode.
2015-11-12 21:22:20 +00:00
grauser
3e4339251a AddIntervalDialog: Correct small bug
It was not possible to search time intervals if no distance...
2015-11-12 21:48:54 +01:00
Joern
f893f17594 Merge pull request #1657 from Joern-R/translation
Update Translation DE
2015-11-12 18:11:44 +01:00
Joern
18f3a87eaf Update Translation DE 2015-11-12 18:11:35 +01:00
Mark Liversedge
68ae5d74c0 Qmake unix includes mac
.. so need unix:!macx in the macro
2015-11-12 14:47:56 +00:00
Mark Liversedge
4503b3a351 KQOauth import for Debian build
.. when building on Debian there is no package for
   KQOauth, so as a temporary measure we're pulling it
   into the repo to support packaging.

.. as soon as a KQOauth package is made available we
   will remove it from our repo
2015-11-12 14:00:46 +00:00
Erik Botö
1e9893e569 Add initial Monark LTx/LCx support 2015-11-12 13:36:21 +01:00
Jon Escombe
ba778fa76f ANT FE-C Add to default device types in pairing dialog 2015-11-12 12:22:26 +00:00
grauser
cb2a89641d CsvRideFile: Add BSX Insight CSV support 2015-11-11 22:20:20 +01:00
Mark Liversedge
6539791e01 Merge pull request #1652 from Joern-R/Help
Update "HelpWhatsThis"
2015-11-11 20:38:19 +00:00
Mark Liversedge
3391ccbfdb Merge pull request #1653 from amtriathlon/master
Enable Share main menu translation and update spanish ts
2015-11-11 20:26:40 +00:00
Alejandro Martinez
13823bdff4 Enable Share main menu translation and update spanish ts
Missing tr() reported by Alexandre Prokoudine
2015-11-11 16:36:38 -03:00
Joern
32432ab068 Update "HelpWhatsThis"
... activate the added/inactive entries
... fix some outdated wiki URLs
2015-11-11 19:56:18 +01:00
Damien Grauser
28eb6e1b7d Merge pull request #1625 from vlcvboyer/tr_fr
french translation partial update
2015-11-11 18:00:24 +01:00
Vianney Boyer
6752adfe52 french translation partial update 2015-11-11 17:08:27 +01:00
Mark Liversedge
01839be878 Merge pull request #1650 from amtriathlon/master
Don't estimate Average Speed in ManualRideDialog
2015-11-11 14:05:16 +00:00
Alejandro Martinez
2e22b76464 ManualRideDialog remember when manual estimation was last used
It was part of the Average Speed estimation reverted commit and
it should be preserved
2015-11-11 10:27:54 -03:00
Alejandro Martinez
ea6224f8c7 Revert "Calculated avg Speed in Manual workout Dialog"
This reverts commit efd3859d2e.

Fixes #1645
2015-11-11 10:13:10 -03:00
grauser
c784ccde13 FixSmO2: Add a tool to remove anomyla from SmO2 2015-11-11 08:16:38 +01:00
grauser
3e2dccd91a Translation: lupdate on all ts files 2015-11-11 07:45:39 +01:00
grauser
591ac9b753 FixMoxy: Also valid for BSX Insight data 2015-11-11 07:42:06 +01:00
Mark Liversedge
d3abf3f99e Merge pull request #1648 from amtriathlon/Spanish
Update Spanish Translation
2015-11-10 23:13:33 +00:00
Alejandro Martinez
c22fe3b315 Update Spanish Translation
Also set the translation context on some clases lacking it
2015-11-10 19:22:47 -03:00
gcoco
718a838709 Fix GC check 2015-11-10 15:22:56 -05:00
Joern
db6c662207 Merge pull request #1647 from Joern-R/Wiki-Screenshot
Wiki - Screenshots 3.3 Update
2015-11-10 19:12:53 +01:00
Joern
fd386a473b Wiki - Screenshots 3.3 Update
... first set
2015-11-10 19:12:16 +01:00
Mark Liversedge
f04f3c9cea Always save if user hits Cmd-S
.. the dirty flag will not be set if saving whilst editing
   a field - the metadataFlush clears out the changes but
   will not setDirty.
2015-11-10 10:35:38 +00:00
Claus Assmann
506f4a71bc Defensive programming: GC_VIDEO_*
.. It seems like a good idea to provide a default value,
   or you could just add a different #else case, e.g.,
   .arg("no GC_VIDEO_ value provided"), or fail compilation.
2015-11-09 14:44:38 +00:00
Luca Rasina
ed0edc2d22 Modified JSON parsing to use MVJSONReader instead of QJsonDocument 2015-11-09 14:29:04 +01:00
Luca Rasina
c517fd3c7b Removed utility library 2015-11-09 13:41:24 +01:00
Luca Rasina
6b996c27b3 Code review 2015-11-09 11:51:23 +01:00
Luca Rasina
7cb8daefa3 Substituted the pwr file creation with a tcx one 2015-11-09 11:49:10 +01:00
Luca Rasina
a18358f998 Fixed progress bar filling while uploading 2015-11-09 11:46:55 +01:00
Luca Rasina
ff4585a863 Fixed JSON server reply management 2015-11-09 11:41:15 +01:00
Luca Rasina
feee94b4fb Reviewing communication code for the uploader class 2015-11-09 11:34:22 +01:00
Luca Rasina
695c78f126 Completed the share dialog code to correctly launch upload to
SportPlusHealth. We still need to review and complete the communication
2015-11-09 11:15:21 +01:00
Luca Rasina
39ab699e41 Created a place for us in the share dialog, and (an initial structure
of) the classes needed to manage the upload procedure
2015-11-09 11:13:45 +01:00
Luca Rasina
363678f729 Start of development for the SPH communication tools. Prepared the fields
to insert user credentials, which will be used for login to our APIs
2015-11-09 10:59:56 +01:00
Mark Liversedge
d384f5bad7 Merge pull request #1642 from vlcvboyer/warning_fix
fix few compiler warning and related minor bugs
2015-11-08 23:26:49 +00:00
Vianney Boyer
5e26557130 fix few compiler warning and related minor bugs 2015-11-08 23:45:00 +01:00
Mark Liversedge
733941f35b Github download stats
.. usage: python gh-downloads.py GoldenCheetah GoldenCheetah <tag>
   will fetch the binary downloads stats for the release with
   the specified tag (e.g. v3.2)

.. it is a clone from: https://github.com/kefir500/ghstats
2015-11-08 21:24:50 +00:00
Mark Liversedge
8c0637754a Recognise Nick Burrett
.. in about box contributors list
2015-11-08 20:26:52 +00:00
Mark Liversedge
1f87338d09 Merge pull request #1640 from nickb937/garmindevs
Recognise more Garmin devices based on FIT SDK
2015-11-08 20:22:13 +00:00
Nick Burrett
8bb3ffe761 Recognise more Garmin devices based on FIT SDK 2015-11-08 20:15:40 +00:00
Mark Liversedge
1fec549014 CI Use default Travis environment
.. 10.9 and Xcode 6 right now
.. see if the deployment works. sigh.
2015-11-08 14:10:29 +00:00
Mark Liversedge
8279b22f42 CI Fix macdeployqt AFTER it runs
.. LOL
2015-11-08 13:32:29 +00:00
Mark Liversedge
83f9d44fc2 Re-order includes main.cpp
.. why does it bork on brew qt 5.5.1
2015-11-08 12:44:58 +00:00
Mark Liversedge
f0ae40fbfa CI OSX Image xcode7.2b1 NOT xcode7.2 2015-11-08 12:13:30 +00:00
Mark Liversedge
02d51156cd CI Xcode 7.2 on El Cap with QT5.5
.. see if it helps !
2015-11-08 12:05:24 +00:00
Mark Liversedge
3c99576313 CI .py missing
.. from name of macdeployqtfix.py
2015-11-08 10:21:53 +00:00
Mark Liversedge
8837306bb6 CI add macdeployqtfix.py
.. see if it can help with the created bundle
2015-11-08 10:07:02 +00:00
gcoco
04c5a77d7e APP is found at /Volumes/GoldenCheetah
[ci skip]
2015-11-07 23:15:17 -05:00
Mark Liversedge
85437c8c3d CI Back to prior state, test ok
.. but binary created is broken
2015-11-07 23:34:58 +00:00
Mark Liversedge
15b5b596a0 CI Test remove main.cpp (!)
.. is there something weird about that source file (!?)

NOTE ** BUILD WILL NOW FAIL TO LINK     **
     ** WILL REVERT ONCE TEST COMPLETES **
2015-11-07 23:17:47 +00:00
Mark Liversedge
a07180b960 CI Try Brew QT551 with XCode 7.0
.. sadly running out of ideas.
2015-11-07 23:03:38 +00:00
Mark Liversedge
815e36e463 CI move main.cpp to fail early!
.. whilst debugging build issues.
2015-11-07 22:44:03 +00:00
Mark Liversedge
c49fb3acf3 CI brew update twice
.. in the XCode 6.4 image brew needs this fixup
   all a bit naff. See: https://github.com/Homebrew/homebrew/issues/42553
2015-11-07 22:10:09 +00:00
Mark Liversedge
f5232e5cb9 CI Try QT5.5.1 with XCode 6.4
.. which uses the 10.10 sdk
2015-11-07 21:53:38 +00:00
Mark Liversedge
5d6ba9d868 Revert "CI Another Test for QT5.5 and XCode 7.1"
This reverts commit c6a134adb3.

Giving up for now on QT5.5
2015-11-07 21:34:23 +00:00
Mark Liversedge
c6a134adb3 CI Another Test for QT5.5 and XCode 7.1
.. setting QMAKE_MAC_SDK when running qmake to see if it helps....
2015-11-07 20:48:48 +00:00
Mark Liversedge
56944bc09b CI Dropbox secrets
.. were moved to Secrets.h, no need to edit them
   out of comments in gcconfig.pri
2015-11-07 20:32:17 +00:00
Mark Liversedge
4ee0562f56 Merge pull request #1638 from dresco/ANT-FEC
ANT FE-C
2015-11-07 20:25:43 +00:00
Mark Liversedge
394591c805 Merge pull request #1636 from Joern-R/autobackup2
Autobackup
2015-11-07 20:25:33 +00:00
Mark Liversedge
d72ea80f15 Merge pull request #1626 from vlcvboyer/adjust_trig
adjust ANT null rpm trigger values
2015-11-07 20:25:26 +00:00
Mark Liversedge
ee6ff308be Revert "CI Test build with QT5.5 and XCode 7.1"
This reverts commit 2f9d74d759.

Will come back and look again at QT5.5 with QT7 but for
now lets just stick with the method that works (albeit the
binary created doesn't work!)
2015-11-07 20:23:03 +00:00
Mark Liversedge
2f9d74d759 CI Test build with QT5.5 and XCode 7.1
.. may need to fixup QMAKE_MAC_SDK too, but want to
   test building with QT5.5.1
2015-11-07 19:47:07 +00:00
Jon Escombe
07ef48ec06 ANT FE-C Add comments describing alternative slope mode support
If a trainer does not advertise simulation support, it could be
put into power mode, with GC calcuating the required load from
current speed/gradient etc.
2015-11-07 19:10:35 +00:00
Jon Escombe
4a33fd5f38 ANT: Avoid race condition when pairing
setChannelID() could be called with a null device_id. This may
result in pairing with an unexpected channel type if more than
one channel is available from that device_number.
2015-11-07 18:59:07 +00:00
Mark Liversedge
8290a19b47 Sintegral Qwt3D fixup for QT5.5.1 *only*
.. only need to fix when compiling on later release of QT
2015-11-07 18:47:29 +00:00
Mark Liversedge
653199b8ee Fix QT5.5.1 compile with Sintegral Qwt3D fork
.. isnan -> std::isnan via a macro
2015-11-07 18:27:17 +00:00
Mark Liversedge
e592d79463 Public Development Build for v3.3
.. change strings.
2015-11-07 16:38:04 +00:00
Mark Liversedge
55ce8d5103 CI fix path to check-gc.sh
[skip ci]
2015-11-07 16:30:16 +00:00
Mark Liversedge
95e5f66fce CI Back to 5.4.2
.. brew 5.5.1 has problems
.. reinstate 3d
.. fixup missing cocoa dynamic lib
2015-11-07 16:08:33 +00:00
Mark Liversedge
3a514ef77f CI Disable QwtPlot3d and Qt4 builds
.. don't want qt4 any more

.. qwtplot3d fails to build on QT 5.5, we may need to think about
   either pulling it into the repo and patching, or just deprecating
   it altogether.
2015-11-07 15:04:30 +00:00
Mark Liversedge
a483edd52e CI Brew install $QT
.. eschew the install script and get the latest and greatest for
   the branch being installed qt4 or qt5
2015-11-07 14:48:54 +00:00
Joern
96c9d9c6af Autobackup
... additional information what "sequence" means
... fixing https://github.com/GoldenCheetah/GoldenCheetah/issues/1628
2015-11-07 15:10:53 +01:00
Mark Liversedge
0994827056 Merge pull request #1635 from Joern-R/translation
Translation DE
2015-11-07 14:08:38 +00:00
Joern
871b18704a Translation DE
... some terminology cleanup
... removing button fixed size (since it's getting to small for localized text)
2015-11-07 14:46:20 +01:00
Mark Liversedge
0239176ce6 Fix Freewheeling Tool
.. for ANT+ CTF devices that are incorrectly recorded such
   that Cadence/Power are repeated 3 times when the rider
   starts to freewheel.

   This was a common issue with Garmin firmware and is now
   happening with SRM PC8 bike computers -- so added a tool
   to fix it.
2015-11-07 11:50:04 +00:00
Mark Liversedge
dbd6ace7dc Merge pull request #1624 from dresco/ANT-FEC
ANT FE-C
2015-11-07 11:24:17 +00:00
Mark Liversedge
370217d2b8 Increment RideMetric count 2015-11-07 08:35:57 +00:00
Mark Liversedge
ef46ceb27c Support 10 HR Zone Metrics
.. fixes a SEGV in ride summary window where only 8
   HR Zones are supported, but historically the number that
   can be configured in preferences was changed to 10.

.. the 10 limit was probably a cut and paste error but it
   is out there now, so we need to support 10 zones.

.. all the other zone configurations are set to a max
   of 10 zones anyway.
2015-11-07 08:29:08 +00:00
Vianney Boyer
8e81ed9c64 adjust ANT null rpm trigger values 2015-11-06 11:03:28 +01:00
Mark Liversedge
c6f09f966e Editor check for duplicated power/cadence
.. when freewheeling some headunits record the repeated
   power/cadence values rather than resetting them.

.. the ANT spec for CTF power devices says that these
   should be reset after 3 seconds on the display -- but
   crucially they should also not be recorded in the file.

.. we should also add a 'fix tool' to find and fix these issues.
2015-11-06 03:10:31 +00:00
Jon Escombe
3c5b41a459 ANT FE-C Remove duplicated check for channel type 2015-11-05 18:37:35 +00:00
Jon Escombe
5220b84bc3 ANT FE-C Check capabilities before setting load in erg mode 2015-11-05 18:13:34 +00:00
Jon Escombe
1b81822df3 ANT FE-C Detect capabilities on initial connection 2015-11-05 18:13:18 +00:00
Mark Liversedge
8b17eef298 Merge pull request #1623 from dresco/ANT-FEC
ANT FE-C Add periodic refresh of gradient in slope mode
2015-11-05 14:08:19 +00:00
Jon Escombe
fc4ce118bc ANT FE-C Add periodic refresh of gradient in slope mode
As per the refresh in ergo mode, this is a workaround for
missing acknowledgements.
2015-11-05 13:20:41 +00:00
Alejandro Martinez
eded6f5b4d Fixed use of abs instead of fabs
Some compilers choose the integer version when scope is not explicit,
changed to fabs for clarity sake.
2015-11-03 20:57:37 -03:00
Mark Liversedge
5169c16244 Merge pull request #1621 from Joern-R/translation-DE
Translation DE
2015-11-03 20:24:55 +00:00
Joern
166f61bc57 Translation DE
... update Translation
..  one little improvement in Translation enablement
2015-11-03 20:40:49 +01:00
Mark Liversedge
b0b24c0f3a Added W'bal Work In Zone Metrics 2015-11-03 18:55:21 +00:00
Mark Liversedge
697342ca5a CI Reinstate QT4 and fix syntax
.. in .travis.kml
2015-11-03 15:43:05 +00:00
Alejandro Martinez
b204e85fe5 Enable WCPZoneTime when Power Data is present
For consistency sake
2015-11-03 12:37:41 -03:00
Mark Liversedge
5f073f781d Merge pull request #1620 from Joern-R/ini-old
Fix SEGV when using "Library/GoldenCheetah" athlete directory (in 3.3… only
2015-11-03 15:36:18 +00:00
Mark Liversedge
4436ca5a18 CI Deprecate QT4 and remove KML from QT5
.. should get a working build based on QT5
2015-11-03 15:19:18 +00:00
Joern
98858da51c Fix SEGV when using "Library/GoldenCheetah" athlete directory (in 3.3 only)
... problem relates to introduction of new .INI files
... old /gc ini file approach is still in place - now again working
2015-11-03 16:13:54 +01:00
Mark Liversedge
ea2a66e399 Add W'bal Zones - Time above CP
.. to see how much time is spent above CP
   whilst in different fatigued states.
2015-11-03 14:42:36 +00:00
Mark Liversedge
22e3ee1ca6 Merge pull request #1619 from amtriathlon/Stryd
Basic Stryd (Power Meter for Running) support
2015-11-03 14:41:18 +00:00
Alejandro Martinez
1a57e45fb6 Basic Stryd (Power Meter for Running) support
Enables power metrics for non cycling activities when power data is present.
2015-11-03 11:29:53 -03:00
Nick Burrett
6a0660bd83 Strava upload: set correct activity type 2015-09-08 12:10:55 +01:00
Carlos Giraldo
008395d6c9 Added test file for sigma rox 10.0 slf rides. 2015-08-08 13:11:27 +02:00
Carlos Giraldo
0c57e500a1 Added Sigma Rox 10.0 .slf file import support (it may also work with Rox 9.9 but it is not tested).
Imported data:
 - speed, cadence, hearthrate, power, latitude, longitude, altitude, temperature.
Laps are not yet supported. (laps in Rox 10.0 slf are encoded at the end of the file as <Markers>).
2015-08-08 12:28:35 +02:00
1100 changed files with 1009547 additions and 94114 deletions

20
.gitignore vendored
View File

@@ -1,14 +1,32 @@
Makefile
.qmake.stash
*.o
*.so.*
*.so
*.a
*~
*.orig
*.rej
# old skool
.svn
*.pri
*.prl
*.swp
*.user
# osx noise
.DS_Store
profile
# qmake Xcode generator side-effects
*.xcodeproj
xcshareddata/
*.xcworkspace
*.pbxproj
*.mak
*.build/
moc_*
moc/
obj/
lib/

View File

@@ -8,7 +8,7 @@ compiler:
env:
matrix:
- BRANCH=master QT=qt4 QT_PATH=qt
- BRANCH=master QT=qt5 QT_PATH=qt5
- BRANCH=master QT=qt5 QT_PATH=qt5 QT_VER=5.5.1
global:
- secure: iqYW7f3//ZkMVzeCEarYn0S0DqKjFU9juBh0KF6WTlUsKX902Jtsk7dFoJlNDYBf63HLgV+wW2Hc6MxI9sGiUkom0gY9/To/aeGIJFGEX2sLm/e0Ok3qN521FA0Q/OiCFsD0RC6J+yrHxzI+rf8Z1rujceUsz2KgsrfAjYYv+BY=
- secure: C6f58PXwvvHeVOjCLbyDRjgyF0tk+bXjCNUDur8VJLhJEGNdnrt+rH+d3azYaX0n348ZnQZ14as4M4rHjN1A/3DRbdUdOS7PQZrkj/n363ck1tvYOG/tzYqkEcVoQyjIJ7ZoTuBXDQry/VJmLxQjM0glTa2upNFHMOMwqZNkF+I=
@@ -17,24 +17,29 @@ env:
- secure: rb/MKPHEK8yOK5uYpXq2o+MQ7h65ft+c/xE9XmLFk1jLnK0oxe6+KeoSFlQ0n5UwLSsHrytMXVaUHex6EEt0TheXFlohi7BcNFWRWXr+wLucuaPjMnU49VErrSigjJ5VW/rcR7fORmnDwn5y06r3Rer9SC1hImCxf/pqF8hFZps=
- secure: FXJzm98lwbc1R2eh9/CvVReVRHEPLDm+sCRjiV9HJgeCveIUauLasp9Skamz0c6OKLmkjLY8JERPT491ZgCG8YcQ9x1bM8HGbmRqnn9xSUxINIRzVmyTiLMBoT/ibHHeFjFpyiGfukOAkHwMNNsrSrbaekhiJuekaXo7iTwYQB0=
before_install:
## try early just to check, can delete later
- date
- brew update
- sh travis/install-qt.sh
##- brew install $QT
- brew install libical
- brew install libusb libusb-compat
- brew install srmio
- brew install libsamplerate
- brew install --HEAD travis/libkml.rb
- brew tap homebrew/science
- brew install r
## Disable KML for now
##- brew install --HEAD travis/libkml.rb
- sudo chmod -R +w /usr/local
- curl -O http://www.ftdichip.com/Drivers/D2XX/MacOSX/D2XX1.2.2.dmg
- git clone --depth 1 https://github.com/sintegrial/qwtplot3d.git qwtplot3d
- cd qwtplot3d
- CC=clang CXX=clang++ /usr/local/opt/$QT_PATH/bin/qmake -makefile -recursive QMAKE_CXXFLAGS_WARN_ON+=-Wno-unused-private-field
- CC=clang CXX=clang++ /usr/local/opt/$QT_PATH/bin/qmake -makefile -recursive QMAKE_CXXFLAGS_WARN_ON+="-Wno-unused-private-field -Wno-c++11-narrowing"
- CC=clang CXX=clang++ make -j2
- cd ..
- git clone --branch 0.98 https://github.com/kypeli/kQOAuth.git kQOAuth-0.98
- cd kQOAuth-0.98
- CC=clang CXX=clang++ /usr/local/opt/$QT_PATH/bin/qmake -makefile -recursive QMAKE_CXXFLAGS_WARN_ON+=-Wno-unused-private-field
- CC=clang CXX=clang++ /usr/local/opt/$QT_PATH/bin/qmake -makefile -recursive QMAKE_CXXFLAGS_WARN_ON+="-Wno-unused-private-field -Wno-c++11-narrowing"
- CC=clang CXX=clang++ make -j2 qmake_all
- CC=clang CXX=clang++ sudo make install
- cd ..
@@ -45,7 +50,7 @@ before_script:
- sudo cp /Volumes/release/D2XX/Object/10.5-10.7/x86_64/libftd2xx.1.2.2.dylib /usr/local/lib
- cp /Volumes/release/D2XX/bin/*.h D2XX
- sed -i "" "s|libftd2xx.dylib|@executable_path/../Frameworks/libftd2xx.1.2.2.dylib|"
src/D2XX.cpp
src/FileIO/D2XX.cpp
- cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri
- cp src/gcconfig.pri.in src/gcconfig.pri
- /usr/local/opt/$QT_PATH/bin/lupdate src/src.pro
@@ -54,6 +59,8 @@ before_script:
src/gcconfig.pri
- sed -i "" "s|#\(QMAKE_CXXFLAGS\).*|\1_RELEASE += -mmacosx-version-min=10.7 -arch
x86_64|" src/gcconfig.pri
- sed -i "" "s|^#CloudDB|CloudDB|" src/gcconfig.pri
- sed -i "" "s|^#LIBZ|LIBZ|" src/gcconfig.pri
- sed -i "" "s|#\(SRMIO_INSTALL =.*\)|\1 /usr/local|" src/gcconfig.pri
- sed -i "" "s|#\(D2XX_INCLUDE =.*\)|\1 ../D2XX|" src/gcconfig.pri
- sed -i "" "s|#\(D2XX_LIBS =.*\)|\1 -L../D2XX -lftd2xx.1.2.2|" src/gcconfig.pri
@@ -63,49 +70,55 @@ before_script:
- sed -i "" "s|#\(KQOAUTH_LIBS =.*\)|\1 -F\$\$[QT_INSTALL_LIBS] -framework kqoauth|"
src/gcconfig.pri
- sed -i "" "s|#\(QWT3D_INSTALL =.*\)|\1 ../qwtplot3d|" src/gcconfig.pri
- sed -i "" "s|#\(KML_INSTALL =\).*|\1 /usr/local|" src/gcconfig.pri
- sed -i "" "s|#\(KML_LIBS =.*\)|\1 -L/usr/local/lib -lkmlxsd -lkmlregionator -lkmldom
-lkmlconvenience -lkmlengine -lkmlbase|" src/gcconfig.pri
## Disable KML for now
##- sed -i "" "s|#\(KML_INSTALL =\).*|\1 /usr/local|" src/gcconfig.pri
##- sed -i "" "s|#\(KML_LIBS =.*\)|\1 -L/usr/local/lib -lkmlxsd -lkmlregionator -lkmldom
## -lkmlconvenience -lkmlengine -lkmlbase|" src/gcconfig.pri
- sed -i "" "s|#\(ICAL_INSTALL =.*\)|\1 /usr/local|" src/gcconfig.pri
- sed -i "" "s|#\(ICAL_LIBS =.*\)|\1 -L/usr/local/lib -lical|" src/gcconfig.pri
- sed -i "" "s|#\(LIBUSB_INSTALL =\).*|\1 /usr/local|" src/gcconfig.pri
- sed -i "" "s|#\(LIBUSB_LIBS =.*\)|\1 -L/usr/local/lib -lusb|" src/gcconfig.pri
- sed -i "" "s|#\(LIBUSB_LIBS =.*\)|\1 -L/usr/local/lib -lusb -lusb-1.0|" src/gcconfig.pri
- sed -i "" "s|#\(SAMPLERATE_INSTALL =\).*|\1 /usr/local|" src/gcconfig.pri
- sed -i "" "s|#\(SAMPLERATE_LIBS =\).*|\1 -L/usr/local/lib -lsamplerate|" src/gcconfig.pri
- sed -i "" "s|#\(DEFINES += GC_HAVE_LION*\)|\1|" src/gcconfig.pri
- sed -i "" "s|#\(HTPATH = ../httpserver.*\)|\1 |" src/gcconfig.pri
- sed -i "" "s|#\(DEFINES += GC_DROPBOX*\)|\1 |" src/gcconfig.pri
- sed -i "" "s|#\(DEFINES += GC_WANT_ROBOT.*\)|\1 |" src/gcconfig.pri
- sed -i "" "s|\(DEFINES += GC_VIDEO_NONE.*\)|#\1 |" src/gcconfig.pri
- sed -i "" "s|#\(DEFINES += GC_VIDEO_QUICKTIME.*\)|\1 |" src/gcconfig.pri
##Issues with c++11 and stdlib on travis and dependencies (e.g. plot3d)
- sed -i "" "s|#\(DEFINES += GC_WANT_R.*\)|\1 |" src/gcconfig.pri
- echo "QMAKE_CFLAGS_RELEASE += -mmacosx-version-min=10.7 -arch x86_64" >> src/gcconfig.pri
- sed -i "" "s/__GC_GOOGLE_CALENDAR_CLIENT_SECRET__/"$GC_GOOGLE_CALENDAR_CLIENT_SECRET"/" src/Secrets.h
- sed -i "" "s/__GC_STRAVA_CLIENT_SECRET__/"$GC_STRAVA_CLIENT_SECRET"/" src/Secrets.h
- sed -i "" "s/__GC_DROPBOX_CLIENT_SECRET__/"$GC_DROPBOX_CLIENT_SECRET"/" src/Secrets.h
- sed -i "" "s/__GC_CYCLINGANALYTICS_CLIENT_SECRET__/"$GC_CYCLINGANALYTICS_CLIENT_SECRET"/" src/Secrets.h
- sed -i "" "s/__GC_TWITTER_CONSUMER_SECRET__/"$GC_TWITTER_CONSUMER_SECRET"/" src/Secrets.h
- sed -i "" "s/__GC_GOOGLE_CALENDAR_CLIENT_SECRET__/"$GC_GOOGLE_CALENDAR_CLIENT_SECRET"/" src/Core/Secrets.h
- sed -i "" "s/__GC_STRAVA_CLIENT_SECRET__/"$GC_STRAVA_CLIENT_SECRET"/" src/Core/Secrets.h
- sed -i "" "s/__GC_DROPBOX_CLIENT_SECRET__/"$GC_DROPBOX_CLIENT_SECRET"/" src/Core/Secrets.h
- sed -i "" "s/__GC_CYCLINGANALYTICS_CLIENT_SECRET__/"$GC_CYCLINGANALYTICS_CLIENT_SECRET"/" src/Core/Secrets.h
- sed -i "" "s/__GC_TWITTER_CONSUMER_SECRET__/"$GC_TWITTER_CONSUMER_SECRET"/" src/Core/Secrets.h
- cat src/gcconfig.pri
script:
- CC=clang CXX=clang++ /usr/local/opt/$QT_PATH/bin/qmake -makefile -recursive QMAKE_CXXFLAGS_WARN_ON+=-Wno-unused-private-field
- CC=clang CXX=clang++ /usr/local/opt/$QT_PATH/bin/qmake -makefile -recursive QMAKE_CXXFLAGS_WARN_ON+="-Wno-unused-private-field -Wno-c++11-narrowing"
- CC=clang CXX=clang++ make qmake_all
- CC=clang CXX=clang++ make -j4 sub-qwt --silent
- CC=clang CXX=clang++ make -j4 sub-src
after_success:
- cd src
- ls -laR GoldenCheetah.app
- sh travis/check-gc.sh
- GoldenCheetah.app/Contents/MacOS/GoldenCheetah --help
- /usr/local/opt/$QT_PATH/bin/macdeployqt GoldenCheetah.app -verbose=2 -dmg
## fix up the bundle with macdeployqtfix
- python ../travis/macdeployqtfix.py GoldenCheetah.app /usr/local/opt/$QT_PATH
- brew remove $QT
- mv GoldenCheetah.dmg GoldenCheetah_$QT.dmg
- hdiutil mount GoldenCheetah_$QT.dmg
- cd /Volumes/GoldenCheetah_$QT
- cd /Volumes/GoldenCheetah
- ls -laR GoldenCheetah.app
- GoldenCheetah.app/Contents/MacOS/GoldenCheetah --help
deploy:
provider: releases
api_key: $GH_OAUTH_TOKEN
file: GoldenCheetah_$QT.dmg
skip_cleanup: true
on:
tags: true
##deploy broken in travis, read-only filesystem error
##before_deploy:
##- gem install mime-types -v 2.6.2
##deploy:
## provider: releases
## api_key: $GH_OAUTH_TOKEN
## file: GoldenCheetah_$QT.dmg
## skip_cleanup: true
## on:
## tags: true

839
COPYING
View File

@@ -1,285 +1,626 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
TERMS AND CONDITIONS
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
0. Definitions.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
"This License" refers to version 3 of the GNU General Public License.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
A "covered work" means either the unmodified Program or a work based
on the Program.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
1. Source Code.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
The Corresponding Source for a work in source code form is that
same work.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
2. Basic Permissions.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
13. Use with the GNU Affero General Public License.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
14. Revised Versions of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
NO WARRANTY
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
15. Disclaimer of Warranty.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
END OF TERMS AND CONDITIONS
16. Limitation of Liability.
How to Apply These Terms to Your New Programs
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -287,15 +628,15 @@ free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
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
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
@@ -304,37 +645,31 @@ the "copyright" line and a pointer to where the full notice is found.
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
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@@ -20,7 +20,7 @@ CONTENTS
2. ADDING OPTIONAL DEPENDENCIES
- FTDI D2XX
- SRMIO
- liboauth
- kQOAuth
- QwtPlot3d
- libkml
- libusb
@@ -94,12 +94,12 @@ $ 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.
wanting to build a particular release you need to checkout the release. To
build a release you need to checkout the code at the tag for the release.
$ checkout release_3.0.0dev
A list of releases can be found at: https://github.com/GoldenCheetah/GoldenCheetah/tags
$ git checkout V3.3-RC1
$ ls
You will now see an updated version of this walkthrough, please jump to using
@@ -114,13 +114,13 @@ 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
As of today, the latest stable release is 5.6.0, 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
The url for QT downloads is: https://www.qt.io/download-open-source/#section-2 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).
@@ -141,9 +141,9 @@ 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:
user programs folder. For QT SDK (5.6) we need to:
$ sudo ln -s ~/QtSDK/Desktop/Qt/474/gcc/bin/qmake /usr/bin/qmake
$ sudo ln -s ~/Qt5.6.0/5.6/clang_64/bin/qmake /usr/local/bin/qmake
1.5.1 Install via Mac Ports
---------------------------
@@ -227,7 +227,7 @@ And you're up and running.
===============================
- SRMIO
- liboauth
- kQOAuth
- QwtPlot3d
- libkml
- libusb
@@ -244,12 +244,13 @@ should be taken into account.
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
----------------------------------
2.2 kQOAuth - For OAuth Authentication
--------------------------------------
oauth (0.8.8)
kQOauth (0.98)
qmake
./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
-----------------------------------

View File

@@ -8,8 +8,12 @@ INSTALL-LINUX For building on Ubuntu Linux
INSTALL-MAC For building on Apple OS X
[![Build Status](https://travis-ci.org/GoldenCheetah/GoldenCheetah.svg?branch=master)](https://travis-ci.org/GoldenCheetah/GoldenCheetah)
OSX: [![Build Status](https://travis-ci.org/GoldenCheetah/GoldenCheetah.svg?branch=master)](https://travis-ci.org/GoldenCheetah/GoldenCheetah)
Windows: [![Build status](https://ci.appveyor.com/api/projects/status/i6dwn4m8oyu52ihi?svg=true)](https://ci.appveyor.com/project/Joern-R/goldencheetah-knhd8)
[![Coverity Status](https://scan.coverity.com/projects/7503/badge.svg)](https://scan.coverity.com/projects/goldencheetah-goldencheetah)
Alternatively official builds are available from http://www.goldencheetah.org
whilst latest developer builds are available from http://goldencheetah.stand2surf.net
whilst latest developer builds are available from https://github.com/GoldenCheetah/GoldenCheetah/releases

32
appveyor.yml Normal file
View File

@@ -0,0 +1,32 @@
version: ci.{build}
image: Visual Studio 2015
clone_depth: 1
init:
# Setup QT 5.6.0 - 64Bit
- set QTDIR=C:\Qt\5.6\msvc2015_64
- set PATH=%QTDIR%\bin;%PATH%
# Setup MSVC - VS 2015
- CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
# Get the libraries
- ps: Start-FileDownload 'https://github.com/Joern-R/gc-ci-libs/releases/download/0.0.2/gc-ci-libs.zip' -Filename 'c:/gc-ci-libs.zip'
- 7z x c:/gc-ci-libs.zip -oC:\libs
install:
# choco install winflexbison
- copy qwt\qwtconfig.pri.in qwt\qwtconfig.pri
- copy c:\libs\gcconfig64-Release.appveyor.pri src\gcconfig.pri
build_script:
- qmake.exe build.pro -r -spec win32-msvc2015
- nmake
#notifications:
#- provider: GitHubPullRequest
# on_build_success: true
# on_build_failure: true
# on_build_status_changed: true

View File

@@ -1,3 +1,7 @@
TEMPLATE = subdirs
SUBDIRS = qwt src
SUBDIRS = qwt
unix:!macx {
SUBDIRS += kqoauth
}
SUBDIRS += src
CONFIG += ordered

Binary file not shown.

View File

@@ -167,7 +167,7 @@ BestIntervalDialog::findClicked()
}
QList<BestInterval> results;
findBests(ride, windowSizeSecs, maxIntervals, results);
findBests(ride, Specification(), windowSizeSecs, maxIntervals, results);
// clear the table
clearResultsTable(resultsTable);
@@ -253,7 +253,7 @@ BestIntervalDialog::findClicked()
}
void
BestIntervalDialog::findBests(const RideFile *ride, double windowSizeSecs,
BestIntervalDialog::findBests(const RideFile *ride, Specification spec, double windowSizeSecs,
int maxIntervals, QList<BestInterval> &results)
{
QList<BestInterval> bests;
@@ -266,7 +266,10 @@ BestIntervalDialog::findBests(const RideFile *ride, double windowSizeSecs,
if (windowSizeSecs > ride->dataPoints().last()->secs + secsDelta) return;
// We're looking for intervals with durations in [windowSizeSecs, windowSizeSecs + secsDelta).
foreach (const RideFilePoint *point, ride->dataPoints()) {
RideFileIterator it(const_cast<RideFile*>(ride), spec);
while (it.hasNext()) {
struct RideFilePoint *point = it.next();
// Discard points until interval duration is < windowSizeSecs + secsDelta.
while (!window.empty() && (intervalDuration(window.first(), point, ride) >= windowSizeSecs + secsDelta)) {
totalWatts -= window.first()->watts;
@@ -302,7 +305,7 @@ BestIntervalDialog::findBests(const RideFile *ride, double windowSizeSecs,
}
void
BestIntervalDialog::findBestsKPH(const RideFile *ride, double windowSizeSecs,
BestIntervalDialog::findBestsKPH(const RideFile *ride, Specification spec, double windowSizeSecs,
int maxIntervals, QList<BestInterval> &results)
{
QList<BestInterval> bests;
@@ -315,7 +318,10 @@ BestIntervalDialog::findBestsKPH(const RideFile *ride, double windowSizeSecs,
if (windowSizeSecs > ride->dataPoints().last()->secs + secsDelta) return;
// We're looking for intervals with durations in [windowSizeSecs, windowSizeSecs + secsDelta).
foreach (const RideFilePoint *point, ride->dataPoints()) {
RideFileIterator it(const_cast<RideFile*>(ride), spec);
while (it.hasNext()) {
struct RideFilePoint *point = it.next();
// Discard points until interval duration is < windowSizeSecs + secsDelta.
while (!window.empty() && (intervalDuration(window.first(), point, ride) >= windowSizeSecs + secsDelta)) {
totalKPH -= window.first()->kph;

View File

@@ -30,6 +30,7 @@
class Context;
class RideFile;
class Specification;
class BestIntervalDialog : public QDialog
{
@@ -47,10 +48,10 @@ class BestIntervalDialog : public QDialog
BestIntervalDialog(Context *context);
static void findBests(const RideFile *ride, double windowSizeSecs,
static void findBests(const RideFile *ride, Specification spec, double windowSizeSecs,
int maxIntervals, QList<BestInterval> &results);
static void findBestsKPH(const RideFile *ride, double windowSizeSecs,
static void findBestsKPH(const RideFile *ride, Specification spec, double windowSizeSecs,
int maxIntervals, QList<BestInterval> &results);
private slots:

View File

@@ -0,0 +1,80 @@
// R API is C
#include <R.h>
#include <Rinternals.h>
#include <R_ext/Rdynload.h>
// an array of pointers to the actual functions
// in the native GC code -- these are initialised
// once the shared library has been loaded via
// a call to initialiseFunctions()
//
// for this test we only have one function
// GC.display() to make sure the concept works
static SEXP (*fn[6])();
// if we haven't been initialised don't even try
// to dereference the function pointers !!
static int initialised = 0;
// stub methods, call the GC routines if they've been initialised
SEXP GCdisplay() { if (initialised) return fn[0](); else return NULL; }
SEXP GCathlete() { if (initialised) return fn[1](); else return NULL; }
SEXP GCathleteHome() { if (initialised) return fn[2](); else return NULL; }
SEXP GCactivities() { if (initialised) return fn[3](); else return NULL; }
SEXP GCactivity() { if (initialised) return fn[4](); else return NULL; }
SEXP GCmetrics() { if (initialised) return fn[5](); else return NULL; }
SEXP GCinitialiseFunctions(SEXP (*functions[1])())
{
//fprintf(stderr, "RGoldenCheetah initialise functions\n");
// initialise all the function pointers
for(int i=0; i<6; i++) fn[i] = functions[i];
initialised = 1;
return 0;
}
// this function is called by R when the dynamic library
// is loaded via the R command > dyn.load("RGoldenCheetah.so")
// and is expected to register all the C functions to make
// available via the C interface
//
// By return, a number of functions will be created that provide
// wrappers in R (i.e. they call with the .C(xxx) notation and
//
// We so this to avoid using Rcpp / RInside which are not
// compatible with MSVC
void
R_init_RGoldenCheetah(DllInfo *info)
{
//fprintf(stderr, "RGoldenCheetah init is called!\n");
// initialise the parameter table
R_CMethodDef cMethods[] = {
{ "GCinitialiseFunctions", (DL_FUNC) &GCinitialiseFunctions, 0 },
{ "GC.display", (DL_FUNC) &GCdisplay, 0 },
{ "GC.athlete", (DL_FUNC) &GCathlete, 0 },
{ "GC.athlete.home", (DL_FUNC) &GCathleteHome, 0 },
{ "GC.activities", (DL_FUNC) &GCactivities, 0 },
{ "GC.activity", (DL_FUNC) &GCactivity, 0 },
{ "GC.metrics", (DL_FUNC) &GCmetrics, 0 },
{ NULL, NULL, 0 }
};
R_CallMethodDef callMethods[] = {
{ "GCinitialiseFunctions", (DL_FUNC) &GCinitialiseFunctions, 0 },
{ "GC.display", (DL_FUNC) &GCdisplay, 0 },
{ "GC.athlete", (DL_FUNC) &GCathlete, 0 },
{ "GC.athlete.home", (DL_FUNC) &GCathleteHome, 0 },
{ "GC.activities", (DL_FUNC) &GCactivities, 0 },
{ "GC.activity", (DL_FUNC) &GCactivity, 0 },
{ "GC.metrics", (DL_FUNC) &GCmetrics, 0 },
{ NULL, NULL, 0 }
};
// set them up
R_registerRoutines(info, cMethods, callMethods, NULL, NULL);
// make the initialiseFunctions callable from C
R_RegisterCCallable("RGoldenCheetah", "GCinitialiseFunctions", (DL_FUNC)&GCinitialiseFunctions);
}

BIN
doc/contrib/cTSS.pdf Normal file

Binary file not shown.

BIN
doc/design/planning-UX.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

View File

@@ -0,0 +1,161 @@
<mockup version="1.0" skin="sketch" fontFace="Balsamiq Sans" measuredW="654" measuredH="544" mockupW="499" mockupH="529">
<controls>
<control controlID="2" controlTypeID="com.balsamiq.mockups::TitleWindow" x="155" y="15" w="499" h="529" measuredW="450" measuredH="400" zOrder="0" locked="false" isInGroup="-1">
<controlProperties>
<text>User%20Defined%20Metric</text>
</controlProperties>
</control>
<control controlID="3" controlTypeID="com.balsamiq.mockups::Canvas" x="170" y="237" w="471" h="228" measuredW="100" measuredH="70" zOrder="1" locked="false" isInGroup="-1"/>
<control controlID="4" controlTypeID="com.balsamiq.mockups::Label" x="170" y="213" w="77" h="-1" measuredW="33" measuredH="21" zOrder="2" locked="false" isInGroup="-1">
<controlProperties>
<bold>true</bold>
<text>Code</text>
</controlProperties>
</control>
<control controlID="5" controlTypeID="com.balsamiq.mockups::Button" x="552" y="479" w="88" h="27" measuredW="41" measuredH="27" zOrder="3" locked="false" isInGroup="-1">
<controlProperties>
<text>OK</text>
</controlProperties>
</control>
<control controlID="7" controlTypeID="com.balsamiq.mockups::Button" x="449" y="479" w="88" h="27" measuredW="64" measuredH="27" zOrder="4" locked="false" isInGroup="-1">
<controlProperties>
<text>Cancel</text>
</controlProperties>
</control>
<control controlID="8" controlTypeID="com.balsamiq.mockups::Label" x="171" y="487" w="77" h="-1" measuredW="60" measuredH="21" zOrder="5" locked="false" isInGroup="-1">
<controlProperties>
<bold>true</bold>
<text>Evaluates</text>
</controlProperties>
</control>
<control controlID="9" controlTypeID="com.balsamiq.mockups::Label" x="246" y="489" w="27" h="-1" measuredW="25" measuredH="21" zOrder="6" locked="false" isInGroup="-1">
<controlProperties>
<bold>false</bold>
<text>200</text>
</controlProperties>
</control>
<control controlID="10" controlTypeID="com.balsamiq.mockups::Label" x="273" y="489" w="50" h="-1" measuredW="34" measuredH="21" zOrder="7" locked="false" isInGroup="-1">
<controlProperties>
<bold>false</bold>
<text>Watts</text>
</controlProperties>
</control>
<control controlID="11" controlTypeID="com.balsamiq.mockups::Label" x="246" y="468" w="77" h="-1" measuredW="41" measuredH="21" zOrder="8" locked="false" isInGroup="-1">
<controlProperties>
<bold>true</bold>
<text>Metric</text>
</controlProperties>
</control>
<control controlID="12" controlTypeID="com.balsamiq.mockups::Label" x="333" y="489" w="27" h="-1" measuredW="25" measuredH="21" zOrder="9" locked="false" isInGroup="-1">
<controlProperties>
<bold>false</bold>
<text>200</text>
</controlProperties>
</control>
<control controlID="13" controlTypeID="com.balsamiq.mockups::Label" x="360" y="489" w="74" h="-1" measuredW="34" measuredH="21" zOrder="10" locked="false" isInGroup="-1">
<controlProperties>
<bold>false</bold>
<text>Watts</text>
</controlProperties>
</control>
<control controlID="14" controlTypeID="com.balsamiq.mockups::Label" x="333" y="468" w="77" h="-1" measuredW="51" measuredH="21" zOrder="11" locked="false" isInGroup="-1">
<controlProperties>
<bold>true</bold>
<text>Imperial</text>
</controlProperties>
</control>
<control controlID="15" controlTypeID="com.balsamiq.mockups::Label" x="176" y="239" w="451" h="-1" measuredW="312" measuredH="224" zOrder="12" locked="false" isInGroup="-1">
<controlProperties>
<text>%23%20Average%20Power%20%5Cr%23%20Calculated%20using%20samples%20and%20should%20work%20with%5Cr%23%20variable%20sample%20rates%20since%20it%20%5Cr%23%20accumulates%20joules%20and%20duration.%20%5Crrelevant%20%7B%20Data%20contains%20%22P%22%3B%20%7D%5Crinit%20%7B%20joules%20%3C-%200%3B%20secs%20%3C-%200%3B%20%7D%20%5Cr%5Crsample%20%7B%5Cr%09joules%20%3C-%20joules%20+%20%28POWER%20*%20RECINTSECS%29%3B%5Cr%09secs%20%3C-%20secs%20+%20RECINTSECS%3B%5Cr%20%7D%5Cr%5Crvalue%20%7B%20joules%20/%20seconds%3B%20%7D%5Crcount%20%7B%20seconds%3B%20%7D</text>
</controlProperties>
</control>
<control controlID="16" controlTypeID="com.balsamiq.mockups::Label" x="170" y="50" w="77" h="-1" measuredW="46" measuredH="21" zOrder="13" locked="false" isInGroup="-1">
<controlProperties>
<bold>true</bold>
<text>Symbol</text>
</controlProperties>
</control>
<control controlID="17" controlTypeID="com.balsamiq.mockups::Label" x="345" y="50" w="77" h="-1" measuredW="72" measuredH="21" zOrder="14" locked="false" isInGroup="-1">
<controlProperties>
<bold>true</bold>
<text>Description</text>
</controlProperties>
</control>
<control controlID="18" controlTypeID="com.balsamiq.mockups::TextInput" x="243" y="47" w="82" h="-1" measuredW="31" measuredH="27" zOrder="15" locked="false" isInGroup="-1">
<controlProperties>
<text>AP</text>
</controlProperties>
</control>
<control controlID="20" controlTypeID="com.balsamiq.mockups::TextArea" x="434" y="48" w="207" h="91" measuredW="200" measuredH="140" zOrder="16" locked="false" isInGroup="-1">
<controlProperties>
<text>Average%20Power%20computed%20via%20Joules%20to%20account%20for%20variable%20sample%20rates.</text>
</controlProperties>
</control>
<control controlID="21" controlTypeID="com.balsamiq.mockups::Label" x="170" y="159" w="77" h="-1" measuredW="77" measuredH="21" zOrder="17" locked="false" isInGroup="-1">
<controlProperties>
<bold>true</bold>
<text>Metric%20Units</text>
</controlProperties>
</control>
<control controlID="22" controlTypeID="com.balsamiq.mockups::Label" x="324" y="159" w="104" h="-1" measuredW="87" measuredH="21" zOrder="18" locked="false" isInGroup="-1">
<controlProperties>
<bold>true</bold>
<text>Imperial%20Units</text>
</controlProperties>
</control>
<control controlID="23" controlTypeID="com.balsamiq.mockups::Label" x="465" y="144" w="80" h="-1" measuredW="68" measuredH="37" zOrder="19" locked="false" isInGroup="-1">
<controlProperties>
<bold>true</bold>
<text>Conversion%5CrFactor</text>
</controlProperties>
</control>
<control controlID="24" controlTypeID="com.balsamiq.mockups::Label" x="567" y="144" w="77" h="-1" measuredW="68" measuredH="37" zOrder="20" locked="false" isInGroup="-1">
<controlProperties>
<bold>true</bold>
<text>Conversion%5CrSum</text>
</controlProperties>
</control>
<control controlID="25" controlTypeID="com.balsamiq.mockups::TextInput" x="170" y="180" w="129" h="-1" measuredW="48" measuredH="27" zOrder="21" locked="false" isInGroup="-1">
<controlProperties>
<text>Watts</text>
</controlProperties>
</control>
<control controlID="26" controlTypeID="com.balsamiq.mockups::TextInput" x="324" y="180" w="119" h="-1" measuredW="48" measuredH="27" zOrder="22" locked="false" isInGroup="-1">
<controlProperties>
<text>Watts</text>
</controlProperties>
</control>
<control controlID="27" controlTypeID="com.balsamiq.mockups::TextInput" x="465" y="180" w="80" h="-1" measuredW="38" measuredH="27" zOrder="23" locked="false" isInGroup="-1">
<controlProperties>
<text>1.00</text>
</controlProperties>
</control>
<control controlID="28" controlTypeID="com.balsamiq.mockups::TextInput" x="564" y="180" w="78" h="-1" measuredW="41" measuredH="27" zOrder="24" locked="false" isInGroup="-1">
<controlProperties>
<text>0.00</text>
</controlProperties>
</control>
<control controlID="29" controlTypeID="com.balsamiq.mockups::Label" x="170" y="118" w="77" h="-1" measuredW="57" measuredH="21" zOrder="25" locked="false" isInGroup="-1">
<controlProperties>
<bold>true</bold>
<text>Precision</text>
</controlProperties>
</control>
<control controlID="30" controlTypeID="com.balsamiq.mockups::TextInput" x="243" y="115" w="82" h="-1" measuredW="23" measuredH="27" zOrder="26" locked="false" isInGroup="-1">
<controlProperties>
<text>2</text>
</controlProperties>
</control>
<control controlID="31" controlTypeID="com.balsamiq.mockups::Label" x="170" y="86" w="77" h="-1" measuredW="31" measuredH="21" zOrder="27" locked="false" isInGroup="-1">
<controlProperties>
<bold>true</bold>
<text>Type</text>
</controlProperties>
</control>
<control controlID="32" controlTypeID="com.balsamiq.mockups::ComboBox" x="243" y="82" w="-1" h="-1" measuredW="77" measuredH="24" zOrder="28" locked="false" isInGroup="-1">
<controlProperties>
<text>Average</text>
</controlProperties>
</control>
</controls>
</mockup>

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

View File

@@ -0,0 +1,20 @@
Sites to announce releases / updates on
* English
Google Groups: golden-cheetah-announce, golden-cheetah-users, wattage
BikeRadar.com: http://www.bikeradar.com/forums/viewforum.php?f=40011
Timetrialling.co.uk: http://www.timetriallingforum.co.uk/index.php?showforum=33
Slowtwitch.com: http://forum.slowtwitch.com/forum/Slowtwitch_Forums_C1/Triathlon_Forum_F1/
Weightweenies: http://weightweenies.starbike.com/forum/viewforum.php?f=8
Roadbike Review: http://forums.roadbikereview.com/racing-training-nutrition-triathlons/
* Italian
Ask "fester54 hotmail com" to post in Italian to http://www.bdc-forum.it/
* German
Ask "joern.rm gmail com" to post in German to http://forum.tour-magazin.de/forum.php

Some files were not shown because too many files have changed in this diff Show More