Compare commits

...

1670 Commits

Author SHA1 Message Date
Mark Liversedge
3fb565ff2d Dev Build 1605 Version Strings
.. update for 1605 dev release.
2016-05-16 15:26:39 +01:00
Mark Liversedge
7f76cd9cfe R Windows query Registry for InstallPath
.. so user doesn't have to set it.

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

.. Better diagnostics if load fails

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

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

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

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

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

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

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

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

.. need to fixup for Windows and remove GC_WANT_R_DYNAMIC option
   and make it the way we integrate R for GC_WANT_R
2016-05-13 23:26:51 +01:00
Alejandro Martinez
939af6c0ef Fallback to Start with Cycling Power zones for Running
When there is no Running Power zones defined to easy
transition from current config.
2016-05-11 11:43:03 -03:00
Alejandro Martinez
e9dd189864 Fallback to Start with Cycling HR zones for Running
When there is no Running HR zones defined to easy
transition from current config.
Fixes #1958
2016-05-11 11:26:45 -03:00
Mark Liversedge
90c94b5499 R Load Library at Runtime (wip)
.. add Graphics device entry points and almost done with defining
   proxy functions to call at runtime

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

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

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

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

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

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

.. also renamed functions so we now have

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

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

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

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

.. no code changes, just comments.

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

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

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

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

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

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

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

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

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

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

Example:

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

Now:

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

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

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

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

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

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

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

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

                    ** NOTE **

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

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

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

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

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

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

.. the following need to be resolved:

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

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

.. will fixup the 2 above before finally:

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

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

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

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

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

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

                  **** WARNING ****

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.. WebKit is not available and breaks our builds

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.. we now disable it via the Windows API too

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.. will hide toolbar whilst recording

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   hitting the ESC key will clear all selections.

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

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

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

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

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

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

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

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

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

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

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

   and is now platform neutral.

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

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

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

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

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

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

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

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

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

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

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

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

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

.. lots of technical changes to support this:

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

   * RideMetric factory can now remove user metrics

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.. Datafilters can be defimed in three forms;

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

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

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

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

   {
        pass {

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

        main {

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

.. Functions can only be defined within a block

.. Functions must be defined before use

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

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

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

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

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

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

.. so examples are:

   if (TSS>100) TSS; else 0;

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

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

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

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

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

       { temp <- TSS; temp > 100 }

   is functionally equivalent to

       TSS > 100

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

   symbol <- expression

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

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

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

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

.. add a min temperature metric

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

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

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

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

Severe Bugs Fixed

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

Minor new features

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.. we should also add a 'fix tool' to find and fix these issues.
2015-11-06 03:10:31 +00:00
Jon Escombe
3c5b41a459 ANT FE-C Remove duplicated check for channel type 2015-11-05 18:37:35 +00:00
Jon Escombe
5220b84bc3 ANT FE-C Check capabilities before setting load in erg mode 2015-11-05 18:13:34 +00:00
Jon Escombe
1b81822df3 ANT FE-C Detect capabilities on initial connection 2015-11-05 18:13:18 +00:00
Mark Liversedge
8b17eef298 Merge pull request #1623 from dresco/ANT-FEC
ANT FE-C Add periodic refresh of gradient in slope mode
2015-11-05 14:08:19 +00:00
Jon Escombe
fc4ce118bc ANT FE-C Add periodic refresh of gradient in slope mode
As per the refresh in ergo mode, this is a workaround for
missing acknowledgements.
2015-11-05 13:20:41 +00:00
Alejandro Martinez
eded6f5b4d Fixed use of abs instead of fabs
Some compilers choose the integer version when scope is not explicit,
changed to fabs for clarity sake.
2015-11-03 20:57:37 -03:00
Mark Liversedge
5169c16244 Merge pull request #1621 from Joern-R/translation-DE
Translation DE
2015-11-03 20:24:55 +00:00
Joern
166f61bc57 Translation DE
... update Translation
..  one little improvement in Translation enablement
2015-11-03 20:40:49 +01:00
Mark Liversedge
b0b24c0f3a Added W'bal Work In Zone Metrics 2015-11-03 18:55:21 +00:00
Mark Liversedge
697342ca5a CI Reinstate QT4 and fix syntax
.. in .travis.kml
2015-11-03 15:43:05 +00:00
Alejandro Martinez
b204e85fe5 Enable WCPZoneTime when Power Data is present
For consistency sake
2015-11-03 12:37:41 -03:00
Mark Liversedge
5f073f781d Merge pull request #1620 from Joern-R/ini-old
Fix SEGV when using "Library/GoldenCheetah" athlete directory (in 3.3… only
2015-11-03 15:36:18 +00:00
Mark Liversedge
4436ca5a18 CI Deprecate QT4 and remove KML from QT5
.. should get a working build based on QT5
2015-11-03 15:19:18 +00:00
Joern
98858da51c Fix SEGV when using "Library/GoldenCheetah" athlete directory (in 3.3 only)
... problem relates to introduction of new .INI files
... old /gc ini file approach is still in place - now again working
2015-11-03 16:13:54 +01:00
Mark Liversedge
ea2a66e399 Add W'bal Zones - Time above CP
.. to see how much time is spent above CP
   whilst in different fatigued states.
2015-11-03 14:42:36 +00:00
Mark Liversedge
22e3ee1ca6 Merge pull request #1619 from amtriathlon/Stryd
Basic Stryd (Power Meter for Running) support
2015-11-03 14:41:18 +00:00
Alejandro Martinez
1a57e45fb6 Basic Stryd (Power Meter for Running) support
Enables power metrics for non cycling activities when power data is present.
2015-11-03 11:29:53 -03:00
Mark Liversedge
04a302a4e4 CI Deploy DMG to Github
.. using deploy key.
2015-11-03 10:04:15 +00:00
Mark Liversedge
f992f21242 CI Add Github Deploy Token
.. to travis.yml as a secure environment variable
   called GH_OAUTH_TOKEN

   [ci skip]
2015-11-03 09:58:23 +00:00
gcoco
dc0ccd4798 Bump to 3.3.0 developer
[skip ci]
2015-11-01 19:17:04 -05:00
Mark Liversedge
6d81873277 Merge pull request #1532 from vlcvboyer/fix-ant-speed
fix ANT speed and cadence: value was still at last computed value
2015-11-01 21:58:10 +00:00
Vianney Boyer
0e0c08e34d consider that after 15s inactivity speed and cadence are 0 2015-11-01 22:12:21 +01:00
Vianney Boyer
b0bbec6ba2 we need 2 different variables when using speed an dcadence dual sensor 2015-11-01 22:11:47 +01:00
Vianney Boyer
48317fb7a7 fix ANT speed and cadence: value was still at last computed value 2015-11-01 22:10:48 +01:00
Mark Liversedge
157028c24d Merge pull request #1541 from vlcvboyer/cosmetic-comment
[cosmetic-minor] change inaccurate comment
2015-11-01 20:55:04 +00:00
Mark Liversedge
83a00af6bc CI Apply API gems into Secrets.h
.. the binary, in theory, should now support all the
   web services from Strava, Twitter, Dropbox etc
2015-11-01 17:55:24 +00:00
Mark Liversedge
2844af9f1e CI Travis Gems API Secrets
Includes:
* GC_GOOGLE_CALENDAR_CLIENT_SECRET
* GC_STRAVA_CLIENT_SECRET
* GC_DROPBOX_CLIENT_SECRET
* GC_CYCLINGANALYTICS_CLIENT_SECRET
* GC_TWITTER_CONSUMER_SECRET
2015-11-01 17:29:55 +00:00
Mark Liversedge
c52a7fa382 Merge pull request #1618 from dresco/ANT-FEC
ANT FE-C
2015-11-01 16:02:45 +00:00
Jon Escombe
67c3de54e3 Add alternate power support for ANT FE-C devices 2015-11-01 15:39:53 +00:00
Jon Escombe
d35dba2a29 Invalid ANT FE-C power indicated by 0xFFF not 0xFFFF 2015-11-01 15:39:01 +00:00
Mark Liversedge
c650ffa74a CI path Secrets.h, again. 2015-11-01 15:20:30 +00:00
Mark Liversedge
d37579b69b CI path to Secrets.h 2015-11-01 15:04:03 +00:00
Mark Liversedge
62c1fac580 CI Test Replace Secret with Secure Variable
.. before doing it for all the gems
2015-11-01 14:54:30 +00:00
Mark Liversedge
cc9c2bfc79 Add DROPBOX_CLIENT_ID to Settings.h
.. like all the other web services.
2015-11-01 14:24:08 +00:00
Mark Liversedge
c2bcb16e6b Add Secrets.h for API tokens
.. will be replaced with gems in Travis build.

NOTE: Twitter secret is currently public (!)
2015-11-01 14:13:54 +00:00
Mark Liversedge
d0c384a478 CI Testing Travis Secrets
.. added an environment variable TESTVAR to see if
   it can be made available during the build. Will
   remove this once it is working in order to add
   the API keys for twitter, dropbox etc
2015-11-01 10:38:12 +00:00
Mark Liversedge
d3cdbbbe36 Merge pull request #1616 from amtriathlon/VDOT
Added vdottime(VDOT, distance) to formulas
2015-10-30 18:07:29 +00:00
Alejandro Martinez
aee176baf1 Added vdottime(VDOT, distance) to formulas
Computes the equivalent time (in seconds) for distance (in km)
at VDOT, tipically used with VDOT metric as first parameter.
2015-10-30 13:36:43 -03:00
Mark Liversedge
271eaeb31b Merge pull request #1615 from amtriathlon/VDOT
Added Equivalent Performance for Target Race to VDOT Calculator
2015-10-30 08:42:15 +00:00
gcoco
8cd80db43b Merge pull request #1614 from gcoco/master
Use local brew receipe for libkml
2015-10-30 00:15:27 -04:00
Alejandro Martinez
c299717bc4 Added Equivalent Performance for Target Race to VDOT Calculator
Also fixed constant term error in VO2 formula
2015-10-29 21:31:18 -03:00
gcoco
6a12bc18b7 More mark down
Should it be this hard.
[skip ci]
2015-10-29 20:24:30 -04:00
gcoco
cdeb68b435 Change to Mark Down
[skip ci]
2015-10-29 20:23:17 -04:00
gcoco
ae262f9211 Add Travis-CI build status
[skip ci]
2015-10-29 20:21:18 -04:00
gcoco
e35c66c6dc Use local brew receipe for libkml 2015-10-29 19:58:32 -04:00
Mark Liversedge
9c11074f0a OSX ChartBar nit
.. doesn't honour font sizes (long story but too complicated
   to unpick all the fugly code in QtMacButton.mm)

.. but at least the chartbar is tall enough for the "standard"
   size on OS X
2015-10-29 20:18:12 +00:00
Mark Liversedge
399088b83e CI QwtPlot3d location 2015-10-29 18:48:09 +00:00
Mark Liversedge
71b88d6616 CI not using branches
.. so no need to cd up/down
2015-10-29 18:31:58 +00:00
Mark Liversedge
0ed60b16f1 CI Import from gcoco/Mac branch
.. was using wrong basis for builds.
2015-10-29 18:17:26 +00:00
Mark Liversedge
1248d27d91 CI OSX Only For Now
Whilst trying to get some kine of automated build.
.. shifted scripts to an osx subdirectory
.. removed the desire to build for Linux
2015-10-29 18:04:38 +00:00
Mark Liversedge
13bf2b5aba CI Script
.. no need to cd
2015-10-29 17:58:54 +00:00
Mark Liversedge
dcb7cb3236 CI Script Fixup
.. use travis/
.. no need to clone as the repo is already available
2015-10-29 17:54:38 +00:00
Mark Liversedge
a78a68414c TRAVIS Continuous Integration
.. initial import from gcoco fork
.. will almost certainly not work
2015-10-29 17:49:49 +00:00
Mark Liversedge
eba6df427b Bad #include 2015-10-29 15:30:44 +00:00
Mark Liversedge
4700dbc883 Merge pull request #1613 from amtriathlon/master
Pace Zones: Update existing range
2015-10-29 15:30:30 +00:00
Mark Liversedge
973fb40db9 ChartBar uses default font
.. and resizes as the font gets bigger so you can
   at least adjust when running on a high resolution
   display.

.. still need to do ScopeBar and SidebarItem too
2015-10-29 15:18:51 +00:00
Alejandro Martinez
ec5b8fd0bb Pace Zones: Update existing range
Fixes #1611
2015-10-29 12:13:04 -03:00
Mark Liversedge
2bead0676a Merge pull request #1609 from Joern-R/API
API - documentation
2015-10-25 19:51:20 +00:00
Mark Liversedge
a071c85555 Merge pull request #1608 from Joern-R/upgradetraindb
TrainDB / Add upgrade feature to fix wrong default entries
2015-10-25 19:50:01 +00:00
Mark Liversedge
975c9d9daf Merge pull request #1607 from Joern-R/autoimport
Autoimport / Dialog Mode enhancement + new Background Mode
2015-10-25 19:47:46 +00:00
Joern
5d2ea70b2f API - documentation
... add query parameter description to source code
2015-10-25 13:11:00 +01:00
Joern
f5cf9e65a3 TrainDB / Add upgrade feature to fix wrong default entries
.. videosync table version stored in TrainDB (was missing before)

.. upgrade to 3.3 fixes default entries for Workouts (e.g. due to wrong translation with missing " " in text - German)
2015-10-25 13:08:00 +01:00
Joern
a6eabb73d7 Autoimport Stealth/Background Mode
... new Feature to Autoimport without Dialog (with same timeframe option like the Dialog version)
... in case "Dates/Time" is missing - the Dialog Window appears and waits for input -
    if entered and "Save" presses no further input action is required
... malformed activity files are silently ignored

... to avoid inconsistencies closing of the Athlete for which Background Import is running
   is blocked until the Import is finalized (Info on import complete is sent to UI)

.. UI is not blocked by Autoimport - but a bit less reactive as long as the import is executed
2015-10-25 13:04:19 +01:00
Joern
e7e6e0bd70 RideImport/Autoimport
... don't force focus on the import dialog window
... bring dialog to front only if user interaction is required
2015-10-23 21:05:21 +02:00
Mark Liversedge
bc49580e51 Merge pull request #1604 from Joern-R/dateformat
Make Date Formats locale independent (for special cases)
2015-10-23 18:24:47 +01:00
Mark Liversedge
2a9ddaf61b QString arg nit 2015-10-23 18:17:49 +01:00
Mark Liversedge
ef8107c3bd Merge pull request #1605 from Joern-R/backup
Athlete Backup
2015-10-23 18:11:05 +01:00
Joern
2070645a36 Athlete Backup
... allow manual Backup of the available Athletes
2015-10-23 12:31:38 +02:00
Mark Liversedge
a6d6ee5a1d Fix AllPlot SEGV stacked smoothing
.. check for NULL.

.. this is odd, some behaviour upstream has changed
   and needs to be investigated as this bug is too
   significant to have only just been found.
2015-10-23 10:34:08 +01:00
Mark Liversedge
a6640ec324 Merge pull request #1603 from amtriathlon/VDOT
Added Daniels VDOT and TPace metrics for Running
2015-10-21 19:24:10 +01:00
Joern
98cb17b124 Make Date Formats locale independent (for special cases)
... fix problems when dates are converted back/forth with fromString/toString to avoid Locale related mismatches
... use ISO 8601 format (YYYY-MM-DD) in such cases (Qt::ISODate)
... applied to "RideImport" and "ComparePane"
2015-10-21 18:38:03 +02:00
Alejandro Martinez
04b11710e0 Added Daniels VDOT and TPace metrics for Running
Allows to track performance using durations from 4 min to 4 hr
2015-10-21 11:52:40 -03:00
Mark Liversedge
0558f3df25 Merge pull request #1602 from Joern-R/intervals
Add Interval Dialog
2015-10-20 18:31:08 +01:00
Joern
f1f7203c67 Add Interval Dialog
... does not recognize that Interval was added and may loose the intervals on saving
... causing inconsistency in Cache - blocking the deletion of the interval after re-starting
2015-10-20 19:33:38 +02:00
Mark Liversedge
816e58db8a Fix 'Fix Elevation' SEGV
.. there may be more bugs lurking in there but this resolves
   a SEGV that seems quite common.
2015-10-20 15:27:22 +01:00
Joern
deae129f1a Reset Replay Speed if switch RLV on/off on the same media file 2015-10-19 18:57:20 +01:00
Mark Liversedge
496fd4a015 Merge pull request #1599 from vlcvboyer/no_sync_gpx
video-sync: add "None" menu entry and disable gpx from activities
2015-10-19 18:56:38 +01:00
Mark Liversedge
acd6089d58 Merge pull request #1600 from vlcvboyer/clean_code
clean code: replace qDebug by comments
2015-10-18 23:47:19 +01:00
Vianney Boyer
a81f1b213a video-sync: add None menu entry and disable gpx from activities 2015-10-18 20:50:20 +02:00
Vianney Boyer
644d88a018 clean code (replace qDebug by comments) 2015-10-18 19:18:36 +02:00
Alejandro Martinez
7ffde09931 Add distance to CV chart tooltip
In m-yd for swimming, km-miles otherwise.
Allows to look for time and pace at based on distance.
2015-10-18 11:25:22 -03:00
Mark Liversedge
4c3d722412 Merge pull request #1597 from Joern-R/trainshortcuts
TrainMode - Use Multimedia Keys
2015-10-17 18:08:14 +01:00
Mark Liversedge
646fa9a3aa Merge pull request #1596 from Joern-R/autobackup2
AutoBackup
2015-10-17 18:06:37 +01:00
Joern
e335a1dd75 TrainMode - Use Multimedia Keys
... add Multimedia Keys to control the train mode
... Start/Stop/Forward/Rewind/Pause working on MCE (Windows Media Center compatible remote controls) without any problems
    ... tested with 2 MCE remotes
... For "new Lap" none of the special media keys worked - so choose "0" since this is available even on pure remotes

Since in earlier versions of QT not all Keys are defined, just start with 5.4 as pre-requisite.
2015-10-17 16:38:39 +02:00
Joern
a2dbcb914a AutoBackup
... Abort does also reset the counter (so that user is not asked every further close - but only after the next period)
2015-10-17 13:00:33 +02:00
Mark Liversedge
eb3f9860a0 Merge pull request #1595 from Joern-R/video
TrainMode Enhancements
2015-10-17 10:34:49 +01:00
Joern
7e8f5f7a56 TrainMode Enhancements
... store Videosync files in Workout Folder as well / adjust configuration description
... report non-existing Workouts/Videosyncs when scrolling through the treelist (and offer to remove them from the library)
... properly handle "imports" of files from the Workout Directory in case of "overwrite"
... add tr() in multiple places
... unify some of the texts - terminology
2015-10-17 11:35:27 +02:00
Joern
67491d2e30 Merge pull request #1594 from Joern-R/rlv-fix
Video-Sync Directory
2015-10-15 18:18:22 +02:00
Joern
d0209a6033 Video-Sync Directory
... browse does not work (cut&paste error)
2015-10-15 18:22:05 +02:00
Mark Liversedge
d04512cc31 Merge pull request #1593 from Joern-R/rlv
VideoSync
2015-10-15 16:16:18 +01:00
Joern
6ae5b9d882 VideoSync
... add Directory to Configuration Page
... set Default similar to Workout Directory in Main

General
... start Directory Browsing on Config Page with the configured directory (if is existing/valid)
2015-10-15 17:03:38 +02:00
Mark Liversedge
dce4fa9a0c Merge pull request #1522 from vlcvboyer/video-sync
Adjust Video Playback speed on cyclist speed
2015-10-14 19:38:54 +01:00
Vianney Boyer
734c96cb22 fix define 2015-10-14 20:27:15 +02:00
Vianney Boyer
61f9a3dcf8 revert back synchronization mistake 2015-10-14 20:13:31 +02:00
Vianney Boyer
4f6af1317b include seek button with video-sync 2015-10-14 19:06:23 +02:00
Vianney Boyer
6f717cacbf video-sync seek button WIP 2015-10-14 19:05:56 +02:00
Vianney Boyer
2d16ac684c few fix and cleanup after tests 2015-10-14 19:05:40 +02:00
Vianney Boyer
6b965bb9b3 Work in progress - few modifications and tests 2015-10-14 19:05:17 +02:00
Vianney Boyer
80f8654669 video synchronisation - work in progress 2015-10-14 19:03:55 +02:00
Vianney Boyer
273f96fe55 Few fix on video sync after first tests 2015-10-14 19:03:35 +02:00
Vianney Boyer
b46b39e53a Add rlv file parser for Video synchronisation feature - Work In Progress 2015-10-14 19:03:16 +02:00
Vianney Boyer
684df352de Adjust Video Playback speed on cyclist speed in training mode with VLC (see feature #382) 2015-10-14 19:00:20 +02:00
Mark Liversedge
1da100608d ANT USBStick1 Serial Device Module
.. different name used. either usb: or usb-serial:
.. this is a bit crappy, but USB1 is old and few people
   seem to care or notice.
2015-10-13 16:24:35 +01:00
Mark Liversedge
cf7b486347 Merge pull request #1591 from vlcvboyer/ant-fec
Ant-fec protocol : additional features (slope simulation mode...)
2015-10-13 15:14:13 +01:00
Mark Liversedge
63b12ad69d Dropbox Config Headers only QT > 5
.. don't declare slots or member variables for the
   configuration screens if compiling with a version
   of QT < 5.0.
2015-10-13 08:21:26 +01:00
Claus Assmann
936b4aa131 Dropbox Folder NULL in QT4 2015-10-12 20:26:45 +01:00
Mark Liversedge
b198b54cde Tidy Athlete Preferences
.. too many things on one page
.. also deprecated 'bio' since its not used anywhere
2015-10-12 20:23:58 +01:00
Mark Liversedge
f6e8bad516 Merge pull request #1589 from Joern-R/AutoSnapshot
AutoBackup/Data Snapshot Feature on close of Athlete Window/Tab
2015-10-12 18:51:01 +01:00
Joern
c86cae70f0 AutoBackup/Data Snapshot Feature on close of Athlete Window/Tab
... collects all relevant Files from the Athletes directory subfolders (keeps the folder structure)
    and add them to a .zip file which can be stored in a different folder
... runs automatically when closing an Athlete (window or tab)

... configurable per Athlete
    -- Folder into which the .zip shall be stored
    -- #of times GC shall close without backup before the backup is activated
      (0 == no Auto Backup, every other number "x" means that GC closes
       x-1 times without running the backup and after running, resets
       the counter)
2015-10-12 19:01:31 +02:00
Mark Liversedge
cac9f6cc48 TCX test file with out of bound values
.. caused v3.2 to crash on interval discovery and
   contains out of bound values for power, speed and
   cadence.

.. good for testing code doesn't make assumptions about
   data values.

.. thanks to Neil Jones for the test file and permission
   to distribute for testing
2015-10-11 14:07:44 +01:00
Mark Liversedge
623b425000 Interval Search SEGV on High Power
.. thanks to Neil Jones for the file
2015-10-11 13:53:17 +01:00
Mark Liversedge
520f92e30e Merge pull request #1588 from Joern-R/UTF-8-Text-Output
XML Ridefile Formats exports - error on Windows
2015-10-09 12:33:41 +01:00
Joern
0267eec3e8 XML Ridefile Formats exports - error on Windows
... UTF-8 ByteOrderMarks was missing in the exported XML,... files causing problems on Windows e.g. in cyrillic
... BOM header added for PWX, Fitlog, GC and TCX format
... Fixes https://github.com/GoldenCheetah/GoldenCheetah/issues/1547
2015-10-09 13:12:07 +02:00
Mark Liversedge
3273ba839f Merge pull request #1585 from amtriathlon/FixSpeed
Fix Speed from Distance
2015-10-09 09:28:40 +01:00
Alejandro Martinez
ec7c89d326 Fix Speed from Distance
Optionally smoothed by configurable moving average parameter
Fixes #1568
2015-10-08 20:33:46 -03:00
Mark Liversedge
6311977d40 Merge pull request #1584 from amtriathlon/PaceZone
Fixed Pace Zones Config
2015-10-08 16:46:56 +01:00
Alejandro Martinez
18ddf5ad11 Fixed Pace Zones Config
Modifications were lost without notification if the user changed sport before saving
2015-10-08 12:12:06 -03:00
Mark Liversedge
e74ecc1f09 DataProcessor 'Auto' runs on import only
.. since, generally, if it has been run once there is no
   value in running it every time you open a ride.

.. it now only runs during import.
2015-10-08 08:46:54 +01:00
Mark Liversedge
a7af4e4a5f Dont delete intervals in RideItem::close 2015-10-06 21:08:42 +01:00
Mark Liversedge
8b1b1a4882 QZipReader and QZipWriter Windows Fixup
.. headers expected DLLs.
2015-10-06 20:51:34 +01:00
Mark Liversedge
c69e2b6d8a Lower case for include 2015-10-06 19:38:43 +01:00
Mark Liversedge
564e126a06 FileStore .json.zip
.. when syncing to a FileStore the data is saved as
   a zip file that can be processed by winzip, and
   contains a single file, the activity as a json.
2015-10-06 18:06:08 +01:00
Mark Liversedge
49db5cb321 Fix LocalFileStore readFile
.. it wasn't returning the remotename so readFile
   always failed with "expected uncompressed activity".
2015-10-06 14:31:27 +01:00
Mark Liversedge
391ed47d0e Fix Memory Exhaustion on Mass Import/Sync
.. RideCache::addRide() deletes the prior ride, which is rather meaningless
   if you are just importing a ride, but when syncing large numbers
   of rides will stop memory being exhausted.

.. similarly in the FileStoreSyncDialog we now free up the memory
   used to read the downloaded files before moving on to the next.
2015-10-06 13:06:34 +01:00
Mark Liversedge
2a92029fd2 Added QZipReader/QZipWriter
.. so we can read/write zip files that can be opened
   outside of GC. For example, when working with a file
   store we want to write .json.zip that could be read
   using winzip et al
2015-10-06 08:12:26 +01:00
Mark Liversedge
6923c69495 Preferences nits
.. layout on athlete About row missed leaving a
   gap between widgets vertically.

.. moved use CP for FTP checkbox to zone config page
   and not on athlete About page.
2015-10-05 20:09:11 +01:00
Mark Liversedge
d9f5e1b3c9 LocalFileStore nits
.. implement root(), createFolder() and don't
   return . and .. in readdir.
2015-10-05 19:20:42 +01:00
Mark Liversedge
dbf78d994b Merge pull request #1582 from Joern-R/Fix
Local File Store
2015-10-05 12:40:55 +01:00
Joern
4b962a47fa Local File Store
... wrong status text (".") missing
2015-10-05 13:42:50 +02:00
Mark Liversedge
c9679ea721 Add "Share" main menu
.. to consolidate all the functions for sharing data and
   syncing across Calendar, Dropbox, Strava etc etc etc
2015-10-05 11:05:07 +01:00
Mark Liversedge
b40ac62d70 Fix unitChanged(int) signal in preferences
.. needed to be reconnected across pages to ensure the
   weight/height fields et al changed units when the user
   changed metric/imperial preferences.
2015-10-05 10:04:36 +01:00
Mark Liversedge
338dd4e4f1 Local Store Name
.. name() now returns "Local Store <folder>"
2015-10-04 21:05:06 +01:00
Mark Liversedge
3b3a337984 Rename NetworkFileStore as LocalFileStore
.. so can use for thumb drives, network mounted drives etc
2015-10-04 20:46:41 +01:00
Mark Liversedge
96770ae200 Merge pull request #1580 from Joern-R/SharedFolder
Add "Shared Network Folder" as new "File Store" implementation
2015-10-04 19:06:27 +01:00
Joern
debb918315 Add "Shared Network Folder" to as new "File Store" implementation
... use an shared network drive (e.g. mounted via WebDAV) to synchronize activity data
   (similar to Dropbox,...)

Open/TBD:
... where to best put the Preferences for the different FileStores
   (currently add the Network folder configuration on Preferences->Passwords,
    even though no PW is needed - with growing number of FileStores a
    dedicated Preferences Page may be the solution)
... where to put the MainWindow Menu entries if the number of FileStores increases
2015-10-04 18:50:55 +02:00
Mark Liversedge
d665da4958 Merge pull request #1579 from Joern-R/DropboxTE
Drobox / FileStore
2015-10-04 14:54:24 +01:00
Joern
4fba4d0535 Drobox / FileStore
... translation enablement
2015-10-04 14:48:28 +02:00
Alejandro Martinez
a38856edd0 Fixed typo in SML import and added test file
This one is a ride with power contributed by forum user Roland
2015-10-03 21:38:03 -03:00
grauser
e55f408cd9 Interval: Correct start, stop edit 2015-10-03 22:35:02 +02:00
Mark Liversedge
2f3f06b544 .DS_Store when deleting athlete on OS X
.. Mac Finder creates .DS_Store in subdirectories when you
   browse in them to store customisation etc. So we need to
   wipe them away when deleting the athlete folders.
2015-10-03 12:34:37 +01:00
Mark Liversedge
723c088912 Delete Athlete
.. as an option when choosing an athlete
.. will recursively delete the directory

Fixes #756
2015-10-03 10:27:18 +01:00
Mark Liversedge
fef08be40b Fix SEGV on NewCyclistDialog
.. referencing "ftp" widget that isn't being used.
2015-10-03 08:32:15 +01:00
Mark Liversedge
5049ea3071 Merge pull request #1578 from Joern-R/DropboxMinor
DropboxSupport - mintor text corrections
2015-10-02 22:02:50 +01:00
Joern
67c1794196 DropboxSupport - mintor text corrections
... Use different Shorcut in Menu (Crtl+B already in use)
... Exchange text reference to TP by generic approach
2015-10-02 19:24:48 +02:00
Mark Liversedge
17ed0815ec Dropbox Sync Tool
.. sync with a dropbox folder

   This is based upon the TPDownloadDialog but refactored for
   use with a FileStore (in this case Dropbox). It should be
   extensible to use with any kind of FileStore object.
2015-10-02 16:51:50 +01:00
Mark Liversedge
2ea8cc082a Merge pull request #1577 from Joern-R/UnitConfig
Move "Unit" config from "Athlete" to "General" level
2015-10-02 14:42:38 +01:00
Mark Liversedge
f15931a307 Only use QWebEngine on MAC OS X
.. since it solves issues there, but is not supported
   on mingw32/64 yet and is not needed on Linux yet.
2015-10-01 18:55:45 +01:00
grauser
b911757d4f OAuthDialog: Use QWebEngine for Qt5 2015-10-01 18:33:06 +02:00
Joern
3f59c6cf93 Move "Unit" config from "Athlete" to "General" level
... first Athlete opened with new logic determines the general settings
... if configuration  is already migrated (based on one of the previous commits) -
    migration can be forced to happen again by removing the INI files or
    just the preferences pages has to be opened and Saved with the
    unit settings you want
2015-10-01 17:21:34 +02:00
Mark Liversedge
f1cc304f54 FileStoreDialog File basename
.. don't need suffix, its in type. Makes for a simpler
   listing, again more familiar and easier to scan.
2015-10-01 07:22:53 +01:00
Mark Liversedge
3ad59ac5cc FileStoreDialog Icons
.. makes it look more familiar and easier to identify
   folders when scanning the list.
2015-10-01 07:15:30 +01:00
Mark Liversedge
261c0d06ed Dropbox ignore deleted items
.. when reading the directory metadata
2015-09-30 22:20:19 +01:00
Mark Liversedge
55ee756fef Merge pull request #1574 from amtriathlon/master
Initialize additional parameters for Extended and Veloclinic models
2015-09-30 22:07:51 +01:00
Mark Liversedge
a55e04405c Fixup FileStoreDialog nits
.. select root folders
.. show files for context
2015-09-30 21:54:53 +01:00
Mark Liversedge
a4ec375118 Fix Async Upload to Dropbox
.. Q_OBJECT macro needed mostly.
2015-09-30 21:34:29 +01:00
Mark Liversedge
19203bba76 Upload to Dropbox
.. basic functions working to upload a single ride
   to a dropbox file store.

.. this is a safety commit before looking to resolve
   issues with async updates.

   NOTE: the upload completes but the dialog needs to
         be cancelled manually -- this is a bug and
         will be resolved in the next update.
2015-09-30 19:45:15 +01:00
Alejandro Martinez
80ad5bf9df Initialize additional parameters for Extended and Veloclinic models
Fixes #1573
2015-09-30 12:53:53 -03:00
Mark Liversedge
5a5dc65b98 Save Dropbox Folder settings
.. in preferences.
2015-09-30 12:20:22 +01:00
Mark Liversedge
4e17a9970f FileStore File Dialog
.. so you can now choose the directory to sync
   data with. Its a very basic file dialog but
   will allow you to create and choose a folder.

.. Config is now completed with token a folders
   now configurable by the user.

.. I cannot believe we needed to write a pesky file
   chooser dialog in 2015 (!)
2015-09-30 11:33:47 +01:00
Mark Liversedge
3ab4d21a5e FileStore base class and Dropbox implementation
.. first parts of the implementation of a base class
   for working with file stores and the Dropbox
   API.

.. all we actually get in this commit is the abstract
   classes and an implementation of readdir for Dropbox
   along with a config setting which needs to browse
   directories

.. in the next commit we'll add the directory chooser
   dialog which will need to implement a ftw() across the
   associated filestore and present a gui to choose a
   directory to store athlete data in
2015-09-29 19:39:19 +01:00
Mark Liversedge
d33e102e18 Fix Dropbox compile error on SECRET/ID
.. if the GC_DROPBOX_CLIENT_ID and SECRET
   are not defined in gcconfig.pri then the
   OAuthDialog.cpp needs to still compile !
2015-09-29 09:22:39 +01:00
Mark Liversedge
3a545d225e Update gcconfig.pri.in
.. with instructions for adding Dropbox API
   client ID and secret
2015-09-28 22:55:13 +01:00
grauser
70d0356f4f Bin2RideFile: Change the scale for the altitude values from dataversion 9 2015-09-28 23:40:03 +02:00
Mark Liversedge
15f470c3de Dropbox Authorisation
.. let the user authenticate for access to dropbox
   in order to sync data.

.. the sync functions aren't written yet though !
2015-09-28 17:26:55 +01:00
Mark Liversedge
3b92cdaabe Merge pull request #1571 from Joern-R/MoveAthleteSettings
Segregate General & Athlete Settings on preferences main page
2015-09-27 13:05:45 +01:00
Joern
df90366685 Preferences - Athlete
... move athlete specific settings from General to Athlete Page
2015-09-27 11:55:34 +02:00
Joern
20a15ed647 Segregate General & Athlete Settings on preferences main page 2015-09-26 15:35:36 +02:00
Mark Liversedge
8d03e014ef Merge pull request #1570 from Joern-R/GearRatio
GearRatio - Wrong data when smoothing
2015-09-26 09:31:41 +01:00
Joern
7fe4e11382 GearRatio - Wrong data when smoothing
...Fixes Issue#1490
2015-09-26 10:11:37 +02:00
Mark Liversedge
c43eefb45a Merge pull request #1569 from Joern-R/ConfigLocalMac
ConfigLocal - Fix Migration on Mac
2015-09-25 17:35:50 +01:00
Joern
5b3cab00c3 ConfigLocal - Fix Migration on Mac
... current settings are now migrated to .INI based system settings on MacOS
2015-09-25 18:20:48 +02:00
Mark Liversedge
9f4ce89c09 Merge pull request #1566 from Joern-R/ConfigLocal3
Trainingpeaks/Twitter
2015-09-24 21:46:10 +01:00
Mark Liversedge
52541cc46b Merge pull request #1565 from Joern-R/AutoImport
Autoimport - new configuration option(s)
2015-09-24 21:45:21 +01:00
Joern
bcb671763f Trainingpeaks/Twitter
... remove unused URL entry fields from Preferences and Settings
2015-09-24 20:27:09 +02:00
Joern
d71aa8c0a2 Autoimport - new configuration option(s)
... select only files for import which are created or changed of the last 90/180/360 days
... thus limiting the number of files which are considered for import in the source directory
   (without changing/deleting the source files - and without the need to track indexes,...
    of what has already been imported).
2015-09-24 18:55:00 +02:00
Mark Liversedge
fe414772d0 Merge pull request #1564 from amtriathlon/sml
Suunto Markup Language Format (SML) Import - Initial implementation
2015-09-23 20:04:22 +01:00
Alejandro Martinez
7b94987260 Suunto Markup Language Format (SML) Import - Initial implementation
Based on TCX/GPX support
Includes laps and no-gps support for indoor activities, but not lap swimming.
Test files were contributed by forum members Frederic and Servan
Fixes #1559
2015-09-23 12:24:39 -03:00
Mark Liversedge
f04592b62b Merge pull request #1562 from Joern-R/ConfigLocal
Config local
2015-09-20 19:44:16 +01:00
Joern
9dab87dfda Config INI fix
... fix typon in Setting Name "bavigator/headingwidth" in properties and migrate existing setting to "navigator/headingwidth"
2015-09-20 15:42:13 +02:00
Mark Liversedge
580103ee7e Initialize API listener
.. since non-NULL value used to indicate the
   listener is running.
2015-09-20 14:18:44 +01:00
Joern
c62794881e Config INI Fix
... fix wrong Settings Key for tp/... keys
2015-09-20 13:50:06 +02:00
Joern
dc19141997 Fix Error in Device Pairing for ANT+ devices in TrainMode
... after making Wheelsize Settings athlete dependent
2015-09-19 17:13:21 +02:00
Joern
1a8d683303 Store GC Settings in multiple .INI files instead of system specific (Registry, PLIST,..) format
... change storage format to .INI files (which is QTs cross-system format)
... differentiate between System, Global and Athlete specific settings
... store the Global Settings in the AthleteDirectory (root)
... store the Athlete specific Settings in the Athletes Names subdir /config
... migrate existing Settings from current location into new formats "on-the-fly"
2015-09-19 11:13:17 +02:00
Mark Liversedge
e42df848ec Merge pull request #1561 from Joern-R/HTTP
HTTP Server - error when changing Athlete Dir
2015-09-19 00:08:30 +01:00
Joern
1f0515e723 HTTP Server - error when changing Athlete Dir
... since Server Config is AthleteDir specfic close active listener before opening a new one with new config
2015-09-18 19:53:10 +02:00
Mark Liversedge
b23f39ebc8 API QT < 5.3 compatibility
.. map wDebug() to qWarning() instead of using
   QMessageLogger for backward compatibility
2015-09-18 08:49:39 +01:00
Claus Assmann
791b5115f4 Honour GC_WANT_HTTP in Pages.cpp
.. one was missed.
2015-09-17 18:50:28 +01:00
Mark Liversedge
e39b662690 API Server default setting is yes 2015-09-17 18:08:06 +01:00
Mark Liversedge
422d5ad5fc Enable API WebServices when GC is running
.. but disable logging if not running as a server
.. let user define if API services start in preferences
2015-09-17 14:21:21 +01:00
Mark Liversedge
e1312caa33 API metadata \n \r and \t
.. need conversion so it doesn't break parsers!
2015-09-17 10:37:00 +01:00
Mark Liversedge
221afed822 API ride list add metadata
.. by default no metadata is provided when you
   get a ride list. So we now let you specify
   via a parameter what metadata fields you
   want.

   e.g.
   http://localhost:12021/athlete?metadata=all
   http://localhost:12021/athlete?metadata=Workout_Code,Recording_Interval

   Metric overrides are ignored and all data is
   fixed to never send a double quote ("), it is
   converted to a single quote (') to avoid tripping
   up CSV parsers.

   To show it is a string field both the heading and
   content are always surrounded by double quotes.
2015-09-17 10:20:39 +01:00
Mark Liversedge
9d337a76aa API list rides, use response settings more
.. now we are able to manage settings with the response
   to control how the response is built we don't need to
   store it in the JSONContext structure - so just cleaning
   it up.
2015-09-17 07:51:06 +01:00
grauser
6925a7fcaf Settings : Add property "Use CP for FTP"
If false add FTP value for a (Power) date range
2015-09-16 23:16:34 +02:00
Mark Liversedge
57e0060eb6 API list rides not backups 2015-09-16 13:06:48 +01:00
Mark Liversedge
49516a7eb6 API list rides metrics=none
.. to list rides without metrics and therefore just
   traverse the activity directory and parse date from
   the filename.

.. for a quick way to get a list of activities without
   anything to plot etc.
2015-09-16 10:40:09 +01:00
Claus Assmann
49ce337a02 Fix compilation error
.. RideItem::rideDataChanged() is protected
2015-09-16 06:53:33 +01:00
Mark Liversedge
1f6e2cfc5f Merge pull request #1558 from leifwar/master
Bugfix merge of hrm and gpx
2015-09-15 22:27:03 +01:00
Leif Warland
1606cdd391 Bugfix merge of hrm and gpx
.. Should not use speed from gpx when
   lon or lat are equal to zero
2015-09-15 22:53:46 +02:00
Mark Liversedge
d9c76c1503 Fix Merge Crash on UserData
.. but need to look at the way refreshes occur after
   the two rides are merged / joined.
2015-09-15 14:18:30 +01:00
Mark Liversedge
3f414caf08 No need to conditionally include
.. just use the right header.
2015-09-14 16:21:28 +01:00
Mark Liversedge
dbf240616f API List Intervals
.. add an intervals=true|false to the fetch
   ride list URL to enable fetching of interval
   metrics as well as ride metrics.

   e.g.
   http://localhost:12021/athlete?intervals=true&metrics=Work,IF
2015-09-14 09:28:04 +01:00
Claus Assmann
4e02b77481 Allow QT4/QT5 compilation 2015-09-14 00:11:07 -04:00
Claus Assmann
a4f3e21be1 error message typo
Cosmetic patch: error message typo.
2015-09-11 19:42:09 -03:00
Claus Assmann
06241c6ac0 Fix QT4 compiler errors 2015-09-11 20:53:00 +01:00
Alejandro Martinez
4cc19dffdf Recognise Nicholas Feng
For contributions to Chinese (Traditional) language support
2015-09-11 15:54:11 -03:00
Mark Liversedge
6dfcff19c2 API http response buffer 40k not 4k
.. more buffering less updates.
2015-09-11 16:37:52 +01:00
Mark Liversedge
3d2b5d8076 Align average and max on summary
.. makes it easier to compare

Fixes #1550
2015-09-11 15:18:23 +01:00
Alejandro Martinez
38048a8de0 Merge pull request #1552 from NicholasFengTW/master
Add new language support: Chinese(Traditional)
2015-09-11 11:16:22 -03:00
Mark Liversedge
6f1af4b718 Recognise Vianney Boyer
.. for contributions on Video Overlays.
2015-09-11 15:09:11 +01:00
Vianney Voyer
dc402f1204 Video Overlays in Train View
.. adds overlay widgets to show telemetry on top
   of video as you ride with a customisable view.

.. not tested but pulled into the repo to enable
   testing to start with a view to inclusion in
   the 3.3 release.
2015-09-11 14:58:10 +01:00
Mark Liversedge
b1bb4b6259 API List Zone Config
.. just the key parameters, not the zones themselves.
   although we could add that possibly.

   URL to get zone config:
   http://localhost:12021/athlete/zones

   By default will return power zones but can be
   called with a 'for' parameter, which is one of;
   power, hr, pace, swimpace.

   The result is returned as csv data.
2015-09-10 20:28:17 +01:00
Mark Liversedge
e8325dbcdc API fix mean max bests headings 2015-09-10 16:44:44 +01:00
Mark Liversedge
3b2eb13689 API List Mean Max Bests for a Date Range
.. will return csv of the best mean max across
   a date range, or all dates if no range is
   specified.

   e.g.
   http://localhost:12021/Liversedge/meanmax/bests?series=watts&since=2015/01/01
2015-09-10 16:15:09 +01:00
Mark Liversedge
bcb7b870ca API better error handling
.. when URL malformed etc
2015-09-10 10:45:23 +01:00
Mark Liversedge
38a93ebb81 API list meanmax nits
.. csv headings should match request
.. error on unknown data series
2015-09-10 06:48:34 +01:00
Mark Liversedge
b529e04907 API MeanMax any series
.. add parameter series to specify which
   series to extract from the ridefilecache
   any of; watts, hr, cad, speed, vam, NP,
   xPower, nm.
2015-09-09 22:00:01 +01:00
Mark Liversedge
cac9b84859 API List MMP
.. returns the mean max power array for a
   given ride in csv format.

   e.g. http://http://localhost:12021/athlete/meanmax/2015_08_09_10_59_09.json

   will return the power mean max data in
   csv format.
2015-09-09 21:36:15 +01:00
Mark Liversedge
42248d5584 API List Activity Content-Type and Accept header
.. if the caller sets a content type we can provide in the
   header of the http request then we honour it; e.g.
   Accept: "text/csv" we will convert to CSV.

.. also updated to set the content type to match the file
   format we are providing; just in case the client needs to
   know what it got !
2015-09-09 14:44:09 +01:00
Mark Liversedge
2dbe960dfb API List Activities added before parameter
.. if you can list activities 'since' a date then
   it makes sense to also list those 'before' and
   then combine them to create a range.
2015-09-08 22:30:14 +01:00
Mark Liversedge
d95ec38593 API Fetch Activity format=...
.. when retreiving an activity using the API
   you can now specify the format you want the
   data to be returned in.

   it can be one of;
   tcx - garmin training centre xml
   pwx - training peaks xml
   json - goldencheetah json
   csv - all available data (not powertap csv)

.. along the way the file writers for the respective
   formats now accept a NULL context to work standalone.
   this may be useful as a file conversion tool.
2015-09-08 21:13:17 +01:00
Mark Liversedge
1d1508c524 API return activity
.. just straight up for now, so;

   http://localhost:12021/athlete/activity/2015_08_09_10_59_09.json

   will just return the ride unchanged in the format
   it is stored in. Some parameters will now be added
   to enable the format to be selected, from those that
   we can support.
2015-09-08 20:17:56 +01:00
Nick Burrett
6a0660bd83 Strava upload: set correct activity type 2015-09-08 12:10:55 +01:00
Mark Liversedge
fa40917053 API Buffered Write
.. when sending metrics, since if no selection is made
   it can result in thousands of needless updates !
2015-09-08 11:48:46 +01:00
Mark Liversedge
7d884cff93 GC_WANT_HTTP, not GC_HAVE_HTTP
.. in RideDB.y conditional.
2015-09-08 11:43:28 +01:00
Nicholas Feng
33016507eb Add new language support: Chinese(Traditional) 2015-09-08 17:27:25 +08:00
Mark Liversedge
16a31b859f HTTP API web services are optional !
.. so check GC_WANT_HTTP inside the code.
   in this case, the updates to rideDB.y
   and friends broke things.
2015-09-07 21:50:45 +01:00
Mark Liversedge
d8d90370e2 API List Rides Specify Since
.. To restrict to more recent rides the
   API for list rides will now take a
   parameter 'since'

   localhost:12021/athlete/?since=2015/02/01

   Will only list rides since 1st February 2015
   and can of course be used alongside 'metrics'
   to control what metrics are returned.

   localhost:12021/athlete/?since=2015/02/01&metrics=NP
2015-09-07 19:55:14 +01:00
Mark Liversedge
6da3e0aafd API metric list heading use underscores 2015-09-07 19:40:11 +01:00
Mark Liversedge
58b3557f86 API List Rides Specify Metrics
.. when getting the ride list its useful to be
   able to get specific metrics (rather than all
   260 odd).

   URL can have parameter metrics that is a comma
   separated list of metrics to provide e.g;

   localhost:12021/athlete/?metrics=NP,Average_Power
2015-09-07 19:36:42 +01:00
Mark Liversedge
0abbeed952 API List Activities
.. will provide the metric db for an athlete as the
   activity list including all metrics in CSV format
   at the URL:

   http://localhost:12021/Athlete Name/

   The data is sent in chunks as it is parsed from the
   ride cache. We do not cache or maintain state so this
   call is expensive !
2015-09-07 15:36:29 +01:00
Mark Liversedge
e6cc21bfbc API List Athletes
.. easiest one first, just list athletes
   along with basic details like sex and age
2015-09-06 20:41:47 +01:00
Mark Liversedge
28eb76827c API Framework v1.0
.. just 4 endpoints available;

   - list athletes
   - list rides
   - get ride sample data
   - get ride mmp data

.. next few commits will need to implement each of the 4
   API endpoints, returning CSV data in the response.
2015-09-06 17:50:38 +01:00
Mark Liversedge
e4b2abdb29 Version should be 3.3 dev not 4.0 dev
.. updated strings only (same build ids)
2015-09-06 16:29:39 +01:00
Mark Liversedge
139af8d3a2 Introduce our own API service
.. just returns a dull page for now.
2015-09-06 16:27:49 +01:00
Mark Liversedge
17ea4e3fed Fixup Compare Matched Segments
.. needed to create fake rideitem properly
2015-09-06 15:49:39 +01:00
Mark Liversedge
c42bb3fa50 GC --server exit gracefully on ^C
.. catch SIGINT and close down nicely.

.. let user know ^C is preferred way to terminate
   the server in the startup message too.
2015-09-06 14:50:08 +01:00
Mark Liversedge
8c5900cae3 Run GC as a server
.. GoldenCheetah --server [dir]

   Will run without a GUI as a console application sending
   log messages to stdout. A web server is never started
   when in normal GUI mode.

   The optional 'dir' parameter can be used to specify the
   location of the athlete data -- you could run several
   servers on different directories since the config for the
   server is located in the root of the directory.
2015-09-06 08:44:21 +01:00
Mark Liversedge
9533b95738 Http listener
.. added the http listener, with a default handler
   that just returns a 501 Not Implemented result.

.. now the basic server is available we can start to
   add a request handler and build up an API that can
   be called externally when GC is running.

.. the default config file is written to the gc home
   directory above the athlete directories and sets the
   server port to 12021.

.. 12021 was chosen as a memorable port number that does
   not seem to be used by any other application that is
   popular or well known.
2015-09-05 22:50:31 +01:00
Mark Liversedge
d40d865dfa Add httpserver to contrib
.. see http://stefanfrings.de/qtwebapp/index-en.html

.. this is a lightweight web server to allow GC to
   provide webservices.

.. we will be providing web services on localhost to
   enable R integration.

.. we will use web services to standardise the
   interface to provide something we can use in R
   but also anything else at a later date.

.. gcconfig.pri contains $$HTPATH that points to
   the location of the code, if it is not set then
   the web server is not compiled in.
2015-09-05 20:40:38 +01:00
Mark Liversedge
9e833d4a04 QStringList::contains returns QBool on QT4
.. yuk. no wonder they deprecated it in QT5. A daft idea
   that adds not value. We compare to true to avoid issues.
2015-09-05 16:33:19 +01:00
Mark Liversedge
35c098101a RideItem::overrides_ on load
.. need to fixup clear and setFrom
2015-09-05 10:44:39 +01:00
Mark Liversedge
44c0f0a9b5 Formula isset(field)
.. returns true if the user has overridden a
   metric, or a metadata tag is set.
2015-09-05 10:03:33 +01:00
Mark Liversedge
ac402756aa Formula unset(field, condition)
.. allow users to use an unset command to remove
   an override or metadata.

   e.g. unset(Old_Metadata, 1)
        unset(TSS, TSS < 0)
2015-09-05 08:20:30 +01:00
Alejandro Martinez
731d9b1924 Add Daniels recommended training paces to VDOTCalculator
E-Pace, M-Pace, T-Pace, I-Pace and R-Pace
2015-09-04 20:36:13 -03:00
grauser
d6ba11ba8d FitRideFile: Correct prod no for Joule GPS 2015-09-04 23:08:06 +02:00
grauser
df994818e6 Fix SEGV when sharing activity on Strava with no internet 2015-09-04 23:00:58 +02:00
grauser
9ece3459d2 MetricsPage: refresh button state after removing a metric
fix #1544
2015-09-04 22:42:03 +02:00
Mark Liversedge
48fe226b22 Formula set(field, value, condition)
.. allow users to use a set command to add
   an override or set metadata under certain
   conditions.

   e.g. set(Workout_Code, "HT", IF>0.9)
        set(TSS, 65, TSS <= 0 && Route = "Fave Loop")

.. we should probably add an unset() command
   to do the reverse and clear values under
   conditions too.

   USE WITH CAUTION -- TAKE A BACKUP BEFORE
   MAKING ANY RADICAL CHANGES TO YOUR DATA
2015-09-04 21:12:14 +01:00
grauser
274ca405e6 Add a Derive Distance tool (from GPS position)
Some devices (eg Timex Cycle Trainer) doesn't record distance (without speed sensor) but only GPS position.
2015-09-03 22:44:50 +02:00
grauser
e0b16bd32e FitRideFile: Remove warnings for global_msg_nums 8 & 9 2015-09-01 20:59:00 +02:00
grauser
6f7618e1dc FitRideFile: Add Powertap Joule Devices 2015-09-01 19:53:37 +02:00
Alejandro Martinez
046d7d7777 Added Garmin FR 15 device type 2015-09-01 12:14:26 -03:00
gcoco
ced6851e4a Add extra Device Types
Based on FIT SDK 16 data.
2015-08-31 23:38:17 -04:00
Mark Liversedge
84c4d52c56 Plot Formula in AllPlot - Part 4 of 4
.. compare mode now works with user data
   series on AllPlot.

.. probably a few minor nits to clean up
   and maybe some refinements will come.

One thing is for sure, AllPlot and AllPlotWindow
have reached the limit of maintainability and we
should think carefully about how they move forward.
2015-08-31 17:05:29 +01:00
Mark Liversedge
601b720e94 Fix CurveColor SEGV
.. for plot items with no scale widget
2015-08-31 12:29:32 +01:00
Mark Liversedge
db4081a7a7 Compare Pane Fake RideItem
.. for use with UserData and DataFilter when comparing
   intervals and using user data series
2015-08-31 12:08:30 +01:00
Mark Liversedge
7b3271335e Quick fix for compare SEGV
.. when using user data series on ride
   plot in compare mode

.. will fixup compare mode shortly.
2015-08-31 10:31:00 +01:00
Mark Liversedge
c9b01643dd User Data Series Fill
.. if its selected, we should fill the curves on
   a user data series curve.
2015-08-30 20:50:02 +01:00
Vianney Boyer
9b749af6fe do not send SetPower request when not using ERGO mode 2015-08-30 14:38:06 +02:00
Mark Liversedge
973cc4d40c Plot Formula in AllPlot - Part 3 of 4
.. user curves now appear on the series and all plot
   with axis hiding etc

Next commit will add to compare mode and then we
can start cleaning up the nits and refining how it
chooses axes and have a checkbox to hide and show
2015-08-30 08:57:03 +01:00
Mark Liversedge
141acde7d7 Merge pull request #1545 from rclasen/srm9
SrmRideFile: hacked up v9 support
2015-08-29 19:16:24 +01:00
Mark Liversedge
3ebf0b68f7 Recognise Leif Warland
.. added to contributors page
2015-08-29 18:40:45 +01:00
Rainer Clasen
b3161bb598 SrmRideFile: hacked up v9 support 2015-08-29 18:24:18 +02:00
Mark Liversedge
cd8c123961 Min Heartrate Metric
.. useful in formulas
2015-08-29 11:38:21 +01:00
Mark Liversedge
4393c505b5 Plot Formula in AllPlot - Part 2 of 4
.. user curves now appear on the fullplot at the bottom
   of the ride plot and the stacked curves
2015-08-29 10:03:38 +01:00
Mark Liversedge
e444801401 Show UserData on FullPlot
.. helps with debug / diagnosis but still a long
   way to go; need to add user data series to
   allplot, series, stack and compare !
2015-08-28 22:56:52 +01:00
Mark Liversedge
a87f5a7193 Plot Formula in AllPlot - Part 1 of 4
.. get the data into the AllPlotObject and
   apply smoothing etc
2015-08-28 22:48:58 +01:00
Mark Liversedge
bbdba62f99 Merge pull request #1543 from leifwar/PolarFix
Improve on import from polar hrm files
2015-08-28 19:14:55 +01:00
Vianney Boyer
126bc61aaa [cosmetic] change wrong comment 2015-08-27 22:21:48 +02:00
Leif Warland
a2f085a238 Use GPX speed if polar hrm speed is equal to zero 2015-08-27 21:57:55 +02:00
Leif Warland
c588863f20 Include GPX (if exist) when reading hrm files 2015-08-27 21:05:48 +02:00
Leif Warland
0ed3da989f Include "note" from hrm file 2015-08-27 20:13:29 +02:00
Leif Warland
b25958f024 Include first trkpt in GPX file. 2015-08-27 20:13:29 +02:00
Leif Warland
c754825222 Read R-R data from polar hrm files
If recInterval is 238 it is R-R data and not beats per minute. Read
file and convert to beats per minute.
2015-08-27 20:13:29 +02:00
Alejandro Martinez
09099704c5 Fixed copy-paste error on settins for FixDerivePower 2015-08-27 12:51:57 -03:00
Mark Liversedge
6799d2eb9d UserData compute in AllPlot
.. and cached in RideItem
2015-08-26 21:28:05 +01:00
Mark Liversedge
c6a8babfe4 AllPlot userdata settings properties
.. now saved/loaded properly.
2015-08-26 20:48:32 +01:00
Mark Liversedge
5d17699d49 Merge pull request #1540 from amtriathlon/master
Invalidates slope series in Fix Elevation to be recomputed on new alt…
2015-08-26 19:55:40 +01:00
Alejandro Martinez
033f92a0e0 Invalidates slope series in Fix Elevation to be recomputed on new altitude data
Fixes #1539
2015-08-26 15:29:40 -03:00
Mark Liversedge
ea8ad65d88 Cosmetic UserData Dialog
.. expanding nicely and use the space for the formula editor
2015-08-26 18:46:37 +01:00
Mark Liversedge
f760b1733c UserData part 2 of 3
.. Edit dialogs and integration into AllPlotWindow

NOTE: AllPlot does not use the config, or even save
      it to the property at this point. We just have
      mostly reusable code for user maintenance of
      formulas for ride series data.
2015-08-26 18:18:36 +01:00
Mark Liversedge
5ce28a8088 UserData part 1 of 3
.. add user data class and means to store/retreive
   settings via an xml snippet
2015-08-26 15:30:55 +01:00
Mark Liversedge
cddf18d58f Syntax highlight data series symbols
.. they were missed in last commit
2015-08-25 13:44:26 +01:00
Mark Liversedge
60b1562d55 Formulas support Ride Data
.. passed to eval and symbols now recongised.

.. sample data is referenced using symbol names
   in all caps to make it clear you are referencing
   ride dample data.

.. the next commits will add defining formulas and plotting
   the derived data series in allplot.
2015-08-25 13:30:07 +01:00
Mark Liversedge
3f861159c9 Merge pull request #1537 from amtriathlon/master
Pace Zone Shading and Units when CV chart has an sport filter
2015-08-25 06:51:58 +01:00
Alejandro Martinez
a6a333c9ba Pace Zone Shading and Units when CV chart has an sport filter
Fixes #1535
2015-08-24 21:58:22 -03:00
Mark Liversedge
5d0a91010d Fix IntervalNavigator SEGV
.. on manual ride.
2015-08-24 21:43:29 +01:00
Mark Liversedge
9d52cf70ce Playing with a gap curve
.. for power on allplot for now.
2015-08-24 21:12:32 +01:00
Mark Liversedge
da34d9524d Add Gapped Curve
.. want to mod ride plot to not plot gaps
   in recording, but instead draw a break
   in the curve.
2015-08-24 20:04:41 +01:00
Alejandro Martinez
29a685ee4f Fixed copy-paste error 2015-08-24 09:42:30 -03:00
Mark Liversedge
8a82383e38 Merge pull request #1531 from amtriathlon/master
Add User parameters for Bike Weight and CRR to Power Estimation Tool
2015-08-23 22:20:08 +01:00
Alejandro Martinez
dafe3615c1 Add User parameters for Bike Weight and CRR to Power Estimation Tool
Previous fixed values are left as defaults
Also uses Athlete's Height instead of a fixed value.
Fixes #1511
2015-08-23 16:14:15 -03:00
Mark Liversedge
37565c4854 Fit File Garmin Edge 520
.. fixes #1530
2015-08-23 18:35:31 +01:00
Vianney Boyer
11cfbe5cd8 fix missing semi-colon... 2015-08-23 00:52:08 +02:00
Mark Liversedge
d35989eb0f Formula Edit 4 char tabstop
.. since we have limited space.
2015-08-22 23:31:49 +01:00
Vianney Boyer
dbcd2526c5 add default rolling resistance value and minor fix 2015-08-23 00:19:55 +02:00
Mark Liversedge
4dfc5c9918 Merge pull request #1529 from amtriathlon/master
Changes anomaly criteria for HR Speed and Cadence
2015-08-22 22:09:22 +01:00
Alejandro Martinez
6771336574 Changes anomaly criteria for HR Speed and Cadence
Tie HR warnings to Max-HR, if available, instead of hard-coded 200bpm
Speed warning changes to 9kph for swims, 36 for runs and 100 for rides
Cadence warning changes to 80 for swims, 120 for runs and 200 for rides
"Non-zero torque but zero cadence" is disabled for runs and swims
Fixes #1483
2015-08-22 17:52:37 -03:00
Vianney Boyer
e5d6b8caa0 remove needless code after tests 2015-08-22 21:11:17 +02:00
Mark Liversedge
cb65205b42 Formula which() function
.. To select in a vector. The notation
   is a selection criteria followed by
   a list of values / vectors

   e.g. which(x>0, TSS[date:date])

   will create a vector where TSS is non
   zero for the day.

   "x" is replaced with the vector values
   and as such is a special symbol.

.. also fixed a bug with the snip cache.
2015-08-22 17:18:54 +01:00
Vianney Boyer
e328c9fd22 fix grade request to ANT FEC device 2015-08-22 16:30:12 +02:00
Vianney Boyer
a5a0b8741f antfec - send Gradient update to device depending on pgmf 2015-08-22 15:32:03 +02:00
Mark Liversedge
069342f6f5 Formula Microcache 'snips'
.. when running a formula it may use a vector
   operation to calculate e.g. an average for the
   date range.

.. these get called for every ride, but actually they
   perform the same calculation over and over

.. we cache the vector operation and result to avoid
   repeated calculations; these are only cached whilst
   a datafilter is being evaluated, so we do not need
   to worry about stale/refreshing.
2015-08-22 11:34:58 +01:00
Vianney Boyer
892281b58d WIP - ANT FE-C extension (grade, wind, ack...) 2015-08-22 01:24:36 +02:00
Alejandro Martinez
da0935d2cf TRIMP Zonal Points fallback when Average HR has been entered manually
Fixes #1528
2015-08-21 17:56:50 -03:00
Alejandro Martinez
ff015f534e Fixed Total Energy Expenditure example chart 2015-08-21 16:54:33 -03:00
Mark Liversedge
17bf55c40d Formula estimate function
.. estimate(model, duration) or to get the model
   parameters estimate(model, parameter) always
   for the date of the ride.

   e.g. estimate(2p, cp) gets the estimated CP
   for the date of the ride using the classic
   2 parameter model

   Models are one of;
   2p - classic monod scherrer
   3p - morton 3p
   ext - gc extended
   ws - ward-smith
   velo - veloclinic

   Parameters are one of;
   w' - W'
   cp - critical power
   ftp - functional threshold power
   pmax - max power

   For watts per kilo just add / config(weight)
   or Athlete_Weight to take into account ride
   specific weight settings / overrides.
2015-08-21 19:58:27 +01:00
Mark Liversedge
e9a7ff434d DataFilter in PMC - Part 3 of 3
.. can now use a formula in the lts, sts
   sb, rr functions.

.. e.g lts(TSS/2) evaluates to the "CTL"
   value for the ride if using TSS/2 as
   the input.

NOTE: you only get a value where a ride
exists. We may want to think about the
way we scope formulas; are they iterating
over rides or dates ?
2015-08-21 11:23:05 +01:00
Mark Liversedge
aced5805b1 DataFilter in PMC - Part 2 of 3
.. slight fixup to use Leaf expression not the
    entire data filter in PMCData and now the
    series is stored in the Athlete PMC store
    alongside the other series.

.. just need to adjust the parser to accept
   expr rather than symbols as inputs to the
   lts functions.
2015-08-21 10:28:17 +01:00
Vianney Boyer
67e455314c Basic ANT FE-C support (stschake contrib) 2015-08-21 10:36:47 +02:00
Mark Liversedge
dbe92eec27 Formula Leaf Signature
.. to use when e.g. using a data filter as an input
   into the PMC functions. The data series is stored
   against a signature for the function as opposed to
   the metric symbol.

.. we need to do it for an expr not the data filter
2015-08-20 22:56:51 +01:00
grauser
32af651e50 EditInterval: Small correction - Use interval type 2015-08-20 23:38:39 +02:00
Mark Liversedge
d8487bfb4a DataFilter in PMC - Part 1 of 3
.. add the computation of PMC stress using a
   data filter as an input as opposed to a
   metric.

.. part 2 will update the parser to support
   sts/lts/rr/sb to use an expression.

.. part 3 will update Athlete to enable
   storing PMCdata against the datafilter signature
   instead of a metric name.
2015-08-20 18:50:07 +01:00
Mark Liversedge
10b5f75a47 Formula Signature
.. to use when e.g. using a data filter as an input
   into the PMC functions. The data series is stored
   against a signature for the function as opposed to
   the metric symbol.
2015-08-20 18:35:45 +01:00
Mark Liversedge
cf380b9222 Merge pull request #1526 from vlcvboyer/fix_GPXparser
fix GPX parser header file
2015-08-20 15:05:57 +01:00
Vianney Boyer
d99534ba26 fix GPX parser header file 2015-08-20 15:52:34 +02:00
Mark Liversedge
a57a6e683e FilterEdit Colors
.. time to move on now, this is slightly
   embarassing.
2015-08-20 07:18:47 +01:00
Mark Liversedge
d13b396663 FilterEditor Tweak Cosmetics
.. courier font

.. syntax coloring follows common "windows IDE"
   conventions (comments green, symbols blue etc)
2015-08-20 07:14:11 +01:00
Mark Liversedge
d11d016480 Merge pull request #1525 from amtriathlon/master
Show field name in Calendar Text when field type is not text
2015-08-20 06:55:56 +01:00
Alejandro Martinez
4b2679cdf1 Show field name in Calendar Text when field type is not text
Fixes #1524
2015-08-19 21:28:15 -03:00
Mark Liversedge
90ac02e3c9 Add brace balancing in Filter Editor
.. for finding partner parenthesis
.. for showing unbalance parenthesis
2015-08-19 22:23:30 +01:00
Mark Liversedge
7f6991520c Fix Syntax Highlighting
.. distinct from parser now, so not susceptible
   to parsing / syntax errors in formula.

.. still need to do brace matching.
2015-08-19 21:02:08 +01:00
Mark Liversedge
bf4c37f7b2 Deprecate parser syntax highlighting
.. but do continue to highlight bad symbols etc
   with a red wavy line.

.. still need to;
   a) syntax highlight in the formula edit (just symbols
      and literals, not parsing content)

   b) add an error navigator to click on errors and have the
      text highlighted that incurred that error.
2015-08-19 12:50:38 +01:00
Mark Liversedge
e0a7f5a943 Merge pull request #1518 from amtriathlon/master
Fixed comparison operator precedence
2015-08-18 20:15:40 +01:00
Alejandro Martinez
84c5b6bdca Fixed comparison operator precedence
Adding a comparison expression cexpr and separate productions
for each operator allows to define precedence rules to remove
all shift-reduce conflicts, except one due to the -probably
harmless- (expr) and (lexpr) ambiguity.
2015-08-17 22:05:49 -03:00
Mark Liversedge
4f570d8106 Fix DataFilter regression
.. the daterange() commit broke almost every builtin
   function ! (it converted them to integers due to
   and if/else logic error.

.. also tidied parser to separate literals and symbols
   whilst making builtin functions expr elements to
   look more closely at precedence
2015-08-17 22:00:15 +01:00
Mark Liversedge
f83b0b1d64 Merge pull request #1517 from amtriathlon/master
Fixed POW precedence and dangling else ambiguity
2015-08-17 21:41:21 +01:00
Alejandro Martinez
13b5f00c0a Fixed POW precedence and dangling else ambiguity
Now 2*2^3+1 gives 17 instead of 65
expr1 ? expr2 ? expr3 : expr 4 : expr 5 is disambiguated to expr1 ? (expr2 ? expr3 : expr 4) : expr 5
Lowers shift/reduce conflitcs to 21
2015-08-17 17:30:11 -03:00
Mark Liversedge
a1baecb605 expr needs '(' ')' too
.. thought it could be resolved within the lexpr
   definition but it is used to control arithmetic
   operations as well as logical ones.
2015-08-17 18:54:22 +01:00
Mark Liversedge
72925953ea Fixup Logical Expressions and Precedence
.. TSS > 100 ? 0 : 1 now works properly and the
   related precedence for logical expression
   are in order now.

.. still have 34 shift/reduce warnings !
2015-08-17 16:50:57 +01:00
Mark Liversedge
e1f2c1b48b Fixup unary '-'
.. so date-9 is not treated as "date" "-9" but
   instead as "date" "-" "9"
2015-08-17 15:21:24 +01:00
Mark Liversedge
6088c21a32 Fixup Operator Precedence
.. but still have yacc warnings

.. unary '-' is still a problem.
2015-08-17 14:04:32 +01:00
Mark Liversedge
4941dacd8c Syntax highlighting from parser
.. oopsie on binary expression.

NOTE: it may be better to highlight tokens rather than
      via the parser as errors make it impossible to
      highlight the "intention" of the user
2015-08-16 22:24:49 +01:00
Mark Liversedge
965bc37130 Slightly larger filter box on MainWindow
.. but only when in focus.
2015-08-16 20:29:50 +01:00
Mark Liversedge
2e949b13bf Formula sum, mean, max, min, count functions
Particularly useful when working with a vector
but can be used with other things.

e.g. max(xPower, BikeScore)

Or, for getting a ride's TSS expressed as a percentage
of the average TSS for the currently selected daterange.

e.g. TSS / mean(TSS[daterange(start):daterange(stop)])
2015-08-16 19:49:16 +01:00
Mark Liversedge
99845aa12a Formula Editor error highlighting
.. using red wiggly line

.. still need to find a way of providing the
   parsing errors messages and navigating to
   the part they are complaining about.
2015-08-16 18:32:32 +01:00
Mark Liversedge
a9b50af7a1 Formula Vectors
You can create a vector using the notation:

   expr [ from : to ]

   Where 'expr' will be evaluated for every activity
   between the dates from and to.

   e.g. TSS[today - 90 : today]

   will evaluate to TSS for the last 90 days

   e.g. Activities [ date:date ] > 1

   Will find all days with more than one workout.

.. when using a vector in any arithmetic expression it
   will be evaluated to a sum; this will be fixed shortly
   to enable the use of sum/mean/max/min functions.

.. If needed we can add vector operations but this will
   likely confuse many users (hell, they confuse developers)
   so we will need a good reason to add them !

Lastly, I have also added daterange(from) and daterange(to)
literals to get access to the currently selected daterange
when working in the trends view.
2015-08-16 17:23:46 +01:00
Mark Liversedge
dedcd71026 Merge pull request #1515 from amtriathlon/master
Minor fixes
2015-08-16 15:50:16 +01:00
Alejandro Martinez
5b4aee0788 Added a reference for Daniels/Gilbert VDOT formula 2015-08-16 11:10:08 -03:00
Alejandro Martinez
1ec69a925e Fixed Energy Expenditure chart for imperial units 2015-08-16 11:09:18 -03:00
Mark Liversedge
22bc70cd1a Formula Editor Improvements 1 of 2
.. update the editor to do some basic syntax
   highlighting; literals in red, comments in
   blue and so on.

.. next commit will focus on highlighting errors
   with a wavy line and some form of error list.
2015-08-15 23:47:04 +01:00
Mark Liversedge
3431f87adc Merge pull request #1514 from amtriathlon/master
More example charts SWOLF and Energy Expenditure
2015-08-15 23:37:50 +01:00
Alejandro Martinez
4e972a504c More example charts SWOLF and Energy Expenditure 2015-08-15 19:35:22 -03:00
Mark Liversedge
97e7ad62c7 Merge pull request #1513 from amtriathlon/master
Minor changes for DataFilter to compile on MinGW
2015-08-15 15:51:21 +01:00
Alejandro Martinez
06c1546a05 Minor changes for DataFilter to compile on MinGW 2015-08-15 11:46:32 -03:00
Alejandro Martinez
8bd13b11bc Added sample charts using formulas for VDOT and sTSS 2015-08-15 11:45:24 -03:00
Mark Liversedge
aa3e3102f9 DataFilter Functions and "math"
.. updated the datafilter to handle general functions
   and parse them without needing them declared in the lexer

.. makes it much easier to add new functions in the future

.. did this to add core math functions;
   *  sin, cos, tan, asin, acos, atan,
   *  sinh, cosh, tanh, asinh, acosh, atanh
   *  exp, log, log10, ceil, floor, round
   *  fabs, isinf, isnan

.. we can add more later; erf/gamma spring to mind !
2015-08-15 14:17:53 +01:00
Mark Liversedge
58e2c88c9a Formula const()
.. for pi and e, we can add more later
   i.e. const(pi) and const(e) return high
   precision values for both
2015-08-15 10:33:09 +01:00
Mark Liversedge
7bc1537f30 Formula config() function and test charts
.. added config(cv) .. config(pmax) etc

.. also added some test charts including one that
   just displays configuration
2015-08-14 22:10:29 +01:00
Mark Liversedge
04919f7d67 Bests need curve filtering applied
.. but only if needed !
2015-08-14 12:40:48 +01:00
Mark Liversedge
aebec00813 LTM Filter for a curve
.. allow the data selected for a curve to filter
   as well. So you can e.g. plot duration riding vs
   duration biking on the same plot.
2015-08-14 11:23:53 +01:00
Mark Liversedge
896c3e5574 Library LTM Chart subtitle
.. changes when using a preset.
2015-08-14 08:24:32 +01:00
Mark Liversedge
677d9ff531 Formula Running Total
.. so can accumulate e.g. time and distance
2015-08-14 08:13:53 +01:00
Mark Liversedge
391a21d9a4 Add DataFilter functions to autocomplete list
.. so you get best(), tiz(), lts() et al
   popup in the autocompleter.
2015-08-13 23:09:48 +01:00
grauser
fdb04a0446 AnalysisSidebar: Rename Route
fix #1430
2015-08-13 22:25:54 +02:00
Mark Liversedge
cc04a8532e Fix SEGV LTM Edit
.. when using Moving Average trend.
2015-08-13 17:38:07 +01:00
Mark Liversedge
ae7c176236 Formula Aggregation Type
.. is it Peak, Average, Max, Total to control how
   values are aggregated.
2015-08-13 17:07:51 +01:00
Mark Liversedge
75860d7609 Merge pull request #1512 from amtriathlon/VDOTCalculator
VDOT and T-Pace Calculator
2015-08-13 16:31:45 +01:00
Alejandro Martinez
8d4320f583 VDOT and T-Pace Calculator
An alternative tool to estimate threshold pace for running
2015-08-13 12:29:27 -03:00
Mark Liversedge
5940557909 Formula Editor Completer
.. edit formulas on LTM tool with autocompletion
   but not when in comments.
2015-08-13 13:53:18 +01:00
Mark Liversedge
06a41f4583 LTM Plot Formula Part 2 of 2
.. added to LTMPlot and DataFilter methods

.. very rough and ready, but works.

.. can refine and enhance now basics are in place.
2015-08-13 12:35:17 +01:00
Mark Liversedge
273245c5b3 LTM Plot Formula Part 1 of 2
.. added to settings and chart configuration
2015-08-13 11:33:17 +01:00
Mark Liversedge
1e082391df DataFilter Comments with '#'
.. just one line comments to help explain when
   writing more complex types of expressions
2015-08-13 10:16:52 +01:00
Mark Liversedge
53670707e6 DataFilter Conditional Expression
.. uses the C/C++ notation:

   expr ? expr2 : expr3

   Where expr is the condition e.g. X>2
   and expr2 is what to evaluate to if expr is true
   and expr3 is what to evaluate to if expr is false

   e.g.

   (Workout_Code = "1L3") ? 1 : 0

   Will evaluate as 1 for all workouts where the
   workout code is 1L3 and 0 for all other workouts.
2015-08-13 09:24:26 +01:00
Mark Liversedge
07da4f3235 Enhanced DataFilter Completion
.. now will repeat completion beyond the very
   first word on the line

.. needs to be enhanced to work when not at the
   end of the text (i.e. cursor move)
2015-08-13 07:38:22 +01:00
Mark Liversedge
e047c6ca3a Fix exit SEGV on SearchBox
.. resize event was checking menu icon, which was never
   going to change due to a resize event.

.. it crashed during window exit since it dereferenced objects
   that had been deleted.
2015-08-12 23:16:58 +01:00
Mark Liversedge
4194918b4b Fix QCompleter Crash
.. still only works for first typing and will fix
   that, but no longer crashes on change mode from
   named search.
2015-08-12 17:35:38 +01:00
Mark Liversedge
7b08fa9ea1 Disable Searchbox completer
.. for now, it crashes occasionally due to cross-thread
   issues, and doesn't work across the text anyway.
   will make it permanently associated by not active
   when in search mode.
2015-08-12 13:34:57 +01:00
Mark Liversedge
57968feb07 MainWindow search box animation
.. expand when active since we're gonna get funky
   with it in v4.0
2015-08-12 13:31:43 +01:00
Mark Liversedge
fd45d618f4 Basic Autocompleter for Filter
.. need to update to work in the middle of the expression
   not just at the beginning.
2015-08-12 11:54:56 +01:00
Mark Liversedge
07a15b7194 V4.0 Development starts
.. update versioning info
2015-08-12 10:13:44 +01:00
Mark Liversedge
706d2ad206 Refactor DataFilter
.. get rid of terrible cut and paste code, duplicating
   eval for particular leafs

.. eval returns a Result() object which can be numeric
   or textual (date strings are parsed to numeric)

.. can now add formulas to LTM as well as adding more
   functions that may be useful (conditionals, maths
   spring to mind first).
2015-08-12 10:07:11 +01:00
Mark Liversedge
8bb45fd0a3 Version 3.2 Release
.. update of version numbers
2015-08-12 09:43:33 +01:00
Mark Liversedge
fb18164cfa Merge pull request #1510 from prokoudine/master
Updated Russian translation
2015-08-12 09:30:48 +01:00
Alexandre Prokoudine
f9690049d3 Update Russian translation 2015-08-12 10:47:01 +03:00
grauser
00c3856da4 translation: small fix for french 2015-08-12 09:22:46 +02:00
grauser
1cb628f415 translation: French for 3.2 (2/2) 2015-08-12 00:00:03 +02:00
Mark Liversedge
a93f37459e Logical Expressions with >2 Primary Expressions
.. ie. expr && expr was supported but not
   expr && expr && expr
2015-08-11 20:08:07 +01:00
Mark Liversedge
23633692c4 Merge pull request #1509 from Joern-R/DE
LIBKML patch (only for Windows)
2015-08-11 20:02:39 +01:00
Joern
43aa31b607 LIBKML patch (only for Windows)
... removing tests,... from LIBKML build
... allowing building of base functionality of LIBKML on Windows with MinGW
... covering the LIBKML functional scope used by GoldenCheetah
2015-08-11 20:27:45 +02:00
Mark Liversedge
f502400363 Fix DataFilter grammar for logical expressions
.. NP > 200 && IF > 0.85 didn't work because the datafilter
   grammar needed fixing up for precedence of the && and || operators.

.. this has been fixed by embedding into the grammar; binary expressions
   and logical expressions are now declared individually.

.. the generated tree uses the same encoding so no changes required
   to the code, just the grammar
2015-08-11 09:14:43 +01:00
grauser
5358521f0b Translation: French for 3.2 (1/2) 2015-08-10 23:22:43 +02:00
grauser
b016913293 Export: Unable to export in CSV format
fix #1507
2015-08-10 21:46:58 +02:00
Mark Liversedge
1b86ce7207 Merge pull request #1506 from Joern-R/DE
Update Translation DE
2015-08-09 15:40:01 +01:00
Joern
b8723b20ff Update Translation DE 2015-08-09 14:20:53 +02:00
Mark Liversedge
eb767cfdc1 Merge pull request #1504 from amtriathlon/master
Updated Spanish Translation
2015-08-08 19:51:47 +01:00
Alejandro Martinez
5cb1d91cef Updated Spanish Translation
New backup message on upgrade
2015-08-08 15:49:28 -03:00
Mark Liversedge
a96102e3d2 Merge pull request #1503 from amtriathlon/master
Fixed overridden metrics not initialized in Medatada
2015-08-08 19:11:39 +01:00
Alejandro Martinez
a03c00f819 Fixed overridden metrics not initialized in Medatada 2015-08-08 13:38:29 -03:00
Mark Liversedge
517435a656 Time Riding --> Time Moving
.. when reading older GC Json files; we need to rename both
   the tag and the override.
2015-08-08 17:31:37 +01:00
Mark Liversedge
cedf6cb3a5 Fix Crash Edit Metric on Extra tab
.. don't allow editing there.
2015-08-08 17:22:16 +01:00
Mark Liversedge
09cc67f431 Merge pull request #1502 from Joern-R/Upgrade
Indicate the Path to Athlete Directory to backup during Upgrade
2015-08-08 15:19:21 +01:00
Joern
30ca55787d Indicate the Path to Athlete Directory to backup during Upgrade (original code by GitHub user "mtbkeith" - thanks)
..show path in Upgrade Windows (separate from the scrolling section)
..allow path to be selected and copied to clipboard via Mouse
2015-08-08 15:41:06 +02:00
Carlos Giraldo
008395d6c9 Added test file for sigma rox 10.0 slf rides. 2015-08-08 13:11:27 +02:00
Carlos Giraldo
0c57e500a1 Added Sigma Rox 10.0 .slf file import support (it may also work with Rox 9.9 but it is not tested).
Imported data:
 - speed, cadence, hearthrate, power, latitude, longitude, altitude, temperature.
Laps are not yet supported. (laps in Rox 10.0 slf are encoded at the end of the file as <Markers>).
2015-08-08 12:28:35 +02:00
Mark Liversedge
ea18e6718d Merge pull request #1499 from Joern-R/DE
Translation DE
2015-08-07 19:01:57 +01:00
Joern
c3d75b5ca0 Translation DE 2015-08-07 19:56:18 +02:00
Mark Liversedge
9ddb02e015 Enforce types for First Class Metadata Fields
In case user borked them in setup, applies to:

- Ride Date (startTime.date)
- Ride Time (startTime.time)
- Device (deviceType)
- Recording Interval (recIntSecs)
- Identifier (Id)

Since latest update for metadata now honours user configuration.
2015-08-07 10:40:03 +01:00
Mark Liversedge
6108f74128 Merge pull request #1498 from amtriathlon/master
Fixed translate charts when config file is missing
2015-08-07 09:39:01 +01:00
Alejandro Martinez
55193b7033 Updated Spanish Translation 2015-08-06 20:41:45 -03:00
Alejandro Martinez
6d1673d42b Updated chart titles according to charts.xml
To enable translation
2015-08-06 20:39:59 -03:00
Alejandro Martinez
009b9c93a3 Fixed translate charts when config file is missing
Default config due to new user or deleted config should be translated
2015-08-06 18:03:43 -03:00
Mark Liversedge
46712b407a PMC (TRIMP) fixup
.. common axis Stress
.. look and feel like other PMCs
2015-08-06 21:14:39 +01:00
Mark Liversedge
7c2f23d3d0 Merge pull request #1496 from MaksVasilev/master
Make default PMC TRIMP chart to real TRIMP
2015-08-06 21:06:36 +01:00
Stranger
9ca9bf8aef Fix name for PMC (TRIMP) chart 2015-08-06 22:20:45 +03:00
Mark Liversedge
a7ba81429d Texts frozen for v3.2
.. lupdate translations for all supported languages.
2015-08-06 19:56:24 +01:00
Mark Liversedge
f8684629c2 Merge pull request #1493 from Joern-R/Translation
Update Translation DE
2015-08-06 19:42:56 +01:00
Stranger
470ee13c6d Make default PMC TRIMP chart to real TRIMP 2015-08-06 21:40:56 +03:00
Joern
8d82c8543d Update Translation DE 2015-08-06 20:35:43 +02:00
Mark Liversedge
dce74a8f93 Merge pull request #1491 from amtriathlon/master
Fixed never translate charts in HomeWindow
2015-08-06 19:08:26 +01:00
Alejandro Martinez
d29481c196 Fixed never translate charts in HomeWindow
Local variable defaultUsed was initialized to false and never updated
2015-08-06 14:50:06 -03:00
Mark Liversedge
ff5cc08757 FitRideFile Garmin Fenix 3 identifier
Fixes #1489
2015-08-06 18:24:16 +01:00
Mark Liversedge
b93f3f8c7b Only translate chart titles once
.. not every time they are loaded.
2015-08-06 14:52:39 +01:00
Mark Liversedge
9ace9bd562 Add link to USARIEM
.. in the about dialog.
2015-08-06 11:00:23 +01:00
Mark Liversedge
187dbc836f Add LOCALHEADERS/LOCALSOURCE to src.pro
.. allow local development/extensions without needing to update src.pro.
2015-08-06 10:40:05 +01:00
Mark Liversedge
e85434e710 Merge pull request #1487 from amtriathlon/master
Add Pace to LTMPopup and change total distance according to sport
2015-08-06 08:59:16 +01:00
Alejandro Martinez
802548c2e9 Add Pace to LTMPopup and change total distance according to sport 2015-08-05 21:50:23 -03:00
Mark Liversedge
c18fbaf742 Upgrade cosmetics
.. change LTM trend background to same as ride plot on upgrade
   as by default it will be black and look different

.. remove metal look on anything other than Mac prior to the
   10.10 Yosemite look. Metal looks naff these days.
2015-08-06 00:57:46 +01:00
Mark Liversedge
cff6de50d5 Save Dialog should be on top
.. as it can be obscured by other windows
2015-08-06 00:20:11 +01:00
Mark Liversedge
076c9b79ea Sanity check LTMSettings
.. avoid crash with a sanity check
.. not sure why they got corrupted
.. need to investigate mixing 32/64bit runtime
2015-08-05 23:52:28 +01:00
Mark Liversedge
cd3c8d3dd3 Fix metric on Extra tab
.. stick to original functionality instead of borking.
2015-08-05 22:27:22 +01:00
Mark Liversedge
91716bf57d Merge pull request #1486 from Joern-R/Test
Fix Upload - VeloHero.de / Trainingstagebuch.org for QT 5 based builds
2015-08-05 21:43:49 +01:00
Joern
483e27090d Fix Upload - VeloHero.de / Trainingstagebuch.org for QT 5 based builds
... tested on QT4.8.6 and QT 5.4.2
2015-08-05 20:03:29 +02:00
Mark Liversedge
bbfdbef63e Merge pull request #1485 from amtriathlon/master
Add Route and RPE to SpecialFields
2015-08-05 18:16:32 +01:00
Alejandro Martinez
2601180b0c Add Route and RPE to SpecialFields
So this new metadata fields can be translated
2015-08-05 10:54:42 -03:00
Mark Liversedge
ddd8b89963 Fixup Time Riding -> Time Moving
.. since we deal with more than just cycling now.
2015-08-05 11:38:28 +01:00
Mark Liversedge
2aff8c1328 Tidy Up metadata.xml
.. it had got wonky
.. also changed Time Riding to Time Moving
2015-08-05 11:29:00 +01:00
Mark Liversedge
1fde62e8e1 Recognise Mark Buller
.. for support wrt use of the TCore algorithm in GoldenCheetah
2015-08-04 20:22:03 +01:00
Mark Liversedge
afe4ff9c66 Attribution for Core Temperature
.. we have been granted permission to use the TCore algorithm
   and so the attributions have been added to the code and about
   box.

.. Mark Buller should be added to the contributors too.
2015-08-04 20:22:03 +01:00
grauser
60cc22ffa7 Update french translation 2015-08-03 23:07:10 +02:00
grauser
7b1bf52ec3 AllPlot: Correct Core Temp default 2015-08-03 23:07:10 +02:00
Mark Liversedge
c334fc6cce Edit Chart with Bests
.. clear old values
2015-08-02 19:04:13 +01:00
Mark Liversedge
2f910992a0 Merge pull request #1482 from amtriathlon/master
Minor tweak in Histogram round numbers for labels
2015-08-02 18:17:32 +01:00
Alejandro Martinez
8d4ddb94f6 Minor tweak in Histogram round numbers for labels
Truncation is rather odd, specially for percentages
2015-08-02 11:32:25 -03:00
Mark Liversedge
285cf57412 More default charts
.. tss/if, bikescore/ri, cp analysis
2015-08-02 10:20:15 +01:00
Mark Liversedge
3a4b306790 Tidy Trend View Layout
.. put chart in a logical sequence
.. remove all the TIZ charts as they're in the library
.. fix tracker 60m power as it shows speed
2015-08-02 10:09:50 +01:00
Mark Liversedge
ed234156e2 Fix save metadata refresh of calendar text
.. via ^S or menu when focus in notes type box.
2015-08-01 22:30:25 +01:00
Mark Liversedge
1b46801856 Minor paint tweak for scope bar
.. overly rounded rectangles are de-riguer these days
   so make the scope bar a little squarer as per
   the new aesthetic in Yosemite.
2015-08-01 20:28:33 +01:00
Mark Liversedge
471a9fa98b Version 3.2 Release Candidate 4
.. update build for RC4
2015-08-01 10:19:19 +01:00
Mark Liversedge
f2d05c9b1d Fix Edit Bests LTMSettings SEGV
.. in sidebar chart edit.
2015-08-01 10:09:40 +01:00
grauser
1956ac93d0 RideFileCache : XPower in MeanMaxComputer
Exponential moving average from first point for Xpower in MeanMaxComputer
2015-08-01 00:05:24 +02:00
grauser
642c83e3ba RideFileCache : Correct weighting factor for Xpower in MeanMaxComputer
fix #1480
2015-07-31 23:35:51 +02:00
Mark Liversedge
45ca7e7716 More new user nits
.. chrome reset by 3.1 upgrade .. aaaargghhh.
.. set default date range to last 3 months not all
2015-07-31 09:55:11 +01:00
Mark Liversedge
e98212017b Fix "Chrome" default
.. Mac on Mac before Yosemite (when its flat)
.. Flat everywhere else
.. Use a lighter color
2015-07-31 09:31:15 +01:00
Mark Liversedge
44ef1d8b62 Cleanup of charts.xml
.. old / wrong-headed charts deleted.
2015-07-31 00:49:23 +01:00
Mark Liversedge
e3ba2dcab5 More default charts 2015-07-31 00:43:01 +01:00
Mark Liversedge
6660b0ba7c Fix LTM add chart SEGV on date range
.. by trying to plot backward date ranges
2015-07-31 00:09:56 +01:00
Mark Liversedge
f2ee3cb7c3 Celebrate the TdF with a new color scheme. 2015-07-30 23:08:10 +01:00
Mark Liversedge
2427f42b76 Don't include "Calendar Text" in Meta CRC
.. otherwise it causes a refresh() when it is reconstructed
   due to config changes (not data changes!)
2015-07-30 20:24:22 +01:00
Mark Liversedge
8d56bcfc24 Merge pull request #1478 from amtriathlon/master
Fixed tab order in New Athlete and Manual Workout
2015-07-30 19:36:52 +01:00
Mark Liversedge
ad53f63e1a Fix refresh of 'Calendar Text'
.. when the metadata config changes.
2015-07-30 19:33:05 +01:00
Alejandro Martinez
d56ae728dc Changed GOVSS to TriScore in LTM stress metrics
They could be deprecated, but if left for consistency TriScore
is more useful than GOVSS.
2015-07-30 10:28:20 -03:00
Alejandro Martinez
b43b8f9643 Fixed tab order in New Athlete and Manual Workout
Fixes #1476
2015-07-30 10:15:14 -03:00
Mark Liversedge
4c64dc9933 Merge pull request #1475 from amtriathlon/master
New metadata fields and SwimScore copyrigth notice
2015-07-30 06:38:55 +01:00
Alejandro Martinez
2f6b4afa2f Updated Spanish Translation 2015-07-29 20:19:07 -03:00
Alejandro Martinez
f70ab87a36 Added copyrigth notice for SwimScore 2015-07-29 20:12:12 -03:00
Alejandro Martinez
b41a984107 Some love for Session RPE and new metadata fields
Added RPE to metadata.xml to allow data entry in the Workout tab and
PMC (Session RPE) to charts.xml
Added Equipment to Workout tab
Added GOVSS and SwimScore to Metric tab, to allow metric override
2015-07-29 20:00:37 -03:00
Mark Liversedge
34a6ffc0f7 Switch to chart on import
.. when drag and dropping a chart onto mainwindow we now
   switch to trend view and select it, so the user doesn't
   have to track it down.
2015-07-29 11:59:58 +01:00
Mark Liversedge
d3e1dcaa7e Fix ^S clearing metadata
.. also optimised up the way metadata changed
   was signalled, which speeds up navigation
   somewhat.
2015-07-28 22:17:59 +01:00
Mark Liversedge
387ecdb6af Merge pull request #1473 from Joern-R/DE
Update Translation DE
2015-07-28 20:19:50 +01:00
Joern
af961ccafe Update Translation DE 2015-07-28 19:07:43 +02:00
Mark Liversedge
4e7cbcd246 Fix Hide Non-curves on legend
.. trend, outliers, bests all failed to hide.
2015-07-28 15:19:54 +01:00
Mark Liversedge
5fc0a96195 Select 'Library' chart automagically
.. when a preset is selected in the trend view sidebar
   we automatically switch to the library chart to
   show it.
2015-07-28 13:42:17 +01:00
Mark Liversedge
6c671ed30f Merge pull request #1471 from amtriathlon/master
Updated Spanish Translation
2015-07-28 06:35:33 +01:00
Alejandro Martinez
3cec9c5000 Updated Spanish Translation
Includes a minor fix to avoid a lupdate warning and new chart names
2015-07-27 20:54:01 -03:00
Mark Liversedge
7b15ae8beb Fix Chart Add/Edit SEGV
.. halfwitted code deleted a widget, after moving the
   "Use sidebar settings" checkbox to it.
2015-07-27 21:07:39 +01:00
Mark Liversedge
5292ed06c1 Merge pull request #1470 from amtriathlon/master
Fixed RideSummary refresh when filters change while not visible
2015-07-27 18:41:49 +01:00
Alejandro Martinez
aba1ac814f Fixed RideSummary refresh when filters change while not visible
The problem showed up only for date ranges not ending today
2015-07-27 14:34:32 -03:00
Mark Liversedge
25a58eb9c4 Tidy up LTM Chart configuration
.. move use sidebar settings to basic page and
   disable the other pages if its using sidebar
   settings

.. when working in the sidebar, hide the basic
   page since it is not shared

.. make the add chart dialog bigger if the screen
   is large enough, since it needs to show a chart
   and the config pane which has grown a little
   over time.
2015-07-27 17:16:13 +01:00
Mark Liversedge
fe73fcb2ff Fixup Chart Preset Workflow and SEGV/Bug
.. remove all the editing/import/export functions
   from the chart settings now they have their own
   sidebar.

.. this also removes some of the problems with conflicts
   and bugs in the code e.g. setting the first chart name
   to "" by accident in the editingFinished() method (since
   that is no longer supported !)
2015-07-27 13:08:17 +01:00
grauser
2d093b53de LTMChartParser: no selection after drag/drop 2015-07-26 23:28:11 +02:00
grauser
e07a99ce5c LTMChartParser: clearSelection 2015-07-26 23:10:27 +02:00
Mark Liversedge
1af00737e5 Small fix for SEGV chart drop to end
.. if you drag a chart in the LTM chart sidebar to beyond the
   end of the list the move results in a QList assert abort.

..  this small fix checks for -1 and adjusts accordingly.
2015-07-26 22:02:19 +01:00
grauser
a2a51aedfd LTMChartParser: Selection after drop 2015-07-26 22:54:53 +02:00
grauser
8c2775b00d LTMChartParser: Drap/Drop multiple selection 2015-07-26 22:28:04 +02:00
grauser
17b49df5e3 Update French translation 2015-07-26 22:14:06 +02:00
Mark Liversedge
70b2163454 Force Chrome on Yosemite
.. to match the flat look of Yosemite (i.e. not metal) and
   to match the fixed colors for the title bar.
2015-07-26 17:18:30 +01:00
Mark Liversedge
1839c5fa92 Another Edit Chart SEGV
.. on the trend view sidebar
2015-07-26 16:48:23 +01:00
Mark Liversedge
d1ef783bf9 Fix reading dates in ISO format 2015-07-26 14:09:34 +01:00
Mark Liversedge
121f2e9deb Fix Edit Chart SEGV !
.. setting date ranges before curves
2015-07-26 10:18:04 +01:00
Mark Liversedge
f61e746118 Enable Export of LTM Chart Configuration
.. and fix import of >1 chart file !
2015-07-26 09:48:09 +01:00
Mark Liversedge
728d546c49 Trend Chart Sidebar Menu - Part 2 of 2
.. import/export charts

.. drag/drop them in the list to reorder

.. drop a 'charts.xml' (any .xml) file onto the mainwindow
   to import charts exported by someone else.
2015-07-25 21:29:08 +01:00
Mark Liversedge
220b2f9f1a Trend Chart Sidebar Menu - Part 1 of 2
.. added add, edit, delete and reset

.. still need to add import and export as well
   as the right-click context menu.
2015-07-25 12:58:19 +01:00
Mark Liversedge
6b71394f1e Merge pull request #1468 from Joern-R/UpgradeFixTools
Upgrade/JSON Conversion - Switch off "Auto" Fix Tools
2015-07-25 09:04:21 +01:00
Joern
714c956e92 Upgrade/JSON Conversion - Switch off "Auto" Fix Tools
... add feature to switch off "Auto" Fix tools
... switch off "Auto" Fix Tools during Upgrade/JSON Conversion
2015-07-25 09:59:41 +02:00
Mark Liversedge
f60c87416e View reset layout from goldencheetah.org/defaults
.. when resetting the layouts we first go try the default
   layouts from the goldencheetah website

   http://www.goldencheetah.org/defaults/<release>/xxx-layout.xml

.. this means we can update the default setup independently of
   the release binary; make tweaks etc

.. the same concept will shortly be introduced for resetting the
   standard charts.xml presets for the trend view
2015-07-24 21:18:15 +01:00
Mark Liversedge
3ef711b0a9 Get rid of X-axis grid lines on CP plot 2015-07-24 17:40:51 +01:00
Mark Liversedge
e8eeed1bb8 Fixup Core Temperature Gamma Constant
.. it was calculated incorrectly, 0.022 x 0.22 instead of
   0.022 x 0.022 so quite a significant order of magnitude !
2015-07-23 22:56:28 +01:00
Mark Liversedge
f8b450e78f Merge pull request #1466 from amtriathlon/master
Fixed Endurance Index scale in CVchart
2015-07-23 20:58:10 +01:00
Alejandro Martinez
974e137bbe Fixed Endurance Index scale in CVchart
EI = C'/CV, W' in meters and CV in m/s, so EI units are seconds
2015-07-23 16:22:12 -03:00
Mark Liversedge
f93277b122 Merge pull request #1465 from amtriathlon/master
Fixed D' display in CVChart
2015-07-23 06:45:51 +01:00
Alejandro Martinez
e142ca4efc Fixed D' display in CVChart
To have better resolution and to show in m/yd.
2015-07-22 20:34:47 -03:00
Mark Liversedge
d8c01df44a Merge pull request #1464 from Joern-R/Translation
Update Translation DE
2015-07-22 10:04:53 +01:00
Joern
a79fd628a5 Update Translation DE 2015-07-22 10:50:52 +02:00
Mark Liversedge
8b292ce172 Merge pull request #1463 from amtriathlon/master
Translation fixes
2015-07-22 06:47:03 +01:00
Alejandro Martinez
6029162df3 Added Q_OBJECT macro to ComputrainerController and FortiusController
So lupdate stop complaining, it may require to run qmake
2015-07-21 19:24:46 -03:00
Alejandro Martinez
d05b93a36e Updated spanish translation 2015-07-21 19:24:11 -03:00
Alejandro Martinez
09e3f8ae40 Merge branch 'master' of https://github.com/GoldenCheetah/GoldenCheetah 2015-07-21 17:31:42 -03:00
Mark Liversedge
873fbef65f Tidy up default charts
.. PMC charts all largely look  the same

.. remove all the crappy ones

.. we should think about more we could add
2015-07-21 20:02:45 +01:00
Mark Liversedge
0a3fb01b60 Fix Top/Lowest curves not being removed 2015-07-21 20:01:40 +01:00
Mark Liversedge
0680c3de5b Merge pull request #1462 from Joern-R/Calendar
Fix "MiniCalendar" does not show colors on first open
2015-07-21 19:28:49 +01:00
Mark Liversedge
59f65b1756 Revert "LTM high and low curves not deleted"
This reverts commit 9e852faf5c.
2015-07-21 19:19:21 +01:00
Mark Liversedge
9e852faf5c LTM high and low curves not deleted
.. if you select e.g. the TriScore PMC in the Library chart
   in Trends, the high/low curves get left behind because they
   use the same name (Best_xxx).

.. ironically this was already worked around by creating a name
   that included the symbol, but this was not used when adding to
   the curve mapping.
2015-07-21 19:15:53 +01:00
Mark Liversedge
8aba4e969a Merge pull request #1461 from amtriathlon/master
Fixed default button in Edit Interval dialog
2015-07-21 19:02:00 +01:00
Alejandro Martinez
4d7aae5a81 Merge branch 'master' of https://github.com/GoldenCheetah/GoldenCheetah 2015-07-21 15:01:38 -03:00
Alejandro Martinez
2fcf0dd023 Fixed default button in Edit Interval dialog
It was color button, now it is Ok button
2015-07-21 14:59:11 -03:00
Joern
7704253a9e Fix "MiniCalendar" does not show colors on first open
... ensures that Month is changed to month of current ride (which fixes the missing color)
... tested also for new Athlete creation (without any Ride data)

Note: Root cause may be a sequence issue of setting the calendar month, setting the ride, setting to current ride.
So there might be a better way to fix the problem.
2015-07-21 19:01:57 +02:00
Mark Liversedge
abdc518652 Merge pull request #1459 from amtriathlon/master
Fixed PMC (TriScore) and Run Pace in charts.xml
2015-07-21 16:13:30 +01:00
Mark Liversedge
56f8b8cc9a Merge pull request #1460 from prokoudine/master
Typo fixes and updated Russian translation
2015-07-21 16:13:03 +01:00
Alexandre Prokoudine
c5d30e67b6 Updated Russian translation 2015-07-21 03:26:33 +03:00
Alexandre Prokoudine
4b940e61a7 Fix a typo in a user-visible message 2015-07-21 02:13:21 +03:00
Alexandre Prokoudine
11fb9bd94a Fix a typo in a user-visible message 2015-07-21 01:16:26 +03:00
Alejandro Martinez
b7640d7b0f Fixed PMC (TriScore) and Run Pace in charts.xml
Units were wrong due to the translation problem recently fixed
2015-07-20 16:16:08 -03:00
Mark Liversedge
47d91cbaaa Merge pull request #1458 from Joern-R/LTMTranslatePrep
LTM Translation Preparation
2015-07-20 15:36:20 +01:00
Mark Liversedge
170ec5f634 Merge pull request #1457 from amtriathlon/translation
Updated Metrics translation in LTM
2015-07-20 15:31:01 +01:00
Joern
ea55ba06e1 LTM Translation Preparation
... fill "units" field with original "units" from Metrics if new Chart is created
... store original "unit" into LTMSettings for later reference in automatic translation
... use a new version of LTMSettings to be compatible with any written version
2015-07-20 14:40:52 +02:00
Alejandro Martinez
c36af2094b Updated Metrics translation in LTM
- Code cleanup, removing deprecated code and refactoring
- Metrics translation is now done in a method for LTMSettings
- User defined metric name (uname) is translated if it matches english name
- User defined units (uunit) is only translated if it matches saved units
2015-07-19 14:37:13 -03:00
Mark Liversedge
ca63736c46 Reinstate Withings Measures
.. bodyfat kg, lean kg, bodyfat percent
.. fixup charts.xml to use it

NOTE: RideItem changes so touch *.y or
      make clean after pulling this commit
2015-07-18 20:18:51 +01:00
Mark Liversedge
72e2ddc0ef LTM translation only if not English
.. saves time, since translation not required

.. also avoids messing up the uunits when charts are customised
   to have common y-axis e.g. Stress Ae and An Stress and PMC
   using Stress instead of ATL, CTL, TSB etc
2015-07-17 21:24:24 +01:00
Mark Liversedge
2b03ce7bb5 More agressive EWMA
.. set the default too lax.
2015-07-17 20:04:28 +01:00
Mark Liversedge
8db5fe1f70 Merge pull request #1456 from Joern-R/UI
UI Nit - RideImportWizard
2015-07-17 18:29:24 +01:00
Joern
b317e5aec2 UI Nit - RideImportWizard 2015-07-17 19:24:17 +02:00
Mark Liversedge
b7c646d2c9 Merge pull request #1455 from Joern-R/TE1
Translation Enablement
2015-07-17 18:14:08 +01:00
Joern
48cc7a2bfa Translation Enablement 2015-07-17 18:59:07 +02:00
Mark Liversedge
246260eab2 Fixup default charts
.. cleanup PMC in home layout
.. fix weight tracking chart
2015-07-17 17:45:02 +01:00
Mark Liversedge
9883bfaec6 Merge pull request #1454 from amtriathlon/master
Added default filters for multisport use
2015-07-17 16:34:23 +01:00
Alejandro Martinez
33b2c81090 Added default filters for multisport use
Only when there is no named searchs defined yet
2015-07-17 11:55:08 -03:00
Mark Liversedge
179c5708f8 Add Moving Average Trend Line
.. using the Holt-Winters double exponential smoothing to avoid
   low on rising and high on falling data series.

.. works best with relatively noisy and contiguous data
2015-07-17 12:11:09 +01:00
Mark Liversedge
a698ea51ba Merge pull request #1453 from amtriathlon/master
Add Pace metrics for runs and swims
2015-07-17 06:59:15 +01:00
Alejandro Martinez
dc7589a3ab Add Pace metrics for runs and swims
- to default interval metrics
- to default summary metrics
- conditionally to Summary averages
2015-07-16 19:50:26 -03:00
Mark Liversedge
1d37437486 Merge pull request #1452 from amtriathlon/master
Translation fixes for Diary
2015-07-16 11:39:59 +01:00
Alejandro Martinez
e4498e6006 Translation fixes for Diary
Navigator title and days of the week in mini-calendar
2015-07-15 20:10:51 -03:00
Mark Liversedge
42b51f434d Merge pull request #1451 from amtriathlon/master
Fixes ordering of time columns in Navigator
2015-07-15 20:19:14 +01:00
Alejandro Martinez
b3098e322d Fixes ordering of time columns in Navigator
Using a QTime for isTime metrics
2015-07-15 15:21:43 -03:00
Mark Liversedge
29ff182974 Merge pull request #1450 from amtriathlon/master
Minor Translation Related Fixes
2015-07-15 15:30:32 +01:00
Alejandro Martinez
541c65eabc Minor Translation Related Fixes
"Metric Pace" translatable
Format for time columns in Navigator
2015-07-15 09:20:32 -03:00
Mark Liversedge
e364c20854 Merge pull request #1449 from amtriathlon/master
Added Distance Swim metric
2015-07-14 06:32:26 +01:00
Alejandro Martinez
a2e7dd8505 Added Distance Swim metric
To show distance in swimming units, useful for non-metric configurations
2015-07-13 22:07:29 -03:00
Mark Liversedge
6e1271310d Merge pull request #1447 from amtriathlon/master
Made WPrime metrics not relevant for runs and swims
2015-07-13 21:30:14 +01:00
Alejandro Martinez
97c551c466 Made WPrime metrics not relevant for runs and swims 2015-07-13 15:14:50 -03:00
Mark Liversedge
ad2f9de62a Merge pull request #1446 from amtriathlon/master
Extended Critical Power Estimator for Running and Swimming
2015-07-13 06:47:07 +01:00
Alejandro Martinez
c1291ac3c0 Extended Critical Power Estimator for Running and Swimming
Also fixed some translation issues
2015-07-12 23:09:55 -03:00
Mark Liversedge
95f0d7ae95 Last Month / Last Week Date Ranges
.. added as they are handy for quick compare of changes
   in the near term, without having to add temporary
   date ranges

.. we should think about an "easy" way to do this for all
   years and months for quick comparisons, in v4.0
2015-07-12 21:11:10 +01:00
Mark Liversedge
481858e90e Merge pull request #1445 from Joern-R/Translation2
Translation DE
2015-07-12 17:34:40 +01:00
Joern
1dcb8db416 Translation DE
.. update and corrections
2015-07-12 17:00:56 +02:00
gcoco
6a2c779390 Change 3.1.0 to 3.2.0 2015-07-11 20:57:35 -04:00
Mark Liversedge
d1c0de896f Climb intervals discovery config
.. off by one error stopped user from enabling the
   climb interval discovery.
2015-07-11 22:18:59 +01:00
Mark Liversedge
815fde61ba RC3 versioning 2015-07-11 21:09:17 +01:00
Mark Liversedge
587f4523a7 Fix compare allplot short distance
.. was using an int instead of a double for KM, so any interval
   less than a KM long was rounded to zero length.
2015-07-11 20:49:57 +01:00
grauser
1787be6069 JouleDevice: Changes for Joule GPS+ 2015-07-11 17:01:43 +02:00
Mark Liversedge
0502124a89 Activity list sort order hack
.. fixes 80% of the issues with sorting 'strings'

.. we cannot just return metric values since they
   need to be formatted to have the righ precision
   or conversion to pace/duration etc.
2015-07-11 08:39:38 +01:00
Mark Liversedge
4694109149 Fix PD model w/kg parameter save
.. was skipping 2p and 3p saves because it was agressively
   checking W', FTP and Pmax when they didn't apply or
   for values that were possibly correct (e.g. W'/kg > 100)
2015-07-11 07:45:35 +01:00
Mark Liversedge
9002d4a76a Fix absolute v per kg vo2max estimate
.. no need to pass across weight since we maintain two
   models; absolute and per kg already.

NOTE: this has highlighted a bug in the code related to
      estimated w/kg bests for 2 and 3 parameter models
      that will be fixed shortly.
2015-07-11 06:40:32 +01:00
Mark Liversedge
0cb6114cd6 Merge pull request #1443 from amtriathlon/master
Override toString for AvgTemp and MaxTemp metrics
2015-07-11 06:17:27 +01:00
Alejandro Martinez
0176292218 Override isRelevantForRide for metrics not relevant for runs and swims 2015-07-10 21:36:45 -03:00
Alejandro Martinez
fd3ca40e8a Override toString for AvgTemp and MaxTemp metrics
To show "-" when internal value is RideFile::NoTemp
2015-07-10 19:59:14 -03:00
Mark Liversedge
e9926f5dbd Add Vo2max to Chart Library
.. and also fix up related code nits
2015-07-10 21:16:59 +01:00
Mark Liversedge
61f0295fda Vo2max Estimate from PD Model
.. to augment the existing vo2max estimate using peak 5m
   data in a ridefile, this now adds it as an estimate from
   the PD model estimate for 5m peak power.
2015-07-10 20:33:14 +01:00
Mark Liversedge
49f4377e13 Merge pull request #1442 from amtriathlon/master
Minor Fixes WPrime::summarize units and Spanish Translation
2015-07-10 15:45:41 +01:00
Alejandro Martinez
44e37ef5ce Minor Fixes WPrime::summarize units and Spanish Translation 2015-07-10 11:15:03 -03:00
Mark Liversedge
9ca99bbe50 Withings Download Message
.. simpler and more user friendly

.. old message made little sense grammatically too !
2015-07-10 09:25:33 +01:00
Mark Liversedge
36ad3a1025 Merge pull request #1440 from amtriathlon/master
Updated Spanish Translation
2015-07-10 08:21:10 +01:00
Alejandro Martinez
da17240900 Updated Spanish Translation 2015-07-09 23:58:11 -03:00
Mark Liversedge
eea7f8eeb9 Merge pull request #1439 from Joern-R/Translation
Update Translation DE
2015-07-09 18:01:38 +01:00
Joern
7a20e2679a Update Translation DE 2015-07-09 19:06:39 +02:00
Mark Liversedge
2f7f5c7234 Fixup WPrime.cpp translation snafu
.. use 'tr()' not missing 'QT_TRANSALATION_NOOP'
2015-07-08 23:24:16 +01:00
Mark Liversedge
9314ceff5f Merge pull request #1437 from prokoudine/master
Fixes for user-visible messages and updated Russian translation, take two
2015-07-08 23:16:44 +01:00
Alexandre Prokoudine
760825fcdc Updated Russian translation 2015-07-09 01:04:27 +03:00
Alexandre Prokoudine
5fa4d58be0 Refer to Bluetooth/BLE for pairing BLE devices rather than to ANT+ 2015-07-09 00:46:41 +03:00
Mark Liversedge
b358563318 Get wbalzone user-visible messages to show up in translation files 2015-07-09 00:45:42 +03:00
Alexandre Prokoudine
83e0f4239a Rename rides to activities for multi-sport athletes 2015-07-09 00:38:37 +03:00
Alexandre Prokoudine
7515f0aa9f Fix a typo in a user-visible message 2015-07-09 00:35:50 +03:00
Mark Liversedge
985cea4020 Revert "Edit interval distance"
This reverts commit c4c15ada67.
2015-07-08 14:57:47 +01:00
Mark Liversedge
36e768ce00 Merge pull request #1435 from amtriathlon/master
Fixed default CV value when pace units change
2015-07-08 06:46:34 +01:00
Alejandro Martinez
c4c15ada67 Edit interval distance
Implements #1432 as an option for Edit Interval, the user must
enable it via checkbox and confirm before it modifies speed and
distance for the underlying samples.
2015-07-07 23:14:50 -03:00
Alejandro Martinez
65cf9706ac Fixed default CV value when pace units change 2015-07-07 19:06:37 -03:00
Mark Liversedge
3da0972d4b Recognise Simon Brewer
.. in contributors
2015-07-07 09:08:53 +01:00
Simon Brewer
f37669bcc7 Fix SEGV in LTM PMC plot when no data
.. if there is no data available for the period slected
   the LTM plot crashed due to an uninitialised variable.
2015-07-07 09:08:52 +01:00
Mark Liversedge
5909a03bcc Merge pull request #1434 from amtriathlon/master
Added some charts for multisport usage
2015-07-06 21:30:44 +01:00
Alejandro Martinez
fc83c2b757 CP Chart - set search intervals when changing to Ward-Smith model
Used the same defaults as CP3model (30'-60'), inline with PDModel.cpp,
although they seem rather odd, IMHO. Part of #1424.
2015-07-06 10:57:07 -03:00
Alejandro Martinez
cf14216a03 Merge branch 'master' of https://github.com/GoldenCheetah/GoldenCheetah 2015-07-05 17:57:02 -03:00
Alejandro Martinez
789a9e864b Merge branch 'master' of https://github.com/GoldenCheetah/GoldenCheetah 2015-07-05 17:40:54 -03:00
Mark Liversedge
82ddf4acaa Reduce MeanMax search space
.. to speed up extracting the mean maximals.

.. we still work at 1s intervals for very short durations
   but gradually increase to longer as the duration gets
   over an hour.

.. for almost all usage this will not make a difference to the
   values extracted since the actual values are largely rounded
   to integer values (and therefore the granularity was already
   being disposed after the search).

.. the exact durations are;

        Duration    Increment
        <120        1
        <600        2
        <1200       5
        <3600       20
        <7200       120
        >= 7200     300
2015-07-05 21:37:43 +01:00
Alejandro Martinez
a01cdffaa7 Added some charts for multisport usage
Activities: CV
Trends: CV and Speed histogram
Library: PMC (TriScore), Time in Pace Zones, Run and Swim Pace
2015-07-05 16:27:43 -03:00
Mark Liversedge
ec893f2b7c Check Season Range after edit/load
.. to make sure the date range is not negative, since that
   causes SEGV all over the codebase, which assumes a date
   range is always positive.
2015-07-05 09:40:22 +01:00
Mark Liversedge
805772a2c4 Revert "Add support for reading multi sport FIT files."
This reverts commit 7fdedf0bfe.

.. we will come back to look at multisport FIT files in v4.0
   The main problem is related to the position of the SESSION
   header within the file.
2015-07-04 18:15:01 +01:00
Jan de Visser
ecfb6afbfb Link libdl.so for D2XX on Linux/BSD hosts
.. libdl enables dynamic linking, this is required when
   D2XX support is compiled in.
2015-07-03 15:16:54 +01:00
Mark Liversedge
544afa8e75 Support Moxy Firmware v1.0
.. fit file manu:76 identified as Moxy
.. support 7 field CSV, ignore session number

NOTE: support for UTC dates is not present since we
      have no way of checking what TZ the ride was
      recorded in !
2015-07-03 14:57:09 +01:00
Mark Liversedge
31cdb21f04 Add Ae/An TISS to peak power charts
.. show the An / Ae stress to provide context to the
   changes in peak power durations.

.. or "why my anaerobic power isn't getting any better
   despite spending all my time doing sweetspot"
2015-07-02 08:39:21 +01:00
Mark Liversedge
47dac73da1 Interval Discovery config default no PEAKS
.. since interval discovery impacts load time (reading from backing
   store) and refresh time (computing metrics for intervals) we do
   not search for PEAK power/pace by default.

.. if the user wants that info (which is of limited value) then they
   can switch it on in preferences/options.

.. should help to reduce performance overhead for startup and refresh
   especially as an experience immediately after upgrading to v3.2
2015-07-02 07:45:27 +01:00
Mark Liversedge
1f53d249e0 Merge pull request #1429 from amtriathlon/master
Metric to Imperial conversion applied twice in Trends->RideSummary
2015-07-01 06:41:26 +01:00
Alejandro Martinez
92c89d43ea Metric to Imperial conversion applied twice in Trends->RideSummary
Now it is done by RideMetric::toString. Fixes #1424
2015-06-30 19:25:55 -03:00
Mark Liversedge
9c444c7fcb Merge pull request #1426 from Joern-R/translation
Update Translation DE - 2nd commit
2015-06-28 19:09:47 +01:00
Joern
7bc2c79e74 Update Translation DE - 2nd commit
.. missed some parts
2015-06-28 20:15:05 +02:00
Joern
02a43bf045 Update Translation DE
.. add missing translation
.. fix some texts
2015-06-28 20:06:55 +02:00
Mark Liversedge
382b32a73d Merge pull request #1425 from Joern-R/translation
Update Translation DE
2015-06-28 19:02:08 +01:00
1126 changed files with 1953569 additions and 81594 deletions

20
.gitignore vendored
View File

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

124
.travis.yml Normal file
View File

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

839
COPYING
View File

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

View File

@@ -20,7 +20,7 @@ CONTENTS
2. ADDING OPTIONAL DEPENDENCIES
- FTDI D2XX
- SRMIO
- liboauth
- kQOAuth
- QwtPlot3d
- libkml
- libusb
@@ -94,12 +94,12 @@ $ cd GoldenCheetah
$ ls
You should see a number of directories such as doc, qwt, src etc. If you are
building the latest development release you may need to check it out. At the
time of writing the latest development release is release_3.0.0dev, if you
want to build version 3 then you should perform the next command, otherwise
skip to 1.5.
wanting to build a particular release you need to checkout the release. To
build a release you need to checkout the code at the tag for the release.
$ checkout release_3.0.0dev
A list of releases can be found at: https://github.com/GoldenCheetah/GoldenCheetah/tags
$ git checkout V3.3-RC1
$ ls
You will now see an updated version of this walkthrough, please jump to using
@@ -227,7 +227,7 @@ And you're up and running.
===============================
- SRMIO
- liboauth
- kQOAuth
- QwtPlot3d
- libkml
- libusb
@@ -244,12 +244,13 @@ should be taken into account.
SRMIO (git)
./configure CFLAGS="-isysroot /Developer/SDKs/MacOSX10.7.sdk -arch x86_64" CPPFLAGS=-I/usr/local/D2XX/ --disable-dependency-tracking
2.2 Liboauth - For Twitter support
----------------------------------
2.2 kQOAuth - For OAuth Authentication
--------------------------------------
oauth (0.8.8)
kQOauth (0.98)
qmake
./configure CFLAGS="-isysroot /Developer/SDKs/MacOSX10.7.sdk -arch x86_64 CURL_CFLAGS="-I/Developer/SDKs/MacOSX10.7.sdk/usr/include/curl" CURL_LIBS="-lcurl" --disable-dependency-tracking
2.3 QwtPlot3d - For 3d plot support
-----------------------------------

9
README
View File

@@ -1,9 +0,0 @@
Golden Cheetah install and build instructions are documented
for each platform;
INSTALL-WIN32 For building on Microsoft Windows
INSTALL-LINUX For building on Ubuntu Linux
INSTALL-MAC For building on Apple OS X
Alternatively official builds are available from http://www.goldencheetah.org
whilst latest developer builds are available from http://goldencheetah.stand2surf.net

19
README.md Normal file
View File

@@ -0,0 +1,19 @@
Golden Cheetah install and build instructions are documented
for each platform;
INSTALL-WIN32 For building on Microsoft Windows
INSTALL-LINUX For building on Ubuntu Linux
INSTALL-MAC For building on Apple OS X
OSX: [![Build Status](https://travis-ci.org/GoldenCheetah/GoldenCheetah.svg?branch=master)](https://travis-ci.org/GoldenCheetah/GoldenCheetah)
Windows: [![Build status](https://ci.appveyor.com/api/projects/status/i6dwn4m8oyu52ihi?svg=true)](https://ci.appveyor.com/project/Joern-R/goldencheetah-knhd8)
[![Coverity Status](https://scan.coverity.com/projects/7503/badge.svg)](https://scan.coverity.com/projects/goldencheetah-goldencheetah)
Alternatively official builds are available from http://www.goldencheetah.org
whilst latest developer builds are available from http://goldencheetah.stand2surf.net

32
appveyor.yml Normal file
View File

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

View File

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

View File

@@ -0,0 +1,316 @@
From 7be04e65a53b22ce382d640a6c409b5d3bfe5645 Mon Sep 17 00:00:00 2001
From: Joern <joern.rm@gmail.com>
Date: Sat, 20 Dec 2014 12:42:37 +0100
Subject: [PATCH] Patch-Windows-MingGW-subset for GC
... reduce the libs in Make to what GoldenCheetah needs
... add two functions missing in MingGW standard libs
---
Makefile.am | 2 +-
configure.ac | 44 -------------------
src/Makefile.am | 2 +-
src/kml/base/file_posix.cc | 102 ++++++++++++++++++++++++++++++++++++++++++++
src/kml/base/string_util.cc | 17 ++++++++
third_party/Makefile.am | 42 +++---------------
6 files changed, 126 insertions(+), 83 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 2be0803..e29201e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,7 @@
ACLOCAL_AMFLAGS = -I m4
# Order is important:
-SUBDIRS = third_party src testdata examples msvc xcode
+SUBDIRS = third_party src
EXTRA_DIST = \
AUTHORS \
diff --git a/configure.ac b/configure.ac
index d5fa75f..033128b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -203,23 +203,6 @@ AC_CHECK_LIB(pthread, pthread_create,,
AC_CONFIG_FILES([
Makefile
- examples/Makefile
- examples/domviewer/Makefile
- examples/engine/Makefile
- examples/gpx/Makefile
- examples/gx/Makefile
- examples/hellonet/Makefile
- examples/helloworld/Makefile
- examples/java/Makefile
- examples/kml/Makefile
- examples/python/Makefile
- examples/regionator/Makefile
- examples/wxregionator/Makefile
- examples/wxviewer/Makefile
- examples/xsd/Makefile
- msvc/Makefile
- msvc/examples/Makefile
- msvc/tests/Makefile
src/Makefile
src/kml/Makefile
src/kml/convenience/Makefile
@@ -228,34 +211,7 @@ AC_CONFIG_FILES([
src/kml/regionator/Makefile
src/kml/base/Makefile
src/kml/xsd/Makefile
- src/swig/Makefile
- src/swig/java/Makefile
- src/swig/python/Makefile
- testdata/Makefile
- testdata/atom/Makefile
- testdata/balloon/Makefile
- testdata/csv/Makefile
- testdata/deprecated/Makefile
- testdata/gdata/Makefile
- testdata/gmaps/Makefile
- testdata/gpx/Makefile
- testdata/gx/Makefile
- testdata/kml/Makefile
- testdata/kmz/Makefile
- testdata/kmz/files/Makefile
- testdata/kmz/kmzfiles/Makefile
- testdata/kmz/rumsey/Makefile
- testdata/kmz/rumsey/kml/Makefile
- testdata/kmz/rumsey/imagery/Makefile
- testdata/links/Makefile
- testdata/style/Makefile
- testdata/style/weather/Makefile
- testdata/update/Makefile
- testdata/xal/Makefile
- testdata/xsd/Makefile
third_party/Makefile
- xcode/Makefile
- xcode/LibKML/Makefile
])
AC_OUTPUT
diff --git a/src/Makefile.am b/src/Makefile.am
index 0bf15ac..721209e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = kml swig
+SUBDIRS = kml
# TODO: use the phc files in msvc.
EXTRA_DIST = \
diff --git a/src/kml/base/file_posix.cc b/src/kml/base/file_posix.cc
index b9461c0..920a996 100644
--- a/src/kml/base/file_posix.cc
+++ b/src/kml/base/file_posix.cc
@@ -33,8 +33,110 @@
#include <sys/stat.h>
#include <unistd.h> // For unlink, close.
+// START PATCH
+#include <fcntl.h>
+#include <sys/time.h>
+#include <sys/stat.h>
+// END PATCH
+
namespace kmlbase {
+// START PATCH
+// Implementation of missing functions
+
+/* mkstemp extracted from libc/sysdeps/posix/tempname.c. Copyright
+ (C) 1991-1999, 2000, 2001, 2006 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version. */
+
+static const char letters[] =
+"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+
+/* Generate a temporary file name based on TMPL. TMPL must match the
+ rules for mk[s]temp (i.e. end in "XXXXXX"). The name constructed
+ does not exist at the time of the call to mkstemp. TMPL is
+ overwritten with the result. */
+int
+mkstemp (char *tmpl)
+{
+ int len;
+ char *XXXXXX;
+ static unsigned long value;
+ unsigned long random_time_bits;
+ unsigned int count;
+ int fd = -1;
+ int save_errno = errno;
+
+ /* A lower bound on the number of temporary files to attempt to
+ generate. The maximum total number of temporary file names that
+ can exist for a given template is 62**6. It should never be
+ necessary to try all these combinations. Instead if a reasonable
+ number of names is tried (we define reasonable as 62**3) fail to
+ give the system administrator the chance to remove the problems. */
+#define ATTEMPTS_MIN (62 * 62 * 62)
+
+ /* The number of times to attempt to generate a temporary file. To
+ conform to POSIX, this must be no smaller than TMP_MAX. */
+#if ATTEMPTS_MIN < TMP_MAX
+ unsigned int attempts = TMP_MAX;
+#else
+ unsigned int attempts = ATTEMPTS_MIN;
+#endif
+
+ len = strlen (tmpl);
+ if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX"))
+ {
+ errno = EINVAL;
+ return -1;
+ }
+
+/* This is where the Xs start. */
+ XXXXXX = &tmpl[len - 6];
+
+ /* Get some more or less random data. */
+ {
+ struct timeval tv;
+ gettimeofday (&tv, NULL);
+ random_time_bits = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec;
+ }
+ value += random_time_bits ^ getpid ();
+
+ for (count = 0; count < attempts; value += 7777, ++count)
+ {
+ unsigned long v = value;
+
+ /* Fill in the random bits. */
+ XXXXXX[0] = letters[v % 62];
+ v /= 62;
+ XXXXXX[1] = letters[v % 62];
+ v /= 62;
+ XXXXXX[2] = letters[v % 62];
+ v /= 62;
+ XXXXXX[3] = letters[v % 62];
+ v /= 62;
+ XXXXXX[4] = letters[v % 62];
+ v /= 62;
+ XXXXXX[5] = letters[v % 62];
+
+ fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL, _S_IREAD | _S_IWRITE);
+ if (fd >= 0)
+ {
+ errno = save_errno;
+ return fd;
+ }
+ else if (errno != EEXIST)
+ return -1;
+ }
+
+ /* We got out of the loop because we ran out of combinations to try. */
+ errno = EEXIST;
+ return -1;
+}
+// END PATCH
+
// Internal to the POSIX File class.
static bool StatFile(const char* path, struct stat* stat_data) {
struct stat tmp;
diff --git a/src/kml/base/string_util.cc b/src/kml/base/string_util.cc
index b3a9654..3fdba2b 100644
--- a/src/kml/base/string_util.cc
+++ b/src/kml/base/string_util.cc
@@ -31,6 +31,23 @@
namespace kmlbase {
+// START PATCH
+int strncasecmp(const char *s1, const char *s2, size_t n) {
+ while (*s1 != 0 && tolower(*s1) == tolower(*s2)) {
+ ++s1;
+ ++s2;
+ }
+
+ return
+ (*s2 == 0)
+ ? (*s1 != 0)
+ : (*s1 == 0)
+ ? -1
+ : (tolower(*s1) - tolower(*s2));
+}
+
+// ENDPATCH
+
void b2a_hex(uint32_t i, char* out) {
char map[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f'};
diff --git a/third_party/Makefile.am b/third_party/Makefile.am
index b73dec3..fe34dea 100644
--- a/third_party/Makefile.am
+++ b/third_party/Makefile.am
@@ -12,7 +12,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/third_party/zlib-1.2.3/contrib \
-I$(top_srcdir)/third_party/gtest-1.7.0/include
lib_LTLIBRARIES = libminizip.la liburiparser.la
-noinst_LTLIBRARIES = libgtest.la libgtest_main.la
+#noinst_LTLIBRARIES = libgtest.la libgtest_main.la
libminizip_la_SOURCES = \
zlib-1.2.3/contrib/minizip/unzip.c \
@@ -83,11 +83,11 @@ libboostconfigplatforminclude_HEADERS = \
$(boost)/config/platform/linux.hpp \
$(boost)/config/platform/macos.hpp
-libgtest_la_SOURCES = \
- gtest-1.7.0/src/gtest-all.cc
+#libgtest_la_SOURCES = \
+# gtest-1.7.0/src/gtest-all.cc
-libgtest_main_la_SOURCES = gtest-1.7.0/src/gtest_main.cc
-libgtest_main_la_LIBADD = libgtest.la
+#libgtest_main_la_SOURCES = gtest-1.7.0/src/gtest_main.cc
+#libgtest_main_la_LIBADD = libgtest.la
# TODO: add the new gtest libs for windows.
# gtest-1.7.0.win32/debug/gtest.lib \
@@ -149,38 +149,6 @@ EXTRA_DIST = \
$(boost)/config/stdlib/sgi.hpp \
$(boost)/config/stdlib/stlport.hpp \
$(boost)/config/stdlib/vacpp.hpp \
- gtest-1.7.0/include/gtest/gtest-death-test.h \
- gtest-1.7.0/include/gtest/gtest-message.h \
- gtest-1.7.0/include/gtest/gtest-param-test.h \
- gtest-1.7.0/include/gtest/gtest-param-test.h.pump \
- gtest-1.7.0/include/gtest/gtest-printers.h \
- gtest-1.7.0/include/gtest/gtest-spi.h \
- gtest-1.7.0/include/gtest/gtest-test-part.h \
- gtest-1.7.0/include/gtest/gtest-typed-test.h \
- gtest-1.7.0/include/gtest/gtest.h \
- gtest-1.7.0/include/gtest/gtest_pred_impl.h \
- gtest-1.7.0/include/gtest/gtest_prod.h \
- gtest-1.7.0/include/gtest/internal/gtest-death-test-internal.h \
- gtest-1.7.0/include/gtest/internal/gtest-filepath.h \
- gtest-1.7.0/include/gtest/internal/gtest-internal.h \
- gtest-1.7.0/include/gtest/internal/gtest-linked_ptr.h \
- gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h \
- gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h.pump \
- gtest-1.7.0/include/gtest/internal/gtest-param-util.h \
- gtest-1.7.0/include/gtest/internal/gtest-port.h \
- gtest-1.7.0/include/gtest/internal/gtest-string.h \
- gtest-1.7.0/include/gtest/internal/gtest-tuple.h \
- gtest-1.7.0/include/gtest/internal/gtest-tuple.h.pump \
- gtest-1.7.0/include/gtest/internal/gtest-type-util.h \
- gtest-1.7.0/include/gtest/internal/gtest-type-util.h.pump \
- gtest-1.7.0/src/gtest-death-test.cc \
- gtest-1.7.0/src/gtest-filepath.cc \
- gtest-1.7.0/src/gtest-internal-inl.h \
- gtest-1.7.0/src/gtest-port.cc \
- gtest-1.7.0/src/gtest-printers.cc \
- gtest-1.7.0/src/gtest-test-part.cc \
- gtest-1.7.0/src/gtest-typed-test.cc \
- gtest-1.7.0/src/gtest.cc \
uriparser-0.7.5/COPYING \
uriparser-0.7.5.win32/debug/uriparser.lib \
uriparser-0.7.5.win32/release/uriparser.lib \
--
1.9.5.github.0

Binary file not shown.

View File

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

BIN
doc/contrib/cTSS.pdf Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

View File

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

441
doc/user/formula-syntax.txt Normal file
View File

@@ -0,0 +1,441 @@
MATHS FUNCTIONS
cos(p1)
tan(p1)
sin(p1)
acos(p1)
atan(p1)
asin(p1)
cosh(p1)
tanh(p1)
sinh(p1)
acosh(p1)
atanh(p1)
asinh(p1)
exp(p1)
log(p1)
log10(p1)
ceil(p1)
floor(p1)
round(p1)
fabs(p1)
isinf(p1)
isnan(p1)
LIST / VECTOR REDUCE FUNCTIONS
sum(...)
mean(...)
max(...)
min(...)
count(...)
which(...)
MODEL FUNCTIONS
estimate(model, (cp|ftp|w'|pmax|x))
vdottime(VDOT, distance)
MEAN MAX and ZONE FUNCTIONS
best(...)
tiz(...)
PMC FUNCTIONS
lts(p1)
sts(p1)
sb(p1)
ctl
tsb
atl
rr(p1)
SET/UNSET FUNCTIONS
set(...)
unset(...)
isset(p1)
CONFIGURED PARAMETERS
config(cranklength)
config(cp)
config(w)
config(pmax)
config(cv)
config(scv)
config(height)
config(weight)
config(lthr)
config(maxhr)
config(rhr)
config(units)
const(e)
const(pi)
DATE RANGE SELECTION
daterange(start)
daterange(stop)
RIDE SAMPLE DATA
SECS
CADENCE
CADENCED
HEARTRATE
HEARTRATED
DISTANCE
SPEED
SPEEDD
TORQUE
TORQUED
POWER
POWERD
ALTITUDE
LON
LAT
HEADWIND
SLOPE
TEMPERATURE
BALANCE
LEFTEFFECTIVENESS
RIGHTEFFECTIVENESS
LEFTSMOOTHNESS
RIGHTSMOOTHNESS
SMO2
THB
RUNVERT
RUNCADENCE
RUNCONTACT
LEFTPCO
RIGHTPCO
LEFTPPB
RIGHTPPB
LEFTPPE
RIGHTPPE
LEFTPPPB
RIGHTPPPB
LEFTPPPE
RIGHTPPPE
RIDE AND INTERVAL METRICS
95%_Heartrate
aBikeScore
Activities
Aerobic_TISS
Aerobic_TISS
aIF
Anaerobic_TISS
Anaerobic_TISS
aNP
aPower_Efficiency_Factor
aPower_Relative_Intensity
aPower_Response_Index
Athlete_Bodyfat
Athlete_Bodyfat_Percent
Athlete_Lean_Weight
Athlete_Weight
aTSS
aTSS_per_hour
Average_aPower
Average_Cadence
Average_Core_Temperature
Average_Heart_Rate
Average_Left_Peak_Power_Phase_End
Average_Peak_Left_Power_Phase_Length
Average_Left_Peak_Power_Phase_Start
Average_Left_Pedal_Center_Offset
Average_Left_Pedal_Smoothness
Average_Left_Power_Phase_End
Average_Left_Power_Phase_Length
Average_Left_Power_Phase_Start
Average_Left_Torque_Effectiveness
Average_Power
Average_Power_Variance
Average_Right_Peak_Power_Phase_End
Average_Right_Peak_Power_Phase_Length
Average_Right_Peak_Power_Phase_Start
Average_Right_Pedal_Center_Offset
Average_Right_Pedal_Smoothness
Average_Right_Power_Phase_End
Average_Right_Power_Phase_Length
Average_Right_Power_Phase_Start
Average_Right_Torque_Effectiveness
Average_SmO2
Average_Speed
Average_Temp
Average_tHb
Average_Cadence
Average_Heart_Rate
Average_Power
Average_Speed
aVI
axPower
Below_CP_Work
BikeScore
BikeScore
Calendar_Text
Calories
Climb_Rating
color
CP
CP_setting
Daniels_EqP
Daniels_Points
Daniels_EqP
Daniels_Points
Data
Date
Device
Device_Info
Distance
Distance_Swim
Duration
EOA
Efficiency_Factor
Elevation_Gain
Elevation_Gain_Carrying
Elevation_Loss
Elevation_Gain
Estimated_VO2MAX
Fatigue_Index
File
GOVSS
Gradient
Heartbeats
HrNp_Ratio
HrPw_Ratio
IF
Interesting
isRun
IWF
Left/Right_Balance
LNP
Max_Cadence
Max_Core_Temperature
Max_Heartrate
Max_Power
Max_Power_Variance
Max_SmO2
Max_Speed
Max_Temp
Max_tHb
Max_W'_Expended
Maximum_W'bal_Match
Min_Heartrate
Min_SmO2
Min_tHb
Minimum_W'bal
MMP_Percentage
Nonzero_Average_Power
Notes
NP
Objective
Pace
Pace_Swim
Pacing_Index
path
Pmax
Power_Percent_of_Max
Power_Zone
Recording_Interval
Relative_Intensity
Response_Index
Route
RPE
RTP
Session_RPE
Skiba_aVI
Skiba_VI
Sport
SRI
Start_Date
Start_Time
STP
SwimScore
Tau
Test
Time
Time_Carrying
Time_Moving
Time_Moving
TISS_Aerobicity
TPace
TRIMP_Points
TRIMP_Zonal_Points
TRIMP(100)_Points
TriScore
TSS
TSS_per_hour
VAM
VDOT
VI
W'
W'_Watts
W'_Work
W'bal_Matches_>_2KJ
W'bal_TAU
Watts_Per_Kilogram
Watts_RPE_Ratio
Weight
Work
Workbeat_stress
Workout_Code
xPace
xPace_Swim
xPower
xPower_Swim
TIME IN ZONES
Heartrate
H1_Percent_in_Zone
H1_Time_in_Zone
H10_Percent_in_Zone
H10_Time_in_Zone
H2_Percent_in_Zone
H2_Time_in_Zone
H3_Percent_in_Zone
H3_Time_in_Zone
H4_Percent_in_Zone
H4_Time_in_Zone
H5_Percent_in_Zone
H5_Time_in_Zone
H6_Percent_in_Zone
H6_Time_in_Zone
H7_Percent_in_Zone
H7_Time_in_Zone
H8_Percent_in_Zone
H8_Time_in_Zone
H9_Percent_in_Zone
H9_Time_in_Zone
Power
L1_Percent_in_Zone
L1_Sustained_Time
L1_Time_in_Zone
L10_Percent_in_Zone
L10_Sustained_Time
L10_Time_in_Zone
L2_Percent_in_Zone
L2_Sustained_Time
L2_Time_in_Zone
L3_Percent_in_Zone
L3_Sustained_Time
L3_Time_in_Zone
L4_Percent_in_Zone
L4_Sustained_Time
L4_Time_in_Zone
L5_Percent_in_Zone
L5_Sustained_Time
L5_Time_in_Zone
L6_Percent_in_Zone
L6_Sustained_Time
L6_Time_in_Zone
L7_Percent_in_Zone
L7_Sustained_Time
L7_Time_in_Zone
L8_Percent_in_Zone
L8_Sustained_Time
L8_Time_in_Zone
L9_Percent_in_Zone
L9_Sustained_Time
L9_Time_in_Zone
Pace
P1_Percent_in_Pace_Zone
P1_Time_in_Pace_Zone
P10_Percent_in_Pace_Zone
P10_Time_in_Pace_Zone
P2_Percent_in_Pace_Zone
P2_Time_in_Pace_Zone
P3_Percent_in_Pace_Zone
P3_Time_in_Pace_Zone
P4_Percent_in_Pace_Zone
P4_Time_in_Pace_Zone
P5_Percent_in_Pace_Zone
P5_Time_in_Pace_Zone
P6_Percent_in_Pace_Zone
P6_Time_in_Pace_Zone
P7_Percent_in_Pace_Zone
P7_Time_in_Pace_Zone
P8_Percent_in_Pace_Zone
P8_Time_in_Pace_Zone
P9_Percent_in_Pace_Zone
P9_Time_in_Pace_Zone
W'bal
W1_Above_CP_W'bal_Low_Fatigue
W2_Above_CP_W'bal_Moderate_Fatigue
W3_Above_CP_W'bal_Heavy_Fatigue
W4_Above_CP_W'bal_Severe_Fatigue
W1_W'bal_Low_Fatigue
W2_W'bal_Moderate_Fatigue
W3_W'bal_Heavy_Fatigue
W4_W'bal_Heavy_Fatigue
W1_W'bal_Work_Low_Fatigue
W2_W'bal_Work_Moderate_Fatigue
W3_W'bal_Work_Heavy_Fatigue
W4_W'bal_Work_Severe_Fatigue
PEAK DURATION METRICS
1_min_Peak_Pace
1_min_Peak_Pace_Swim
1_min_Peak_Power
1_min_Peak_Power_HR
1_min_Peak_WPK
1_sec_Peak_Power
1_sec_Peak_WPK
10_min_Peak_Pace
10_min_Peak_Pace_Swim
10_min_Peak_Power
10_min_Peak_Power_HR
10_min_Peak_WPK
10_sec_Peak_Pace
10_sec_Peak_Pace_Swim
10_sec_Peak_Power
10_sec_Peak_WPK
15_sec_Peak_Pace
15_sec_Peak_Pace_Swim
15_sec_Peak_Power
15_sec_Peak_WPK
2_min_Peak_Pace
2_min_Peak_Pace_Swim
2_min_Peak_Power
20_min_Peak_Pace
20_min_Peak_Pace_Swim
20_min_Peak_Power
20_min_Peak_Power_HR
20_min_Peak_WPK
20_sec_Peak_Pace
20_sec_Peak_Pace_Swim
20_sec_Peak_Power
20_sec_Peak_WPK
3_min_Peak_Pace
3_min_Peak_Pace_Swim
3_min_Peak_Power
30_min_Peak_Pace
30_min_Peak_Pace_Swim
30_min_Peak_Power
30_min_Peak_Power_HR
30_min_Peak_WPK
30_sec_Peak_Pace
30_sec_Peak_Pace_Swim
30_sec_Peak_Power
30_sec_Peak_WPK
5_min_Peak_Pace
5_min_Peak_Pace_Swim
5_min_Peak_Power
5_min_Peak_Power_HR
5_min_Peak_WPK
5_sec_Peak_Power
5_sec_Peak_WPK
60_min_Peak_Pace
60_min_Peak_Pace_Swim
60_min_Peak_Power
60_min_Peak_Power_HR
60_min_Peak_WPK
8_min_Peak_Pace
8_min_Peak_Pace_Swim
8_min_Peak_Power
90_min_Peak_Pace
90_min_Peak_Pace_Swim
90_min_Peak_Power

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