The last of a series of recent patches to address performance
degradation from the introduction of the LTMSiebar. This last
patch introduces a CPX aggregates cache to re-use aggregated
CPX data (e.g. for plotting a specific season or date range).
The cache is set to only hold 25 caches, which should be enough
for most folks list of seasons. But won't get unwieldy if they
scroll around in the diary view.
The following will be introduced in the last patch of
this series:
1. Introduce 'events' within a season and plot them on the
LTM chart -- a form of 'annotation' but also the beginning
of planned events in the future too.
2. Implement click functionality on LTM charts but decide if
we use click to annotate or to define a new date range or
both?
We now have a date range selector in the sidebar. The
sidebar has a date range selector and summary. It is
used to set the date range for the charts in the view.
As a result we can now add summary charts to the home view
and LTM/CP/Histogram charts to the Diary view. The weekly
summary chart is now deprecated.
Creating seasons has also been disabled on metric charts. We
will need to decide what clicking on an LTM chart should do,
and look at whether we want to keep the popup bubble or
adjust it.
There are some unfortunate performance degradations as a result
of this patch when selecting date ranges and switching between
charts in tab view. This needs to be addressed as a priority.
Follow up patches, part 2 and 3 will need to;
1. address performance degradations & cache results
2. introduce events in sidebar and as annotations on charts
3. implement click functionality on LTM charts (annotate vs
define a new season/range)
NOTE: existing HOME, ANALYSIS and DIARY chart setups will need
to be rebuilt since chart ids and properties have changed
in this patch -- do not raise a bug until you have deleted
and re-added the offending chart.
Uses the QT proxy query and application wide proxy setting
to allow users behind a corporate firewall to use network
functions (maps, TP.com, ergDB etc).
Fixes#27.
The mac searchbox using a NSSearchField works a
treat on Mac, but the code accidentally removed the
searchbox on Linux and Windows.
This patch reinstates it.
The menu drop down can appear on the list view. This is
now disabled via a window property "nomenu".
Also set the new attribute to set native widgets on a Mac.
There is now a little button to show and hide the sidebar
just like in Mac Mail. We now only have to add the add chart
button for the toolbar/scope bar changes to be complete.
Added a scope bar for native mac. The windows and linux
toolbar is a combined toolbar and scope bar, on a Mac it
looks much more elegant to split the two.
We will need to now add a show/hide sidebar control on the
left of the scopebar (like apple mail), the train view controls
in the centre and the add chart to the far right).
In readiness for a scope bar, the Mac unified title and toolbar height
is too large and needs to reduce. It now has very similar margins as the
Mac Mail toolbar.
The scope bar will make it look less compact when it is introduced.
The left sidebar is now a stacked widget and the toolbox
has been consigned to history. We are now ready to add a
left sidebar for the metric "home" view.
Part of a series of commits to adjust the UI on a Mac to
look more native and conform better to the Mac UI design
guidelines.
This patch introduces a unified title and toolbar which hosts
a search field and buttons for commonly used functions like
import, split ride, delete etc.
Since it is not possible (or more importantly good practice) to
hide and show toolbar items the Train View controls have now been
moved to the sidebar on a Mac. This is a temporary measure and
will be resolved in future updates.
Further updates planned are;
Part 2 - fixup the preferences pane to be more Mac-like
Part 3 - Spit and Polish around the charts; drop shadows, controls etc
But NOT for win32 and ONLY on the sidebar and tabwidget (for
performance reasons). Since most users prefer the tabbed look
anyway this should be ok.
Performance of the graphicseffect has improved remarkably in
the 2 years since we tried it before. Worth experimenting with
since it adds a bit of polish to the look and feel.
Users turn it on and off in options, it is off by default.
The ride navigator has 0 contents margins which made
grabbing and resizing impossible in paned mode. This
was done to make it look beter when it is a ride list.
It now has a constructor argument to specify if its
being put into mainwindow as the ride list or its being
added to a view.
You can now add the summary chart to the diary
view to get a summary of the date range currently
being summarised on that view.
Once the Home view has its own sidebar that selects
date ranges you will be able to add it there too
and summarise seasons etc.
Temporary update just to select the left sidebar whenever
a different view is selected. This will go away eventually
but starts to get closer to the finished concept.
Now need to work on the Home View sidebar.
It should be white to be in line with the rest of the
sidebars and have some semblance of coherence.
I also put a rectangle around the box so if the day
color is white you can still see there is a ride that day.
A summary ala the interval summary will come next summarising
either day, week or month for the ride selected.
Drop the notion of a rhs sidebar and move the calendar
from the rhs to the lhs toolbox. It will soon be the
context sidebar for the diary view, and also get a
day summary at the bottom, but for now lets just remove
the references to a rhs sidebar.
The chart settings are no longer in the side bar and can be selected
from a drop down menu on the chart. This works in tiled and tabbed
mode and allows for further enhancements e.g. custom menu options
for commonly use config options (ala Android).
This is part of a series of updates to migrate away from a sidebar
that is a toolbox of ridelist etc and move back towards a context
sensitive sidebar.
Last part of the search/filter functionality;
* SearchBox now incorporates filter and search
with a new widget. We can update this widget
to include more fancy UI/Interactions without
having to change the ride list or charts etc.
* Added search/filter widget to the relevant charts
and screens; Metrics, TreeMap, CP, Histogram,
Activity Log, Ride list (refactored out of MainWindow)
* Added namedsearches.xml and adding/selecting them
from a drop down menu on the search box.
* Fixed some performance bugs related to duplicate
signals and redraw/reprocessing. Also ensured that
CLucene remains optional -- but means no search or
filter functionality unless it is available.
Added evaluation of filters and integrated with the ride list, this
means the user can filter the rides listed.
Additionally the search box will highlight the filter in red if
it doesn't parse correctly, and a tooltip describes the errors.
Part 1 of Data filtering, this patch adds the ability
to enter and parse filter statements in the search box
(by clicking on the magnifying glass it becomes a filter
box).
The statements can reference metrics and metadata fields
allowing the user to define boolean expressions to filter
data. An example of the syntax;
Average_Power > 200 and Duration > 3600
This references the metric Average_Power and ride Duration. But
will also support operations on metadata fields, for example;
Workout_Code endsWith "SST"
The operators are;
= <> > >= < <= matches contains endswith beginswith
( ) && and || or
Filters are syntactically and semantically validated. But at
this point the resulting tree is not evaluated, i.e. we can
parse the filters, but do not execute them.
Two further updates are pending (once written and tested):
- Part 2 of 3 : Execute filters and apply to the ride list
- Part 3 of 3 : Allow named filters and apply to LTM charts
Further updates will support a visual editor and allowing filters
to be applied to CP and Histogram charts and affect the PMC stress
calculators.
Fixed up the code to use withings weight when calculating watts
per kilogram and the display on the CP chart.
There will be issues when retrospectively refreshing data from a
withings account, but that is such an edge case we can just ask
people to delete old .cpx files to ensure they are refreshed.
Re-enabled the measures feature, largely to allow donwload
from Withings for folks that track weight.
This is to provide better support ahead of showing watts/kg
on the mean max "CP" chart.
Find interval dialog will now allow you to add
intervals by time or distance (e.g. add interval for
every 10 minutes or every kilometer).
Since there were three menu options all doing similar
things, they have now been consolidated into a single
dialog.
Upgrade to QWT 6.0.1, but still uses a locally patched copy
since support for 8 axes has not been included, despite it
being a relatively simple patch.
Fixes#634.
Fixes#567.
A rudimentary calendar, not customisable or resizable
and only every selects first ride for the day selected.
But it is the beginning of the widgets needed for the
new UI "look" discussed on the list.
Need to work on font sizes for Win/Mac and refining
the whole look and feel. Especially a sidebar widget
to put it in!
Fixes#369.
Allow the user to add a chart from the top-level
view menu, or by right clicking on the home page.
I did not implement as right click on toolbar since
there is already an add chart icon on the toolbar
and adding right click is kind of redundant in that
case.
Fixes#606.