.. the ride summary on analysis and trends is now replaced by
the overview dashboard.
.. since RideSummaryWindow uses html to deliver content via
an embedded web browser it had become unwieldy and the
UX was klunky and static.
.. additionally the code was unwieldy and difficult to
maintain and update when new feature were introduced.
.. this is a happy day, goodbye and farewell.
.. applies to all charts in the perspective, so you can create
a perspective called "Running" and set the filter to "isRun"
and all charts in the perspective will only show data from
runs.
.. updated charts on Trends view to honor the perspective
filter, as below:
* Overview
* Trends
* User Chart
* Treemap
* Critical Power
* R Chart
* Python Chart
* Histogram - for metrics
* Summary - no change as deprecating shortly
.. renamed the HomeView to TrendsView in line with some of the
other recent name changes. The class names were set over 10
years ago and no longer reflect the UI concepts.
.. New signal: GcWindow::perspectiveChanged(Perspective *)
When the chart is moved from one perspective to another, likely does
not need to do anything on Analysis view, but on Trends view its
quite likely the filter has changed, so refresh is needed.
.. New signal: GcWindow::perspectiveFilterChanged(QString)
When the perspective filter is updated this signal is called but
only on trends view since it doesn't really matter on Analysis
from the charts point of view.
.. 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).
.. 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).
.. the OverviewWindow class has been refactored to extract out the
core dashboard UX/UI into a new class ChartSpace.
.. additionally, a ChartSpace contains a set of ChartSpaceItem which
need to be subclassed by the developer.
.. for the Overview a set of OverwiewItem classes have been introduced
such as RPEOverviewItem, MetricOverviewItem and so on. These are
subclasses of the ChartSpaceItem.
.. The overview window implementation is now mostly configuration and
assembly of a dashboard using OverviewItems and the ChartSpace.
.. This refactor is to enable the ChartSpace to be used as a drop in
replacement for the existing TabView.
.. There are no functional enhancements in this commit, but the
overview chart shouls appear to be unchanged by the user.
After this change:
QtMacVideoWindow.h is used only for native macOS video options:
GC_VIDEO_AV (incomplete)
GC_VIDEO_QUICKTIME (obsolete)
Otherwise standard VideoWindow.h is included with the same options for
the three supported OS:
GC_VIDEO_NONE: placeholder for no video, currently used for macOS builds
GC_VIDEO_VLC: basic video control plus videosync, macOS experimental
GC_VIDEO_QT5: basic video control only, macOS experimental
Overlay Widgets only works on Windows with VLC.
Tested with VLC 3.0.8 on the 3 Operating Systems.
.. RideWindow is no longer required and brings in artefacts that have
security alerts. This code should have been deprecated previously
and was retained in error.
Fixes#3426
.. working with user charts to plot configured CP versus the trend
in power indexes led to some new code and a few fixups:
* new metric PeakPowerIndex is the best PowerIndex value for the
ride based upon power mean maximal data. It is not computed for
intervals.
* overview chart default config shows the PeakPowerIndex instead
of Power Model which was blank and unimplemented.
* the overview chart was not in the window registry, it must have
been removed by accident in a cut and paste incident
* the 'activity' function is userchartdata was not called, the code
was not included (it iterates over samples, but not activities)
.. basic user chart only on analysis view. Users can specify
a data filter script to prepare data for the x and y axes.
It uses the generic chart to visualise so one step closer
to a UX where all charts have the same behaviour.
.. will need to update to place on trends view, including
updating the way userdata works and possibly adding a
few new functions to support working with models and mmp
data amongst a few other things.
.. likely contains quite a few nits as most of the code
is related to configuration and is a bit thorny.
Added a rectangle selection tool for scatter charts. Click on
the canvas and drag to highlight points of interest and click
on rectangle to drag around, resize with wheel events.
Additionally, improved some of the aesthetics on axes and labels
etc to make the chart look and feel similar to the rest of the
qwt based charts.
There are likely to be a large number of commits for part 3, to
cover auto calculation of mean/max/sum/regree for selected points
and extend to other types of selections and apply to other chart
types.
.. update the registry to support both independently. This is
to get the ridesummary bool set to trigger refresh when the
user selects a season on trend view.
... remove StreetView and Train/MapWindow from list of available Views
... both rely on WebKit - and have issues (they have already been reported to be de-precated)
.. added a python chart type, it doesn't execute code
yet. Just a reimplementation of the RChart UX
.. next we need to trap output and run code on selection
before proceeding to setting an API for Data and Charting
.. widget to replace summary chart - but at this stage is
just blank and need to work on drag and drop ui for
managing cards before adding any content
.. also commented out the planning widget for 3.4.1
.. now has reveal controls to change url
.. can be added to trends, activities and train view
.. needs testing with webkit and updating to intercept
downloads to try and import as ride files.
.. use GcChartWindow as the base class for all charts -- so
we can truly upload *any* chart to the cloudDB
.. miscellaneous charts that were still defined as GcWindow
have been converted to GcChartWindow
.. GcChartWindow layout issues (using QGridLayout insted of
a QStackedLayout) are fixed which will also resolve a few
rendering issues related to NOWEBKIT.
.. Aerolab needed lots of cosmetic fixups once it became
a GcChartWindow
.. Added 'Upload Chart...' to mirror the 'Download Chart..'
option on the hamburger menu as users will instinctively
look for the option there instead of under the chart menu.
.. 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.
.. 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
.. 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
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.