.. updated the overview chart to support trend view and summarise
a season or date range.
.. scope now meaningful in the item registry.
.. added a new TopNOverviewItem to view a ranked list of activities
by metric.
.. updated sparkline to plot variable range (>30days)
.. sort and multisort datafilter functions adjusted as caused a
SEGV during testing (sorry not in separate commit).
Some accuracy was lost in an integer divison for speed and cadence in
getCadence and getWheelRPM, the expression was correct but non obvious
in setWheelRPM, and the speed was not reset upon disconnection for
CyclingPower while this service is used for power and speed when present.
All the commands to set the different parameters (weight, wheel size,
gradient or load, wind speed...) are added to BT40Device and
BT40Controller. A separate pull request will add support to actually
take advantage of these parameters, like the cyclist weight, now
available in this and other devices like the Fortius.
[skip appveyor]
Fallback to previous Qt and Python versions available on Homebrew
to until we can compile Qwt with Qt 5.15
Python comes back to 3.7.5 since the upgrade to 3.7.7 triggers a Qt upgrade.
Qt comes back to 5.13.2
Currently, size is computed from the QWidget geometry height in pixels and then used to set the font size in points. In many cases the result is not that bad because, depending on the screen size and resolution, the pizel size is not that far from one point. We now convert from pixels to inch (DPI) and then from inches to points (72 points/inch). This solves the problem of the text being clipped sometimes or the margin being too large.
Since they reset the brackets, defeating their use by wattsAt and
forcing all searches start from the beggining, and generating
problems with ErgTimeRemaining, which depends on rightPoint.
This problems was introduced by 1402f6ad6aFixes#3491
Some nits from recent Overview updates:
* compiler error using 'and' instead of '&&', gcc happy, msvc not.
* kpi overview item default set to CP estimate
* add chart wizard formatting of final page.
.. uses a datafilter program to calculate a kpi and displayed alongside
a progressbar that shows how the value is progressing to a goal.
.. its really useful to compute across estimates, mmp etc without having
to write a custom metric
.. one simple example is to show CP estimates and progress towards
a target CP or 5 minute best, or perhaps weight.
A program to display the internally generated CP estimate using
the Morton 3 parameter model would be:
{ round(estimate(cp3,cp)); }
.. allow edit and remove of existing items on the overview.
.. due to the way widgets are managed by layouts we create the
configuration widgets on demand and they will be deleted
once the dialogs close.
.. this is fine for overview, but will require a significant
level of refactoring once we start adding charts such as
allplot, trends etc to be added to a chartspace.
[publish binaries]
.. 'Add Tile' added to the overview menu - to enable users to
choose and configure tiles to add to the dashboard.
.. ChartSpaceItems should now be registered to a new chart
space item registry, which will eventually replace the
current window registry
.. ChartSpaceItems need to register a method to create new
items with default settings and provide a widget for
configuring themselves.
.. A new config widget has been created to cover the
overview tiles and some gui components for selecting
metrics, metadata fields and ride series have also
been added.
.. In part 2 we need to add the ability to configure
existing tiles and also remove them.
.. still have a problem with chartspaces that have zero items that we
will need to address, but this at least means when we add an overview
it isn't blank.
Fixes#3476
This gives a more Unix-like behavior when GC is launched from
cmd or PowerShell, including --debug output, on release builds.
Fixed#3481
[skip travis]
[publish binaries]
.. context menu action and processing in event loop deletes the widgets
whilst events are being processed for it. So in event processing we
now return immediately after triggering context menus.
.. when editing a series the de-dup check included the series we are
in the process of editing- which of course led to it always detecting
a duplicate.
.. we now exclude the series being edited from being checked as a dupe.
.. duplicate series names cause all sorts of problems with the
internal maps and lookups and must not be allowed.
.. if the user creates/edits to create a duplicate series name
we append '_n' (where n is any number from 1 upwards) to
guarantee we never habe duplicates.
.. commit 28b2428 introduced a regression whereby the searchbox will
expand to fill space which was jarring in chart settings.
.. this commit reinstates a fixed height, but slightly larger to
remain compatible with the mainwindow toolbar.
.. from now charts that add custom actions will need to also add the
action to pull up the chart settings - since it is assumed the
custom actions are overriding the standard approach.
.. fixes a regression from the chartbar context menu on tabs commit
where it is not possible to edit the setting for a trends or a
critical power chart.
The "Ignoring the CSC service for device..." was intended to notify when power
sensor is present the CSC service is ignored since it is redundant and may
cause problems, but it is misleading when there is no CSC or Power service.
Reported in #3471
.. instead of the 'More...' button in the top left of a chart when in
tabbed mode we now have a menu button when you hover over a tab.
.. the menu button activates the chart menu for now, till we refactor
to using a chart space.
.. the 'More...' menu is still available when in tiled mode (we need to
decide what to do there).
Unlike for the cadence value which uses 1/1024 second units, the wheel
revolution value is based on 1/2048 second units [1]. It is easy to
notice the problem when you ride downhill at 25 kph instead of 50kph! In
addition, the speed was initially incorrect because the previous wheel
position value was stale. This would sometimes give the speed of a
rocket for the initial interval and make a jump on the distance of
several km.
[1] Cycling Power Service, Bluetooth Service Specification, Date 2016-05-03, Revision CPS_v1.1, Prepared By Sports and Fitness Working Group, head of page 15.
https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=412770,
When parsing a "distance slope wind" type, a truncate to integers was done
after computation to meters. This involved rounding issues that were
accumulated, and were quite visible when such a file was used to synchronized
with an RLV video (the slope changes happened "too early").