.. xdata("name", "series" | km | secs) - returns a vector of xdata.
.. no resampling or interpolation is applied since the user can
do this with the resample() and interpolate() functions.
This has been reported to produce garbled output on Windows and,
according to https://doc.qt.io/qt-5/qtglobal.html#qPrintable,
it is dangerous since the array returned by QString::toLocal8Bit()
will fall out of scope, so lets use a safer version to avoid
the risk of crashes hard to debug.
[publish binaries]
For the same reason metadata.xml is now global.
Also load default measures groups even when measures.ini is present,
this may change when we provide an UI to edit measures.ini, but for now
it avoids users breaking body and hrv features.
[publish binaries]
.. Global settings (themes, metadata etc) are now maintained
in the config dialog as in the past, whilst athlete settings
(such as zones, measures etc) are now maintained in a new
config dialog accessible from the athlete view (gear icon).
.. Config changes are communicated via two signals;
* Context::configChanged(qint32)
* GlobalContext::configChanged(qint32)
Crucially, all global context signals are cascaded through
the athlete contexts-- so athlete specific widgets only
need to connect to the athlete context signal (and will get
athlete and global config change notifications).
Whilst global widgets such as the sidebar and mainwindow
need only connect to the globalcontext signal since they
are not interested in athlete specific details.
[publish binaries]
.. Ride metadata was associated to the athlete rather than a
global setting. This was a serious design flaw since user
metrics can reference metadata.
.. A global metadata.xml file is generated on startup by
consolidating all athlete level settings into a single
configuration.
.. Other dependencies were also moved; SpecialFields,
ColorEngine and UseMetricUnits.
.. We should now be able to remove athlete configuration
from the config dialog and put it into the athlete view
instead.
This will also fixe a long standing issue with
configuring athlete settings when multiple athletes are
open.
[publish binaries]
.. the 'Details' chart now combines editing the metada fields such as
workout, sport, notes and so on, with an additional tab 'Raw Data'
that contains the RideEditor.
.. it is now no longer possible to add Editor inidividually and the
Summary and Details chart is deprecated (Summary will also be
removed once Overview has enough functionality to replace it).
This reverts commit 6bc48200e7.
It is crashing on Windows 8, I can't debug on that version
and it is not that useful feature, --debug gives more information.
[publish binaries]
.. the views were not being deleted, so the global context connection
to configChanged signal was still called, but the athlete and
context were long gone - so SEGV (!)
.. the reason this didn't get triggered in earlier releases is due to
the fact the event was disconnected when the athlete context was
deleted.
.. move thread based load of ridecache into ridecache, this fixes a
serious regression.
.. previously because the ridecache was created in a thread it could
not attach to the events from the main gui event loop.
.. we now load the RideDB.json file in a worker thread, but the
ridecache, and its items are created in the main thread.
Since F3 was assigned to Calibration, its use as modifier was deprecated.
Also nextDisplay is not implemented so we can do some cleanup.
F1 is restored to their original function: start/pause and F2 is used
for new lap, in both cases with debouncing to avoid false activations.
This way the same functions enabled for ANT+ remotes are available via HBC:
Start&Pause: F1
Lap/Interval: F2
Load increase/decrease: +/-
Calibration: F3
measures.ini is looked for in Athlete's config folder,
it should have a section for each measures group,
nutrition data with Energy and Macros is provided as example.
Moved default weight to About and removed RiderPhysPage and created
a tab for each measures group under Measures.
MeasuresPage handles conversion between metric and imperial units
Generalized CSV import with configurable headers.
MeasuresDownload enables download from Withings/Todays Plan only for Body
measures.
This is Part 1/2 of #2872
.. GlobalContext::context() provides a global context that is not
tied to an athlete or MainWindow.
.. At present it just offers signals for config changes but will
likely see more context move across as the application preferences
and athlete configuration are separated as we enhance support
for multiple athletes.
Similar to Linux/macOS builds, messages are redirected to goldencheetah.log
when not output to console is requested, but instead of relying on low level
stderr redirection a message handler logging directly to the file is installed.
[publish binaries]
configdialog_ptr is already maintained to handle raise event,
cleanup is moved to destructor to ensure it is always called,
and it is used to ensure:
1) only one instance is created from MainWindow
2) it is closed on MainWindow destructor
Fixes#1918
The logic to generate synthetic speed/distance/cadence sample data
from length records was removed from FitRideFile, and Fix Lap Swim
data processor is now used for that task, this is simpler, avoids
code duplication and preserves other data s.t. HR and Temp
Fixes#3545
total_timer_time is used as length duration instead of total_elapsed_time
to support Suunto lap swim files
Fixes#3272
.. since the context of the first athlete is used as a partial
application context across the code we now prohibit closing
the first athlete opened.
.. we will separate out the app and athlete context shortly
but this will at least protect against SEGV.
[publish binaries]
.. Show days since last activity and disable config icon since there
isn't an appropriate action for now
.. Athletes can be opened and closed via the tiles and a reusable
'Button' overview widget is available for re-use elsewhere.
.. Part 3 will enable checking for downloadable data to show an
indicator on the tile for e.g. coaches with multiple athletes.
NOTE:
There are a few issues regarding application context separation
from athlete context that need fixing up (if you close the first
athlete loaded expect crashes). Will look at this as a separate
update since its been there for some time and is not related to
the new view per se.
.. modern light now uses the Fiori Belize Blue theme.
.. this means that the overview (chartspace) background is now also
configurable, so the existing themes could be updated.
.. probably need to revisit all the themes tbh.
There has been some reports about performance issues on Windows,
and this was a debug tool for a feature which has been stable
for years, so we can remove it to avoid the overhead.
[publish binaries]