Commit Graph

10892 Commits

Author SHA1 Message Date
Joachim Kohlhammer
a5829c5c13 Semi automatic creation of ranges for power zones (#4543)
* Changed the UI of CPPage to inline-editing of all values in all tables
* Added a sports-specific selector for the model (cp2, cp3, ext, manual)
* Allowed to create new ranges either manually or based on the estimated
  values of the model
* Added option to reset each ranges values to those of the selected
  model
* Added message to create a new range if todays estimate differs from
  those of the currently active one
* Refined semi automatic power zones
* Added a dialog to inspect and accept only some values while adoption
* Added info messages
  * when the model does not provide FTP or PMAX
  * that AeTP is only a very rough estimate
* Added a tolerance in comparison before proposing new values
* Using the following order for defaults when adding a new manual range
  * selected row
  * last row
  * predefined defaults
* Zones-Tab: To prevent crashes, a message is shown instead of the real
  interface if a metric refresh is ongoing
* Changed Pace- and HR-Tabs to use inline editing
* Moved the unittests into the same structure as the sourcecode
* Added a simple (incomplete) unittest for kphToPace
* Improved setting the column width
* En-/Disabling the action buttons (add, delete, ...) based on the
  contents state
* Changed the layout to prevent jumping widgets when showing / hiding
  buttons
* Fixed compiler warnings from Visual-C++
* Adopt dialog: Refined layout
* Fixed the unit of "From BPM" on HR-Page
* Set the default mode to manual
Fixes #1381
2024-10-17 18:12:15 -03:00
Alejandro Martinez
d6e570ce3c Update snapshot builds
Relevant changes from v3.7-DEV2408
a30b96cc8 Refactored the placement of items in the ChartSpace (#4549)
62ef8abe4 Make the Workout Editor's Settings Persistent (#4553)
217bd3b88 Scale Line Width default values (#4556)
f4d6c2ae4 avoid regression caused by #4337 due to changed order of data series enum
61fa77b2c respect linewidth setting inside the workout editor realtime plot (#4550)
51b0c9099 Fix intervals in Compare Pane are 1 sample short
b62a2d319 Ride Cache - Don't remove 1 sec intervals
c51941231 CP chart - show tooltip for model curve
5f1598c43 FIT - map fields to standard only for record msg (#4521)
9242f724d Implemented user defined relative date ranges (#4534)
60f903361 Cycling dynamics in train mode (#4337)
1230dc7c6 FIT parser - Lap messages can be first (#4535)
79b523781 Removed wildcard from translatable part (#4545)
ee992ad13 Enable Performance Tests for CV charts
7e7ffd3cb Aerolab - fix imperial units labels (#4542)
[publish binaries]
2024-10-13 18:44:44 -03:00
Joachim Kohlhammer
a30b96cc8a Refactored the placement of items in the ChartSpace (#4549)
Fixes #4467:
* Tiles are dragged to a column, inserted into the columns tile order
* Placing tiles left or right of the existing columns creates a new
  column (up to a fixed limit)
* As there is no concept of lines, the placement must
  * always respect the users choice of a column
  * never move a tile horizontally without user interaction
* Shift-resizing a tile allows spanning multiple columns
* Improved change detection
* Preventing superfluous layouting requests and order increments
* Added a visual indicator where the item will be placed when dropped
* Fixed a glitch when creating new columns on the right, when dragging
  beyond a newly created column on the right, the visual indicator was
  hidden and pseudo changes where detected.
2024-10-13 18:33:08 -03:00
Thies Lennart Alff
62ef8abe42 Make the Workout Editor's Settings Persistent (#4553)
store the workout editor's chart settings as properties of the
perspective's layout xml.
2024-10-13 17:36:01 -03:00
Alejandro Martinez
217bd3b888 Scale Line Width default values (#4556)
This is a follow up of a discussion in #4550: since configurable
GC_LINEWIDTH is not scaled on use, it is convenient to scale fixed
default values so they adapt to display configuration on first use,
to make easier the initial setup for new users without affecting existing ones.
2024-10-13 16:19:09 -03:00
Thies Lennart Alff
f4d6c2ae40 avoid regression caused by #4337 due to changed order of data series
enum
2024-10-13 13:43:33 -03:00
Alejandro Martinez
6e039be362 Revert "sort the dial window's combobox by name (#4551)"
This reverts commit 47e94000a5.
Fixes #4554
2024-10-13 13:41:49 -03:00
Thies Lennart Alff
47e94000a5 sort the dial window's combobox by name (#4551) 2024-10-12 08:34:35 -03:00
Thies Lennart Alff
61fa77b2c0 respect linewidth setting inside the workout editor realtime plot (#4550) 2024-10-11 19:16:08 -03:00
Alejandro Martinez
51b0c9099a Fix intervals in Compare Pane are 1 sample short
The fake rides created for intervals in Compare Pane don't include
the last sample, so they are 1 sample short and 1 sec intervals
don't appear. WPrime calculations are avoided when the ride has
only 1 sample to avoid crashes, besides it doesn't make any sense.
Fixes #4552
2024-10-11 11:18:44 -03:00
Alejandro Martinez
b62a2d3190 Ride Cache - Don't remove 1 sec intervals
Previous behaviour was weird: 1 sec intervals could be created and displayed,
but they were discarded on activity save.
Also 1 sec intervals are useful for 3 param model fitting.
2024-10-04 10:47:52 -03:00
Alejandro Martinez
c519412311 CP chart - show tooltip for model curve
It is useful to see predicted values.
2024-10-04 10:46:52 -03:00
Alejandro Martinez
412c995a43 Update snapshot builds
Relevant changes from v3.7-DEV2408
5f1598c43 FIT - map fields to standard only for record msg (#4521)
9242f724d Implemented user defined relative date ranges (#4534)
60f903361 Cycling dynamics in train mode (#4337)
1230dc7c6 FIT parser - Lap messages can be first (#4535)
79b523781 Removed wildcard from translatable part (#4545)
ee992ad13 Enable Performance Tests for CV charts
7e7ffd3cb Aerolab - fix imperial units labels (#4542)
[publish binaries]
2024-09-28 17:33:46 -03:00
Alejandro Martinez
5f1598c437 FIT - map fields to standard only for record msg
Fixes #4521
2024-09-28 13:17:46 -03:00
Joachim Kohlhammer
9242f724db Implemented user defined relative date ranges (#4534)
Fixes #4512
* Added additional time range options for user defined seasons
  * Relative start (e.g. 3 months ago)
  * Duration after start / Duration before end (e.g. 2 months)
  * Year to Date end, defining the end as the closest day with todays
    day and month after start
* Refactored Season.h/cpp and SeasonParser.h/cpp for better testability
  * Kept Season, Phase, SeasonEvent, SeasonOffset, SeasonLength in
    Season.h/cpp
  * Moved all UI related classes to SeasonDialogs.h/cpp
  * Renamed SeasonParser.h/cpp to Seasons.h/cpp, moved class Seasons
    there
* Replaced deprecated Qt classes
  * Replaced QRegExp by QRegularExpression in SeasonParser
  * Rewrote parsing seasons.xml to use QXmlStreamReader instead of
    QXmlSimpleReader
* Unittesting
  * Added a simple way to implement and execute (make check) unittests
    in Golden Cheetahs source tree based on Qt Test
    (https://doc.qt.io/qt-6/qttest-index.html), tested on Linux and
    Windows
  * Implemented unittests for classes (mostly before refactoring)
    * Season
    * SeasonParser
    * SeasonOffset
2024-09-27 11:25:03 -03:00
vlcvboyer
60f9033617 Cycling dynamics in train mode (#4337)
* TRAIN - add cycling dynamics
Power sensors which deliver cycling dynamics such as power start angle,
rider position, etc. are supported during hometrainer session.
Goldencheetah requests power sensor capabilities and, when available,
request the sensor to enable them (power phase, pedal position, etc.
and 8Hz transmission mode which is mandatory when accessing those
additional data pages)

* COSMETIC - FIX comment related to gc csv header
The comment was not reflecting the up-to-date file
content as per latest CSV header

* FIX load/slope in CSV
Only target power was recorded in CSV records during hometrainer
session.
When not using ERG mode but slope mode then the data was lost.
This patch take care of training mode to determine which data
is to be recorded.

* TRAIN - flexible gc CSV
Allows to add fields in CSV file recorded during hometrainer session
without impacting a lot of files in the code
Historical first fields are still used to determine taht this file
has been created by GoldenCheetah.
During CSV parsing GoldenCheetah will use CSV header to determine which
fields are part of the file and to locate the column which contain it

* TRAIN - add cycling dynamics to CSV records
during hometrainer session


* CsvRideFile fixes
Free gcSeries and Qt6 compatibility
---------

Co-authored-by: Alejandro Martinez <amtriathlon@gmail.com>
2024-09-26 17:21:50 -03:00
Michal Powalko
76e8a07f59 Add Morpheus M7 heart rate monitor
Adds the heart rate monitor from Morpheus Training System:

https://trainwithmorpheus.com/
https://trainwithmorpheus.com/m7-user-guide/
2024-09-26 17:16:00 -03:00
Alejandro Martinez
1230dc7c68 FIT parser - Lap messages can be first
in the new file structure, like in the companion
test file from a Sigma ROX 11.1
2024-09-21 15:29:02 -03:00
Joachim Kohlhammer
79b523781d Removed wildcard from translatable part
Some translations (de, sv) for filters used in QFileDialgos contained
commas to separate wildcards. As this is in violation with Qts syntax,
the dialogs didn't show any files.

This commit separates the wildcards from the name of the filter so that
only the name can be manipulated by translation. All affected
translations are updated.
2024-09-21 12:10:25 -03:00
Alejandro Martinez
85ee81371a Tidy up previous commit 2024-09-20 10:10:13 -03:00
Alejandro Martinez
ee992ad130 Enable Performance Tests for CV charts
Show them in CV charts and use them for fitting,
just like they work in CP charts.
2024-09-19 21:27:51 -03:00
Alejandro Martinez
7e7ffd3cba Aerolab - fix imperial units labels
Fixes #4542
2024-09-13 19:45:24 -03:00
Alejandro Martinez
7536ecdad2 Update Issue Template
[skip ci]
Let's make it simpler and more explicit in another attempt
to prevent users from creating issues unnecessarily.
2024-09-12 10:29:10 -03:00
Alejandro Martinez
0eddf7ab27 Update Issue Template
[skip ci]
Let's make it simpler and more explicit in another attempt
to prevent users from creating issues unnecessarily.
2024-09-12 10:25:42 -03:00
Alejandro Martinez
c8bc647ab3 Update Issue Template
[skip ci]
Let's make it simpler and more explicit in another attempt
to prevent users from creating issues unnecessarily.
2024-09-12 10:23:12 -03:00
Alejandro Martinez
1f62951b32 Update Issue Template
[skip ci]
Let's make it simpler and more explicit in another attempt
to prevent users from creating issues unnecessarily.
2024-09-12 10:09:35 -03:00
Alejandro Martinez
c0bf155398 Update snapshot builds
This is the same as 2404 dev build with a fix
to import FIT files with Power Phase metrics.
Some XData series were discared before (#4535)
[publish binaries]
2024-09-01 17:05:34 -03:00
Poncho
8ec8f2aaf4 Update FIT SDK definitions to 21.141 2024-08-31 10:34:35 -03:00
Poncho
7971bec15c util/fit/nongarmin.json: add Favero Assioma Pro MX 2024-08-31 10:34:35 -03:00
Alejandro Martinez
ed4d8083db Fix FIT parsing when field scale is not integer
Fixes #4535
2024-08-29 13:33:22 -03:00
Alejandro Martinez
71e3928bc6 Allow GPX files without timestamps as workouts
Fixes #4532
2024-08-18 10:09:15 -03:00
Joachim Kohlhammer
e7e8ef3055 Refined the grammar for filtering workouts (#4531)
* Added support to filter for numbers in the description / title / tags,
  similar to #4529
* Added quoted strings when filtering in description / title / tags:
  * Words can be grouped by putting them in quotes to search for exact
    matches
  * Keywords can be put in quotes to strip their special meaning
  * Examples: "Power Builder 60", "Power" 60
  * Added this also to TrainerDay, keeping the syntax similar
* Adjusted the autocompletion to not propose keywords when within open
  quotes
2024-08-08 18:42:38 -03:00
Alejandro Martinez
e783586ec3 Update Issue Template
[skip ci]
2024-08-07 18:17:51 -03:00
Joachim Kohlhammer
06b0ea5a81 TrainerDay: Setting the geometry of the dialog
Setting the geometriy of the download dialog instead of the minimum
size, thus allowing full resizing.
See https://groups.google.com/g/golden-cheetah-users/c/Xi6d3L1t9QA/m/gWe2Q2uNAQAJ
2024-08-05 16:11:05 -03:00
Joachim Kohlhammer
9ea6949f13 TrainerDay: Allowing numbers in query for workouts
See https://groups.google.com/g/golden-cheetah-users/c/Xi6d3L1t9QA/m/gWe2Q2uNAQAJ
2024-08-05 16:11:05 -03:00
Joachim Kohlhammer
a17d069202 TrainerDay: Set fallback for max workouts per page
See https://github.com/GoldenCheetah/GoldenCheetah/pull/4522#issuecomment-2253027635
2024-08-05 16:11:05 -03:00
Alejandro Martinez
46bf477675 Revert force version string on non-tagged ci builds
[skip ci]
2024-08-04 12:18:03 -03:00
Alejandro Martinez
735ef1ab0c August 2024 Development Build
[publish binaries]
v3.7-DEV2408
2024-08-02 17:29:27 -03:00
jgpallero
772d30c444 Update Spanish translation (#4528) 2024-08-01 09:58:54 -03:00
Alejandro Martinez
1eb07f968e Update translation files
To match current source code for dev build 2408
2024-07-31 21:08:33 -03:00
Joachim Kohlhammer
ee1be4c48e ActivitySidebar: New action "scroll to current" (#4524)
Activity Sidebar: Added a new action to ride navigators context / burger
menu: "Scroll to current activity"
2024-07-31 11:03:29 -03:00
Joachim Kohlhammer
dc38e4a148 Changed the tab-order in the athlete selector (#4523)
* Changed the traversal order in ChooseCyclistDialog when using the
  tab-key:
  * Before this change:
    List -> New -> Open -> Cancel -> Delete -> List
  * After this change:
    List -> New -> Delete -> Cancel -> Open -> List
* Changed the default button (activated when pressing enter):
  * "New" when no athlete is available
  * "Open" when athletes are available
  * Behaviour before this change: Always "New"
* Removed the parameter allowNew from the constructor
  ChooseCyclistDialog::ChooseCyclistDialog as it was only used with
  the value true
2024-07-31 11:01:28 -03:00
Joachim Kohlhammer
0799c56c2e Fixed compilation error with gcc 14 (#4527)
gcc 14 turned some warnings into errors:
https://gcc.gnu.org/gcc-14/porting_to.html#warnings-as-errors

This commit fixes the error in EzUsb-1.0.c and additionally removes
indentation warnings.
2024-07-31 10:59:48 -03:00
Alejandro Martinez
1728c13186 Update French translation
Contributed by Patrick at the users forum
Fixes #4526
2024-07-29 21:18:55 -03:00
Alejandro Martinez
ed19e76f74 TrainerDay API - add encrypted key and page size
[skip AppVeyor]
Part of #4522
2024-07-29 17:56:30 -03:00
Alejandro Martinez
90cb68623f Fix typo in appveyor.yml
From latest commit
2024-07-25 07:31:12 -03:00
Joachim Kohlhammer
ef716f8568 Added support for the TrainerDay workouts/find API (#4522)
* Added support for the TrainerDay workouts/find API

* Added a new (optional) tab to the TrainerDay workouts download dialog
* Deferring loading of the classic list of workouts until this tab is
  activated
* Implemented the API for TrainerDays /workouts/find (see
  https://api.trainerday.com/api-explorer/)
* Visualizing the workouts using a colored ErgFilePlot
* Modified ErgFilePlot::setData to directly use the data of the given
  ErgFile instead of falling back to the ErgFile set in the context
  (required to display multiple plots at once)
* Added a simplified version of the existing workouts query sytnax
  (supported verbs: duration, dominantzone)
* Saving the workouts as trainerday-<hash>.erg
* Using the segments-section as input for the hash and to identify
  duplicates
* Functionality can be enabled in gcconfig.pri (GC_WANT_TRAINERDAY_API)
* Prepared the travis-scripts before_script.sh to inject the API key to Secrets.h
* Prepared appveyor.yml to inject the API key to Secrets.h
* Patching GC_TRAINERDAY_API_PAGESIZE for appveyor
* Configured api key for TrainerDay in appveyor
2024-07-24 12:01:14 -03:00
Alejandro Martinez
0a8e0b6cc8 Update snapshot builds
Changes from DEV20404
36207bf FIT import - don't use CIQ speed as standard speed
7ea54fa Enable Calendar and Navigator charts for Trends
65945e5 Metadata tile initial creation update fix and time & date field
support (#4518)
65bf2c0 Add tool tips to trainer controls (#4517)
b4eea7f Change SMA smoothing to always include current point
7052724 ErgFileplot: Updating the zone-coloring and prediction on
changed intensity (#4515)
0d78b3e RunMetrics - Fix Efficiency Index
29644fe POSITION - FitFile decoder - Add cyclist position
ad6a0c3 Dialwindow font scaling (v2) (#4511)
fb76896 ErgDB is now TrainerDay
e592645 Fixed crash on startup if no power zones for bikes are defined
(#4509)
2681536 Updated qwt to 6.3 (qwt-multiaxes branch) (#4497)
2b23d6a Fix qt colors passed to GColor macro (#4501)
04f2f70 Change EditNamedSearches parent to MainWindow (Fixes colors on
dark themes)
dc5da99 Remove Frame on Workout Info
7684b4a Remove duplicate theme color code in Pages.cpp (#4503)
9256358 GCColor::readConfig correct name to setting check (#4502)
2ac2cd6 Batch Processing addition metadata update (#4399)
9647975 Fix isSpecial(internalName) in SpecialFields
e41e6b6 Fit: Add FIELD_87 for record (cycle_length16) fix #4489
c088aaf Fixes the background colour of the group by sub menu (#4492)
06a6dbe Fix copy paste error preventing macOS build
5e3db39 Add delete button to manage filters (#4493)
77df5b3 Train View: Improved the selection of workouts (#4400)
cfb8c2f Manage Perspectives - perspectives list cosmetics
f1bb83f Update Images default chart
562ef17 Update Spanish translation (#4487)
57c11e0 Remove Ctrl+A shortcut for Add Cloud Account
cf2e8d8 Enable translation of Save Changes in SaveExitDialog
1b49890 Update German Translation
f97770f GC CSV Export - rcad instead of cad for runs
7a11a6a Initializing AllPlot::isPanning to false (#4482)
76dedfb Fix Average Speed aggregation
6299374 Images chart update on image drop and import
fdb6d17 Python Web Chart - Don't accept drops
68ad048 Update Images Python chart in default layout
2d8bdd7 FitRideFile - Decode GAP extra field in m/s
5073ba8 Add Images chart to default layout
c693ed6 FitRideFile - Extra fields 136, 143 and 144
4f5a0eb CP Chart - show/hide interval settings based on model and
fitting selection (#4382)
0b144cc Train View: Coloring by powerzones in ErgFilePlot (#4479)
02835e3 Added support for old Daum devices before 2001 (#4303)
71c72d6 Changed the standard colors for compare-mode (#4478)
118eafe FitRideFile : A devApp can replace another with same local id
1241c0a Use elapsed time for session (instead of timestamp) fix #4474
a1a76fb WorkoutWizard - Don't save and close on Cancel
64c7ce3 Improved search/filter box drop down menu icon (#4470)
[publish binaries]
2024-07-13 12:33:55 -03:00
Alejandro Martinez
36207bf882 FIT import - don't use CIQ speed as standard speed
Since units not necessarily are the same.
Test file: test/rowing/RowingCIQspeed.fit
2024-07-12 17:58:15 -03:00
Alejandro Martinez
7ea54faafc Enable Calendar and Navigator charts for Trends
Include them in a Diary perspective in default layout.
Since these charts were not deprecated yet, lets make them
accessible until we have a suitable calendar chart replacement.
2024-07-10 19:38:45 -03:00