Compare commits

..

583 Commits

Author SHA1 Message Date
Mark Liversedge
2ea3080d24 VERSION 3.6 DEVELOPMENT BUILD AUGUST 2021
.. marking up for release of a new development build.

[publish binaries]
2021-08-14 11:17:36 +01:00
Mark Liversedge
fd546b4da1 Overview default config
.. when adding an overview chart it configures from a .gchart
   file built in via application.qrc

.. to update the default config all the developer needs to do
   is design using GC then export the .gchart into the
   appropriate src/Resources/charts/file.gchart

.. NOTE: the exported file has an errant comma (,) after the
         __LAST__ element. This is invalid JSON and should
         be fixed. It needs to be removed manually right now
         otherwise the JSON does not parse.
2021-08-14 10:13:51 +01:00
Mark Liversedge
2b30f9aa50 DataOverviewItem Vertical Scrollbar
.. progressively boldens as you hover and overlays contents
   to avoid taking screen real estate and being a distraction.

.. only watches mouse events and ignores wheel events since
   these clash with chartspace scrolling.

Fixes #4006.
2021-08-13 12:35:43 +01:00
Alejandro Martinez
09de27b0d2 Estimate Power - Add warning about accuracy
The sooner new users realize (or accept) they need a power meter
for power analysis of general outdoor rides, the better.
2021-08-12 16:50:15 -03:00
Alejandro Martinez
cc3f291113 Add encrypted API Key for RideWithGPS to Travis-ci builds
[skip AppVeyor]
To enable #3371 for Linux and macOS builds
2021-08-12 13:36:04 -03:00
Alejandro Martinez
dcd2a69951 Merge branch 'master' of https://github.com/GoldenCheetah/GoldenCheetah 2021-08-12 13:01:16 -03:00
Magnus Gille
c3bbd3a9ee Add support for Garmin HRM-Pro
Fixes: #3984
2021-08-12 16:51:56 +01:00
Mark Liversedge
d449933ab1 Refresh Perspective Selector on Add/Delete
.. commit 91f2c46 introduced a regression where the selector
   is not updated when the perspectives are changed (via
   the manage/add perspective functions).

.. this was because resetPerspective() returned if the
   athlete/view combination was last used to set the
   selector -- we now override this, but only when the
   perspectives config is changed.
2021-08-12 16:50:06 +01:00
Alejandro Martinez
7b2bd79448 Add encrypted API Key for RideWithGPS to AppVeyor builds
To enable #3371 for Windows builds
2021-08-12 12:23:57 -03:00
Mark Liversedge
6e88ee4ca6 Date consistency
.. datestring() was using 2 digit years and Overview data table
   sorting only expected 4 digit years.

.. datestring() now uses 4 digit years in line with everywhere
   else in the code.

.. data table sorting now supports 2 digit years and xx/xx/xx
   style dates too (just in case).
2021-08-12 16:11:18 +01:00
Mark Liversedge
b893e702b3 Iverview Data Table Negative Numbers
.. negative numbers were treated as strings because the
   matching pattern did not contain a '-'.
2021-08-12 13:35:55 +01:00
Mark Liversedge
18dbedc586 Fix Overview tile config
.. because the config widget is created before the tile
   configuration is loaded it needs to be updated before
   being shown to the user.

Fixes #4001.
2021-08-12 10:01:00 +01:00
grauser
fcad1ed196 RideWithGPS : Correct/implement API v2
Fix #3371
2021-08-11 22:20:23 +02:00
Mark Liversedge
8375f539db Bar Chart and Group By Category Labels
.. slightly improved category labels on a bar chart when groupby
   and date range is used. Labels for week, month and year are now
   specific e.g. 23/5, May and 2021 labels are applied respectively.
2021-08-10 21:02:59 +01:00
Mark Liversedge
cc0bb2e6d6 UserChart Smoothing and GroupBy
.. axis settings updated to enable users to smooth and group by
   for data series on the axis.

.. since group by needs to aggregate the series also have a new
   config term to define the aggregation method (Average, Total,
   Peak et al).

.. grouping and smoothing is applied in UserChart not the Generic
   chart or plot, so this functionality will not be available from
   Python and R charts (mostly because axis management and config
   is done differently).

Fixes #3999.
2021-08-10 18:47:39 +01:00
Alejandro Martinez
95cd28a279 Python embedded - Include Pandas 1.2.3
Pandas 1.3.x provokes problems on some charts, like HRV Trends
and otheres reported at the forum. Let's wait until it stabilizes
2021-08-09 20:27:46 -03:00
Alejandro Martinez
39fc9e4537 Enable View - Reset Layout considering perspectives
It behaves as before: current view layout is discarded and default
layout with perspectives is fetched from goldencheetah.org first and,
if not available, baked in layout is used.
Website defaults are not updated yet, so baked in layouts are used now.
2021-08-09 17:30:10 -03:00
Alejandro Martinez
1f77f08ae0 V3.6 Upgrade processing - put the current chart config into a general perspective
Renamed Resouces/xml/*-layout.xml files to Resources/xml/*-perspectives.xml
Removed deprecated Summary from Activities and Trends, and added default Overview to Trends
Added enclosing <Layouts></Layouts> and General perspective with proper type to each one
This provides default layouts for newly created athletes.
We still need to update layouts before release and to enable Reset Layout.
2021-08-08 14:24:29 -03:00
Mark Liversedge
91f2c46c3e Athlete/View switch update perspective selector
.. along the way renamed AthleteTab related methods in MainWindow
   to reflect the last commit renaming the classes.

.. there are also a handful of fixups to SEGV when no ride is
   selected in DataFilter (triggered by opening a second athlete
   and switching to trends view, which need to recreate the athlete
   switch bug that is also part of #3997).

.. and the logic to reset perspectives is changed in MainWindow
   with a special method resetPerspective that is called everywhere
   but will check the athlete/view combination has not already
   been set (to avoid multiple passes).

.. multi-athlete and perspectives need better testing as there are
   probably more SEGV in there, and if we fix them we could also
   remove the requirement for the opening view to always be Analysis.

Fixes #3997.
2021-08-08 15:19:36 +01:00
Mark Liversedge
01e0d14757 Renaming classes
.. Tab becomes AthleteTab - since Tab is almost meaningless
   TabView becomes AbstractView - since its the base for all the views

   there are no functional changes or fixes in this commit.
2021-08-08 13:05:06 +01:00
Mark Liversedge
29a76773a6 Overview Data Table tweaks
.. honour the sort order when refreshing (e.g. select new daterange or
   a new activity).

.. thin line to separate headings from data to make easier to read.
2021-08-07 20:44:13 +01:00
Mark Liversedge
abdce42223 User Sort DataTable on Overview
.. by clicking the header column the user can toggle sorting of
   the contents.

.. we try to infer the type of data in the column for sorting which
   probably works 80/20, but is better than adding yet more of a
   burden on the program that supplies the data.
2021-08-07 14:39:10 +01:00
Mark Liversedge
98466cc9cf Overview Data Table and Intervals
.. add legacy program to analysis view for an interval table.

.. highlight row in data table when mouse hovers over a row, but
   only when not using clickthru, since that already highlights
   the row to indicate click is available.
2021-08-07 09:23:12 +01:00
Alejandro Martinez
924da10958 DataFilter intervals() and intervalstrings() for Activity and Trends views
intervals(symbol|name|start|stop|type|test|color|route|selected|date|filename [,start [,stop]])
    returns a vector of values for the metric or field specified for each interval
    if no start/stop is supplied it uses the currently selected date range, or activity when no date range.

intervalstring(symbol|name|start|stop|type|test|color|route|selected|date|filename [,start [,stop]])
    same as intervals above but instead of returning a vector of numbers, the values
    are converted to strings as appropriate for the metric (e.g. Pace_Rowing mm:ss/500m).

Both metricname and metricunit now support name, start, stop, type, test, color, route, selected, date, filename,
in addition to metric names and date, to get corresponding localized string.

Example program to build an intervals table in Activities displaying all intervals for selected activity,
similar to the one in RideSummary:

{

names {
    metricname(name,
               Duration,
               Distance,
               Pace,
               xPace,
               Average_Heart_Rate
               );
}

units {
    metricunit(name,
               Duration,
               Distance,
               Pace,
               xPace,
               Average_Heart_Rate
               );
}

values {
    c(
      intervalstrings(name),
      intervalstrings(Duration),
      intervalstrings(Distance),
      intervalstrings(Pace),
      intervalstrings(xPace),
      intervalstrings(Average_Heart_Rate)
      );
}

}

Fixes #3626
2021-08-06 16:54:23 -03:00
Alejandro Martinez
0f9b92f8cf Datafilter - remove tabs introduced accidentally in previous commit 2021-08-06 14:44:07 -03:00
Mark Liversedge
171760097d GenericPlot scale labels
.. the scale factor was not being applied to data labels on
   a user chart.
2021-08-06 11:46:26 +01:00
Mark Liversedge
db9623a201 Alternate Json string protection
.. when embedding json in xml element attributes the string
   decoding mangles results.

   this is because of the way \ and " are handled at each
   pass, causing combinations to be lost early when decoding.

   This is largely a non-issue, except the user chart config
   is stored in perspectives.xml and worse, when embedded on
   an overview is encoded as .gcchart (xml) before being
   encoded in the perspective.xml.

   To avoid this issue, specifically with user charts and
   to leave all other json string encoding and decoding
   unaffected (e.g. ridefile.json) a new protect/unprotect
   method has been introduced.

   Utils::jsonprotect2() and Utils::jsonunprotect2() will
   still decode older style encoding for backwards
   compatibility, but now will translate \ and " in the
   encoded string with :sl: and :qu:

   This means that, for example, the following substitutions
   will be made:

   newline (\n) -> :sl:n
   cr (\r) -> :sl:r
   \ -> :sl:
   " -> :qu:

   If users add text with these characters (e.g. :sl:) then
   it will be decoded to a slash, but it is highly unlikely
   they will do this, and if they do, it should be harmless
   as these text strings aren't part of the the datafilter
   syntax.

Fixes #3996
2021-08-06 07:28:21 +01:00
Mark Liversedge
62012f1990 Fix Overview BubbleViz refresh bug
.. since axis min and max values were not initialised the
   visualisation would fail to refresh and was generally
   unpredictable.

.. we now set initial values and check when updating.
2021-08-05 18:06:22 +01:00
Alejandro Martinez
b36bbdc3c0 CP Chart - Reposition model helper when off window
This is already fixed when it is out to the right,
but still can happen to the left.

Fixes #3995
2021-08-05 13:09:17 -03:00
Mark Liversedge
00b50b47c3 activities() datafilter function
.. activities("Workout_Code=\"FTP\"", metrics(BikeStress))

   A new function that provides an activities filter
   to apply as a closure to an expression, following the
   same approach as the daterange() function.

   In the example above metrics() will only return values where the
   activity has a workout code "FTP".
2021-08-05 13:48:18 +01:00
Mark Liversedge
1986df1c95 DataFilter string escaping
.. unescape datafilter strings since the lexer supports that
   but they are not parsed.

.. Only supports \n, \r and \" for now, but that should be
   enough.
2021-08-05 10:56:23 +01:00
Alejandro Martinez
15bbe288a0 Enable DataFilter zones to be used in Trends View
Formula doesn't change.
When date range is set Trends View is assumed and we use the sport of included
activities with default to Bike (Run for Pace) when mixed, and date is the end
date for the date range.
Otherwise we use activity sport and date as before.
2021-08-04 16:06:28 -03:00
Mark Liversedge
534a6a4ef1 Overview table clickthru fix for single row
.. need to highlight first row of table when only a
   single row for click thru. Since values are shown in
   rows not columns.
2021-08-04 15:15:52 +01:00
Mark Liversedge
d41e7dd1f6 Logical and is '&&' not 'and'
.. annoyingly gcc allows this which is why I keep making
   this silly mistake.
2021-08-04 13:36:28 +01:00
Mark Liversedge
a98ac12d0e Fix clickthru SEGV for Bubble and TopN overview items
.. they raised signals in paint events which was highly
   problematic (!)

Fixes #3993
2021-08-04 13:21:09 +01:00
Mark Liversedge
49989f95b6 Overview Data Table - Part 3 of 4
.. click thru from the data row to the trends view to
   view it on the activity view.

.. Added a function "f {}" that returns the activity
   filenames- the same semantics used in the user chart.

.. the mechanism used in the overview items to click thru
   from the itemPaint function is dropped and we now
   do it from the mouse release event.

.. see issue #3993 which will get fixed using the same
   scheme as this one.
2021-08-04 13:05:46 +01:00
Mark Liversedge
98e49c3228 Fixup UserChart mouse interaction on a Chartspace
.. when a user chart is placed on an overview we filter mouse
   events from the chartspace and not the widget due to
   events being discarded.

   See this issue for more details:
   https://github.com/GoldenCheetah/GoldenCheetah/issues/3992
2021-08-03 22:38:15 +01:00
Alejandro Martinez
171882dc9f DataFilter zones - use translated strings from WPrime and RideFile
Also use joules for fatigue zone limits like the old summary.
2021-08-03 17:14:44 -03:00
Mark Liversedge
bd864344bb Fixup for legend mouse events in chartspace
.. when a userchart is embedded into an overview mouse events
   do not propagate in their entirety- as a result the legend
   widgets do not see MouseRelease (even though they see
   MousePress).

   So the click to show/hide when hovering over a legend item
   responds to the press not the release.
2021-08-03 19:39:31 +01:00
Mark Liversedge
72f91c31a8 Fix user chart axis color
.. when using named colors the axis was always black because
   the color was not being translated via the RGBColor macro.
2021-08-03 15:51:36 +01:00
Mark Liversedge
155273232f User Chart on Overview - Part 2 of 3
.. User charts can be scaled (lines, texts, markers, legend)

.. Plot area background color honours overview card color
   when we're on an overview.

.. when adding a user chart to an overview make it span a couple
   of columns and 3 times deeper than a metric tile.

NOTE:

   There are two bugs that need to be squashed individually
   and are related to user charts on overview:

   1. Mouse event handling seems to be broken for user
      charts in Overview.

   2. User chart axis colors are always black when the series
      are configured to use named colors.
2021-08-03 14:36:35 +01:00
Alejandro Martinez
a0f77fbf70 Remove sport parameter from zones DataFilter function
zones(hr|power|pace|fatigue, name|description|low|high|units|time|percent)
applies to the currently selected activity and sport is implicit.

Also changed name() by metricname() and unit() by metricunit() in script comments.
2021-08-02 20:32:47 -03:00
Alejandro Martinez
fd384d69ba Fix zero div crash in Overview Data Table when names() returns an error
Found while removing sport parameter from zones.
2021-08-02 20:21:13 -03:00
Alejandro Martinez
7e998d965a Report full OS version string for all supported platforms
Fixes #3991
2021-08-02 18:00:13 -03:00
Alejandro Martinez
f1045d1aed DataFilter zones - use pace units instead of %CV
Like old Summary and most APPs, easier for athletes and coaches.
2021-08-01 16:55:58 -03:00
Mark Liversedge
557a0a27ec Fix User Chart Legend CPU hog
.. was caused by an eventfilter that caused a redraw on every single
   event (which included the repaint it caused, hence an infinite loop).

Fixes #3989
2021-08-01 18:40:33 +01:00
Mark Liversedge
e772e068d5 Add User Chart to Overview - Part 1 of 3
.. You can now add a user chart to the overview dashboard
   using a new tile UserChartOverviewItem.

.. Had to refactor UserChart away from a GcChartWindow and
   into a QWidget so the QGraphicsProxyWidget would play
   along.

.. A new UserChartWindow has been added to manage adding
   a UserChart to a perspective.

.. fixed chartspace item config widgets being destroyed across
   the add wizard and config dialog (existing bug).

.. fixed initialisation of items when added via wizard

NOTE the following issues/todo:

.. mouse click events are squiffy for some reason

.. need to add a way to scale as the text is tiny

.. legend has a performance issue (see #3989)

.. overall performance is good even tho we are using
   a QGraphicsProxyWidget- might need to reevaluate
   this later and embed the QChart directly into the
   QGraphicsScene. To be reviewed.
2021-08-01 10:20:24 +01:00
Mark Liversedge
c91f6d89ac Quieten gcc warnings a little
.. for R and Python embedding code, where casting and pointers
   are complex and not an issue, but gcc likes to warn us.
2021-07-31 11:54:41 +01:00
Mark Liversedge
031b268270 Sustain metrics needed isTime()
.. to ensure they are formatted as time metrics.
2021-07-30 22:02:03 +01:00
Mark Liversedge
b086b779cf Overview Data Table - Part 2 of 4
.. config dialog offers options to recreate the old summary
   window sections;
   * totals, averages, maximums, metrics
   * zone summary
2021-07-30 18:40:02 +01:00
Mark Liversedge
c60f6f4bb6 Zones DataFilter Function
.. a new zones datafilter function to retrieve zone info
   and metrics for the current activity.

.. zones(sport, series, field)

   sport is one of run, bike, swim
   series is one of power, hr, pace
   field is one of
   * name - zone name (e.g. L1)
   * description - zone desc (e.g. Active Recovery)
   * low - the low mark for the zone (e.g. 0)
   * high - the high mark for the zone (e.g. 100)
   * unit - units for low/high (e.g watts)
   * time - time spent in zone
   * percent - time spent in zone as a percentage

   each call will return a vector of strings for all
   zones available.

.. to support the syntax the old functions 'name' and
   'unit' have been renamed to 'metricname' and
   'metricunit' to avoid clashing with symbols and
   were bad choices in the first place.

.. the motivation for this function is mostly about the
   overview data table, where we might create a tile
   with the following program to display the zone
   table that was previously available on RideSummary

   names {
       c("Name","Description","Low","High","Time","%");
   }

   units {

       c("", "",
         zones(bike,power,units),
         zones(bike,power,units),
         "", "");
   }

   values {

      c(zones(bike,power,name),
        zones(bike,power,description),
        zones(bike,power,low),
        zones(bike,power,high),
        zones(bike,power,time),
        zones(bike,power,percent));
   }
2021-07-30 13:57:04 +01:00
Mark Liversedge
173b1a754e Stop Filter box expanding in config dialogs
.. we have a filter box on most trends charts config dialogs
   and elsewhere. But when you resized the dialog the filter
   box would also stretch (even though it is a QLineEdit).

.. this commit sets the vertical size policy to fixed to stop
   this ugly behaviour.
2021-07-28 21:46:49 +01:00
Mark Liversedge
0f432a7824 ChartSpace fixups for spanned tiles
.. when a column contains no tiles it may still be spanned
   by a tile (since we add that feature).

.. this means we should check if the column contains a spanned
   tile before shifting all remaining tiles left.

.. also enabled dropping into an empty column which was
   not possible previoisly (impossible to have an empty
   column)
2021-07-28 20:36:04 +01:00
Mark Liversedge
0ffca019ea Chartspace scene resize when spanning into empty column
.. when you extend a tile across an empty column to the right
   the scene was not being resized to take this into account.
2021-07-28 10:25:22 +01:00
Mark Liversedge
360bc29d52 DataFilter unit() and name() functions support 'date'
.. so we can get a translation of the word "Date".

.. also fixed up the default trends view data table tile to
   use it, instead of hardcoded "Date".
2021-07-28 08:20:29 +01:00
Mark Liversedge
7f005935e5 Overview Data Table - Part 1 of 4
A new overview tile that can be placed on trends or activity view to
display a table of data.

.. It uses a program to fetch the data to display via 3 functions:
   * names() returns a list of column names
   * units() returns a list of column unit names
   * values() returns a list of values to show

.. If there are more values than names then it is assumed there
   are multiple rows to be shown.

.. When adding a data tile an example program is provided to
   demonstrate how this works (will need to also document this
   on the wiki, or possibly a video tutorial).
2021-07-27 21:34:46 +01:00
Alejandro Martinez
b9fbcce56e Fix copy paste error in FixElevation
Introduced by 061cb93.
Fixes #3973
2021-07-26 11:29:57 -03:00
Alejandro Martinez
a918a5c28e Histogram Chart - Disable Show Zone Limits option for Trends
Since time in zone is computed using the active zones for the series according
to sport and date, there is no good choice of limits to show in the general case.
This is part 4 of #3911
2021-07-24 20:52:48 -03:00
Alejandro Martinez
c89d15e067 Histogram Chart - Add Show Zone Limits option for Polarized zones
Power, HR and Pace use separate scales now.
This is part 3 and fixes #3911
The sport used to select zones in rangemode needs an update,
this will be included in a separate commit.
2021-07-23 17:21:46 -03:00
Alejandro Martinez
86e6b4781c Allow Running Model estimates in DataFilter formulas
This should have been part of ff0b329
Fixes #3958
2021-07-23 15:26:25 -03:00
Alejandro Martinez
92e3438ef3 Histogram Chart - Add Show Zone Limits option for WBal zones
This is part 2 of #3911, part 3 Polarized Zones.
The sport used to select zones in rangemode needs an update,
this will be part 4.
2021-07-23 12:22:55 -03:00
Alejandro Martinez
59a2f3841f Histogram Chart - Add Show Zone Limits option for Power/HR/Pace
This is part 1 of #3911, part 2 will be WBal zones and part 3 Polarized Zones.
2021-07-22 21:14:45 -03:00
Mark Liversedge
a52a07de7a DataFilter functions for Overview Data Table
.. some new functions to help prepare data for the new overview
   data table item. Possibly useful in other contexts too.

   datestring(v) - returns v converted to a string date where
   v can be a single value or vector of values, as days since
   01/01/1900. e.g. datestring(Date)

   timestring(v) - returns v converted to a string time
   where v can be a single value or vector of values.

   name(metric1 ... metricn) - returns the metric name in
   the local language

   units(metric1 ... metricn) - returns the metric unit name
   in the local language
2021-07-20 22:25:29 +01:00
Mark Liversedge
806e907584 Fix Overview resize spanned column fencepost bug
.. when calculating the spanned item's width there was a
   fencepost error in the logic causing the spanned item
   to be resized incorrectly.
2021-07-20 18:27:35 +01:00
Mark Liversedge
0cc4a338d2 Overview Items Span Columns
.. resize an overview item column width whilst holding down the shift key
   to make it span columns, it will expand across and back.

.. this is largely to support the data table overview item type that
   is pending, but also may be useful in the future when items can
   contain charts (not planned for v3.6).
2021-07-20 17:37:16 +01:00
grauser
b6f1151990 FitRideFile : correction for byte ff is not NA 2021-07-19 22:22:49 +02:00
Mark Liversedge
85e5353990 Train view honor colors better
.. train plot background color is now honored more completely
   with the backgrounds, sidebars and tabs all taking the
   right color.

.. additionally, when applying any theme the train view will
   always be set to a black background since it works best
   like that (but users are still free to change it).
2021-07-19 15:37:56 +01:00
grauser
456b06348f FitRideFile : Change hex convertion 2021-07-19 12:38:10 +02:00
grauser
c502c9bbc0 FitRideFile : Add decodeDeveloperID
Just read values (without storing)
2021-07-18 10:08:33 +02:00
Mark Liversedge
e34a36f98a V3.6 upgrade processing - reset theme
.. based upon current background plot color, so those with a
   preference for dark themes get the new dark theme and those
   with a preference for light get the new light theme.

.. making it mandatory will likely annoy some users but for the
   most part it will mean the UI will get updated to a more
   thoughtful color scheme.
2021-07-18 07:55:33 +01:00
Mark Liversedge
663b6af8fb Fix toolbar vs sidebar color configuration
.. they got conflated, now are separate colors but when we
   apply a theme they are set to the same color, of course
   the user can override this.
2021-07-17 11:41:49 +01:00
Mark Liversedge
1b38e556c3 Tab Bar menu image for WIKI 2021-07-15 13:46:59 +01:00
grauser
3e21d6bd39 FitRideFile : Use qbswap 2021-07-14 10:49:50 +02:00
Alejandro Martinez
8e3863218d Avoid crashes when Python APIs are called from User Metrics
There is no perspective involved in this case.
2021-07-12 20:41:28 -03:00
grauser
c29a776c21 FitFile : Some devices (eg Coros Pace 2) declare uint32 with size 1
Fix #3645
2021-07-11 16:42:53 +02:00
grauser
566d562982 FitFile : Add IpBike and correct float32 for endian
Fix #3682
2021-07-11 16:11:17 +02:00
grauser
c78fcda1e3 Translation : lupdate + french update/progression (1/3) 2021-07-11 15:03:42 +02:00
Alejandro Martinez
61d00c161f Fix crash on PythonChart - set perspective on RunScript 2021-07-10 11:15:15 -03:00
Alejandro Martinez
bd49279553 Upgrade Python to 3.7.11 for Travis-ci Linux builds
[skip appveyor]
Python 3.7.10 AppImage is not available anymore.
[publish binaries]
2021-07-09 18:14:28 -03:00
Mark Liversedge
73a354156d VERSION 3.6 DEVELOPMENT BUILD JULY 2021
.. marking up for release of a new development build.

[publish binaries]
2021-07-09 14:37:30 +01:00
Mark Liversedge
cb092b9d73 Interval Metric config becomes Favourite Metrics
.. Unifying the metric config to "Favourite" metrics that are
   used on the interval sidebar, compare pane and trends popup.
2021-07-09 12:56:14 +01:00
Mark Liversedge
722588f1db Remove RideSummaryWindow configuration pages
.. now the RideSummaryWindow is deprecated we no longer need
   to configure the metrics / bests being displayed on it.
2021-07-09 11:20:29 +01:00
Mark Liversedge
9d6e08547f Deprecate RideSummaryWindow
.. the ride summary on analysis and trends is now replaced by
   the overview dashboard.

.. since RideSummaryWindow uses html to deliver content via
   an embedded web browser it had become unwieldy and the
   UX was klunky and static.

.. additionally the code was unwieldy and difficult to
   maintain and update when new feature were introduced.

.. this is a happy day, goodbye and farewell.
2021-07-09 09:02:50 +01:00
Alejandro Martinez
39a7e67085 Add parent widget to AddPerspective dialog to stop it being hidden
raise doesn't fix the issue on Windows
2021-07-08 18:24:47 -03:00
Mark Liversedge
c4d6ee065e Raise the AddPerspective Edit dialog to stop it being hidden 2021-07-08 19:49:26 +01:00
Mark Liversedge
b738038907 Trends view perspective filter
.. applies to all charts in the perspective, so you can create
   a perspective called "Running" and set the filter to "isRun"
   and all charts in the perspective will only show data from
   runs.

.. updated charts on Trends view to honor the perspective
   filter, as below:

   * Overview
   * Trends
   * User Chart
   * Treemap
   * Critical Power
   * R Chart
   * Python Chart
   * Histogram - for metrics
   * Summary - no change as deprecating shortly

.. renamed the HomeView to TrendsView in line with some of the
   other recent name changes. The class names were set over 10
   years ago and no longer reflect the UI concepts.

.. New signal: GcWindow::perspectiveChanged(Perspective *)

   When the chart is moved from one perspective to another, likely does
   not need to do anything on Analysis view, but on Trends view its
   quite likely the filter has changed, so refresh is needed.

.. New signal: GcWindow::perspectiveFilterChanged(QString)

   When the perspective filter is updated this signal is called but
   only on trends view since it doesn't really matter on Analysis
   from the charts point of view.
2021-07-08 15:17:14 +01:00
Mark Liversedge
3bc1391cb1 Fix display artefacts from last commit
.. although its sub-optimal, this fix resolves rendering issues
   on startup in analysis view (blank chart bar and related).
2021-07-06 18:16:36 +01:00
Mark Liversedge
73e174a982 Startup Analysis view select perspective
.. at startup the perspective selection logic for analysis
   view was not called and just defaulting to the first
   available perspective in the analysis view.
2021-07-06 17:23:17 +01:00
Mark Liversedge
20d34664e3 Analysis View Switch Perspective automatically
.. when creating a perspective you can now add an expression
   that will be evaluated when a ride is selected in the sidebar.

.. For example you can create a perspective "Running" with an
   expression "isRun". When a run is selected on the sidebar
   we automatically switch to the running perspective.

   If now, whilst on the "Running" perspective you select say
   a cycling activity, the expression will evaluate to false,
   so we will look for another perspective to switch to.

   If no expression is found to switch to, and the current
   perspective has an expression that is evaluating to false
   then we just switch back to the first perspective in the
   list (you can reorder them if needed).
2021-07-06 15:39:47 +01:00
Mark Liversedge
8c5144657c Export perspective filename
.. add the view type it is for to the default name, so at least
   the user will have some clue when sharing etc.
2021-07-05 12:00:52 +01:00
Mark Liversedge
eadc3a78bf Honor type of Perspective when import/exporting
.. the perspective type is added to the xml when exporting and
   also when saving state.

.. on import the perspective type is checked to make sure we
   don't import trends views into activities and vice versa.
2021-07-05 11:42:39 +01:00
Mark Liversedge
68e7fcacb4 Perspectives - Part 4a of 4
.. Import and Export perspectives to an '.gchartset' file
   as XML data.

.. Added to MainWindow's View menu and the Manage Perspectives
   dialog.
2021-07-05 11:06:02 +01:00
Mark Liversedge
4e570230a7 Standard Colors Tweaking
.. User Chart annotation labels now work when a standard color
   has been selected.

.. The name of the standard color "CP Curve" has been renamed
   to "Mean-maximal Power" to more accurately reflect how it
   is used in the Critical Power standard charts.
2021-07-04 22:04:26 +01:00
Mark Liversedge
830317ef03 Search Standard Colors in Appearances options
.. so its easier to find the one you want to set.
2021-07-04 21:30:44 +01:00
Mark Liversedge
1335786957 Remove debug
.. erroneous updates left in last commit. Apologies.
2021-07-04 21:13:44 +01:00
Mark Liversedge
271c0a979a Add search when choosing standard colors
.. there are lots of standard colors and they're hard to scroll
   through. A new search box makes it easier to find them.

.. this is in anticipation of adding a lot more standard colors
   for things like W', Pmax, Weight yada yada
2021-07-04 21:10:08 +01:00
Mark Liversedge
1026145f9b Perspectives - Part 3 of 4
.. New dialog to rename, add and remove perspectives, re-order them
   and move charts from one perspective to another.

.. The focus is on managing perspectives and not the general UI
   layout (ie. add/remove charts and rename things etc) this is
   likely to be something this morphs into, but for now lets
   keep it simple (this was complicated enough !)

.. also found a SEGV in CP chart when hover in allplot before the
   CP chart has been notified in another perspective-- there are
   likely to be a few of these kinds of bugs around.
2021-07-04 15:34:40 +01:00
Alejandro Martinez
fe2643eb65 Workout Editor - Change the representation of 1 point workout
When you start with a single click the workout is represented graphically
as a ramp from zero, but the qwkcode and erg code generated starts with a block.
Additionally an initial ramp starting from zero neither works.
This was reported at the forum and, although it is mostly cosmetic, it can be
annoying, so this change fixes both.
2021-07-03 18:47:35 -03:00
Alejandro Martinez
6ecff9e2d1 Travis-ci - build only to generate binaries
[skip appveyor]
To spare scarce Travis-ci credits.
2021-07-02 11:54:56 -03:00
Alejandro Martinez
9023014833 Change build status from travis-ci.org to travis-ci.com
[skip ci]
2021-06-29 17:24:41 -03:00
Alejandro Martinez
c7599be666 Disable RideWithGPS upload
It doesn't work since v1 API was deprecated and v2 support is not complete,
so let's disable it for now.
Related to #3371
2021-06-29 09:47:07 -03:00
Alejandro Martinez
0dd9d045cd Disable dynamic reapply of DataFilter
When activities list is filtered, RideNavigator lose the focus on selected
activity if the filter is reapplied on rideSelected.
Fixes #3341
2021-06-27 19:41:27 -03:00
Alejandro Martinez
7540b69eea Fix error in German translation causing non-refreshing R Chart in Trends
Difference between R Chart in Activities and Trends is a blank at the end
of the name, which is not preserved in German translation so new R Charts in
Trends are created as Activities charts.
Fixes #3427
2021-06-26 10:38:33 -03:00
Alejandro Martinez
de3fadf8e7 Disable extended selection mode in Train workout list
It is unnecessary, since Train mode supports only 1 workout at a time,
and single selection makes it easier to scroll the list in tablet mode.
Related to #3268
2021-06-25 19:43:36 -03:00
Alejandro Martinez
a70231c4bb Update Workout_Control.png for v3.6
[skip ci]
2021-06-25 17:26:39 -03:00
Alejandro Martinez
0262d5f968 Disable VideoSync when using Qt5 video
It is not ready to use.
2021-06-25 14:00:40 -03:00
Alejandro Martinez
6919ade54e Fix build error on VideoWindow when building with Qt5 video
This bug was introduced by #3764
Fixes #3907
2021-06-25 12:04:57 -03:00
Alejandro Martinez
0243aedded Athlete Library setting - Avoid warning when there is no change
Current GC root can be different from athlete library setting
due to GC startup logic and the spurious warning is confusing.
Revert to previous value, not current GC root, if the user chooses to.
Fixes #3903
2021-06-24 19:32:52 -03:00
Mark Liversedge
32a6089f50 Fix SEGV in validation of xdata function
.. xdata() caused a crash in the validator since it tried
   to dereference parameters and caused an index assert.
2021-06-23 12:35:10 +01:00
Mark Liversedge
58c5cc20d2 Trends Chart support named colors
.. better support for themes, trends chart colors update
   based upon the theme if we use named colors.
2021-06-23 10:55:24 +01:00
Mark Liversedge
8753032170 Tidy up perspective selection
.. and setting current ride / date ranges. fixing a regression
   introduced with the recent perspective changes.
2021-06-22 18:40:59 +01:00
Mark Liversedge
e448aa1a8d Fixup date range selection on trend view
.. broken in part 2 of the perspectives updates.
2021-06-22 17:46:29 +01:00
Mark Liversedge
58c8b98f47 Fix UserChartData SEGV when no ride selected
.. edge case but common for new users with no data.
2021-06-22 17:24:24 +01:00
Mark Liversedge
586033c6a5 Fix Chart tab color when dragging
.. it always had a black background instead of the color
   of the tab being dragged, which was jarring with a
   light color scheme.
2021-06-22 17:01:04 +01:00
Mark Liversedge
154077793e Move source for Perspective
.. originally Charts/HomeWindow.{cpp,h} now moved to
   Gui/Perspective.{cpp,h} since its a core Gui element.
2021-06-22 15:53:17 +01:00
Mark Liversedge
07d835e076 Perspectives - Part 2 of 4
.. Perspectives can now be added and are saved and restored on
   startup and close.

.. A new config file 'xxx-perspectives.xml' replaces the old
   'xxx-layout.xml'.

.. HomeWindow has been renamed Perspective across the code.
   With TabView now taking responsibility for loading and
   saving configuration.

.. This is a fairly big refactor that touches upon a number
   of events at startup, including how sidebar events are
   propagated across charts and tabs. And will need a reasonable
   amount of testing before release.

.. Separately, I also fixed a SEGV in the Python chart when
   no ride is selected (an old bug not related to this).
2021-06-22 14:51:13 +01:00
Mark Liversedge
3888246b42 Perspectives - Part 1 of 4
The user will be able to create collections of charts as opposed to
the single long list of charts in each of the four views.

This first update:

.. update toolbar to include a perspective selector

.. also updated aesthetics of toolbar (mostly icons on hidpi)

Further updates pending will:

.. part 2 will introduce code to add, save and restore perspectives

.. part 3 will introduce code to manage and rename perspectives

.. part 4 will introduce new defaults for each perspective

A future enhancement may allow the perspective to be aligned to a
specific sport in activity view, so the perspective can be selected
based upon the sport of the activity being analysed. But that will
not be part of these changes.
2021-06-18 16:15:56 +01:00
Alejandro Martinez
061cb9328c Fix Elevation - Add MapQuest API Key as DP parameter
MapQuest API Key is a new DP parameter to allow users to enter one
and have personal transaction limits.
When empty it defaults to GoldenCheetah API key as before.
Fixes #3900
2021-06-14 19:04:34 -03:00
Alejandro Martinez
c3a1afa0a0 Reduce stack use of DataFilter evaluator
Making Result parameter of Leaf::eval a const reference.
Fixes stack exhaustion on Windows while evaluation nested formulas.
2021-06-13 09:47:26 -03:00
Alejandro Martinez
968bdc1d17 Train WorkoutWidget and WorkoutWizard - Avoid crashes when no zones
Even when zones are created for new athletes, better be safe.
2021-06-11 14:19:11 -03:00
Mark Liversedge
d17d3c59a3 VERSION 3.6 DEVELOPMENT BUILD JUNE 2021
.. marking up for release of a new development build.

[publish binaries]
2021-06-08 08:23:18 +01:00
Alejandro Martinez
99f73bdba5 Use translated version of Bike in sports list for zones
[publish binaries]
2021-06-06 15:03:19 -03:00
Alejandro Martinez
df08c607d1 Update translations files and fix minor translations related issues
There is a pending issue: Class 'GColorDialog' lacks Q_OBJECT macro
[publish binaries]
2021-06-06 11:48:47 -03:00
Alejandro Martinez
2b063c91c2 Ensure default sport for zones 2021-06-06 05:28:40 -03:00
Alejandro Martinez
6e4dba86f0 Fix crash at startup when there is no power.zones 2021-06-05 19:56:15 -03:00
mp
316e62d27c Added missing include <limits> header for std::numeric_limits (#3894) 2021-06-04 11:04:18 +01:00
Alejandro Martinez
a5043d1b59 Identify common endurance sports names for endurance athletes
including translations
To ensure consistency in zones assigment and sync.
Other sports can be added as usual.
[publish binaries]
2021-06-02 11:11:50 -03:00
Alejandro Martinez
0ba409a192 CPPlot - Display model parameters in Pace units for Row
Missing from previous commits
2021-05-29 19:03:23 -03:00
Alejandro Martinez
aed30180f6 Add Pace Row to LTMPopup
Missing from previous commit
2021-05-29 10:47:58 -03:00
Alejandro Martinez
773e5a21b0 Add Row to default sports and Pace Row (min/500)
Fixes #3892
2021-05-27 21:08:34 -03:00
Alejandro Martinez
0d0cf42918 Enable specific HR and Power zones for other sports
Any sport present in the list of possible Sport field values
can have its own HR and/or Power zones like Run before.
Otherwise Bike zones are used as default for backward compatibility.
Fixes #3280 combined with last 3 previous commits.
[publish binaries]
2021-05-26 19:04:32 -03:00
Alejandro Martinez
5472b0b50b Fix missing replacement in LMPlot.cpp from last commit
It goes undetected by MSVC, weird.
2021-05-26 17:09:33 -03:00
Alejandro Martinez
3a07cc52d7 Generalize Power Zones for any sport
All sports defined as values for Sport metadata field can have
specifics Power Zones and default to Bike zones otherwise.
Similar to current power zones for Run.
Part 3 of #3280
2021-05-26 16:15:27 -03:00
Alejandro Martinez
380dc47ac7 Generalize HrZones for any sport
All sports defined as values for Sport metadata field can have
specifics HR Zones and default to Bike zones otherwise.
Similar to current HR zones for Run.
Part 2 of #3280
2021-05-25 20:28:15 -03:00
Mark Liversedge
815496a8d1 Flatten Train View Load Colors
.. the alpha channel was too agressive for light backgrounds and
   was washed out and unpleasant on the eye.

.. reduced the alpha blend to make it flatter and cleaner.
2021-05-23 10:07:28 +01:00
Mark Liversedge
6486e89145 Fix show efforts on CP Plot
.. showEfforts was not being initialised when the plot was created
   which resulted in sustained efforts always being shown regardless
   of the chart setting.
2021-05-22 15:24:47 +01:00
Mark Liversedge
d83041282d User Charts and the Configured Colors - Part 2 of 2
.. themes are now either light or dark, which selects the default
   color set used to set the standard colors.

.. users can of course maintain them, but when applying a theme
   there is no need to adjust now (some of the default colors looked
   poor on a light background).

.. there is a line of code in main.cpp to dump the current colors to
   stderr so it can be cut and paste into colors.cpp -- this makes it
   much easier to use the UI to maintain colors and update the code.
   this is obviously just for developers.

.. letting users define their own themes could be done later, but feels
   like overkill at this point.
2021-05-22 15:11:20 +01:00
Mark Liversedge
176226545f Logical operator is && not "and" in C++
.. bit of a brain fart that g++ clearly allows, whilst MSVC doesn't.
2021-05-22 13:10:45 +01:00
Mark Liversedge
df1d83c357 User Charts and the Configured Colors - Part 1 of 2
.. When creating user charts we can now select a standard color as
   configured in appearances.

.. This means users can select e.g. the "Power color" when plotting a
   power series.

.. The second part of this commit will update the themes to ensure that
   the standard color settings are appropriate for the background (as
   they are inappropriate currently. e.g. Critical power is always
   yellow, even on a light background).
2021-05-22 12:49:55 +01:00
Alejandro Martinez
20a7d74c16 Air density calculator: add ability to use relative humidity
Fixes #1383
2021-05-21 20:28:15 -03:00
Mark Liversedge
489c499ba7 isinf() not std::isinf()
.. sigh. should have been in last commit to fix the one prior.
2021-05-21 13:36:05 +01:00
Mark Liversedge
95e5cb3bc4 isnan() not std::isnan()
.. fixup last commit.
2021-05-21 12:42:38 +01:00
Mark Liversedge
9a0b6e0bc7 qSort is deprecated, use std::sort
.. mostly straight replacement as qt5 containers are templated
   and qSort semantics are the same as std::sort

.. prepping for Qt6.2 which is due late 2021.

Signed-off-by: Mark Liversedge <liversedge@gmail.com>
2021-05-21 11:30:46 +01:00
Alejandro Martinez
44f49c54d6 Air Density Calculator - Use Average Temp from current activity
When available. Fixes #1386
2021-05-20 20:24:22 -03:00
Ale Martinez
bee7d48ac2 DropBox - Report message on connection error 2021-05-18 13:35:39 -03:00
Ale Martinez
d7e1747a2b Python API - setTag/delTag/hasTag manage overrides
Continuation of previous commit. Caveat is value argument is string
so the user is resposible of providing proper string representation
of the value for overrides and numeric metadata.
2021-05-18 13:03:07 -03:00
Alejandro Martinez
9315b301d7 Add setTag/delTag/hasTag to Python API
For Metadata handling in Python Data Processors, similar to set/unset/isset
in formulas, but no metric overrides for now.
- setTag(name, value[, activity])
- delTag(name[, activity])
- hasTag(name[, activity])
All return boolean success indicator and activity is optional,
defaulting to current activity.
setTag and delTag are enabled only in Python Data Processors, mark
the activiy as modified and notify metadata has changed on success.
Fixes #3639
2021-05-17 19:32:41 -03:00
Mark Liversedge
4d5841e4b1 Move Boost GeometricTools_BSplineCurve.h to contrib
.. it is not our code.
2021-05-16 12:27:17 +01:00
Mark Liversedge
e1ac00b860 Move contributed sources to contrib directory
.. Makes it easier to identify code that has been snaffled in from
   other repositories and check licensing

.. The httpserver is now no longer optional, since it is delivered
   as contributed source.
2021-05-16 10:33:09 +01:00
Alejandro Martinez
3d07321b2f RideNavigator - Use uniform row height (#3890)
Variable row height, depending on activity calendar text being empty or not,
provokes refresh issues when calendar text changes from empty to not, or
viceversa.
Instead to try to solve this issue with specific code, I think it is
simpler, and more regular from UX point of view, to have a uniform row height.
After this change row height depends on metadata config only:
1) a new RideMetadata method is introduced (hasCalendarText) to check if
   Calendar Text can be non empty, i.e. if some field has diary checked.
2) RideNavigator uses this method when config changes to set hasCalendarText
   member used to determine row height for all activities.
Fixes #3074
2021-05-15 16:55:38 -03:00
Mark Liversedge
c4204231cc Fix Train Multi/Poly Regression compiler warnings
.. they hide real issues.
2021-05-15 15:24:31 +01:00
Mark Liversedge
f279898bd5 Fix Realtime widgets compiler warnings
.. they hide real issues.
2021-05-15 14:50:22 +01:00
Mark Liversedge
6560194db4 Fix LM compiler warnings
.. they hide real issues.
2021-05-15 14:30:40 +01:00
Mark Liversedge
aaa6bac5ed Fix Colors.cpp compile warnings
.. they hide real issues.
2021-05-15 14:07:08 +01:00
Mark Liversedge
a4e9b52eeb Fix TTSReader compiler warnings
.. spurious warnings hide real issues.
2021-05-15 12:58:56 +01:00
Mark Liversedge
ae2df3a271 Fix KurtInRide/SmartControl compiler warnings
.. they hide issues that are real.
2021-05-15 12:42:25 +01:00
Mark Liversedge
ce920126f5 Fix Imagic compiler warnings 2021-05-15 12:32:34 +01:00
Mark Liversedge
cebf46a99d Disable warning messages for BSPline/FixGPS
.. on a mission to clean up compiler warnings that hide real issues.
2021-05-15 12:19:52 +01:00
Ale Martinez
f072a1ad6e EPM Parser - Don't overwrite distance from position records
For older files with dpf match is not exact, missing coordinates
can be completed using FixGPS.
2021-05-12 19:09:59 -03:00
Paul Johnson
f77f040ae7 Additional Median Option in "Fix Power Spikes" Data Processor (#3887) 2021-05-12 13:43:26 -03:00
Ale Martinez
07c532a588 EPM Parser - Compute distance for old files with dpf 2021-05-09 14:24:19 -03:00
Ale Martinez
6572bbb52a Train View - Auto select matching media and videosync files
When a workout file is selected.
Fixes #3886
2021-05-08 19:06:59 -03:00
Nils
3e153f03ac Velo Hero: Use HTTP with TLS and custom User-Agent (#3885) 2021-05-08 18:07:49 -03:00
Ale Martinez
ac606065aa Train View - Save workout name as Route metadata
Fixes #3630
2021-05-08 17:05:09 -03:00
Ale Martinez
0a03aac7e8 Train View - Cancel any pending start on disconnect 2021-05-07 10:46:05 -03:00
Ale Martinez
79f4bb2815 Train View - Optional countdown for start workout
Configurable in Train Preferences, defaults to 0, which is current behavior.
When countdown > 0, start is delayed and countdown is displayed in
notifications panel.
Fixes #3632
2021-05-06 20:11:46 -03:00
Ale Martinez
d932811c97 PMCData - create a DataFilter for eval at refresh time
To avoid crashes at refresh time on PMC formulas with an expression argument
like sts(BikeStress ?: TRIMP_Zonal_Points)
Fixes #3788
[publish binaries]
2021-05-05 18:29:47 -03:00
Ale Martinez
1e1ddfaaee PMCData - use the metric case when expression is a metric name
Since a simple metric name is the most common use case for PMC functions,
it is useful to avoid the need to call the expression evaluator at refresh
time, for better performance and to sidestep #3788.
2021-05-04 20:38:54 -03:00
Ale Martinez
3e6214624d Activity Chart - don't smooth when secs are not available
This is an edge case, but let's avoid a weird behavior.
2021-05-02 17:13:46 -03:00
Ale Martinez
88060faab6 Activity chart full replot on x-axis change
This is a continuation of previous commit, since x-axis change affects
the is blank status we need a full replot to consider cases when the
selected activity lacks time or distance.
2021-05-02 09:53:54 -03:00
Ale Martinez
6c2a435759 Set Activity plot to Blank when the x-axis series is not present
Fixes #3588
2021-05-01 21:09:26 -03:00
Ale Martinez
c9e01353a0 Equipment update on Strava download
This is a simpler and more efficient version of 96c8508, no need to use
getGearById service since SummaryGear is already available in DetailedActivity
2021-04-30 21:26:02 -03:00
Ale Martinez
9ff6d6ab97 Allow Device metadata field changes like standard fields
This change remove deviceType_ private member from RideFile
replacing its use by access to "Device" metadata field.
The objective is to remove limitations  s.t. update using set
in formulas and ride navigator immediate refresh.
Fixes #3760
2021-04-30 12:51:08 -03:00
Mark Liversedge
d27327d8c1 Improve error message for measures field names
.. when trying to find the right values for the measures() datafilter
   function e.g. measures("Body", "weight") it was not clear why this
   was failing. Added more information to the error message.
2021-04-30 15:23:38 +01:00
Ale Martinez
55e9cdb444 Restrict Scope authorization to drive.file for Google Drive
Full drive access was revoked and drive.apps doesn't work,
bug drive.file is enough for our purposes.
Fixes #3440
2021-04-26 13:08:56 -03:00
Ale Martinez
46be903027 Set HTTP User Agent in Web chart and OAuth dialog
To avoid Google authentication problems.
Fixes #3876
2021-04-26 11:58:42 -03:00
dconka
6c960f11c3 Add more Sigma Sport devices (#3877)
Add new SIGMA Devices ROX 11.1, ROX 2.0, ROX 4.0 and missing PURE GPS
2021-04-26 09:31:22 -03:00
Ale Martinez
96c8508da2 Get Equipment name on Strava download
When the downloaded activity has gear_id, details are retrieved
and name is added to Equipment metadata field.
[publish binaries]
2021-04-23 19:55:51 -03:00
Ale Martinez
37c1ec4bd8 Sync Strava trainer tag
A new Trainer metadata field is included in metadata.xml
On upload a checked Trainer metadata field, or the presence of
TRAIN XData series, marks the activity as trainer.
On download the trainer flag is used to update Trainer metadata field.
2021-04-23 18:11:25 -03:00
Ale Martinez
5540160d3f Sync Strava commute tag
A new "Commute" tag of type CheckBox, added to Workout Tab,
is used on Strava Sync.
Fixes #3700
2021-04-21 19:49:57 -03:00
Alejandro Martinez
2536bafcb2 Tidy up issue template [skip ci] 2021-04-21 18:38:36 -03:00
Alejandro Martinez
8de66b8f2b Update issue template [skip ci]
Let's try to make it more explicit...
2021-04-21 17:59:39 -03:00
Ale Martinez
2cbf324a26 Upgrade Python to 3.7.10 for Travis-ci Linux builds
[skip appveyor]
Python 3.7.9 AppImages is not available anymore.
2021-04-21 12:53:20 -03:00
Ale Martinez
4c7bdc3963 Add context help for Training Preferences and AddDeviceWizard
[publish binaries]
2021-04-21 11:51:07 -03:00
Ale Martinez
133364e597 Fix startup crash on Windows/Linux with HighDPI monitors
The problem is setStyle being applied before button creation...
This bug was introduced in c15d1bc, sorry.
2021-04-20 19:07:55 -03:00
Ale Martinez
39d19e8c1a TrainSidebar - Delay setWhatThis after addWidget
This is a complement of 5a1bd1a, a user is reporting a crash in
Widget::setSyleSheet on Windows at startup after that commit.
I cannot reproduce the issue, but since that change was modeled
after LTMSidebar, lets try to avoide the issue making it even more
similar. This way, the widget already has a proper parent when
HelpWhatsThis is added.
2021-04-19 14:34:13 -03:00
Ale Martinez
f0f1b13754 Deprecated defaultString from DeviceConfiguration
It is not used anymore.
2021-04-18 22:03:57 -03:00
Ale Martinez
de10c10a50 AddDeviceWizard - Add Virtual Power Name to final step
For clarity sake, we may add some validations and warnings later.
2021-04-18 21:05:47 -03:00
comediebenji
5d666c8233 Correcting bug with quote character in workout Textevents and ZWO export (#3872)
Add protection for all XML special characters in workout Textevents and ZWO export
2021-04-18 18:22:34 -03:00
grauser
696a04e8a0 Fit : Add Garmin Edge 130/130Plus 2021-04-18 10:22:24 +02:00
Ale Martinez
e261794992 AddDeviceWizard tidy up
Add recommendation to pair only FE-C sensor for FE-C devices
Group Custom Virtual Power settings, move Name and Create button,
rename for clarity and enable only when Name is not empty.
Remove compiler warnings.
Fixes #3697
2021-04-17 20:40:46 -03:00
Alejandro Martinez
465ec039a2 Enable SportTracks debug as a runtime option (#3869)
It can be enables adding:
--debug-rules "gc.sporttracks.debug=true"
to the command line.
2021-04-15 18:40:53 -03:00
Ale Martinez
ea548695b6 deriveExtCPParameters - Initial estimates setup after data verification
deriveExtCPParameters established Initial parameters estimates before
the data verification steps so when data don't meet the minimum
criteria for estimation those initial parameters are returned.
This change moves the initialization step after data verification,
similar to what deriveCPParameters does for the envelope fitting case.
Fixes #3862
2021-04-15 12:21:45 -03:00
Oleksiy Mishchenko
0b3a883303 Read EPOC from Garmin FIT file (#3860)
- Read Garmin/Firsbeat estimation of exercise load based on EPOC
- Add "Garmin Edge 1030 Plus" to the list of known devices
2021-04-14 21:34:04 -03:00
Michel Dagenais
c474dae4b6 Facility to trace all the USB communications (#3855)
A new logging category is added gc.usb, inactive by default, to log all the USB transfers between GC and the USB trainers. It can be activated by changing the logging filter with the --debug-rules option.
2021-04-14 21:01:44 -03:00
Ale Martinez
cb04baf734 Update Context Help for Options/Preferences and ScopeBar
Includes separation of Global/Athlete Options and New SideBar.
[publish binaries]
2021-04-14 12:52:31 -03:00
Ale Martinez
e79b474ea8 Add Context Help to Compare Pane and Workout Control 2021-04-13 14:36:01 -03:00
Ale Martinez
c01b696551 Add Context Help for Python, R, Web, Overview and User charts
Fixes #3868
2021-04-13 13:06:09 -03:00
Ale Martinez
5a1bd1a27e Add Context Help to Train View Sidebar and Charts
Fixes #3866
2021-04-12 23:58:04 -03:00
Ale Martinez
c15d1bc33b Add What's This to Help Menu and Toolbar
To make context help easier to access and promote the use of the wiki.
2021-04-12 18:26:32 -03:00
Alejandro Martinez
a0a9c31641 ConfigDialog - Enable What's this and disable min/max buttons
To make config dialog more similar to athlete config.
's
2021-04-10 19:44:20 -03:00
Alejandro Martinez
5f78616696 RideMapWindow - Fix wiki link and add subdomain to OSM Tile Servers 2021-04-10 17:07:58 -03:00
Ale Martinez
4ed2565b2f Map Chart - allow using apikey in OSM url and some useful defaults
This change adds some useful defaults for Tile Servers A/B/C when not set
and allows to enter full urls including apikey, s.t.:
https://tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey=<your-apikey-here>
so use OpenCycleMap with your own apikey.
[publish binaries]
2021-04-09 16:03:04 -03:00
Ale Martinez
6e77d6bde8 Recognize Paul Johnson
https://github.com/GoldenCheetah/GoldenCheetah/commits?author=paulj49457
2021-04-09 12:34:10 -03:00
Ale Martinez
df1b5fdcaa RideMapWindow - Fix marker icons position for OSM maps
Leaflet.js API uses the upper left corner as reference point while
GoldenCheetah icons, designed for Google Maps API, uses bottom center.
Since all marker icons are fixed size 32x37, this change adds the attribute
iconAnchor:[16,37] to fix positioning.
Fixes #3193
2021-04-09 12:31:13 -03:00
Paul Johnson
378cf95784 New Map Chart display options (#3851)
This change allows the user to independently via the new chart checkboxes to:
- ignore any Power Shading Zones and always draw the red line (Hide Shaded Zones)
- remove the route background yellow line (Hide Yellow Line)
2021-04-09 12:30:11 -03:00
Ale Martinez
2a8678d416 Overview Metric Tile - Enable decorations for Pace related metrics
For Pace related metrics converting back from toString using toDouble
fails and then sparkline, up/down, etc. are not displayed.
This change avoids that conversion to fix this issue and to make code simpler.
2021-04-08 19:27:10 -03:00
Ale Martinez
e3fda3cc0d Overview - Fix up/down in Metric and RPE tiles
Add declaration for variable v inside the loop used to compute avg/min/max
to avoid affecting variable v in the outer scope, this is the minimum change
to fix the problem and the same pattern is present in other tiles.
Without this change up/down is based on the first activity of the same sport
in the previous 30 days, instead of the current one.
2021-04-07 21:11:44 -03:00
comediebenji
a2b95df762 Add "Ramp" qName to ZwiftParser (#3863) 2021-04-07 11:03:57 -03:00
Alejandro Martinez
3f476a8226 Add Polarized option to ZoneOverviewItem (#3858)
Adds a “Polarized” option to Overview Zone tile to chart HR/Power/Pace as 3 zones histogram, it has no effect on Fatigue/WBal zones.
Complements #2555
[publish binaries]
2021-04-04 09:43:08 -03:00
Paul Johnson
92f81ef711 Removed the unused styleOptions from RideMap (#3849)
* Removed the unused styleOptions functions and associated Q_PROPERTY.
* Remove unused dark.css resource
Co-authored-by: Ale Martinez <amtriathlon@gmail.com>
2021-04-02 18:56:47 -03:00
Ale Martinez
e849b4fd81 Workout Editor - round decimal watts for qwkcode and remove cues
Decimal watts, which tipically happens when a workout is scaled,
play havoc with qwkcode, so lets avoid them.
Text cues are not supported either in qwkcode yet, adding them
was my mistake, so I commented out them for now.
Fixes #3846
2021-04-02 14:54:22 -03:00
Ale Martinez
239f66fa6f Enable external links in AboutDialog
Fixes #3856
2021-04-01 10:39:10 -03:00
Ale Martinez
be3cb9d149 Change links to goldencheetah.org to use https 2021-04-01 10:36:11 -03:00
Michel Dagenais
58617cb165 Add debugging options to select the log file, format and rules, and redirect stderr (#3837)
* Add debugging options to select the log file, format and rules, and redirect stderr even on Windows
* unistd.h does not exist on Windows use io.h instead
* STDERR_FILENO does not exist on Windows
* Different strategies and much error checking to redirect stderr on Windows
* Synchronize cerr and stderr with filedes 2 and STD_ERROR_HANDLE
* Some functions like write in Linux and Win32 have slightly different signatures
* Code cleanup, final test to check that fd=2, stderr, qDebug and cerr are redirected
* Remove the file and line number from the default logging format in release mode
2021-03-30 13:17:18 -03:00
Paul Johnson
5c33ffb1d4 Fix compiler warning in MetricSelect.cpp (#3852) 2021-03-28 20:15:04 -03:00
Ale Martinez
b9b6745da5 Upgrade Travis-ci Linux build environment to bionic
[skip AppVeyor]
In preparation for the end of xenial support
2021-03-27 12:21:02 -03:00
Ale Martinez
763235a573 Update INSTALL-LINUX to build v3.6 on Ubuntu 18.04
Once Ubuntu 16.04 reached EOL we will switch Travis-ci builds to 18.04,
this guide is intended to help new developers setting up a local build
environment.
2021-03-26 20:06:42 -03:00
Ale Martinez
e9abe68736 Fix compiler warning: shift of negative value in LocationInterPolation.h
It is harmless but annoying and polutes build logs, lets avoid it.
2021-03-26 18:59:08 -03:00
Ale Martinez
cabe078453 Change LTMPlot curves QHash to QMultiHash
To allow duplicate keys happening when the same metric/measure or
Best/PMC/Banister combination is used in more than one curve.
This is useful when the curves have different filters or trendlines,
for example, and avoids a weird behavior in these cases.
Fixes #2185
2021-03-20 20:19:59 -03:00
Michel Dagenais
2be7a2c86e Compute the altitude incrementally from slope for Manual Slope Mode (#3847) 2021-03-18 23:22:09 -03:00
Ale Martinez
0fe28abe5a Add Time and Percent in Zones I-II-III metrics for HR, Power and Pace
In total 18 new metrics are added and 6 new charts using them are
included in charts.xml (existing users needs to remove their local
copy in config/charts.xml to activate them, reset doesn't work since
it retrieves the server copy which is v3.5 yet.)

Fixes #2555
[publish binaries]
2021-03-18 21:07:10 -03:00
Ale Martinez
5714a74e88 Add configurable Aerobic Threshold Velocity to Pace Zones
Change CVPage to include AeT Velocity/Pace
Default to 90% CV for runs and 97.5% CV for swims
Used to delimit Polarized Zones I and II
Add config(aetv) to formulas
Add aetv to R/Pyhton/Rest APIs
Fixed column widths to fit contents

Part 3 of #2555
2021-03-17 20:55:48 -03:00
Ale Martinez
44c6749d14 Add configurable Aerobic Threshold Power to Zones
Change CPPage to include AeT Power
Default to 85% CP, used to delimit Polarized Zones I and II
Add config(aetp) to formulas
Add AeTP to R/Pyhton/Rest APIs
Fix W' col resize bug in Power Zones settings #2661

Part 2 of #2555
2021-03-17 13:05:20 -03:00
Ale Martinez
b79166fa59 Add configurable Aerobic Threshold HR to HrZones
Change LTPage to include AeT HR and look like CPPage and CVPage
Default to 90% LTHR, used to delimit Polarized Zones I and II
Add config(aethr) to formulas
Add AeTHR to R/Pyhton/Rest APIs

Part 1 of #2555
2021-03-16 19:52:50 -03:00
Alejandro Martinez
fc9e302aef Remember SRM offset from last successful calibration (#3843)
It should be closer to current offset than the fixed default.
Users having issues with calibration can change default value adding:

[srm]
offset=400

to configglobal-trainmode.ini
2021-03-13 18:09:23 -03:00
Michel Dagenais
921e81fad8 Insure that Web pages are deleted before the Web Profile to avoir error messages (#3845)
When exiting, GC complains that the Web Profile is released before Web pages that refer to it with the message: "Release of profile requested but WebEnginePage still not deleted. Expect troubles !".
The Web pages are now released explicitly in the destructor to insure that they are freed earlier than the Profile.
Fixes #3844
2021-03-13 17:16:22 -03:00
Ale Martinez
3308372445 Add getCRC method to detect all changes in UserMetricSettings
When any change is detected, _userMetrics are reloaded and updated in Metrics
factory, but metric recomputation still depends on fingerprint field to avoid
unnecessary recomputation.
Fixes #3838
2021-03-07 19:03:12 -03:00
Ale Martinez
e6b302dd6c Revert "Add getFingerprint method to detect all changes in UserMetricSettings"
This reverts commit c726325af6.
2021-03-07 10:48:07 -03:00
Ale Martinez
e1b8293f01 Revert "Remove unused fingerprint field from UserMetricSettings"
This reverts commit 92d1244b68.
2021-03-07 10:46:34 -03:00
Ale Martinez
92d1244b68 Remove unused fingerprint field from UserMetricSettings
Code cleanup related to previous commit
2021-03-06 20:52:39 -03:00
Ale Martinez
c726325af6 Add getFingerprint method to detect all changes in UserMetricSettings
Fixes #3838
2021-03-06 16:51:31 -03:00
Ale Martinez
209470bf8f Add "Use template Athlete" option to Athlete creation
It copies xml config files from the selected template athlete, if any.
Together with Athlete > Open > New Athlete, Athlete > Delete and
the new Athlete view should make multiple athletes management easier.
Fixes #308
[publish binaries]
2021-03-04 13:53:21 -03:00
Ale Martinez
bc9eaccde2 Update Windows Readme.txt and remove old install scripts 2021-03-04 11:24:36 -03:00
Ale Martinez
2d6cc255ec Fix link to wiki on Windows installer
Fixes #3834
2021-03-04 11:09:45 -03:00
Ale Martinez
58f8d9394d Missing break from previous commit 2021-03-04 10:54:03 -03:00
Ale Martinez
06914d9446 Add Athlete > Delete menu
Allows to delete a closed athlete without the need to exit the program,
it re-uses the logic in ChooseCyclistDialog and removes the AthleteCard
from AthleteView.
2021-03-03 22:27:17 -03:00
Alejandro Martinez
453b05a188 Enable Athlete Open menu to allow creation of new athletes (#3836)
Objective is to allow creation of new athletes, without the need to
exit GoldenCheetah, using Athlete > Open > New Athlete like in v3.5
When a new athlete is created MainWindow emits newAthlete signal
so AthleteView can create the corresponding AthleteCard.
2021-03-03 19:27:43 -03:00
Ale Martinez
ace6760fbb Set parent widget for file select dialog on Measures CSV import
This fixes an annoying behaviour on Linux where the file select dialog
sometimes is not open on top of import dialog.
2021-02-28 13:17:24 -03:00
dconka
da75f0cc38 Update FitRideFile.cpp (#3832)
Add missing SIGMA SPORT Products with consistent format
2021-02-27 19:46:57 -03:00
Michel Dagenais
14b287109f Illustrate trainer maximum resistance versus rider maximum force (#3830)
[skip ci]
2021-02-25 09:03:21 -03:00
Ale Martinez
b44be0897d Implement value(v, metric) for UserMetric
It needs to be overriden like value(metric)
2021-02-23 19:29:56 -03:00
Christoph Wurst
cf31bffed2 Correctly recognize the Sigmasport iD.FREE product (#3745)
The Sigmasport ROX devices do not set a product ID, hence GC shows any Sigmasport fit import as "Sigmasport ROX". The Sigmasport wearable "iD.FREE", however, sets a product ID of 45. This adds specific logic to the fit ride file detection logic, while leaving the ROX default for backwards compatibility.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-23 19:18:02 -03:00
ericchristoffersen
d84d329a78 Fix VLC Hangs with Intentional State and Ordered Async Dispatch (#3764)
Fix VLC Hangs with Intentional State and Ordered Async Dispatch
Two main parts to this change.
- a thread locked managed player state
  Fixes issue where calls to player could occur in wrong order
- all calls to VLC are made via an ordered Async dispatch.
  Fixes issue where qt must process widgets after stop is called.
  By moving stop off the qt gui thread this permits qt to shutdown
  widgets which eventually allows vlc to stop.
  Since vlc stop is async, and we wish vlc operations to be ordered
  we are forced to put all other vlc operations on the same async
  queue.
Fix #3756
2021-02-23 19:13:15 -03:00
Ale Martinez
8d89ba4e67 Add constants for Axis type to R and Python API 2021-02-22 20:41:28 -03:00
Ale Martinez
276791edb9 No Fortius Calibration on building without LibUSB
Fixes #3827
2021-02-18 20:39:01 -03:00
Ale Martinez
2d64166acd Added "with Barometer" to TCX and GPX creator tag
to force Strava upload of altitude data.
The user can revert to Strava basemap on Strava.
Upload to Garmin Connect was tested for regresion.
Fixes #3824
2021-02-17 10:41:28 -03:00
Paul Johnson
cbe75fae47 Fixes #3439 - Activity start time for imported iBike CSV files is incorrect (#3825) 2021-02-16 10:55:16 -03:00
Ale Martinez
537b6677d3 Fix L/R balance in FIT import
To match the code comment and honor FIT file specification
Fixes #3819
2021-02-15 10:38:00 -03:00
peret2000
980c99cfae LiveMapWidget uses configured zoom (#3823)
I noticed zoom configured in xml file is ignored, and code is always starting with a value of 16 for thee zoom of thee live map widget.
This change uses field of the xml; it was already being parsed but not used, so using it is simple and straightforward
Co-authored-by: Peret <mail@mail.com>
2021-02-13 10:37:01 -03:00
Ale Martinez
cdb117486a Overview Chart Screenshots for the wiki
[skip ci]
2021-02-11 16:11:06 -03:00
Iain Macdonald
01b0e4767b ANT+/FE-C Trainer capabilities request fix (#3818)
Co-authored-by: IainMacdonald <iainmacdonald@rogers.com>
fixes #3784
[publish binaries]
2021-02-05 15:58:25 -03:00
Ale Martinez
0eb8d63d07 Add fallback for Athlete Bodyfat
Computed from FatPercent and Weight when FatKg is 0
2021-02-05 11:08:11 -03:00
Ale Martinez
d59b7d43f4 Add fallback for Athlete Bodyfat Percent
Computed from FatKg and Weight when FatPercet is 0
2021-02-04 21:13:32 -03:00
Ale Martinez
d392984993 Add config(sex) and config(dob) to formulas
To enable formulas like Harris-Benedict basal metabolic rate
or TRIMP variants which depend on sex and age.
Fixes #3523
[publish binaries]
2021-02-01 13:51:51 -03:00
mattipee
c72b81ea84 Fortius "rolling" calibration (#3804)
* Rolling calibration
* Differentiate "Give the pedal a kick" and "Allow wheel speed to settle"
2021-01-29 20:00:38 -03:00
Michel Dagenais
773b076606 Get the Altitude for CRS files even when Fast Forwarding (#3806)
* when CRS workout files are read, the altitude is already derived and precomputed from the gradient for all formats handled. A new function was added, altitudeAt, that accesses this value, avoiding to derive anew the altitude from the gradient in the TrainSidebar main loop, and getting the correct altitude value when FastForward.
* Replaced assert by qDebug in ErgFile.cpp because asserts would needlessly kill the program
Fixes #3805
2021-01-29 18:45:56 -03:00
Michel Dagenais
5dc4ace31d Fix the request - reply interactions with the Fortius (#3801)
* Fix the request - reply interactions with the Fortius

The open command is in fact to get a reply with the version. However, some already queued messages need to be skipped, before the well formed reply message is received. The open command is sent initially, and each time the device is disconnected and reconnected. The procedure to open the device and get the version was then put in a separate function.

When the run command is sent with a specified force, a reply comes back with the force echoed. However, here again, some messages may need to be
skipped before the correct reply comes back.

* Updates based on comments

The first reply is always skipped on the T1932 (64 bytes reply). A notification about the motor not turned on is sent when the version number cannot be read.

* Add a comment for a non obvious if condition
2021-01-28 18:12:00 -03:00
mattipee
0427042709 RealtimeController::setWindResistance() should be passed CdARho, not just CdA (#3800)
* Dynamic wind resistance based on altitude
* Clarity CdA vs CdARho
2021-01-28 09:45:13 -03:00
mattipee
d76701285d Change timing to sleep between send and read (#3795) 2021-01-24 20:29:25 -03:00
mattipee
97ce2989bf LibUsb::OpenFortius - Remove call to usb_set_altinterface() (#3732)
Was known bad on OSX, proved an issue on LINUX (for me), and tested on WINDOWS following its removal
2021-01-24 20:27:45 -03:00
Sigfreid74
d8c21e4070 Change Colours for some data series in Train Telemetry (#3792)
Fixes #3796
2021-01-21 13:53:49 -03:00
mattipee
0d3a8c911a Fortius calibration (#3790)
Added calibration trainer command, delayed check for user stopped pedaling with visual feedback on progress and saved calibration for next use on success.
2021-01-21 09:17:18 -03:00
Ale Martinez
a298715bb5 Fix Crash and copy paste error in WorkoutEditor
The crash is reproducible on Linux starting an Erg workout after another
and it is caused by an array index error due to average arrays not being
cleared on start.
2021-01-16 20:02:20 -03:00
mattipee
1b18ec7eeb Fix force/speed/power calculations for Fortius (#3785)
* Initial correction of force/speed/power calculations for Fortius using information from https://github.com/totalreverse/ttyT1941/wiki
* Use wind speed, rolling resistance and wind resistance value from trainer interface, if provided
* Added FortiusANT's AvoidCycleOfDeath() routine from https://github.com/WouterJD/FortiusANT to limit trainer resistance at low wheel speed
2021-01-16 18:05:33 -03:00
ericchristoffersen
33a4cf517d Move manual modes onto common load timer path. (#3776)
Simplify handling of manual modes so they use the same path and load_timer as the non-manual modes.
This means one less path to maintain and modify.
2021-01-15 20:19:36 -03:00
Ale Martinez
105f15e3e0 FixGaps: improve interpolation of left/right balance for smart recording
Similar to 2b6473d
2021-01-15 11:35:07 -03:00
Ale Martinez
d21a603fa1 LRBalance related metrics check for RideFile::NA
Invalid values are now mapped to RideFile::NA on import,
0 and 100 are valid values and should not be excluded.
Fixes #3473
2021-01-14 20:52:30 -03:00
Ale Martinez
5d510388cf TRAIN - Fix LRBalance from ANT+ channels
LRBalance is left side contribution while the ANT+ messages carries
right side pedalPower contribution, so it needs to be converted.
When not available RideFile::NA is used since 0 means 100% right.
Complementes b29f72d, Fixes #3017
2021-01-14 20:13:22 -03:00
Ale Martinez
0b7d817c2d Estimate CP for Runs - Increase distance precision to 3 digits
Distance is in km/mi and 1 digit is not enough to use timed tests to
exhaustion, for distance based TTs likely this is not an issue.
2021-01-14 20:13:22 -03:00
grauser
2b6473da60 Fit : improve interpolation of left/right balance for smart recording 2021-01-14 21:57:51 +01:00
grauser
cefc2cb81c FIT : add some manufacturers 2021-01-14 21:57:51 +01:00
grauser
b29f72d19c RideFitFile :
- Add Right contribution bit in FIT exported
  - Don't asssume left data if right side not confirmed
  - Plot 0 left/Balance

Fix #3017
2021-01-14 21:57:51 +01:00
Christian Taedcke
75ba4c0e90 Daum: Improve support for more cockpits (#3775)
Add support for 8008 TRS and, using the profile string, delay and sound can be configured

This adds the following functionality for daum:
* if the profile string contains a number or the string sound,
  no automatic cockpit configuration is done, but the information from
  the profile string is used
* if the string sound is present, play the sound when connecting
* if a number is present, use this number as the delay in milliseconds
  between commands. A reasonable number to start with is 50 in case of
  connection problems

This also solves the problem, if the cockpit id is not known by
GoldenCheetah. In this case the profile string can be just set to
e.g. 50_sound and the unknown cockpit id is ignored.
2021-01-14 16:43:54 -03:00
Ale Martinez
1d4e93350a User PIE and BAR Charts honor x-axis Date and Time settings
So labels/categories are displayed in Time/Date format
in a similar way to Line and Scatter charts.
2021-01-13 20:30:26 -03:00
Ale Martinez
1120704073 Add screenshots for the wiki - New Metric Trends Curves
[skip ci]
2021-01-12 21:29:01 -03:00
Ale Martinez
41456b5cc1 Upgraded embedded Python to 3.7.9 for Windows builds
[skip travis]
2021-01-11 19:06:56 -03:00
Ale Martinez
cf745c1200 Regenerate vlc3 cache for Linux AppImage
[skip AppVeyor]
Fixes #3763 "main libvlc error: stale plugins cache ..."
2021-01-07 19:49:15 -03:00
Ale Martinez
89d99ccecf UserData screenshots for the wiki
[skip ci]
2021-01-06 18:03:31 -03:00
willfaust
08ff66a7bd Correct spelling of "optimise" in readme (#3758) 2021-01-06 08:43:00 +00:00
Ale Martinez
dfe4da61d8 Fix GC_VERSION for tag builds
The use of / instead of \ as path separator on cmd script line causes
tag builds lack proper version string and report (developer build)
[skip travis]
2021-01-05 20:29:34 -03:00
Mark Liversedge
3c5d53a5bb VERSION 3.6 DEVELOPMENT JANUARY 2021
.. marking up for development release

[publish binaries]
2021-01-05 13:21:37 +00:00
Ale Martinez
9b52cf6a6c Athletes View - Skip non-athlete directories 2021-01-02 16:44:41 -03:00
Ale Martinez
944f0ba73d Athletes View - Allow athletes without config/avatar.png
In the same way ChooseCyclistDialog and MainWindow do.
2021-01-01 22:11:14 -03:00
Ale Martinez
24203a01ad Remove libpng warning: iCCP: known incorrect sRGB profile
When loading noavatar.png
2021-01-01 22:04:10 -03:00
Ale Martinez
c6c5505610 FitRideFile - don't use deleted swimXdata pointer
Fixes #3740
2020-12-30 10:43:20 -03:00
ericchristoffersen
f251e982ae Fix tts videosync with non zero start distance (#3739) 2020-12-29 20:41:16 -03:00
Ale Martinez
d881a2b3be Add BT40 pair screenshot for the wiki
[skip ci]
2020-12-29 11:05:40 -03:00
Ale Martinez
4e3a258a1c Add Device Wizard - Reword BTLE pair page
For clarity sake.
2020-12-28 21:30:59 -03:00
Ale Martinez
6f79286302 BT40Device: add erg mode support for Tacx ANT over BLE
This is a continuation of 6ca1bd9 and fixes #3319
2020-12-28 20:59:07 -03:00
Ale Martinez
ea1aa13a9b BT40Device - Remove annoying compiler warnings
Introduced with Kurt Kinetic support
2020-12-28 20:57:27 -03:00
Ale Martinez
c25e9f2749 Consider only athletes with config/metadata.xml on v3.6 upgrade
Athletes with default config can be safely skiped without loss of
information in the same way as non athlete folders.
Fixes #3735 for new cases, but users previously affected by this bug
need to manually delete metadata.xml from GC root folder, it doesn't
seem a problem common enough to merit an special treatement.
[publish binaries]
2020-12-26 21:02:55 -03:00
Ale Martinez
5eb519a214 Overview Chart - Allow string values in KPI tiles
This enables the user to display different texts, according to
metrics or metadata conditions, using string valued formulas.
2020-12-26 10:51:37 -03:00
Ale Martinez
61b5fee924 Added Start with last opened Athlete option to config
Default is checked to preserve current behavior, when cleared
the choose athlete dialog will be presented at start.
Workout library setting was moved to Train preferences
page to reduce clutter in General settings page.
[publish binaries]
2020-12-24 11:14:32 -03:00
ericchristoffersen
ae318a43ba Handle tts videosync distance outliers (#3730)
Fixes #3729
2020-12-23 11:02:09 -03:00
Ale Martinez
759c6593cf Measures Download tidy up
Next step would be to refactor MeasuresDownload for simplification
and generalization
2020-12-22 12:36:41 -03:00
Ale Martinez
6f948346a4 Export Chart Image Don't use Native Dialog
Hangs when exporting User Chart Images
Similar to 67801f4, related to #3372
2020-12-19 11:01:04 -03:00
Ale Martinez
e098816f2b Don't allow "_" in user metric name
since it is alread used to replace blanks and breaks some functionality,
for example names with "_" don't appear on column chooser.
2020-12-17 15:52:32 -03:00
Ale Martinez
055833eed9 RideNavigator - Avoid .000 msecs and 00:00:00 in metric values 2020-12-17 11:29:22 -03:00
Michel Dagenais
f0d839c37b Screenshots of training views for the wiki (#3722) [skip ci] 2020-12-16 19:04:08 -03:00
Michel Dagenais
c373e65010 Screenshots for Train view documentation (#3715) [skip ci] 2020-12-14 23:56:53 -03:00
ericchristoffersen
0d57f88ac2 Redo bicyclesim settings layout and typos. (#3714) 2020-12-14 20:56:21 -03:00
Ale Martinez
d5b09a4c9c Measures CSV import - allow values in sexagesimal format
Initial use case is sleep_time from HRV4Training
[publish binaries]
2020-12-14 18:46:45 -03:00
Stefan
afb69d8edb Smooth sidebar icons 2020-12-14 18:46:45 -03:00
ericchristoffersen
603c8cd651 FixSimulated Speed setting now honored in Ergo Mode. (#3713)
* Simulated Speed setting now honored in Ergo Mode.
* Update text and add tooltips
2020-12-14 17:23:15 -03:00
Ale Martinez
983874d599 Measures config - consistency checks for addField and setField
Default to 1.0 for unitsFactor.
[publish binaries]
2020-12-13 20:03:47 -03:00
Ale Martinez
906cffba8e Measures Config - preserve Measures order on save/restore 2020-12-12 17:04:38 -03:00
Alejandro Martinez
af19f31b24 Add Measures configuration to General Settings (#3709)
It allows to add/edit/remove Measures Groups and Measures Fields.
Reset is a rescue option to go back to default configuration.
Fixes #2872
2020-12-11 20:26:48 -03:00
ericchristoffersen
47cb560633 Geoloc double to string precision (#3711)
Fixes #3710
2020-12-11 20:25:46 -03:00
ericchristoffersen
e24d25ff47 Fix VideoSync Errors (#3704)
Fixes #3702
2020-12-10 15:43:46 -03:00
ericchristoffersen
373f3b7a35 Build warnings (#3705) 2020-12-10 11:18:57 -03:00
ericchristoffersen
b887f69a1b Simulated Hypoxia for Train Mode (#3699)
Fixes #3698
2020-12-10 07:41:39 -03:00
David Rio Deiros
80086ace46 Makefile that captures details on how to build GC on raspberry pis (#3695)
[skip ci]
2020-12-09 14:42:31 -03:00
Christian Taedcke
53e19a006d Daum minor code cleanup (#3692)
* Daum: Remove redundant virtual keywords

These function were not involved in any inheritance, so the virtual
keyword is removed.

* Daum: Remove unused parent member

* Daum: Remove redundant destructor

* Daum: Remove default values for contructor parameters

This circumvents problems where e.g. explicit would be necessary.
The constructor is actually only used when all parameters are given.

* Daum: Remove redundant this->

* Daum: Ensure timer only allocated once

Also use nullptr instead of 0.

* Daum: Remove unused includes

* Daum: daumDevice is now a private instance member

There is no need for it to be a pointer or public.
2020-12-04 09:47:03 -03:00
Peter Kanatselis
2d1e36549c Live map with route (#3534)
* Updated LiveMap widget with route
* OSM URL configurable in video-layout.xml file
* Enhanced HTML and JS code
2020-12-03 21:02:44 -03:00
Ale Martinez
763458564c Honor clear selection of media in Train Sidebar
CTRL+Click on a selected media file allows to clear the selection,
lets honor this action to have a way to train without video after
a media file has been selected.
[publish binaries]
2020-12-02 19:12:56 -03:00
Ale Martinez
5f68d2dce0 VideoWindow - Don't show LiveMap when there is no video
Fixes #3621
2020-12-02 18:39:15 -03:00
Christian Taedcke
3c639d3377 Daum: Adapt code for 8008 TRS pro (#3691)
For this a 50 msec delay is introduced before sending each serial
command. This is tested on hardware ond also used be jergotrainer.

Also during initialization there is a delay between each command, so
even slow devices can keep up. As soon as the cockpit type is known,
the delay is set according to the cockpit type.
2020-12-02 18:38:46 -03:00
Christian Taedcke
ec11d90160 Daum: Fix signed byte issues (#3690)
Because of QByteArray, the member bytes a signed char,
so a raw byte of 0x80 is interpreted as -128 and not as
128 as expected by the code.
2020-12-02 18:07:59 -03:00
ericchristoffersen
c49fa4f4d5 Minor ErgFilePlot cleanups. (#3688)
Complement of #3686
2020-12-01 19:26:02 -03:00
Ale Martinez
8c01d6291e Make intervals from JSON files segments in ErgFiles
Since they can overlap
Complement of #3686
2020-12-01 15:51:44 -03:00
ericchristoffersen
34526f2fe9 Readable Segments in ErgFileOverview (#3686)
Model and Display Segments - Fixes #3685
2020-12-01 15:49:59 -03:00
ericchristoffersen
487ec866f5 Fix 3680: Text, Chim and Lap Issues (#3681)
Fixes #3680
2020-12-01 09:44:49 -03:00
Ale Martinez
36df458406 Add reveal control for data series to CP chart
Similar to Scatter chart, to avoid the need to have several instances
for different data series sparing tabbar space.
Related to #2039
2020-11-29 23:00:57 -03:00
Ale Martinez
1b61f076ca Add reveal control for data series to Histogram chart
Similar to Scatter chart, to avoid the need to have several instances
for different data series sparing tabbar space.
Fixes #2039
2020-11-29 16:09:32 -03:00
Ale Martinez
cb37db2281 Export to CSV with UTF8 and ISO date format
For broader support of translations and date formats
Fixes #3613
2020-11-28 17:56:06 -03:00
Ale Martinez
1957404d03 Fix table mode in Metric Trends charts when there is only 1 group 2020-11-28 17:08:52 -03:00
Ale Martinez
90acbedabb Enable Group by TOD in table mode Metric Trends chart 2020-11-28 11:55:48 -03:00
Ale Martinez
56532be1ea Fix #3613 - BikeScore document location
[skip ci]
2020-11-27 10:50:42 -03:00
Ale Martinez
bed5f1e820 Parse Vertical Speed extra native series from FIT files 2020-11-25 20:16:41 -03:00
Daniele Santini
a42ca208b6 Trim TCX files before importing (#3470)
Allows to import TCX files with leading whitespaces, such as those generated by Strava

Fixes #3149
2020-11-25 18:21:54 -03:00
ericchristoffersen
9ff48f067a Fix Lap Bugs (#3678)
Create ergfile finalize for every parser to call.

Consolidate lap init into ergfile finalize.

Consolidate lap distance updates into a single method.

Laps now sorted by location.

Workout with no lap is given bracketing laps.

Fix handling of final lap (falls back on route distance).

FFwd lap on final lap no longer jumps to route start.

AddLap button now actually creates a new lap in lap list,
making it reachable using nextLap and prevLap.

Remove the displayLap field as it serves no purpose.
2020-11-25 13:27:37 -03:00
Ale Martinez
70fa7c0a45 Add Core Temperature series name and use consistently
Fixes #2214
2020-11-25 13:21:44 -03:00
Ale Martinez
e874714f60 Round to the second when importing erg files to Workout Editor
Fixes #2322
2020-11-24 18:03:46 -03:00
ericchristoffersen
71f34634e3 Rotational Inertial for Custom Virtual Power (#3653)
Improve Virtual Power in Presence of Acceleration

Part 1: Rotational Inertial for Custom Virtual Power

This change is only enabled when device is defined with non-zero
Inertial Moment. When Inertial Moment is not defined or is
zero then this change has no effect.

Change adds field to device to hold trainer's inertial moment
in (KG M^2).

This allows power calculation to track energy that passes in
and out of trainer's flywheel so that acceleration and
deceleration power can be reported immediately.

Whenever device sets a new rpm sample a time is
recorded alongside which allows the common controller
to compute change in rpm over time, which allows
calculation of kinetic energy that has entered or
left the trainers flywheels during the duration.

It is a bit of math to determine a correct I for a trainer's
flywheels, especially if the flywheels have different rpms,
hopefully we can add the I values for the current built-in
virtual power trainers.

Part 2: Use average power instead of point power.

Moved numerical integration into its own header, its now used by
bicyclesim and by virtual power. Changed default integrator to
Kahan-Li since in my testing it is stable and converges fastest.

Virtual Power now computes average power since previous sample,
which has the effect of reducing reported power during acceleration
and deceleration.

New advanced virtual power is on with this commit. It seems to work
very well in my testing.

Fixes #3650
2020-11-24 12:19:01 -03:00
ericchristoffersen
afd6552b3b Fix #3669 - Don't copy dual mode files twice. (#3670) 2020-11-23 11:46:48 -03:00
Ale Martinez
8e5a2b42d0 Truncate non integer watts when importing workout files
Fractional watts are not supported by Workout Editor and they
are trucanted for most import formats, this fixes remaining
cases reported by users.
Fixes #3675
2020-11-22 14:00:25 -03:00
Ale Martinez
bf02c868ea Add back to previous lap button to Train bottom bar
Uses RewindLap implemented as part of #3442
[publish binaries]
2020-11-20 20:20:49 -03:00
Eric Christoffersen
25bb4beaa5 Support stateless ergfile location query (#3442)
Remove query state from ergfile and videosyncfile.
Stateful ergfile queries are now made through an adapter.
Implement RewindLap.
Fixes #3416
2020-11-20 20:20:30 -03:00
ericchristoffersen
c187dbe686 Fix3672 - Read out of range when tts has 0 points (#3673) 2020-11-19 06:50:01 -03:00
Ward Muylaert
44fd1885a1 Add ~Mercator projection to overviewitem route (#3665)
Current route tile looks off compared to the map one is more used to,
because it is lacking mercator projection. This commit adds the
spherical pseudo-mercator projection as described on
https://wiki.openstreetmap.org/wiki/Mercator. As mentioned there, the
true elliptical projection is avoided for being more computation
intensive. This is also the case in OpenStreetMap and thus in the full
map view in GoldenCheetah. With this commit, those views match up again.
2020-11-18 19:56:12 -03:00
Ale Martinez
197d320bf8 Add jump to next lap marker button to Train bottom bar
This is an experimental feature, the primitive was available
but currently unused, it seems to have been available from
Computrainer HDC in former versions.
When used with videosync it does a naive extension of the FFwd
implementation, but it seems less precise than without videosync,
some tuning may be required.
2020-11-18 18:45:25 -03:00
Ale Martinez
d17bba8ce1 Add intervals as lap markers in json workouts 2020-11-18 18:41:55 -03:00
ericchristoffersen
fe4301a7e2 Teach ttsreader to process routes and segments (#3668)
* Teach ttsreader to process routes and segments

TTS reader previously ignored routes, segments and strings.
With this change the route name, route description, segments,
segment descriptions are now all parsed into ttsreader object.
With this change the route name and description are assigned to
the ergfile, so route name now appears while riding a tts file.
With this change there is still no place to put segments in ergfile.
With this change none of the new information is assigned into the
activity file.
The segments and segment descriptions are used by tacx software
so user can select a named region of a long ride. Example ride
was >200km long and contained 12 named segments, each with a nice
description. Would be nice to bubble that info up to train mode.

* Translate tts segments into ergfile laps.
Also fix old issues with how laps work in slope mode, especially
with ffwd and rwnd.
Also lap markers are double.
As far as I can tell laps work ok now.
2020-11-18 12:30:05 -03:00
Ale Martinez
aaf6f282b0 Add DistanceRemaining to RealtimeData based on RouteDistance
Fixes #3648
[publish binaries]
2020-11-15 16:54:52 -03:00
riccioclista
f30dd0a9c5 Workout: Save LAP markers in mrc files (#3114)
When saving an mrc file in the workout editor, lap markers are ignored. This fixes it.
2020-11-14 18:11:18 -03:00
ericchristoffersen
d4aebbb441 Fix 3596: Fix display of route elevation. (#3664)
Simplified the meterwidget elevation display loop, bug was that it
was skipping the final route point.

Add minY to ergfile so range of y can be obtained without computing
each time, so can remove search loop from meterwidget.
2020-11-13 09:05:28 -03:00
ericchristoffersen
f47c3003a7 Fix 3498 - truncate distances for display (#3663)
For distance display, better to truncate than to round up.
2020-11-12 21:49:32 -03:00
ericchristoffersen
a7b08c4abf Fix issues 3580, 3582 (#3662)
Fixes for power adjustment:
Fully populate new point from old before rewriting fields.
Prevent power from reducing to zero since after it is zero you
cannot increase it again...
2020-11-12 21:48:43 -03:00
Ale Martinez
a107a0203c Defaults are duplicates when both field and value match
Fixes #3610
2020-11-12 14:44:33 -03:00
qheath
aaa7889172 make the date range of relative seasons (e.g. in Trends) update as time passes (#3546)
* remove unused CompareDateRange::days
* remove unused Season::days
* ensure Season limits are only accessed via accessors
* remove unused Seasons::seasonFor
* add SeasonLength to create relative seasons that end today
* save Season::_length and use it instead of Season::prior
* add SeasonOffset for the start of relative seasons that don't end today
only functional difference: "All Dates" is now aligned on the beginning
of a year instead of starting on the same day and month as today
* use _offset+_length instead of _start+_end for relative season
functional differences:
- in CriticalPowerWindow, relative seasons that don't end today ("All
  Dates", "Last Week", etc) were previously computed with respect to
  QDate.today(); they are now computed with respect to
  myRideItem->dateTime.date(), as other relative seasons ("Last 7 days",
  etc); this is technically a bug fix, but there probably was no one
  using these relative seasons for CriticalPowerWindow anyway
- every call to Season::getStart and Season::getEnd computes a fresh
  value (based on the offset and length specified for the season), so
  relative date ranges refresh when the display refreshes, e.g. when GC
  is open for multiple days (fixes #1751)
* add comments for SeasonOffset/SeasonLength
* Use Season accessors in AthletePages
2020-11-12 11:06:04 -03:00
qheath
9e5980f82c fix LTM Chart to show all events from the date range (#3540)
* when looking for events, consider all seasons that intersect the date range
seasons starting before and ending after were not considered
Fixes #2620
* center event labels on the event mark
if the labels are to the right of the mark, the label of an event at the
end of a date range will not be shown
* code cleaning
loop only once over seasons, instead of twice
2020-11-11 18:17:06 -03:00
Ale Martinez
45345679a6 Fix #3608 2020-11-11 17:56:14 -03:00
Ward Muylaert
c187d4325b Sort routes when they are added to an activity (#3661)
Before this change, when looking at an activity, the routes seemed to
appear in order of creation in the interval section. This patch instead
sorts them by their start time in the activity instead (or by their end
time if the start times are the same).
Note that the routes are also known as segments.
Fixes #2132.
2020-11-11 13:38:41 -03:00
Ale Martinez
7d32bb4446 Recognize Ward Mylaert and Scott Conover 2020-11-10 20:57:22 -03:00
Scott Conover
bbc7a03178 Fix issue #3571: segment matching (#3573)
Fixes the problem happening when a ride crosses the start point of a segment but diverges for some reason then at some point later in the ride the segment is ridden for real. It introduces boolean "resetroute" and sets it to true in two places where where the code needs to reset the segment point and break out of the ride point loop in the case where diverge is found. Then check for this condition at the bottom. Reset the segment index to -1.
2020-11-10 14:27:58 -03:00
Ale Martinez
cec7c4dd52 Don't refresh R and Python charts on intervalsChanged
To avoid the script running twice on ride selection and
interval edition/deletion.
Caveat is when intervals are created via find intervals
the script is not notified until interval or ride selection changes.
2020-11-09 21:07:39 -03:00
Ale Martinez
4273480bf4 Re-enable run script on interval selection in a Python chart
This feature was availabe in v3.5, it is enabled for R charts
and both have selected field on activity interval APIs to exploit this.
Fixes #3660
2020-11-09 17:40:48 -03:00
Ale Martinez
a5252334ef Merge pull request #3657 from ward:manage-filters-up-down 2020-11-08 19:39:15 -03:00
Ward Muylaert
e05cf52446 Add up and down button to NamedSearch dialog
Also know as the Manage Filters dialog. Reordering was not possible in
the interface yet, you were forced to edit the xml file to do any
reordering.
2020-11-08 18:35:32 -03:00
Ale Martinez
1345779cfc Fix typo in MeterWidget
It makes slope text to disappear in the second half of the ride
2020-11-07 18:23:39 -03:00
Ale Martinez
cfd456c798 Reorder musclekg and boneskg when Body Measures are created
They are interchanged by mistake
Fix #3655
2020-11-04 16:17:52 -03:00
Ale Martinez
4af953ee00 Fix ProgressBar percentage in Overview KPI tile when istime
Pending from previous commit
2020-11-03 20:36:56 -03:00
Ale Martinez
617ebc3d82 Fix count in Athlete_Weight metric
It has to be 1 so each activity has equal weight when averaging,
instead of being weighted by duration.
[publish binaries]
2020-11-03 13:27:52 -03:00
Ale Martinez
3e846a3d20 Fix ProgressBar in Overview KPI tile when istime
Pending from previous commit
2020-11-03 13:23:52 -03:00
Ale Martinez
da8341f619 Add istime option to KPI tile in Overview chart
To enable display in sexagesimal format (hh:mm:ss),
similar to istime in User Metrics.
[publish binaries]
2020-11-02 19:20:18 -03:00
Ale Martinez
d3cafc4aed Fix laps in crs files generated by Workout Wizard
Fixes #3652
2020-10-31 19:12:13 -03:00
Ale Martinez
42b37ce017 Avoid Travis-ci macOS build being cancelled generating dmg
[skip appveyor]
2020-10-31 16:19:31 -03:00
Ale Martinez
fc9c116fa4 Separate metric conversion from formating when value is provided
Overview chart needs to do computations with metric values converted
to selected units and format results accordingly, for this purpose
RideMetric::toString(useMetricUnits, value) should not do the units
conversion again, so it is changed to do formatting only and useMetricUnits
parameter is removed.
The original meaning is used only in RideItem where it is replaced by
the composition of toString with value.
Fixes #3647
2020-10-31 11:13:31 -03:00
Alejandro Martinez
a2da081681 Update after_success.sh
travis_wait is a function on build shell, not available on shell scripts
2020-10-30 14:31:32 -03:00
Alejandro Martinez
b6e3ae4c96 Update after_success.sh 2020-10-30 13:06:17 -03:00
Ale Martinez
eb6f111a0d Change include files renamed in f5f38f5 2020-10-28 14:26:17 -03:00
Mark Liversedge
f5f38f54e9 Project Style prefers CamelCase
.. we tend to avoid using underscores (_) in preference for
   camel case. Especially for filenames.
2020-10-28 09:28:26 +00:00
Mark Liversedge
6ed93a22a1 Fix compile failure on case sensitivity
.. e77096d introduced a compile error on O/S where filenames
   are case sensitive.
2020-10-28 08:01:52 +00:00
Mark Liversedge
f4dd2f10bd Revert "Overview Unit Conversion"
This reverts commit 2d446cc9c2.
2020-10-28 07:56:06 +00:00
Mark Liversedge
2d446cc9c2 Overview Unit Conversion
.. don't do metric/imperial conversion again when aggregating
   metrics in a date range.

Fixes #3647
2020-10-28 07:52:04 +00:00
Ale Martinez
4c50c1fb53 Avoid crashes in Overview when a metric not available is referenced 2020-10-25 17:55:35 -03:00
Ale Martinez
83a50db2cb Upload Travis-ci builds to free.keep.sh instead of transfer.sh
[skip appveyor]
transfer.sh service has become very unreliable and it is being
phased out on oct-30, according to the public site announcement.
free.keep.sh offers free uploads up to 500MB with a similar service,
limited to 24hr storage, enough to download build artifacts.
2020-10-25 11:43:24 -03:00
ericchristoffersen
e77096df35 Support Kurt Kinetic Inride and SmartControl (#3636)
* Support Kurt Kinetic Inride and SmartControl
* Teach BT40 about calibration - and kurt kinetic.
2020-10-25 09:25:18 -03:00
ericchristoffersen
f51856a52a Fix Error Setting Custom Wheel Diameter (#3643) 2020-10-25 02:26:01 -03:00
Alejandro Martinez
294bf71f96 Update ISSUE_TEMPLATE.md
[skip ci]
2020-10-24 16:44:13 -03:00
Mark Liversedge
4ab82e9755 Athlete Config Cosmetics
.. tabs in tabs looks fugly, so secondary tabs use underlines
.. background of accounts page was incorrect.
2020-10-23 10:26:29 +01:00
Ale Martinez
b7a56a9dd9 Implement moveSeriesUp and moveSeriesDown for User Charts
To enable series reordering.
2020-10-20 12:12:01 -03:00
Ale Martinez
cde4ec0194 Access global metadata.xml instead of athlete specific one
In remaining places: TreeMapWindow constuctor and APIWebService::listRides
Complements 80d7eed
2020-10-18 20:07:21 -03:00
Ale Martinez
ca191e3163 Initialize Athlete Settings on REST API listAthletes
Required for cvalue to work
Fixes #3627
2020-10-18 17:04:39 -03:00
Alejandro Martinez
d2a530e19e Prevent Windows From Going to Sleep While In Train Mode
Fixes #2324
[skip travis]
2020-10-18 11:32:02 -03:00
Michel Dagenais
4c62c52fc3 Fix a small issue in setPowerScaleFactor (#3634)
If a value was set for the powerScaleCalibration factor, the weight was clipped between 0.8 and 1.2kg. That would be an easy ride uphill for sure.
2020-10-15 00:02:21 -03:00
Michel Dagenais
b2e90c0af6 Remove modal dialog for Fortius disconnect (#3633)
This is the Same fix applied to the Computrainer a few months ago to remove the modal dialog that would be issued in a loop upon connection problems. The modal dialog loop made the interface completely unusable. Now a notification is emitted but the interface remains available.
2020-10-14 23:02:38 -03:00
Ale Martinez
52c1441e03 Implement 2 param value and toString for PeakPace and BestTime
Fix #3629
2020-10-12 15:06:59 -03:00
Ale Martinez
3d1f8ee5fa Fix Data Series constants in library.py
Added GC.SERIES_LPCO, following values shifted by one,
and GC.SERIES_HRV removed.
Fixes #3625
2020-10-07 17:07:31 -03:00
Ale Martinez
1023e599a0 Fix copy/paste error in RideFileTableModel
Fix #3623
2020-10-06 13:09:08 -03:00
Ale Martinez
586ead3638 Avoid Cancel becomming default button on RideImportWizzard
Fixes #3581
2020-10-05 11:48:05 -03:00
grauser
d50e1a8552 FITRideFile : Correct bug for multiple values in record point
fix #3619
2020-10-04 23:03:27 +02:00
Ale Martinez
8c30a6da4a Set Web Page chart color
Fixes #3617
2020-09-29 12:01:21 -03:00
Ale Martinez
a1087c9bb3 Upgrade VLC to 3.0.8
For Windows, Linux and macOS builds.
[publish binaries]
2020-09-28 15:06:13 -03:00
Ale Martinez
e363f57a74 Generate missing configure to build srmio for Linux
[skip appveyor]
2020-09-28 11:04:50 -03:00
Ale Martinez
c61a6d846e Update GC version on info.plist.app 2020-09-27 21:13:50 -03:00
Ale Martinez
22ea3399fe Update srmio download for Travis-ci Linux builds
[skip appveyor]
It is not available anymore on previous location
2020-09-27 21:13:38 -03:00
Ale Martinez
16dfd234e2 Simplify Windows setup script and upgrade to VLC 3
[skip travis]
2020-09-27 20:08:37 -03:00
Ale Martinez
4351c68770 Upgrade to VLC 3 for Travis-ci Linux builds
[skip appveyor]
2020-09-27 14:14:13 -03:00
Ale Martinez
c10b666b55 Travis - Enable VLC 3 on macOS builds
[skip appveyor]
2020-09-27 14:13:41 -03:00
Ale Martinez
0dfa8f0e00 Fix Measures conversion error on Athlete Options
When using imperial units
2020-09-24 15:00:39 -03:00
Ale Martinez
9264d112ef Fix connect error in Live Map Chart 2020-09-23 21:13:24 -03:00
Ale Martinez
5fdf427f39 Change Travis-ci macOS image to 11.3 and use included Qt5.14.1
Temporary workaround for #3611
[publish binaries]
2020-09-23 15:40:42 -03:00
Peter
4c19365e8b Live Map Chart (#3487) 2020-09-22 11:25:14 -03:00
Ale Martinez
28cbf3b943 Override existing watts on power estimators manual call
Similar to other DPs, it is what the users expect and it is easier
to try with different parameters.
When called automatically existing watts are preserved
to avoid accidental overwrite.
2020-09-20 20:58:07 -03:00
Ale Martinez
410b28f4db Apply Bearing fix to Fix Derive Headwind
Same as 5066fa9
2020-09-20 20:18:40 -03:00
Ale Martinez
73e175e0f3 Fix Measures issues and display in reverse order
More recent first intended to avoid the need to scroll to the end
Fingerprint changed to include time to detect changes when adding
more than one on the same day.
Fix inconsistent use of local/UTC dates.
2020-09-15 16:25:35 -03:00
Mark Liversedge
8e84ed280d Only create OpenGL context on Linux
.. MacOS Qt crashes when destroying it, OpenGL is *that*
   broken by Apple.

.. applied to Windows too, despite it not being an issue
   reported there is no value in doing it so removed.

[publish binaries]
2020-09-15 10:58:56 +01:00
Ale Martinez
0d4c289b9e Fix missing QtWebEngineProcess in HomeBrew Qt 5.15.1 deploy
[skip appveyor]
[publish binaries]
2020-09-13 12:34:15 -03:00
Mark Liversedge
f358f335b0 DataFilter - store/fetch values
.. saves/loads values to athlete global area, particularly useful when
   modelling as you can save away parameter estimates that may have
   been expensive to compute, and re-use them across series in a
   user chart.

.. they are not saved across restarts, but we could fix that later if
   they become more useful

.. store("name", value) and fetch("name"). if the named value does
   not exist 0 is returned.

[publish binaries]
2020-09-12 09:59:04 +01:00
ericchristoffersen
1593576cff Apply recent alt fixes to route. (#3604) 2020-09-10 15:16:15 -03:00
ericchristoffersen
5066fa990d Lat and Lon now get DegreesToRadians (#3600)
Bearing calc to geolocation fix bike and running power
2020-09-09 17:23:15 -03:00
ericchristoffersen
a418b601b1 Altitude smoothing fixes (#3599) 2020-09-09 17:21:44 -03:00
Michel Dagenais
01f1e0e9bd Fortius fixes (#3595)
Fix the slope and power values in the Fortius Slope mode

Users have complained about incorrect slope and power values for the Fortius. This was due to a few problems. This commit greatly improves the situation with the fixes that solve the following problems:

- The Fortius protocol is better documented in the comments.
- The pedal sensor is on byte 42, not 46, this prevented the pedal sensor echo to keep the trainer operating normally.
- The slope was converted to uint before being scaled, losing the fraction.
- The trainer most likely reports the torque. It must be multiplied by the speed to get the power.
- The scaling factor for the slope was 2x too high but this did not show earlier because of the pedal sensor problem.
- The period for retrieving data was too fast, most packets were empty, the period was changed from 10ms to 50ms (Tacx software uses 100ms).

GoldenCheetah is now quite usable on my Fortius with those changes. The slope appears too easy and the power overestimated but this is similar to the behavior of this trainer with the Tacx software. It would be interesting to get feedback from users with powermeters to refine some of the coefficients involved.
2020-09-08 20:27:59 -03:00
Ale Martinez
aeb0e142cd Add battery status to Device Info from FIT files
Fixes #2238
2020-09-08 17:50:28 -03:00
Ale Martinez
7cacf01e8d Revert "Add Qt5OpenGL.dll to Windows installer"
This reverts commit b2da0afb83.
Since OpenGL on Windows was disabled.
[skip travis]
2020-09-08 10:37:18 -03:00
Mark Liversedge
e95eb7b39d Only Enable ChartSpace OpenGL on Linux
.. MacOS support for OpenGL is unreliable and there are user reports
   of issues. We will need to wait till Qt 6 for hardware acceleration
   on Metal.

.. Windows support for OpenGL is ok if you use Nvidia GPUs but the
   AMD OpenGL driver is slow and broken. So we disable OpenGL here
   although Nvidia users are potentially being short changed.

.. Hardware rendering really needs to wait for Qt6 for a more complete
   and reliable implementation that has cross platform support.

Fixes #3594
2020-09-08 09:47:40 +01:00
Mark Liversedge
fc3de5f84a No --newgui as MainWindow refactored
.. the concept of a new gui as a replacement for MainWindow was dropped
   in preference for gradually adjusting MainWindow to the new design.

.. this is still in progress, but the 'newgui' concept is dead.
2020-09-08 09:40:17 +01:00
Mark Liversedge
97f58096cb Update README.md
Better grammar and more detail that is relevant to someone new to GoldenCheetah.
2020-09-08 07:00:24 +01:00
Ale Martinez
2fb044e653 Change to Python 3.7.9 for macOS Travis-ci builds
[skip appveyor]
To keep Python version in sync across platforms.
2020-09-05 20:15:40 -03:00
Ale Martinez
de02184079 Change to Python 3.7.9 for Linux Travis-ci builds
[skip appveyor]
Python 3.7.8 AppImage is no longer available
2020-09-05 11:38:44 -03:00
Mark Liversedge
6164dd963f VERSION 3.6 DEVELOPMENT SEPTEMBER 2020
.. marking up for development release

[publish binaries]
2020-09-05 08:20:10 +01:00
Ale Martinez
8c5b416b56 Fix sensor serial number import from FIT files
Type is uint32z according ANT+ specification
2020-09-03 21:32:08 -03:00
Ale Martinez
b2da0afb83 Add Qt5OpenGL.dll to Windows installer
Required by 8b651b5
[skip Travis]
2020-09-02 10:59:53 -03:00
Mark Liversedge
8b651b50dc OpenGL rendering
.. Fetch the version of OpenGL available at startup and use it in
   ChartSpace to decide if we want to enable openGL rendering.

.. some fixups for X11 builds, which are not needed on the main
   OS combinations we use (Linux, Mac, Windows) but may prove
   useful when building for X11 vs Wayland in the future
2020-09-01 15:29:37 +01:00
Ale Martinez
b69daad663 Fix error when computing Recovery Points in FilterHrv
We need to use Symbols, not names, to avoid translation related issues
Complements 0179c3b
2020-08-31 13:29:20 -03:00
Ale Martinez
0179c3b3d8 Fix Regresion when computing Recovery Points in FilterHrv 2020-08-30 13:53:01 -03:00
Michel Dagenais
894d9e6e23 Propagate Weight and other simulation parameters to training devices (#3500)
The weight has a direct impact on how fast you climb for a given power.
Other parameters like the wind resistance and the rolling resistance do
not change as much but should still be communicated to devices which can
take them into account. All the needed values were already present in
the BicycleSim and DeviceConfiguration modules. It is simply a matter of
communicating those values in the RealtimeController interface, just like
the gradient.
2020-08-29 19:22:44 -03:00
Mark Liversedge
9e4fe431e4 Chart space remove drop shadow
.. even with opengl the performance is terrible.
2020-08-29 11:12:06 +01:00
Mark Liversedge
c3f7cf1404 Chart Space drop shadow
.. create a bit of depth

[publish binaries]
2020-08-28 17:38:42 +01:00
Ale Martinez
f1c6394305 Use the new Data instead of Ride Editor for Python Fixes
Fix crash reported at the forum
2020-08-26 11:38:47 -03:00
Ale Martinez
0f40659052 Fix comment on BT40Device 2020-08-26 11:37:35 -03:00
Ale Martinez
16d5c82f21 Fix sample measures.ini documentation error
[skip ci]
2020-08-25 18:39:40 -03:00
Mark Liversedge
96b4cacec9 DataFilter - xdata() function
.. xdata("name", "series" | km | secs) - returns a vector of xdata.

.. no resampling or interpolation is applied since the user can
   do this with the resample() and interpolate() functions.
2020-08-25 19:42:04 +01:00
Ale Martinez
1a184f925d Fix Qt message handler used when API Web Service is enabled
This has been reported to produce garbled output on Windows and,
according to https://doc.qt.io/qt-5/qtglobal.html#qPrintable,
it is dangerous since the array returned by QString::toLocal8Bit()
will fall out of scope, so lets use a safer version to avoid
the risk of crashes hard to debug.
[publish binaries]
2020-08-25 14:17:30 -03:00
Ale Martinez
84f706f370 Use different time base for BTLE speed computation
Depending if data come from Power or CSC sensor.
Complements #3456 Fixes #3578
2020-08-25 13:59:32 -03:00
Ale Martinez
42632c4d8d Avoid crashes on Trends Overview when metric is unavailable
Metric, TopN and Donut crash on setData when the base metric
is not available, for example when a User Metric was removed.
2020-08-24 19:12:11 -03:00
Mark Liversedge
203c505f34 Update Readme.md
Describe GoldenCheetah from a user perspective, not a developer.
2020-08-24 17:06:06 +01:00
Ale Martinez
5ef8817107 Move Pace units from athlete to general settings
Also change defaults to match metric/imperial for consistency.
Fixes #2253
2020-08-23 12:53:53 -03:00
Ale Martinez
46e07a7016 Make measures.ini global looking for it in gcroot
For the same reason metadata.xml is now global.
Also load default measures groups even when measures.ini is present,
this may change when we provide an UI to edit measures.ini, but for now
it avoids users breaking body and hrv features.
[publish binaries]
2020-08-22 19:14:42 -03:00
Poncho
35606d321c src/Core/Context.cpp: include Settings.h (#3577) 2020-08-22 11:48:58 +01:00
Mark Liversedge
fbd095a2d4 Split Global and Athlete configuration
.. Global settings (themes, metadata etc) are now maintained
   in the config dialog as in the past, whilst athlete settings
   (such as zones, measures etc) are now maintained in a new
   config dialog accessible from the athlete view (gear icon).

.. Config changes are communicated via two signals;
   * Context::configChanged(qint32)
   * GlobalContext::configChanged(qint32)

   Crucially, all global context signals are cascaded through
   the athlete contexts-- so athlete specific widgets only
   need to connect to the athlete context signal (and will get
   athlete and global config change notifications).

   Whilst global widgets such as the sidebar and mainwindow
   need only connect to the globalcontext signal since they
   are not interested in athlete specific details.

[publish binaries]
2020-08-22 11:36:24 +01:00
Ale Martinez
79071a2f3b Fix Travis-ci macOS builds - change sip source
Python sip 4.19.8 is not available anymore from Riverbankcomputing.com,
lets download from sourceforge.net like we do for Linux and Windows builds.
2020-08-21 17:33:15 -03:00
Mark Liversedge
80d7eed382 RideMetadata and friends moved to GlobalContext
.. Ride metadata was associated to the athlete rather than a
   global setting. This was a serious design flaw since user
   metrics can reference metadata.

.. A global metadata.xml file is generated on startup by
   consolidating all athlete level settings into a single
   configuration.

.. Other dependencies were also moved; SpecialFields,
   ColorEngine and UseMetricUnits.

.. We should now be able to remove athlete configuration
   from the config dialog and put it into the athlete view
   instead.

   This will also fixe a long standing issue with
   configuring athlete settings when multiple athletes are
   open.

[publish binaries]
2020-08-21 19:01:37 +01:00
Ale Martinez
a0409e8cea Fix truncated json when importing Lap Swim FIT files
Due to NAN distance on 1sec pauses, introduced in 3f9892d
[publish binaries]
2020-08-20 17:04:19 -03:00
Ale Martinez
6cdd5bbbe7 Shorter timeout on transfer.sh upload to avoid timeouts
Uploads are quite fast or don't work, so don't wait too much.
2020-08-20 17:03:01 -03:00
Ale Martinez
39feb5807c Show metrics in locale aware collation order
Unicode order can be confusing for some locales
Reported in #3542
2020-08-20 10:55:37 -03:00
Mark Liversedge
99fb4f551e Tweak RideEditor header cosmetics
.. solid line between header and data, just makes it less of
   a see of text by separating the header from the data.
2020-08-19 11:47:35 +01:00
Mark Liversedge
6fcabd699a Ride Editor bottom tabs match Ride Metadata tab style
.. 4px width bar etc.
2020-08-18 10:01:48 +01:00
Ale Martinez
bdd6d2c219 Fix KPI Tracker in chart library
Best 60min Power was Best 60min Speed, separately fixed the web version
Fixes #3574
2020-08-17 17:55:25 -03:00
Mark Liversedge
90e20d79bd Unified Editor and Metadata
.. the 'Details' chart now combines editing the metada fields such as
   workout, sport, notes and so on, with an additional tab 'Raw Data'
   that contains the RideEditor.

.. it is now no longer possible to add Editor inidividually and the
   Summary and Details chart is deprecated (Summary will also be
   removed once Overview has enough functionality to replace it).
2020-08-16 18:14:18 +01:00
Mark Liversedge
ebca2b846a Modernise the Metadata tabbar
.. flat styling with an indicator underneath the current selection.

.. been meaning to do this for absolutely ages.
2020-08-16 09:51:35 +01:00
Ale Martinez
2a43f11c72 Revert "Windows builds log to goldencheetah.log when not debugging (#3485)"
This reverts commit 6bc48200e7.
It is crashing on Windows 8, I can't debug on that version
and it is not that useful feature, --debug gives more information.
[publish binaries]
2020-08-15 19:36:16 -03:00
Mark Liversedge
6cdb848e9f Show metric refresh progress on Athlete View
.. part of a general process of centralising status, progress messages
   and indicators into one place.
2020-08-15 11:47:41 +01:00
Mark Liversedge
2372b4cdbe RideNavigator one more row of text
.. feels a little less cramped. but still needs to be completely
   overhauled for v3.6 UX
2020-08-15 10:31:12 +01:00
Mark Liversedge
2eed6f66dc Allplot less transparency
.. when filling curves as looks washed out with white backgrounds.
2020-08-15 10:30:12 +01:00
Mark Liversedge
3c6bbd5ec6 Theme Tweak add MS Teams inspired theme
.. same understated purple and white.

.. also removed some of the old (rubbish) themes.
2020-08-15 09:54:40 +01:00
Ale Martinez
1eae9f4071 Metrics Trends chart - Fix averaging group counter in table mode
The group counter was not reset and incremented unconditionally
in table mode, producing wrong averages when zeros are excluded.
Fixes #3566
2020-08-14 19:01:07 -03:00
Ale Martinez
414cc630fd Don't compute Pace Swim for non swimming activities
Fixes #3570
2020-08-14 12:57:46 -03:00
Ale Martinez
2ada830c5b Fix generated distance for lap swims
Fixes #3567
2020-08-14 12:29:47 -03:00
Mark Liversedge
80ba487153 Fix SEGV configChanged after athlete closed
.. the views were not being deleted, so the global context connection
   to configChanged signal was still called, but the athlete and
   context were long gone - so SEGV (!)

.. the reason this didn't get triggered in earlier releases is due to
   the fact the event was disconnected when the athlete context was
   deleted.
2020-08-14 13:43:41 +01:00
Mark Liversedge
9bb1f3434d Fixup RideCache Load in Thread
.. move thread based load of ridecache into ridecache, this fixes a
   serious regression.

.. previously because the ridecache was created in a thread it could
   not attach to the events from the main gui event loop.

.. we now load the RideDB.json file in a worker thread, but the
   ridecache, and its items are created in the main thread.
2020-08-14 10:25:21 +01:00
Alejandro Martinez
64e83121ca Computrainer Button tidy up (#3538)
Since F3 was assigned to Calibration, its use as modifier was deprecated.
Also nextDisplay is not implemented so we can do some cleanup.
F1 is restored to their original function: start/pause and F2 is used
for new lap, in both cases with debouncing to avoid false activations.
This way the same functions enabled for ANT+ remotes are available via HBC:
Start&Pause: F1
Lap/Interval: F2
Load increase/decrease: +/-
Calibration: F3
2020-08-13 21:29:42 -03:00
Ale Martinez
97da9f9539 Increase precision to 3 digits on RideEditor XData
Fixes #3568
2020-08-13 20:10:05 -03:00
Alejandro Martinez
c52d260949 Generalize Body/Hrv Measures and add Nutrition data as example (#3564)
measures.ini is looked for in Athlete's config folder,
it should have a section for each measures group,
nutrition data with Energy and Macros is provided as example.
Moved default weight to About and removed RiderPhysPage and created
a tab for each measures group under Measures.
MeasuresPage handles conversion between metric and imperial units
Generalized CSV import with configurable headers.
MeasuresDownload enables download from Withings/Todays Plan only for Body
measures.
This is Part 1/2 of #2872
2020-08-11 21:02:19 -03:00
Ale Martinez
9a2d71dc5d Avoid rounding when computing speed and cadence on Lap Swims
Fixes #3563
2020-08-11 19:11:03 -03:00
Mark Liversedge
1d9f570ed8 Introduce a Global Context
.. GlobalContext::context() provides a global context that is not
   tied to an athlete or MainWindow.

.. At present it just offers signals for config changes but will
   likely see more context move across as the application preferences
   and athlete configuration are separated as we enhance support
   for multiple athletes.
2020-08-11 22:16:13 +01:00
Alejandro Martinez
6bc48200e7 Windows builds log to goldencheetah.log when not debugging (#3485)
Similar to Linux/macOS builds, messages are redirected to goldencheetah.log
when not output to console is requested, but instead of relying on low level
stderr redirection a message handler logging directly to the file is installed.
[publish binaries]
2020-08-10 21:21:34 -03:00
Ale Martinez
c886158c16 Honor default locale on RideEditor copy/cut
paste and paste special are already doing this via strtod
Fixes #2552
2020-08-10 11:29:02 -03:00
Ale Martinez
c49180460d Avoid multiple ConfigDialog creation and close on exit
configdialog_ptr is already maintained to handle raise event,
cleanup is moved to destructor to ensure it is always called,
and it is used to ensure:
1) only one instance is created from MainWindow
2) it is closed on MainWindow destructor
Fixes #1918
2020-08-09 15:38:08 -03:00
Ale Martinez
7c90abf675 Fix percentage calculation in Overview Zones histograms
It was restricted to the first 4 zones, likely a copy/paste error.
Fixes #3559
2020-08-08 20:28:20 -03:00
Ale Martinez
f0fd495a21 Remove special case for Device metadata tag query
Keeping exception for isset/set/unset
Fixes #3428
2020-08-07 16:00:05 -03:00
Ale Martinez
3f9892d130 Change lap swim import from FIT files
The logic to generate synthetic speed/distance/cadence sample data
from length records was removed from FitRideFile, and Fix Lap Swim
data processor is now used for that task, this is simpler, avoids
code duplication and preserves other data s.t. HR and Temp
Fixes #3545
total_timer_time is used as length duration instead of total_elapsed_time
to support Suunto lap swim files
Fixes #3272
2020-08-04 13:56:32 -03:00
Mark Liversedge
8150d5b7ce Protect against closing first athlete opened
.. since the context of the first athlete is used as a partial
   application context across the code we now prohibit closing
   the first athlete opened.

.. we will separate out the app and athlete context shortly
   but this will at least protect against SEGV.

[publish binaries]
2020-08-04 07:47:22 +01:00
Mark Liversedge
edec952b86 Athlete View 2 of 3
.. Show days since last activity and disable config icon since there
   isn't an appropriate action for now

.. Athletes can be opened and closed via the tiles and a reusable
   'Button' overview widget is available for re-use elsewhere.

.. Part 3 will enable checking for downloadable data to show an
   indicator on the tile for e.g. coaches with multiple athletes.

NOTE:

   There are a few issues regarding application context separation
   from athlete context that need fixing up (if you close the first
   athlete loaded expect crashes). Will look at this as a separate
   update since its been there for some time and is not related to
   the new view per se.
2020-08-03 20:09:47 +01:00
Mark Liversedge
7d9337fb23 Theme Tweaks
.. modern light now uses the Fiori Belize Blue theme.

.. this means that the overview (chartspace) background is now also
   configurable, so the existing themes could be updated.

.. probably need to revisit all the themes tbh.
2020-08-03 20:09:47 +01:00
Ale Martinez
7e3f141124 Don't crash when Python chart APIs are called without a Chart
Just do nothing and return false.
Fixes #3554
2020-08-03 12:59:42 -03:00
Ale Martinez
750f7fb258 Fix missing return in previous commit
5a27239e01
2020-08-02 12:14:02 -03:00
Ale Martinez
08632206c3 Update Preferences Appearance screen capture for the wiki
[skip ci]
2020-07-31 14:52:00 -03:00
Ale Martinez
51eb9e6c96 Remove climb detection logging to climb.log
There has been some reports about performance issues on Windows,
and this was a debug tool for a feature which has been stable
for years, so we can remove it to avoid the overhead.
[publish binaries]
2020-07-30 14:26:03 -03:00
Ale Martinez
7189c6d759 Remove config(SCV) from formulas - CV is sport dependent now
Just like CP et.al.
Also removed unused D' and SD'
Fixes #3551
2020-07-30 14:04:30 -03:00
Ale Martinez
5a27239e01 Add Garmin Varia Radar and Light
Fixes #3549
2020-07-30 13:30:12 -03:00
Ale Martinez
9a62573087 Change Body&HRV date entry format to match the list
For consistency, lets use the same format in the form,
it can be changed at translation time.
2020-07-30 12:44:56 -03:00
Mark Liversedge
e2c6f2ea28 Fix Sort order in TopN on Overview for Pace type metrics
.. use isLowerBetter() for sorting.

Fixes #3552
2020-07-30 16:10:52 +01:00
Mark Liversedge
7a4be49492 RideCache load performance improvement
.. string manipulation using raw C since its simple character
   replacement, halved time over previous approach.

.. lookup rideitem in ridecache via binary search (lower_bound)
   rather than serial. Minor speed up.

.. Overall, loading should be noticeably quicker for most users.
2020-07-30 15:44:02 +01:00
Mark Liversedge
11092bf436 Athlete View 1 of 3
.. introducing the athlete view

.. at startup the first athlete is loaded as normal, but once the
   mainwindow is open the athletes are managed from the athlete view

.. athlete ride cache restore happen in background (via a thread) to
   enable the GUI to remain responsive whilst it takes place (since
   for most non-trivial cases it can take 30 seconds or more).

.. multiple mainwindows has been deprecated and whilst each open
   athlete is selected via a tab, this will change to a combobox
   in later commits.

.. the tiles in the athlete view do very little apart from show the
   avatar and progress/load status when an athlete is being loaded.

.. future commits will introduce more detail and actions for the
   athlete tile and deprecate the athlete tab bar for a combo on
   the toolbar (amongst other things).
2020-07-29 21:38:38 +01:00
Mark Liversedge
c52a861a9a User Chart refresh on filter changes
.. quite a few of the standard signals are ignored. this one fixes
   up refresh when the home filters are changed.
2020-07-29 21:38:38 +01:00
Mark Liversedge
f01ed7c77c Add BikeScore user doc
BikeScore documentation, as referenced from the FAQ
2020-07-29 12:13:22 +01:00
Ale Martinez
fa1e1d00ae Change FixLapSwim DP to preserve all previous data
Not just HR, also fixed sync issues when there are gaps in recording.
2020-07-23 16:59:13 -03:00
Ale Martinez
1dde50f6e5 Change LTMPopup Click-thru to use the new navigation model
For consistency with new charts.
2020-07-22 19:13:05 -03:00
Ale Martinez
5d18b810a7 Fix incorrect debug message in Video Layout Parser 2020-07-20 15:13:25 -03:00
Mark Liversedge
947393914f Generic Chart Click-thru 2a of 2b
.. Scatter chart click thru from trends.

.. Need to decide how click thru will work from a line chart as the UX
   doesn't quite work as the auto hover points are elusive (they move
   when you go to click on them). Will review and fixup shortly.
2020-07-17 17:59:53 +01:00
Mark Liversedge
3bf2f13764 Generic Chart Click-thru 1 of 2
.. Enable click through from the data points on a generic chart
   when on trends view.

.. This commit includes the 'addCurve' bindings to pass the
   activity filenames from R, Python and the User Chart.

.. It also includes a new DataFilter function 'filename' to
   get a vector of strings that are the filenames for the
   activities in the selected date range (or the filename
   for the currently selected activity).

.. The second commit will include the interaction code for
   GenericPlot to click-thru a selection.
2020-07-17 13:37:06 +01:00
Alejandro Martinez
1f8bafb334 Text Cues on TrainBottom display pane (#3544)
Import Texts from Erg files in TrainerRoad format, Zwo files and
from Lap names in json files.
Display texts on TrainBottom for both, erg and slope mode, at the
corresponding time/distance for the specified duration.
Export Texts in erg, mrc and zwo formats.
Fixes #1118
Fixes #2967
Prerequisite for #2098
2020-07-16 12:55:41 -03:00
Mark Liversedge
911b9bd966 Move BlinnSolver to Metrics
.. it doesn't belong in Core.
2020-07-16 07:33:09 +01:00
Mark Liversedge
ba5cf3ed1d Datafilter String Support - 4 of 4
.. adding some new functions for working with strings:

   trim(p) - trim whitespace
   tolower/toupper(p) - convert case
   split(p, sep) - split a string into a vector
   join(p,sep) - join a vector into a string
   replace(p, s1,s2) - replace s1 with s2 in string or vector

.. this is the last of the first wave of commits to support
   strings, but more will come as we work with categorical
   data, factors and so on.

[publish binaries]
2020-07-15 12:42:00 +01:00
Mark Liversedge
c850a532f6 Remember sidebar setting
.. show/hide sidebar setting is reinstated on restart, is specific to
   each view and now the menu check stays in sync with user selection.

.. another old glitch thats taken a while to get resolved !
2020-07-14 22:41:38 +01:00
Mark Liversedge
b9039e7767 Generic Chart Nits
.. legends can have spaces in them (painting error) and you can now
   hover over a slide to see its value.
2020-07-14 19:57:50 +01:00
Mark Liversedge
2874bf6bfa DataFilter vectors - metadata()
.. metadata("name") returns the value for the metadata field on analysis
   view or a vector of values if on trends view.

.. also fixed a few nits when working with category data on the user
   chart; sort/multisort had bugs, blank labels and pie chart legend.
2020-07-13 22:45:32 +01:00
Mark Liversedge
4b93632b42 User Chart Pie and Bar charts now work
.. since we can now set category data using string vectors we can
   support bar and pie charts in the user chart.

.. there were a few issues switching between bar and pie charts
   related to the way axes were being configured that have been
   resolved in this commit.
2020-07-13 20:56:24 +01:00
Mark Liversedge
e885966195 Fix User Pie Chart Labels and Colors
.. bug not clearing labels before setting and now uses a gradient
   based upon the color selected by the user.
2020-07-13 14:43:06 +01:00
Mark Liversedge
1a5b7e1464 Datafilter String Support - 3 of 4
.. Update builtin functions to support working with strings as well
   as numeric vectors; e.g. sort, uniq, aggregate

.. next commit will add some new functions that are specific to
   working with strings; e.g. tolower/upper, split, replace.
2020-07-13 13:39:42 +01:00
Mark Liversedge
c98695cd34 Datafilter String Support - 2 of 4
.. Update operators to support string vectors; compare, assign, index,
   select, contains and so on.

   Most maths operators make no sense apart from '+' which concatenates
   strings and arrays together.

.. next commit will update functions where they are appropriate for
   strings and string vectors; sort, uniq etc.
2020-07-12 17:53:42 +01:00
Mark Liversedge
f767b066df Datafilter - bool() also coerce vectors
.. was introduced to coerce an expression to boolean, but should have
   also supported vectors.
2020-07-12 09:25:26 +01:00
Mark Liversedge
169bd9c4e0 Datafilter String Support - 1 of 4
.. Strings and vectors of strings are useful for plotting bar charts
   or wherever category variables are needed, they are also useful
   when working with xdata names and metadata within ride files.

.. Full support for strings will be introduced over the next 4
   commits, including this one (1 of 4):

   1 - Basics - Create, Assign, Coerce, isString
   2 - Operators - Logical, Math etc
   3 - Functions - sort, uniq, aggregate etc
   4 - String Functions - cat, split, toupper/lower etc

.. Will wait until all 4 commits are completed and string support
   is feature complete before updating the wiki.
2020-07-12 09:13:19 +01:00
Ale Martinez
5bd48dd4f6 Change Fix Speed DP name to Fix Speed from Distance
To match the english menu option, and set kph present
when it is not, even if values have not changed.
Both were misleading to users.
2020-07-11 15:29:03 -03:00
Ale Martinez
9b2226d3ba Install Python 3.7.8 for macOS Travis-ci builds
[skip appveyor]
Homebrew has upgraded python3 to 3.8.3 and, due to how dependences
are handled, it is difficult to continue to use Homebrew Python 3.7
2020-07-10 15:06:21 -03:00
Mark Liversedge
b91c8395c0 Revert "Fit : Decode Dev Fields"
This reverts commit 2e4fa9f406.
2020-07-10 08:51:31 +01:00
Mark Liversedge
cc27d6be84 Cosmetic nits and themes
.. tidying up after some recent changes, menu colors got mucked up and
   tested on low dpi monitors etc.
2020-07-10 08:51:03 +01:00
Ale Martinez
a1d2fd8f41 Fix Travis-ci macOS builds - restore python 3.7 simlinks
[skip appveyor]
Likely removed by python 3.8 forced upgrade.
2020-07-09 16:03:53 -03:00
grauser
a33a74923b AllPlot : Show/hide interval markers
fixes #2215
2020-07-09 17:18:10 +02:00
grauser
c701c8a510 RideWithGPS : Use API version 2 2020-07-09 17:13:11 +02:00
grauser
2e4fa9f406 Fit : Decode Dev Fields 2020-07-09 17:13:11 +02:00
Ale Martinez
9a72ab4269 Fix Travis-ci macOS builds - use python3.7
[skip appveyor]
Homebrew upgraded to python to 3.8, switched back to the 3.7.5
included with the Travis image until we decided to upgrade.
Changing to 3.8 requires to upgrade SIP to 5.x and testing.
2020-07-09 11:29:27 -03:00
Mark Liversedge
98ff3aaf11 Editor heading alignment fix
.. taken 10 years to fix this glitch.
2020-07-08 08:25:18 +01:00
Mark Liversedge
83b551deaf Fix SEGV on drop activity into compare pane
.. needed to check context was set before adding to deletelist.
2020-07-07 22:13:49 +01:00
Ale Martinez
af94c6f8c5 Change Python version to 3.7.8 for Travis-ci Linux builds
[skip appveyor]
Build are failing since the AppImage for 3.7.7 is no longer available.
[publish binaries]
2020-07-07 11:26:46 -03:00
Mark Liversedge
6349e53232 Fix MetricOverviewItem aggregation
.. bad bug, aggregation was lost and replaced with whatever the
   value of the last item is when aggregating metrics for a
   season.

[publish binaries]
2020-07-07 13:08:59 +01:00
Mark Liversedge
eba028475a Simplify and Finalise Dark/Light Theme
.. and also a border around overview cards, which makes the light theme
   easier on the eye.
2020-07-07 11:24:35 +01:00
Ale Martinez
e3d11c27a8 Train - Enable devices reordering via drag and drop
Fixes #3421
2020-07-06 20:00:07 -03:00
Mark Liversedge
0f73c15c0e Overview TopN select activity
.. click on item in list to select it and click thru to analysis view.

.. also implemented a hotspot() method in chartspaceitem to tell the
   chartspace to stop stealing events when in our hotspot-- in this
   case it was the area where we paint the list.
2020-07-06 10:16:17 +01:00
Mark Liversedge
20e0b4aeca Fix SEGV navigation with forward button
.. stackpointer increment before redo and indexing into the stack
   when stackpoint is -1 in NavigationModel::forward().

.. introduced in the last commit.
2020-07-06 08:06:12 +01:00
Mark Liversedge
b313cb4f37 Overview Bubble Select Activity
.. clicking on an activity in the trend overview bubble chart will
   switch to analysis view to look at it.

.. to support this all the underlying changes to navigation model
   and related have been updated to force view change and allow
   going back and forth in the navigation model.

.. along the way a couple of bugs were also squased. The worst was
   a SEGV related to Tab::rideSelected() calling MainWindow::sidebar.

.. now the main foundational code is in place we can add more click
   through opportunities; e.g. top N on overview, user chart.
2020-07-06 07:42:22 +01:00
Mark Liversedge
64da909243 Basic Navigation Model
.. back and forward buttons to navigate between views and selections.

.. currently limited to just rides, date ranges and views.

.. next step is to enable click to select from trends overviews to allow
   users to drill down from the season overview into activities and
   back again.

.. part of the shift from searching through lists to analyse data to
   exploring data visually with drill down and click through.

.. the buttons are very basic and there is no way to explore the
   history / recently viewed items etc. these will come later.

Fixes #3529
2020-07-05 16:38:30 +01:00
Ale Martinez
94c723f4a0 Fix Hr and Power Zone metrics
Sanity check was reversed so decimal part always computed to max
and becomes undervalued.
Fixes #3531
2020-07-05 11:27:40 -03:00
Ale Martinez
c16d4c4667 Fix crash when adding video without overlay widgets support
Disabled meters layout selector initialization when we don't
have overlay widgets support enabled.
Fixes #3530
2020-07-04 15:31:21 -03:00
Ale Martinez
3b2aa33c6a Run and Bike power estimators - add preconditions to description
Fixes #3528
2020-07-03 15:33:36 -03:00
Ale Martinez
e6938a38f8 Video Player - Add Reset Meters layout to default button
To allow users update video-layout.xml config file to the one
provided with the binary.
2020-07-03 15:08:49 -03:00
Mark Liversedge
5518ac98a8 Light/Dark theme settings again
.. just to ensure same aesthetic effect with tabs and overview in dark
   or light theme. last of these for a while, I promise.
2020-07-03 10:41:11 +01:00
Mark Liversedge
88e6c4cbd2 Apply theme set chrome to match
.. if a dark theme set chrome dark, if light set it light.
2020-07-03 07:03:30 +01:00
Mark Liversedge
b02a640d6e Selection Sidebar honor CCHROME config
.. the user can configure the colour of toolbars and sidebars, so this
   is honored in the sidebar painting,

.. we should look at separating out the way theme colors are edited;
   the core colors are more important than the pallete colors like
   CPOWER etc (and as an aside the palette colors should be usable
   from user chart config too).
2020-07-03 06:42:15 +01:00
Mark Liversedge
ec195656f7 GC Learning Curve PPT
.. upload into user doc
2020-07-02 15:33:58 +01:00
Ale Martinez
d0dba1d8a1 Reimplement isLowerBetter for User Metrics
User Metrics redefine type() so we need to use it instead of _type
Fixes #3527
2020-07-01 22:04:57 -03:00
Mark Liversedge
1599546b68 Honour RideMetric::isLowerBetter() when ranking
.. also tweaked the overview colors (sorry no separate commit).
2020-07-01 14:18:36 +01:00
Ale Martinez
709994c3e7 Add muscle mass and bone mass to Withings download
Fixes #3497
2020-06-30 19:01:50 -03:00
Ale Martinez
c2abdc2a5b Xert cloud download - spd and alt fields can have decimal part
Interpreting them as integers produces lot of zeros in those cases.
Fixes #3526
2020-06-30 14:17:45 -03:00
Stranger
cd2de5dc3d Russian translation update (#3522)
Correcting existing translations and adding new. This is the last part for the moment. The next one after the RC is released.
2020-06-28 10:26:42 -03:00
Mark Liversedge
d9df2bb76b Cosmetic nits
.. gap between ride list and sidebar color didn't get reset when change
   color theme in preferences. (was a nightmare to find the fix).

.. overview default backgrounds when changing themes were also really
   bad choices and toned down. quite why we have to change in pages.cpp
   and colors.cpp is a bit tedious.
2020-06-28 09:37:36 +01:00
Mark Liversedge
8ec6d513b8 Cosmetic nits
.. toolbar searchbox match chrome colors
.. trends add chart menu had 2 entries for the user chart.
2020-06-27 16:36:20 +01:00
Mark Liversedge
0b5153a6a5 Overview better date handling
.. new metric 'Activity Date' which is days since 1900/01/01 as a metric
   so can use wherever metrics are used.

.. added RideMetric::isDate() so we can mark as a date and honor setting
   in RideMetric::toString()

.. updated BubbleViz to support Dates by using xoff and yoff to truncate
   the values used when days since values.

.. changed the default config for a trends view bubble viz in overview
   to use activity date as the x-axis.

.. thanks to Ale for the original idea behind this.
2020-06-27 10:40:40 +01:00
Mark Liversedge
93259ce7e0 Overview improve displaying of time based metrics
.. we added isTime() and toString() for a reason, lets exploit some of
   that when converting metrics to strings.
2020-06-27 08:52:55 +01:00
Mark Liversedge
00b498c8b7 Datafilter uniq / multiuniq name change
.. the uniq function renamed to multiuniq to align with the way
   sort / multisort work

.. makes uniq behave in the way most people would expect.
2020-06-27 07:55:55 +01:00
Mark Liversedge
2162cb1374 Fix DataFilter uniq() SEGV
.. both validate and eval code reference fparms instead of leaf->fparms
   causing a SEGV when evaluating malformed expressions.
2020-06-26 23:14:05 +01:00
Mark Liversedge
13c91cf67d Overview Bubble on Trends View
.. repurpose the interval bubble to show activities instead of
   intervals.

.. changed the animation/transition to work better when looking at
   seasons by resizing the axes before updating the points.
2020-06-26 22:39:33 +01:00
Ale Martinez
ac5ae5027b LiveMap overlay video widget - show/hide according to Location data presence
Fixes the LiveMap dissapering on pauses, we could refactor to move
this and similar ElevationMeter operations to Start event.
2020-06-26 16:05:03 -03:00
Ale Martinez
e90eaf281f Travis-ci cache Python packages to reduce build time on macOS
[skip appveyor]
Not a great difference, but we are too close to 50' limit
Also reduce curl max time to avoid timouts.
For Linux buils remove --silent build to avoid the job being cancelled
2020-06-26 15:57:15 -03:00
Ale Martinez
5dd950c77b Revoke the blocking to upload Overview charts to CloudDB
The block was introduced in bb6d2552c0 to
avoid the upload of charts without configuration, now configuration is
possible and it will be interesting to see what layouts users share.
2020-06-25 11:34:59 -03:00
Mark Liversedge
9bdbf22f7c Datafilter samples() honor interval specification
.. the data filter is passed a spec to use for iterating over
   ride samples, but it was being ignored.

[publish binaries]
2020-06-24 20:36:18 +01:00
Michel Dagenais
a27065673c Allow Text meter widgets to be of same size and well aligned (#3506)
The y scale is computed from the font instead of only from the current content, to avoid having different scales between different Text widgets of the same size. For example, "kph" has a high k and low p, resulting in a text widget with bigger bounding box, and thus smaller scale than a text widget with "watts". Options are added for alignment and for text width, to help align the different entries. The formatting of metrics with the integer part as Text and fraction as AltText is more systematic and it is possible to add an AltTextSuffix, to specify the units when they are not provided in VideoWindow. The visibility of the BoundingRect and Background car be controlled.
2020-06-24 11:58:08 -03:00
Mark Liversedge
028e822aa4 Edit User metric warning if use sample() function
.. its much faster to vectorize and use the samples() function in init
   or value function when working with user metrics.

   for example this code:

   sample {
      work <- work + (POWER * recIntSecs);
   }
   value { work; }
   count { Duration; }

   should be refactored to:

   value {
      work <- sum(samples(power) * recIntSecs);
   }
   count { Duration; }
2020-06-24 08:17:58 +01:00
Ale Martinez
fdf6d4e862 Python XDataSeries - Don't use RideFileCommand when readOnly
It is unnecessary and too slow
Fixes #3445
2020-06-23 21:16:28 -03:00
Alejandro Martinez
0e3766a504 Add EPM - Ergo Planet Movie format import (#3520)
To be used as workouts and videosync with free Ergo Planet Videos
EPM files contain video sync plus geolocation information in XML format
Library of free rides: http://wiki.ergoplanet.de/myor/roadmovie-galerie

The problem is altitude set to zero in those examples, likely because it is
redundant when you resort to the EPP (Ergo Planet Program) for slope data,
but the EPP is an unpublished binary format we don't support directly.

So the workflow to use the those synchronized videos is:
1) Import the .epm file to GoldenCheetah as an activity
2) Use Fix Elevation and Fix GPS to add and smooth elevation and route data
3) Export the conditioned activity to GoldenCheetah JSON format
4) Import the .json file as Workout and VideoSync files,
   plus the .avi as media in GC Train mode using Scan Workouts and Media
5) Train using a Video Window with overlay widgets and simulated speed for
   better experience.
2020-06-23 17:11:02 -03:00
Ale Martinez
3bfcfa57aa Implement RideMetric value and toString with 2 parameters for Pace metrics
Fix base class toString 2 parameters bug
Use toString(metric, value) in getStringForSymbol to avoid setting the value
Use toString(metric, value) in MetricOverviewItem::setDateRange for testing
2020-06-23 15:51:57 -03:00
Stranger
4d205bd742 Update Russian translation (#3519) 2020-06-22 16:47:02 -03:00
ericchristoffersen
8956f60826 VirtualPowerTable: sort remove empty rows (#3517) 2020-06-22 15:17:32 -03:00
Ale Martinez
0e1bec38aa Enable GoldenCheetah JSON files as Workouts and VideoSync
Any other activity file format GC supports can be imported,
conditioned using Fix Elevation, Fix GPS, etc. and exported
to GoldenCheetah .json format to be used for simulated rides
with synchronized video and position tracking.
Complements #3469, Fixes #3376
2020-06-22 14:41:31 -03:00
ericchristoffersen
225cf0c9d5 Base code for additional ride and video types (#3469)
Related to #3376
2020-06-22 14:35:43 -03:00
Mark Liversedge
ad4d06faa8 MetricOverviewItem show Personal Bests
.. shows a little medal on the metric tile if it is a best for the
   period. Shows if top 3, in order:
   - all time, including the future
   - all time till today
   - last year
   - last 90 days
   - last 30 days

.. helps to highlight positives from most activities.
2020-06-22 13:56:45 +01:00
Ale Martinez
5eafea682b Fix untranslatable strings
Fixes #3513
2020-06-21 18:59:40 -03:00
ericchristoffersen
c3145c5f04 Make BicycleSim setting page translatable (#3518) 2020-06-21 18:35:58 -03:00
Mark Liversedge
0dc5fc2f6f Donut hover less jarring
.. big font for label feels jarring, made smaller and less vibrant
   color choice.
2020-06-21 09:17:30 +01:00
Peter
984d28abf0 LiveMap V0.1 - Tracking position
Initial implementation of #3482
LiveMap is hidden when GPS data is not available
New layout including Live Map and graphical widgets
added to video-layout.xml, zoom can be configured there.
2020-06-20 20:55:16 -03:00
Michel Dagenais
05e89e5c34 Add control to Video Player to select among several Meter Widget layouts (#3515)
The video layout file is extended to contain possibly several named
layouts. The file is read to list the layouts and offer a selection in
the Video Player chart settings menu. The file is then read again to
instantiate the selected layout.
2020-06-20 14:41:19 -03:00
ericchristoffersen
32884b1c6a Support Custom Virtual Power Curve (#3410)
* Base work for dynamic speed power curves.

* Add test for spindown - proof templates.

* Dialog for adding virtual power curve

* Finished.

* Potential typename fix.

* Fix another typename problem.

* const typename reorder

* Missing header in clang build.

* Fix error with static init order.

* Forgot to set id for known devices.
2020-06-20 18:28:53 +01:00
Mark Liversedge
e1086afc50 Donut hover label
.. display the slice label when hoverring as it can sometimes be
   obscured or truncated, depending upon the layout/size of tile.
2020-06-20 17:57:26 +01:00
Mark Liversedge
21c07be749 Overview donut hover
.. show percentage for slice when hoverring.
2020-06-20 15:53:33 +01:00
Mark Liversedge
59f736bb50 Default Overview error
.. meta field is 'Workout Code' not 'Workout_Code', mildly confusing
   that user names don't have spaces whilst internal names do.
2020-06-20 15:13:27 +01:00
Mark Liversedge
a81c97c09b Donut highlight largest slice
.. explode and different colour.
2020-06-20 11:07:01 +01:00
Mark Liversedge
c72a14a023 Donut Overview Tile
.. plot metric by category as a donut (pie) chart.

.. particularly useful as an overview of sport or workout codes for
   multisport athletes.

.. also fixed up metadata selection which was broken (!)
2020-06-20 10:28:47 +01:00
Stranger
903861bae9 Update Russian translation (#3516) 2020-06-19 18:26:41 -03:00
Mark Liversedge
dff682fd88 Overview Trend Filter Nits
.. layouts mucked up a bit, needed stretches

.. the filterset wasn't updated correctly, causing filtering to not
   work in the way anticipated.

.. Activities metric should be a MetricType::Total, which will become
   more popular on Metric tiles with filters (e.g. how many activities
   > 0.85 IF etc).
2020-06-19 21:08:40 +01:00
Mark Liversedge
6637a45929 Missing Utils::jsonunprotect()
.. when parsing overview config.
2020-06-19 16:01:25 +01:00
Mark Liversedge
837a7c6154 Overview Trends View Filtering
.. overview items now have a filter that is applied

.. additionally the usual filters on the trends view are honored.
2020-06-19 15:46:37 +01:00
Ale Martinez
e32e233d5f Add Favero Assioma Duo and several Garmin sensor ids
Fixes #3503
2020-06-18 12:34:48 -03:00
Mark Liversedge
b66f65e129 Cosmetic SideSelector, Sidebar and Chartbar heights
.. all need to line up, so they aren't different by a matter of a
   small number of pixels as that leads to a jarring experience.
2020-06-17 16:35:45 +01:00
Mark Liversedge
9dbfc10e04 Visual clue chartbar tab has a menu
.. hover shows the menu indicator as subtly as possible, but will
   indicate to user there is a menu popup there as they hover.
2020-06-17 14:35:29 +01:00
Ale Martinez
3be603a9ee Ignore additional sports in tha same session
Also removed the old logic for mulstisport sessions, now replaced
by sessionSplit.
Add Garmin Fenix 6 models
Fixes #3507
2020-06-16 20:47:01 -03:00
Mark Liversedge
e4ad4ab1a3 Cosmetic nits
.. a faint baseline for sparkline in overview to provide context
   especially for plotting seasons

.. chartbar tabs taller and font centered.
2020-06-16 16:31:07 +01:00
Mark Liversedge
bf76bac59d Overview Trend Cosmetics
.. fill under a cumulative curve to indicate its not just the metric
.. truncate date ranges to today where it extends to the future
2020-06-15 17:55:44 +01:00
Mark Liversedge
c3463860d5 KPI Overview Item Show/Hide progressbar on config change
.. borked logic fixed up.
2020-06-15 17:18:07 +01:00
Ale Martinez
2034b8754a AppVeyor - Fix Version on Tag builds
[skip ci]
Version is not set for Tag builds due to a script error,
lets fix it for the next dev build.
2020-06-14 18:30:36 -03:00
Ale Martinez
1c4c83af5e FitRideFile - Don't try to split when we don't have a RideFile
But to check for errors.isEmpty() is overkill, when the returned value
is not NULL, they can be warnings according to RideFileImport interpretation.
Fixes #3479
2020-06-14 15:16:29 -03:00
568 changed files with 164696 additions and 88834 deletions

View File

@@ -1,3 +1,5 @@
if: commit_message =~ /\[publish binaries\]/
branches:
only:
- master
@@ -10,6 +12,8 @@ cache:
- $HOME/Library/Caches/Homebrew
- qwt
- D2XX
- site-packages
- VLC
env:
global:
@@ -32,14 +36,15 @@ env:
- secure: cc0pAJjkmFNw2bO3zVACmtyHTwINAHALrtUxi+nRD+FhOO9KxuxuuwvcKCZKfp9EUOjz5PrYWKV1ZH/zt/jMix8A4Gyue2mWX8WYih7aTmJBcJWsFNTCybnClreKBCh18kHdWWhkmhk8EMINDvlqxzJZGpcNO04gxhL9wuLLrNQ=
- secure: em0xXIm69rMHsHXYQiizeJB7dEFBkX33PsWDHwBNrX6lFBued23eL96KJC4RVbk6A+AHFtXFATrreZ14D5JH/E/37CXhe3X2R93WqiPUSH0s7NI4fFA1BroKUNAlqO4bMqDBidtNmwMPaLTXjaOnOZyvbAG7z+QV3TKC8tOeZDU=
- secure: VFaSERlgsjzjiDQhKw8XFvQrjdvFzHHL7V3NQg+RfELHoT6I1pAGFdl/+lRBIVOiVkbQ6XnpBA28nlf0QydPHElRZdqmh0azQV/bkUXD4ffPE8q0iSqeqhAZ+5L05K5K+Gby/y8TZE4FX6e/7trFL7oq+h9x0gq5RQO8rAcTV84=
- secure: eTSJmS38EsTkI22yvDJLUrBxSyLDwd3pDRsyLQfZ3ThN0UJ9cQN2uB7aLy3OzNYadpi+Axlr46MgG0G5qGV1hHXkf+C4orGkURQWxHA7L5R/oE98TuYMO1bisZu9dJEVbmEM4cehCjbB7DExzxK4m6+oTJsWhVbIwlNh5Poq/v4=
jobs:
include:
- os: osx
osx_image: xcode10.1
osx_image: xcode11.3
compiler: clang
- os: linux
dist: xenial
dist: bionic
compiler: gcc
before_install:

View File

@@ -1,86 +1,91 @@
Update Note: to build GoldenCheetah v3.6 we are using the APT Package
Manager to install dependencies, including Qt and GSL, on Travis-ci
Ubuntu Xenial build environment.
You can check the travis/linux folder for the complete and updated build scripts,
the minimum Qt version known to work is 5.13 with Qt WebEngine and Qt Charts.
GSL - GNU Scientific Library is a mandatory dependency starting with v3.6
Ale Martinez - May, 2020
+++++++++++++++++++++++
LINUX BUILD WALKTHROUGH
+++++++++++++++++++++++
Mark Liversedge
John Ehrlinger
Ale Martinez
Jan 2015
Version 1.2
Mar 2021
Version 3.6
A walkthrough of building GoldenCheetah from scratch on Ubuntu linux. This walkthrough
should be largely the same for any Linux distro.
A walkthrough of building GoldenCheetah from scratch on Ubuntu linux 18.04
This walkthrough should be largely the same for any Debian derivative Linux
distro, and very similar for others using their correspoing package manager.
CONTENTS
1. BASIC INSTALLATION WITH MANDATORY DEPENDENCIES
- QT
- git
- flex
- bison
- QT
- OpenGL
- gsl
2. ADDING OPTIONAL DEPENDENCIES WHEN BUILDING VERSION 2
2. ADDING OPTIONAL DEPENDENCIES
- FTDI D2XX
- SRMIO
- liboauth
- libkml
3. ADDING OPTIONAL DEPENDENCIES WHEN BUILDING VERSION 3
- checking out the release 3 branch & building with MANDATORY dependencies
- flex
- bison
- libical - Diary window and CalDAV support (google/mobileme calendar integration)
- libvlc - Video playback in training mode
- libical - Diary window and CalDAV support (external calendar integration)
- libusb - If you want support for using USB2 sticks in Train View
- R - If you want R charts
- Python - If you want Python charts, scripts and data processors
1. BASIC INSTALLATION WITH MANDATORY DEPENDENCIES
=================================================
Installed Linux distribution of choice on platforms i386 or amd-64 (currently Debian-based distributions and Arch-based distributions are covered). You will not need to do this if you
already have a Linux distribution installed. Left this step in to highlight the
Linux distribution the commands below were executed on.
Install the Linux distribution of choice on amd64 platform (Ubuntu 18.04 is used
for this document). You will not need to do this if you already have a Linux
distribution installed. Left this step in to highlight the Linux distribution
the commands below were executed on.
login and open a terminal to get a shell prompt
Download MANDATORY DEPENDENCIES (browser)
-----------------------------------------
Install Qt
----------
Download and install the Qt SDK from http://qt-project.org/
Once that is completed test qmake is ok with: qmake --version (should report 4.9.8 or higher)
You can use a browser to download and run the interactive installer, be sure to
select version 5.14.2 or higher including at least the following modules:
- Desktop gcc 64-bit
- Qt Charts
- Qt WebEngine
Once this step is completed add the bin directory to PATH and test qmake is ok:
$ qmake --version
DEBIAN-BASED DISTRIBUTION INSTRUCTIONS
--------------------------------------
Install git with:
Install git
-----------
$ sudo apt-get install git
Said Y to prompt about all git files installed (git-gui et al)
Install FLEX and BISON
----------------------
You will need flex v2.5.9 or later
$ sudo apt-get install bison
$ sudo apt-get install flex
Install Mesa OpenGL utility library
-----------------------------------
sudo apt-get install libglu1-mesa-dev
ARCH-BASED DISTRIBUTION INSTRUCTIONS
------------------------------------
Install GSL development libraries
---------------------------------
sudo apt-get -qq install libgsl-dev
Install git:
$ sudo pacman -S git
Get latest GOLDEN CHEETAH source files
--------------------------------------
$ mkdir -p ~/Projects
$ cd ~/Projects
$ git clone git://github.com/GoldenCheetah/GoldenCheetah.git
$ cd GoldenCheetah
INSTALL FLEX and BISON
----------------------
$ sudo pacman -S flex bison
NEXT STEPS
----------
Configure MANDATORY DEPENDENCIES
--------------------------------
$ cd qwt
$ cp qwtconfig.pri.in qwtconfig.pri
$ cd ../src
$ cp gcconfig.pri.in gcconfig.pri
$ vi gcconfig.pri
Ensure you have the following lines (which are now also in gcconfig.pri.in which has
@@ -94,47 +99,17 @@ win32 {
QMAKE_DEL_FILE = rm -f
}
Build!
------
$ make clean
$ qmake
$ make
To compile translation you need QT tool - lrelease
If it is not found using he defaults in src/src.pro then set the full path and filename in gcconfig.pri
To compile translation you need the QT tool lrelease
If it is not found using the defaults in src/src.pro then set the full path and
filename in gcconfig.pri, s.t.
QMAKE_LRELEASE = /usr/bin/lrelease
When build first time you get number of error messages on .qm files missing:
"RCC: Error in 'Resources/application.qrc': Cannot find file 'translations/gc_fr.qm'"
You can ignore these messages for your build. The .qm files will be created during the
build at a later point in time via the "lrelease" command you configured in gcconfig.pri)
If your QT build includes its own local compress libs then you should comment the line below in gcconfig.pri,
otherwise you will need to have the compress libraries installed separately.
#LIBZ_INCLUDE =
#LIBZ_LIBS = -lz
otherwise you will need to have the compress libraries installed separately.
LIBZ_LIBS = -lz
You will now have a release3 binary but with none of the release3 dependencies compiled in.
Get latest GOLDEN CHEETAH source files
--------------------------------------
$ mkdir -p ~/Projects/Live
$ cd ~/Projects/Live
$ git clone git://github.com/GoldenCheetah/GoldenCheetah.git
$ cd GoldenCheetah
Configure MANDATORY DEPENDENCIES
--------------------------------
$ cd qwt
$ cp qwtconfig.pri.in qwtconfig.pri
$ cd ../src
$ cp gcconfig.pri.in gcconfig.pri
$ vi gcconfig.pri
Comment out the D2XX_INCLUDE and SRMIO_INSTALL lines for now (put # in first character of the line
to comment out), we will install that in a moment, if we need to.
If you are building for your local host you may find that you get better performance if
compiling with gcc -O3 (tree vectorization can have a significat impact) [or -Ofast]
compiling with gcc -O3 (tree vectorization can have a significat impact)
[or -Ofast]
If so you might like to uncomment:
@@ -145,32 +120,42 @@ Save and exit
$ cd ..
BUILD WITH BASIC CONFIGURATION
------------------------------
$ qmake -recursive
$ make
Congratulations you have now build a basic GoldenCheetah and can run this safely. See below for
optional dependencies you can install to support other features.
When build first time you get number of error messages on .qm files missing:
"RCC: Error in 'Resources/application.qrc': Cannot find file 'translations/gc_fr.qm'"
You can ignore these messages for your build. The .qm files will be created
during the build at a later point in time via the "lrelease" command you
configured in gcconfig.pri
ADDING OPTIONAL DEPENDENCIES WHEN BUILDING VERSION 2
====================================================
Congratulations you have now build a basic GoldenCheetah and can run this
safely. See below for optional dependencies you can install to support
other features.
2. ADDING OPTIONAL DEPENDENCIES
===============================
D2XX - For Powertap downloads via USB
-------------------------------------
Download the FTDI drivers from http://www.ftdichip.com/Drivers/D2XX.htm (e.g. I used Linux
64-bit drivers from http://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx1.0.4.tar.gz)
Download the FTDI drivers from http://www.ftdichip.com/Drivers/D2XX.htm and
extract:
Extract into your home directory (I put mine into ~/Projects/ with archive manager which
created a sub-directory ~/Projects/libftd2xx1.0.4
$ cd ~/Projects
$ wget http://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx-x86_64-1.3.6.tgz
$ tar xf libftd2xx-x86_64-1.3.6.tgz
$ cd src
$ cd ~/Projects/GoldenCheetah/src
$ vi gcconfig.pri
Uncomment the D2XX_INCLUDE entry and make it match (my home is /home/markl)
D2XX_INCLUDE = /home/markl/libftd2xx1.0.4
D2XX_INCLUDE = /home/markl/Projects/libftd2xx-x86_64-1.3.6
Make clean is needed if you have previouslt built, since source files examine #defines before
including this feature. You can skip it if you know why ;)
Make clean is needed if you have previouslt built, since source files examine
#defines before including this feature. You can skip it if you know why ;)
$ make clean
$ qmake
$ make
@@ -195,20 +180,20 @@ $ make
$ sudo make install
Lets go config GC and build with SRMIO
$ cd ~/Projects/Live/GoldenCheetah/src
$ cd ~/Projects/GoldenCheetah/src
$ vi gcconfig.pri
Uncomment the SRMIO_INSTALL and replace with the target used from srmio install:
SRMIO_INSTALL = /usr/local/
At the bottom of gcconfig.pri you will see the include directory should reference from
the base install location (/usr/local) make sure it says:
At the bottom of gcconfig.pri you will see the include directory should
reference from the base install location (/usr/local) make sure it says:
SRMIO_INCLUDE = $${SRMIO_INSTALL}/include
SRMIO_LIB = $${SRMIO_INSTALL}/lib/libsrmio.a
Make clean is needed if you have previouslt built, since source files examine #defines before
including this feature. You can skip it if you know why ;)
Make clean is needed if you have previouslt built, since source files examine
#defines before including this feature. You can skip it if you know why ;)
$ make clean
$ qmake
$ make
@@ -218,9 +203,7 @@ You now have SRM support built in.
LIBKML - For export to Google Earth
-----------------------------------
You will need Google Earth 5.2 or later and therefore libkml that supports this. Unfortunately at the time of writing
the officially packaged libkml is too old, so you will need to install from source, which means you will need to have
subversion installed and expat. You may be able to use the currently packaged libkml with
You will need Google Earth 5.2 or later and therefore libkml that supports this.
$ sudo apt-get install libkml-dev
@@ -229,7 +212,8 @@ if this does not work you will need to build from source:
$ sudo apt-get install subversion
$ sudo apt-get install expat libexpat1 libexpat1-dev
Once svn is installed you can grab the libkml source and configure build etc:
Once svn is installed you can grab the libkml source, configure, build and
install:
$ cd ~/Projects
$ svn checkout http://libkml.googlecode.com/svn/trunk/ libkml
$ cd libkml
@@ -246,55 +230,32 @@ if this does not work you will need to build from source:
- examples/{engine,gpx,gx,hellonet,helloworld,regionator,xsd}/Makefile
- and look for the flag -pedantic and remove it. I got this on Linux 64bit builds ymmv.
Once libkml is installed and built:
Once libkml is installed:
$ cd ~/Projects/Live/GoldenCheetah/src
$ cd ~/Projects/GoldenCheetah/src
$ vi gcconfig.pri
Ensure KML_INSTALL=/usr/local
Make clean is needed if you have previously built, since source files examine #defines before
including this feature. You can skip it if you know why ;)
Make clean is needed if you have previously built, since source files examine
#defines before including this feature. You can skip it if you know why ;)
$ make clean
$ qmake
$ make
You can now export rides to Google Earth kml format.
ADDING OPTIONAL DEPENDENCIES WHEN BUILDING VERSION 3
====================================================
NOTE: When you run version 3 it will refresh ride metrics and CP files -- this only occurs the
first time it runs (and will refresh only rides that change after that). I find it is best
to import ride files once your build where you want it. i.e. don't import until you have
got all your dependencies sorted.
NOTE: To reduce the dependencies on 'dormant' code there are a number of new pieces of source
that are included in the release3 tree. Notably; qtsoap from qt-solutions, since they
work but are likely to be archived and deprecated. If and when that happens we may well
adopt whatever classes Trolltech introduce.
LIBICAL - Diary integration with Google or MobileMe calendars
-------------------------------------------------------------
$ cd ~/Projects/Live/GoldenCheetah/src
$ sudo apt-get install libical-dev
$ cd ~/Projects/GoldenCheetah/src
$ vi gcconfig.pri
ICAL_INSTALL=/usr/include
ICAL_LIBS=-lical
Since the src.pro wants ICAL installed in a different place we need to hack it, *** this will
be fixed shortly ***
$ vi src.pro
Comment out the ICAL_LIBS entry:
#ICAL_LIBS = $${ICAL_INSTALL}/lib/libical.a
ICAL_INSTALL = /usr
ICAL_INCLUDE = /usr/include
ICAL_LIBS = -lical
$ make clean
$ qmake
@@ -302,21 +263,89 @@ $ make
You should now have diary functions.
NOTE: That upload to MobileMe and Google requires a functioning https lib in QT. Depending
upon the version installed this might not be the case and will need to be built and
configured -- this is beyond the scope of this walkthough. Sorry.
LIBVLC - Video playback in Realtime
-----------------------------------
LIBVLC - Video playback in Realtime (Experimental)
--------------------------------------------------
You will need libvlc 3.0.8 or higher for better performance:
You will need libvlc 1.1.9 or higher (1.1.8 is ok but will segv on exit)
$ sudo apt-get install libvlc-dev
sudo add-apt-repository ppa:jonathonf/vlc-3
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt-get update
sudo apt-get install vlc libvlc-dev libvlccore-dev
$ cd ~/Projects/GoldenCheetah/src
$ vi gcconfig.pri
Comment out VLC_INSTALL and it should read:
VLC_INSTALL = /usr/include/vlc/
VLC_INSTALL = /usr
$ make clean
$ qmake
$ make
LIBUSB - for using USB2 sticks in Train View on Linux or Windows
----------------------------------------------------------------
$ sudo apt-get install libusb-1.0-0-dev libudev-dev
$ cd ~/Projects/GoldenCheetah/src
$ vi gcconfig.pri
Uncomment or add the following lines:
LIBUSB_USE_V_1 = true # don't use on Windows
LIBUSB_INSTALL = /usr/local
$ make clean
$ qmake
$ make
R Embedding
-----------
Install R 4.0
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran40/"
sudo apt-get update
sudo apt-get install r-base-dev
R --version
$ cd ~/Projects/GoldenCheetah/src
$ vi gcconfig.pri
Uncomment or add the following line:
DEFINES += GC_WANT_R
$ make clean
$ qmake
$ make
Python Embedding
----------------
Install Python 3.7
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.7-dev
python3.7 --version
Install SIP 4.19.8:
cd ~/Projects
wget https://sourceforge.net/projects/pyqt/files/sip/sip-4.19.8/sip-4.19.8.tar.gz
tar xf sip-4.19.8.tar.gz
cd sip-4.19.8
python3.7 configure.py
make
sudo make install
$ cd ~/Projects/GoldenCheetah/src
$ vi gcconfig.pri
Uncomment or add the following lines:
DEFINES += GC_WANT_PYTHON
PYTHONINCLUDES = -I/usr/include/python3.7/
PYTHONLIBS = -L/usr/lib/python3.7/config-3.7m-x86_64-linux-gnu -lpython3.7m
$ make clean
$ qmake

View File

@@ -1 +1,10 @@
Issue tracker is **only** for Bugs and Features, before to open a new issue please read the contributing guidelines (link below), and use the forums if you need help or technical support.
Issue tracker is **only** for Bugs and Features, please don't open issues for questions or technical support. Before to open a new issue please read the contributing guidelines (link below).
If you have questions, please read the FAQs and User's/Developer's Guide:
* FAQs - https://github.com/GoldenCheetah/GoldenCheetah/wiki/FAQ
* User's Guide - https://github.com/GoldenCheetah/GoldenCheetah/wiki/UG_Main-Page_Users-Guide
* Developer's Guide - https://github.com/GoldenCheetah/GoldenCheetah/wiki/Developers-guide
If you need help or technical support please use the forums:
* Users - https://groups.google.com/forum/#!forum/golden-cheetah-users
* Developers - https://groups.google.com/forum/#!forum/golden-cheetah-developers

View File

@@ -4,18 +4,11 @@
## About
GoldenCheetah is an open-source data analysis tool primarily written in C++
with Qt for cyclists and triathletes
with support for training as well.
GoldenCheetah can connect with indoor trainers and cycling equipment such
as cycling computers and power meters to import data.
In addition, GoldenCheetah can connect to cloud services.
It can then manipulate and view the data, as well as analyze it.
GoldenCheetah is a desktop application for cyclists and triathletes and coaches, providing a rich set of tools and models to analyse, track and predict performance, optimise aerodynamics and train indoors.
GoldenCheetah integrates with most popular cloud services like Strava and Todays Plan, imports data from bike computers, imports downloads from any website like TrainingPeaks and Garmin and will also connect to smart trainers using ANT+ and Bluetooth.
GoldenCheetah is free for everyone to use and modify, released under the GPL v2 open source license with pre-built binaries for Mac, Windows and Linux.
## Installing
@@ -29,12 +22,10 @@ INSTALL-LINUX For building on Linux
INSTALL-MAC For building on Apple OS X
macOS and Linux: [![Build Status](https://travis-ci.org/GoldenCheetah/GoldenCheetah.svg?branch=master)](https://travis-ci.org/GoldenCheetah/GoldenCheetah)
macOS and Linux: [![Build Status](https://travis-ci.com/GoldenCheetah/GoldenCheetah.svg?branch=master)](https://travis-ci.com/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 the latest developer builds are available from https://github.com/GoldenCheetah/GoldenCheetah/releases
Official release builds, snapshots and development builds are all available from http://www.goldencheetah.org

View File

@@ -33,6 +33,8 @@ environment:
secure: h2JdlC1i4QOmwpkz+Xxbrw==
GC_SPORTTRACKS_CLIENT_SECRET:
secure: n6a8nJgqMyg+VsVeoIIR8TFzxyDFVi2w/ggetQk5agY=
GC_RWGPS_API_KEY:
secure: uUtCyF5ByZ1VYJOztUngIA==
init:
# Setup QT 5.14 - 64Bit
@@ -47,7 +49,7 @@ init:
- set PATH=%PATH%;C:\"Program Files (x86)"\NSIS
cache:
- gc-ci-libs.zip
- gc-ci-libs.zip -> appveyor.yml
- jom_1_1_3.zip
- sip-4.19.8.zip
- C:\R
@@ -85,7 +87,7 @@ install:
# Get Python embeddable and install packages
- ps: >-
if (-not (Test-Path 'C:\Python')) {
Start-FileDownload "https://www.python.org/ftp/python/3.7.7/python-3.7.7-embed-amd64.zip" Python.zip
Start-FileDownload "https://www.python.org/ftp/python/3.7.9/python-3.7.9-embed-amd64.zip" Python.zip
7z x Python.zip -oC:\Python\
echo python37.zip . '' 'import site' | Out-File C:\Python\python37._pth -Encoding ascii
mkdir C:\Python\lib\site-packages
@@ -114,7 +116,7 @@ install:
before_build:
# Define GC version string, only for tagged builds
- if %APPVEYOR_REPO_TAG% == "true" (echo DEFINES+=GC_VERSION=VERSION_STRING >> src/gcconfig.pri)
- if %APPVEYOR_REPO_TAG%==true echo DEFINES+=GC_VERSION=VERSION_STRING >> src\gcconfig.pri
# Enable CloudDB
- echo CloudDB=active >> src\gcconfig.pri
@@ -142,6 +144,7 @@ before_build:
- ps: (Get-Content src\Core\Secrets.h) -replace '__GC_CLOUD_DB_APP_NAME__', $env:GC_CLOUD_DB_APP_NAME | Set-Content src\Core\Secrets.h
- ps: (Get-Content src\Core\Secrets.h) -replace '__GC_POLARFLOW_CLIENT_SECRET__', $env:GC_POLARFLOW_CLIENT_SECRET | Set-Content src\Core\Secrets.h
- ps: (Get-Content src\Core\Secrets.h) -replace '__GC_SPORTTRACKS_CLIENT_SECRET__', $env:GC_SPORTTRACKS_CLIENT_SECRET | Set-Content src\Core\Secrets.h
- ps: (Get-Content src\Core\Secrets.h) -replace '__GC_RWGPS_API_KEY__', $env:GC_RWGPS_API_KEY | Set-Content src\Core\Secrets.h
build_script:
- qmake.exe build.pro -r -spec win32-msvc

View File

@@ -2,6 +2,10 @@
// BSplineCurve.h from Geometric Tools along with all the GTC headers
// it requires.
// disable warning messages
#pragma GCC diagnostic ignored "-Wunused-value"
#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
#define LogError(a) (0); return 0;
#define LogAssert(a,b) (0)

View File

@@ -22,6 +22,9 @@
#endif
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
#pragma GCC diagnostic ignored "-Wcpp"
/* precision-specific definitions */
#define LEVMAR_CHKJAC LM_ADD_PREFIX(levmar_chkjac)
#define LEVMAR_FDIF_FORW_JAC_APPROX LM_ADD_PREFIX(levmar_fdif_forw_jac_approx)
@@ -426,7 +429,7 @@ int info, rank, worksz, *iwork, iworksz;
static int LEVMAR_LUINVERSE(LM_REAL *A, LM_REAL *B, int m)
{
void *buf=NULL;
int buf_sz=0;
//int buf_sz=0;
register int i, j, k, l;
int *idx, maxi=-1, idx_sz, a_sz, x_sz, work_sz, tot_sz;
@@ -439,7 +442,7 @@ LM_REAL *a, *x, *work, max, sum, tmp;
work_sz=m;
tot_sz=(a_sz + x_sz + work_sz)*sizeof(LM_REAL) + idx_sz*sizeof(int); /* should be arranged in that order for proper doubles alignment */
buf_sz=tot_sz;
//buf_sz=tot_sz;
buf=(void *)malloc(tot_sz);
if(!buf){
fprintf(stderr, RCAT("memory allocation in ", LEVMAR_LUINVERSE) "() failed!\n");

View File

@@ -32,6 +32,7 @@ void lmcurve_evaluate(
const double *const par, const int m_dat, const void *const data,
double *const fvec, int *const info)
{
(void)(info);
for (int i = 0; i < m_dat; i++ )
fvec[i] =
((lmcurve_data_struct*)data)->y[i] -

View File

@@ -200,6 +200,8 @@ void QxtSpanSliderPrivate::triggerAction(QAbstractSlider::SliderAction action, b
case QAbstractSlider::SliderMove:
if ((main && mainControl == QxtSpanSlider::UpperHandle) || (!main && altControl == QxtSpanSlider::UpperHandle))
up = true;
no = true;
break;
case QAbstractSlider::SliderNoAction:
no = true;
break;

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