Commit Graph

10607 Commits

Author SHA1 Message Date
Joachim Kohlhammer
49cf6340a4 Upgraded Qwt to 6.2 (branch: qwt-multiaxes) (#4427)
This commit is based on https://github.com/GoldenCheetah/GoldenCheetah/pull/3956
with the following additions / changes:
* Upgraded to the latest version of the multiaxes-branch, thus eliminating crashes of GoldenCheetah on startup
* Disabled the emitting of Layout Requests on geometry changes of QwtScaleWidget - without this, CPU utilization was up to 100% on one core
* Added the class SplineLookup, reusing small portions of code from Qwt 6.1
* Re-added the splines in WPrime and RideFile (resampling), using the new interface of QwtSpline
* Appveyor: qwt in cache-section now depends on qwt/qwtconfig.prin.in for refresh on version change
2024-01-06 18:59:55 -03:00
Alejandro Martinez
ea044a0c39 Accelerators are QKeySequence not tr strings
Continuation of b095b40
2024-01-06 17:15:33 -03:00
Alejandro Martinez
31636b196d Update Travis-ci macOS builds to xcode 14.2
[skip AppVeyor]
Related to #4093
2023-12-20 17:54:25 -03:00
jgpallero
c46a99e80e Update Spanish translation (#4426) 2023-12-17 08:48:20 -03:00
Alejandro Martinez
b6aefcc017 Fix some non-translatable strings and update ts files
Reported at the users forum by Jose Luis Garcia Pallero
2023-12-16 17:23:20 -03:00
Alejandro Martinez
edaac1486b Fix view in Calendar test chart
[skip ci]
From previous commit, lets default to Trends view
2023-12-15 20:39:22 -03:00
Alejandro Martinez
0116bb9e47 Add Calendar to test charts
[skip ci]
The old Calendar chart from Diary view,
it can be imported to v3.6 Analysis view.
2023-12-14 20:44:29 -03:00
Alejandro Martinez
707ed659b5 Add screen capture for ANT+ Pair
[skip ci]
2023-12-10 18:42:09 -03:00
Mark Liversedge
6c2a260b7e DataFilter - isAero
.. if a ride has sport "Aero" or has "AERO" xdata then it is
   identified as an aero ride file

.. isBike will now also check for isAero and return true, so
   you can record aero data but the ride is still treat as a
   bike ride in filters
2023-12-09 10:54:38 +00:00
Alejandro Martinez
f1a78f3fd3 Summary of changes from v3.6 release:
a3760bb Upgrade Travis-ci builds to macOS 12.6
6b1dbf4 Added Bluetooth pairing to the device wizard (#4422)
c0c8f57 Update FIT SDK definitions to 21.126 (#4423)
0dd4bf6 Cursor in text workout editor was invisible
6e5b950 Fix crash on metadata config
1dd7faa Interval Metadata
d9abb58 Datafilter xdataseries(), xdataunits() and xdatavalues()
5fb3bbf FIT parser bounds check when adding new series
943deb6 Generic Support for Session and Lap in FIT files
146f9ea Fix Weekly tiles in default Trends layouts
ec0653f ErgFilePlot - realtime curves honor FFWD/RWND and lap F/B
43368ad Mapview: Added interactivity to the Smallplot (#4408)
72de6bb Fix lap data auto-reset in slope workouts
c2f440c Fix broken workout directory check for the first start (#4410)
b095b40 Fix shortcuts not available due to translations
e6ff1a1 Python Chart Editor Cosmetics
00e182c Better user experience when drawing segments on the map (#4403)
f746f73 GPX parser - support ns3 TrackPointExtension name
9ae7521 Upgrade Travis-ci macOS version to macOS 11.6
e8132b1 Upgrade Travis-ci Linux version to Ubuntu 20.04
8f2ba0e Special case Start Date and Time in the cache
110652b Update German translation
fabc344 Add Wahoo PowrLink
f783814 Train library - add path to the list of possible errors
48d91d0 Fix issues after perspective switch (#786)
59a8ca2 Implemented compare mode for RideMapWindow (#786)
733db9c Ignore dot folders on athlete open/backup/delete
951e5f3 Fix crash on invalid perspective filter
[publish binaries]
2023-12-02 10:58:34 -03:00
Alejandro Martinez
bd4bed1f0e Upgrade Travis-ci builds to macOS 12.6
For testing #4093 and #4422, besides to be
the oldest still supported version
2023-12-02 10:58:23 -03:00
enngq11k
6b1dbf40f4 Added Bluetooth pairing to the device wizard (#4422)
* Added Bluetooth pairing to the device wizard

The wizard will now search (but not connect) for available Bluetooth
devices. The result is a simple list with all device names. The user can
now choose the desired devices in a multi select list and save them as a
"allow list" in the global training mode configuration. If no device is
selected, the profile will use the old behaviour and the connect button
searches for available devices.

* Fixed allow list check and extracted check into its own method

* Allow all devices if allow list is empty

* Selecting "No sensors found..." did create an invalid Bluetooth allow list (;;) which denied all devices

Added checks for a valid Bluetooth configuration for saving and loading.

* Remove separator from display name

If a user (some devices allow custom names) or a vendor uses ';' or ','
in the display name, we will replace them. We identify devices by MAC
or UUID, so this does not break the allow list. The display name is
stored for easy identification by users and following features

Fix #4318
2023-12-02 10:21:39 -03:00
Poncho
c0c8f57a13 Update FIT SDK definitions to 21.126 (#4423) 2023-12-01 09:44:36 -03:00
enngq11k
0dd4bf6816 Cursor in text workout editor was invisible
Changed the background to a lighter color to get the cursor visible again. To achive a good contrast, the text color for the selected line is now black. This combination works for dark and light mode.
2023-11-28 08:25:12 +00:00
Mark Liversedge
6e5b950f39 Fix crash on metadata config
.. add field got interval checkbox index wrong (I had already
   fixed this but was lost from commit)
2023-11-27 18:45:59 +00:00
Mark Liversedge
1dd7faa276 Interval Metadata
You can define metadata fields with
* indicator it is interval specific
* expression to disable/enable the field

Metadata configuration is updated on upgrade to
include a couple of new interval specific fields
just to get the user started (if interval specific
fields already exist this is skipped).

If the user does not maintain interval specific
data it will not be stored in saved Json files.

Within the metadata chart if a field is defined as
being interval related then an interval selector will
be shown at the top of that tab. When intervals are
selected in the sidebar the selection is also changed.

Interval tags are stored in the RideFileInterval to avoid
linking and tracking changes to interval info like name, start
and so on. This is therefore separate from the current practice
of storing general tags in the RideFile class.

Along the way I fixed rideitem opening the ride itself before emitting
the signal rideselected- since some functions that process the ride
selected will not neccessarily reference via RideItem::ride() before
working with metadata and intervals.

Interval metadata is written to the TAGS in a Json file with a name
of "<interval name>##<field name>" and openRideFile post processes
metadata read from the TAGS and places into the relevant
RideFileInterval.

NOTE: This is experimental and likely contains some bugs, the expression
added to a field definition is also not yet implemented.

Fixes #4418
2023-11-27 16:49:43 +00:00
Mark Liversedge
d9abb58209 Datafilter xdataseries(), xdataunits() and xdatavalues()
.. New datafilter functions to help access generic XDATA

   xdataseries("LAP") - returns list of all series
   xdataunits("LAP") - returns list of all units
   xdatavalues("LAP") - returns values in sequence suitable
                        for use with overview tiles
2023-11-17 15:42:34 +00:00
Mark Liversedge
5fb3bbfbbf FIT parser bounds check when adding new series
.. needs to be less than XDATA_MAXVALUES
2023-11-10 18:40:38 +00:00
Mark Liversedge
943deb67ea Generic Support for Session and Lap in FIT files
GENERIC SUPPORT FOR PARSING INTO XDATA

.. Generically parse FIT file messages into XDATA. The current
   implementation does this for session, lap and totals messages
   but could very easily be extended to any other message type

.. Generic parsing uses metadata rather than hard coding the
   message and field types and so on

.. The FIT metadata (FITmetadata.json) has been expanded to
   include definitions of message types and all the standard
   fields within the message types

.. The existing hard-coded parsing remains to extract data
   and apply directly to ridefile samples and metadata. The
   generic parser simply adds additional tabs on the data
   view as XDATA so users can access it.

   CODE REFACTORING, COMMENTS AND BUG FIXES

.. At some point the code needs to be refactored as it is
   janky and needs to align with the rest of the codebase

.. Includes a mild refactor renaming some of the classes/structs
   and variables to reflect what they actually are, for example:

       FitFileReadState -> FitFileParser
       FitDefinition -> FitMessage

.. Added lots of code comments and re-organised the code
   into clear sections to help navigate what is a very
   cumbersome source file, this breaks git blame history
   but is worth the loss (you can checkout an earlier commit
   to do a full blame)

.. Changed debugging levels to be more helpful

.. Generally I did not change any code, but there were a
   couple of serious bugs that needed to be corrected:

      Field definitions gets the type wrong in a couple of
      places since the type is stored in the low 4 bits:
      type = value & 0x1F

      The decodeDeveloperFieldDescription function did not
      check for NA_VALUEs for scale, offset, native field

.. For less serious bugs I added FIXME comments throughout the code

Fixes #4416
2023-11-10 17:14:50 +00:00
Alejandro Martinez
146f9eabc5 Fix Weekly tiles in default Trends layouts
So they are consistent across all date ranges
Fixes #4413
2023-11-07 09:58:08 -03:00
Alejandro Martinez
15bafbd444 Update snapshot builds
Summary of changes from v3.6 release:
ec0653f81 ErgFilePlot - realtime curves honor FFWD/RWND and lap F/B
43368addf Mapview: Added interactivity to the Smallplot (#4408)
72de6bbee Fix lap data auto-reset in slope workouts
c2f440c1c Fix broken workout directory check for the first start (#4410)
b095b403b Fix shortcuts not available due to translations
e6ff1a157 Python Chart Editor Cosmetics
00e182c41 Better user experience when drawing segments on the map
(#4403)
f746f7361 GPX parser - support ns3 TrackPointExtension name
9ae7521e5 Upgrade Travis-ci macOS version to macOS 11.6
e8132b1a5 Upgrade Travis-ci Linux version to Ubuntu 20.04
8f2ba0e11 Special case Start Date and Time in the cache
110652bf4 Update German translation
fabc344aa Add Wahoo PowrLink
f78381466 Train library - add path to the list of possible errors
48d91d02d Fix issues after perspective switch (#786)
59a8ca231 Implemented compare mode for RideMapWindow (#786)
733db9cb1 Ignore dot folders on athlete open/backup/delete
951e5f360 Fix crash on invalid perspective filter
[publish binaries]
2023-11-04 10:19:31 -03:00
Alejandro Martinez
ec0653f81f ErgFilePlot - realtime curves use context->getNow()
like Workout Editor does to honor ffwd/rwnd and lap f/b
Fixes #4412
2023-11-01 17:01:50 -03:00
Joachim Kohlhammer
43368addf7 Mapview: Added interactivity to the Smallplot (#4408)
* Added a tooltip showing data about the current position (Altitude, Power,
  HR, Time)
* Added a marker to the map corresponding to the current mouse position
  (both Google and OSM)
* Changed scaling of the smallplot: Chart is now between lowest point and
  highest point instead of sea level and highest point
2023-11-01 11:15:56 -03:00
Alejandro Martinez
72de6bbee1 Fix lap data auto-reset in slope workouts
+ Lap Distance was wrong until the first lap due to currentLap
  not checking the lap lower bound.
+ Lap Time was not reset due to workoutLap being also modified in
  guiUpdate, so the newLap signal was never generated.
+ Additionally newLap slot remove duplicate functions called on newLap signal
  and moved counters reset to the signal handling slot.
Fixes #4411
2023-10-31 19:30:50 -03:00
enngq11k
c2f440c1c0 Fixed broken workout directory check for the first start (#4410)
Fix1:
appsettings->value default fallback "0" if no fallback value was given.
So a new GoldenCheetah installation will always use path "0" until a
workout directory was set in the settings.
We now use an empty string as fallback to get the condition working
again

Fix2:
Instead of using the athlete->home parent folder, the old code returned
the parent's parent folder. Until a workout directory was set in the
settings, the user had to navigate to the (hidden) athletes folder
everytime by hand.
2023-10-31 11:18:31 -03:00
Alejandro Martinez
b095b403bd Accelerators are QKeySequence not tr strings
Fixes #4409
2023-10-28 10:38:34 -03:00
Mark Liversedge
216a43c562 Update README.md
Formatting
2023-10-22 08:54:44 +01:00
Mark Liversedge
de52b30773 Update README.md
Mention measures and metadata features
2023-10-22 08:53:21 +01:00
Mark Liversedge
e6ff1a157a Python Chart Editor Cosmetics
.. when working with a light background the syntax highlighting
   renders the text almost impossible to read because it uses
   very light colors

.. additionally, when the colors/theme are changed the python
   editor does not reflect the change until a restart

.. we should likely apply the same changes to the datafilter
   editor in the user chart
2023-10-21 10:46:19 +01:00
Joachim Kohlhammer
00e182c413 Better user experience when drawing segments on the map (#4403)
* Increased the area in which points are searched when clicking / hovering a
  track, easing the process of starting segment creation and giving more
  precision while drawing
* Hovering the track when drawing segments is not blocked any more by highlighted
  segments / parts of the current segment (i.e. segments can be shrinked during
  creation)
Fixes #4394
2023-10-09 20:11:35 -03:00
Alejandro Martinez
f746f7361b GPX parser - support ns3 TrackPointExtension name
Used in files generated by Garmin Connect
Fixes #4397
2023-10-04 13:13:35 -03:00
Alejandro Martinez
47b9b9e28f Travis-ci macOS after_success cleanup
[skip AppVeyor]
From last commit, it works and is faster this way.
2023-10-02 11:24:19 -03:00
Alejandro Martinez
a6bf25d062 Travis-ci macOS builds - avoid hungup
[skip AppVeyor]
Running GoldenCheetah from the mounted dmg doesn't terminate
soon enough, lets avoid this for better diagnosis.
[publish binaries]
2023-09-30 10:17:26 -03:00
Alejandro Martinez
0d382dc3f2 Travis-ci macOS with staged qwt build
[skip AppVeyor]
To avoid the cancelation due to 50' limit
[publish binaries]
2023-09-24 20:43:53 -03:00
Alejandro Martinez
e46a1d4a18 Update snapshot builds
To test v3.6 building on currently supported OS versions:
* Windows 10 (no change here)
* macOS 10.14 changed to macOS 11.6
* Ubuntu 18.04 changed to Ubuntu 20.04
Additionally it contains a fix to possible crashes with invalid
perspective filters, some cosmetic fixes and a new feature:
- Compare mode is now available for the Map chart
Please stay with the release version unless you are willing to
collaborate with testing.
[publish binaries]
2023-09-24 13:29:51 -03:00
Alejandro Martinez
9ae7521e50 Upgrade Travis-ci macOS version
[skip AppVeyor]
To macOS 11.6
Upgrade D2XX drivers to supported versions
2023-09-23 21:13:18 -03:00
Alejandro Martinez
a904147b63 Revert "Travis-ci - Exclude libjpeg.so.8 from AppImage"
[skip AppVeyor]
This reverts commit bbaa3c9c3c.
It was a mistake, sorry.
2023-09-23 20:22:40 -03:00
Alejandro Martinez
bbaa3c9c3c Travis-ci - Exclude libjpeg.so.8 from AppImage
[skip AppVeyor]
It seems to provoke issues on Arch Linux based
on previous commit
2023-09-22 20:58:00 -03:00
Alejandro Martinez
e8132b1a55 Upgrade Travis-ci Linux versions
[skip AppVeyor]
Move to Ubuntu 20.04 with supported D2XX drivers
Hopefully fixes #4396
2023-09-19 21:11:30 -03:00
Alejandro Martinez
d98249cf1f Remove DEV from Windows installer 2023-09-14 14:22:17 -03:00
Alejandro Martinez
8f2ba0e11d Special case Start Date and Time in the cache
They are defined as metadata but stored in a different way.
Enables Start_Date and Start_Time in formulas to match autocompleters.
Fixes #4391
2023-09-14 13:12:40 -03:00
Alejandro Martinez
110652bf40 Update German translation
Fixes #4386
2023-09-09 09:52:16 -03:00
Damien Grauser
fabc344aac Add Wahoo PowrLink 2023-09-08 21:16:11 +02:00
Alejandro Martinez
f783814665 Train library - add path to the list of possible errors
It seems to be a common error, see #4393
2023-09-07 10:35:15 -03:00
Joachim Kohlhammer
48d91d02d1 Fixed issues after perspective switch (#786)
* Upgraded leaflet to 1.9.4
* Fixed the condition when chart must be set to blank
* Fixed the zoom-level for OSM when switching perspective for the first time
2023-09-06 15:46:01 +02:00
Joachim Kohlhammer
59a8ca2314 Implemented compare mode for RideMapWindow (#786)
* Multiple activities can be viewed on one map at the same time
* Implemented for OSM ang Google
2023-09-06 15:46:01 +02:00
Alejandro Martinez
69c2b447aa Add screenshots for Training options
[skip ci]
2023-09-06 10:41:47 -03:00
Alejandro Martinez
733db9cb16 Ignore dot folders on athlete open/backup/delete
Fixes #4392
2023-09-03 21:45:23 -03:00
Alejandro Martinez
951e5f360a DataFilter - Use errors member instead of global
Update errors member from DataFiltererrors on constructor
and use it in evaluate functions, since they can be used when
DataFiltererrors no longer corresponds to this expression.
Fixes #4384
2023-08-13 14:23:19 -03:00
Alejandro Martinez
bd224c8251 Revert "Trigger v3.6 builds with version string"
[skip ci]
This reverts commit 22f45f364f,
it was a temporary hack to include version string in regular commit.
2023-08-05 10:39:08 -03:00