Commit Graph

73 Commits

Author SHA1 Message Date
Joern
92fe2a7c48 LTM Popup - further enhancements
... make window "minimumSize" - so that resize in case of many columns
works
... handle LTM_TOD when called from LTM-Chart (list the rides in the
hour, considering DateRange)
... consider HomeFilter and Search/Filter in result list
... also show Rides of only 1 ride is selected (since Rides contain
Date/Time) and the Metrics (which mostly are not part of the Summary
HTML)
... do not allow MouseSelection of only 1 Ride is shown
... some more tr()
2014-06-22 13:08:44 +02:00
Mark Liversedge
a084ec96e6 Fix Average Temperature Issues
.. Don't include -255 in average

.. Don't show -255 in ride navigator

.. Don't show a value on summary if not preset
2014-06-20 12:59:03 +01:00
Mark Liversedge
7c0ec54155 Metric Aggregation ::aggregateZero() method
.. when aggregating metrics across rides we were being inconsistent
   with regards how we handled zero values; we sometimes included them
   and sometimes didn't.

.. now added a metric method bool aggregateZero() that returns true
   if aggregates need to include zero values

.. this has been implemented where averages are aggregated.
2014-06-20 11:19:55 +01:00
Mark Liversedge
dec191eb75 Add Group By ALL to LTM
.. can see the total / average or bests for the date range selected

NOTE: Data Table mode is currently a bit broken .. need to revisit it
      and fix it up, not just for ALL mode but also for Estimates
2014-06-19 10:40:48 +01:00
Mark Liversedge
94ae9738ad Chart Library Part 2 of 3
.. LTM chart now has a 'use sidebar settings' checkbox
   and will display the chart that is selected in the sidebar

.. as the sidebar selection changes the window will plot it
   using data for the current date range configured / selected

.. part 3 will now come later to let you manage the charts from
   the sidebar menu (it is already in the LTM tool).
2014-06-11 17:55:07 +01:00
Mark Liversedge
8526e8e2bb Fix crash on apply preset with BESTS data
.. settings.bestresults was not being set
2014-06-10 14:47:14 +01:00
Mark Liversedge
85a33c31fc Fix Preset maintenance in LTM tool
.. but the read and write functions are so far out
   of date that applying a saved chart causes a crash

.. so we need to fix the read/write functions for charts.xml
2014-06-10 12:59:47 +01:00
Mark Liversedge
96e2416334 Move LTM Preset charts to Athlete class
.. lots of work to do to clean this up, especially
   keeping the presets updated when renaming is done.

.. also need to save away after changes.

.. also need to create a much better default set of
   presets taking into account the more recent additions
   such as Estimates amd Bests and new metrics
2014-06-10 11:45:56 +01:00
Joern
018cff3baa Translation Enablement & "seconds"
... more tr() changes
... added comparison for  both "seconds" OR tr("seconds") to all other
occurences found
... added "Lap" text for Intervalls imported in Garmin FIT format (this
is what Garmin delivers)

(cherry picked from commit ad790f05a386e3ae5c5b9dc129a216ac451b8cfc)
2014-06-08 17:55:24 +02:00
Mark Liversedge
7fdd292a6f Scrollbars on LTM
.. think that is the last of them.
2014-05-26 20:16:48 +01:00
Mark Liversedge
c47939954b Temp FIX for SEGV on data table for estimates
.. needs to be fixed pronto.
2014-05-10 23:26:28 +01:00
Mark Liversedge
2b6a9d063d Introducing GCColor::css() to style HTML
.. wherever we use it, but mostly for the summary
   charts to use the plot marker color. for now.

.. we can get more sophisticated later !
2014-03-27 19:57:08 +00:00
Mark Liversedge
3b7adf8187 More Charts honouring Colors Preferences
.. Further updates to the charts to honour the background
   color preferences:

        * Google Maps
        * Ride Summary
        * Scatter
        * Details (Metadata)
        * LTM Data View
        * Editor

.. still a few left to do and not entirely happy with how
   things look on the editor but we can fix this up over
   time.
2014-03-11 17:58:41 +00:00
Mark Liversedge
89fe8e14d9 Little More Background Honour
.. updated a few more of the charts to honor the chart
   background property so the chart and chrome are all
   in the color the user specified.
2014-03-10 20:55:45 +00:00
Mark Liversedge
9b7482bd14 LTM Compare Fixup Tooltip
.. now shows a tooltip on the stack charts so will also
   fix normal mode stacked too.
2014-02-06 16:33:02 +00:00
Mark Liversedge
dcf5cd58f2 LTM Compare Fixup Markers
.. show event and season markers on the compare plot
   helps to provide context against the week/month offsets

.. also fixed up how bars are lined up and that each plot
   in the compare stack has the same x-axis
2014-02-06 15:52:47 +00:00
Mark Liversedge
d9d540f32e Compare mode for LTM
You can now compare seasons / date ranges across or between
athletes on the LTM charts.

This is only shown on the stack chart as we need one chart
per data series - in a similar vein to the AllPlot chart.

There are some tidy ups left to do over the next few days;

- Data table needs updating to support compare mode
- Event markers need to be shown and in the right color
- PMC curve data is slow, needs some kind of optimisation
- The tooltip is missing and needs to be put back
- Ensure the new stack frame looks correct when using a
  dark plot background (or anything other than white)
- Consider how to handle zooming when there is only one
  data series and hence only one chart for compare
2014-02-05 20:40:24 +00:00
Mark Liversedge
571607cc2f LTM Stack Zoom Slider
.. to adjust the size of the charts in stack mode.
2014-02-03 19:04:12 +00:00
Mark Liversedge
e2b2c76d89 LTM Stack refresh on first click of 'show stack' 2014-02-03 18:07:00 +00:00
Mark Liversedge
cc7e2e6760 LTM Stack Plot Mode
.. mostly in preparation for compatre date ranges
   on an LTM chart, but also for plotting lots of
   values at once without having too busy a chart.

NOTE: Need to sort out tooltips and optimising the
      refresh as well as making it possible for the
      user to set the plot height like in AllPlot.
2014-02-03 16:23:47 +00:00
Mark Liversedge
e071a7b1a6 LTM Data Table headings fixup
.. to use uname not name and also to avoid duplicating units
   when they are the same as the metric name (e.g. the metric
   'Relative Intensity' has units 'Relative Intensity').
2014-02-03 11:42:05 +00:00
Mark Liversedge
d72458819f LTM Data Table Fixups
.. fix PMC SEGV
.. fix for summary of NO data

Will now skip all zero values when summarising
by day, but not for week, month or year.

Fixes #782
2014-02-01 21:50:04 +00:00
Mark Liversedge
a924d65110 LTM Data Table Fixups
.. lots of crashes fixed

.. AVOID data table for PMC for now as they are a mess and
   will fix tomorrow night
2014-01-30 00:03:21 +00:00
Mark Liversedge
ad86a739b0 LTM Data View
.. show the metric data as a table as well as a chart, its quite
   useful to configure a summary table of metrics.

Ironically, the ability to configure the summary page in WKO+ was
one of the things that pissed me off and started me down the road
of extracting data from .wko files.  I then found the data I wanted
wasn't even in the files and started developing for GoldenCheetah
         .. the rest, as they say, is history.
2014-01-29 16:48:50 +00:00
Mark Liversedge
04dcb8d187 QWT 6.1 canvas() revert and LTM ToolTip fixups
Reverted the update to the QWT 6.1 code to make QwtPlot::canvas()
return a QwtPlotCanvas -- it now returns  QWidget.

This means our local copy of Qwt is the same as the published version
so we should be able to stop maintaining our own copy when Uwe pushes
the multiaxis stuff with 6.2.

Also fixed the LTM tooltip - the zoomer has been removed.
2013-12-11 17:58:35 +00:00
Mark Liversedge
a876c8da62 QT5 -- Part 3 of 3
Fixup crashes and major issues created by porting
to QT5. These have included;

* Fix CP plot log scale
* AllPlot axes and tooltip
* DBAccess prepare/bind bug
* LTMSettings crash
* LTMWindow zoomer/picker crash
* LTMPlot axes hack

There are still issues remaining but we can start
working through them at leisure -- the product now
builds and runs.
2013-12-09 21:21:51 +00:00
Mark Liversedge
82baf90131 QT5 -- 1 of 3
Porting the codebase to QT 5 (5.2) to get the
latest bug fixes, performance and improved platform
support.

This first part is to fixup the codebase to compile
on Qt 5, but some aspects have been broken (video).

The second part is to migrate from Qwt 6.0.1 to the
latest Qwt for multiaxis support.

The third part will be to fixup any platform specific
issues or issues identified at runtime.
2013-12-09 09:57:13 +00:00
Mark Liversedge
e1f7bb78ac Fix LTM title filter color bug
.. the title of an LTM chart doesn't change when you
   select or deselect a filter in the sidebar.
2013-12-05 17:22:53 +00:00
Mark Liversedge
0a215562d5 Add Filter Sidebar
To allow selection of filters aka Named Searches when
plotting charts.

Fixes #732
2013-12-05 14:30:42 +00:00
Mark Liversedge
a00d77bd97 LTM Speedup
.. don't refresh when not visible!

   This is a side effect of the code updates added
   to handle filtering in chart settings or the global
   search/datafilter box.
2013-11-13 08:25:23 +00:00
Mark Liversedge
53281c21bb Fix User Defined LTM durations bugs
.. refresh didn't clear old curves
.. didn't honour any filter being applied
2013-10-28 20:57:21 +00:00
Mark Liversedge
5822db4b58 Plot Peak Power et al 2 of 2
Updated RideFileCache and LTMWindow/Plot to
plot the user defined durations for peak power.

Actually we support all the different meanmax
measures available in the CP chart, so you can
now track peaks for user defined durations of;

            * Power
            * Watts per Kg
            * xPower
            * NP
            * Heartrate
            * Speed
            * Cadence
            * Torque
            * VAM

I have not spent much time optimising for performance
but reusing the same 'seek' approach used by the recent
update for best() and tiz() functions in the datafilter.

Fixes #322.
2013-10-28 19:29:28 +00:00
Mark Liversedge
d0827131ef Urgent Fixup to previous commit
.. to make sure the v2 LTMSettings
   uses the bestSymbol.

Just pushing this (WIP) to make sure
we don't get half baked LTM settings
from people building against the previous
commit.
2013-10-28 17:58:04 +00:00
Mark Liversedge
2b725a7183 LTM Chart Settings improved UX
The definition of curves is rationalised to match the
new design mockups in readiness for introducing user
defined peak durations for power et al.

For now this patch cleans the UX and makes it much
easier to add/edit/remove curves.

Fixes #548
2013-10-27 14:34:17 +00:00
Mark Liversedge
f5ba01fbe7 LTM presets UX improvement
Simplified selecting and managing preset charts
in the LTM chart settings.

Need to now move the 'Add' button to the custom
tab, but that is the next pending update.
2013-08-26 13:20:56 +01:00
Mark Liversedge
a5a13668cd Move filters from MainWindow to Context
.. we notify search/filter updates via context rather
   than MainWindow
2013-07-27 13:51:09 +01:00
Mark Liversedge
47814846d9 MainWindow Refactor Part 3 of 5
Slowly migrating code  and data from the MainWindow
class to Athlete and Context classes.

This update moves the ride and interval lists and
data structures from MainWindow to Athlete.
2013-07-13 19:46:03 +01:00
Mark Liversedge
0fcbbe1b77 Refactor MainWindow Part 2 of 5
Decoupled classes from MainWindow to reference Context
and Athlete (and introduced a couple of new headers).

We no longer pass around a MainWindow pointer to children
but pass a context instead.

There are still a few pieces left in MainWindow that need
to move to a better place;
    * Setting/clearing filter selection
    * Working with Intervals
    * Adding/Deleting Rides
    * Save on Exit

As mentioned previously there are lots of other parts to
this refactor left to do;
    * break MainWindow Gui elements into Toolbar and Views

    * migrate from RideItem and Ridelist to ActivityCollection
      and Activity classes that are not tied into gui elements.

    * introduce Application Context and AthleteCollection
2013-07-11 14:02:02 +01:00
Mark Liversedge
c56c5a9567 MainWindow Refactor Part 1 of 5
Breaking the MainWindow 'god object' into
separate classes for Athlete and Context.

Further updates will need to;
- break MainWindow Gui elements into Toolbar and Views

- migrate from RideItem and Ridelist to ActivityCollection
  and Activity classes that are not tied into gui elements.

- introduce Application Context and AthleteCollection

Once these are done we will be in a position to decouple
most classes from mainwindow and also introduce tabbed
athletes.
2013-07-07 15:50:28 +01:00
Mark Liversedge
7e501dc3da Visual cue for filter
.. by highlighting chart title too if a filter is
   being applied.

This is important to warn users that the data being plotted
is adjusted to the search/filter (either globally or in the
chart settings).
2013-04-26 12:44:51 +01:00
Mark Liversedge
4db2ffab8d Fix LTM useToToday bug
If you change the date setting toa/from and back to
useToToday then refreshes never happen.
2013-04-09 13:48:13 +01:00
Mark Liversedge
31ced60209 Search/Filter on toolbar applies to Charts
When the user free text searches or applies a data filter in
the top right toolbar search box it gets applied to any charts
that plot data from many rides, including;

- CP curve
- Calendar
- Histogram
- LTM
- TreeMap
- Summary

I need to update on a Mac to no longer use a Mac text search box
but now use a search filter box on the top right.
2013-04-05 16:23:16 +01:00
Alejandro Martinez
4a1766f57b Enabled translation of Search and Group By
Update spanish translation
Update italian translation (by Marco Piccirilli)
2013-04-04 11:10:41 -03:00
Mark Liversedge
93e17af8c5 Fix LTM group by selection
Fixes #499.
2013-03-11 21:15:54 +00:00
Mark Liversedge
a4cd35002a Fix custom date range muddle when groupby weeks
.. the start date would progressively change as you selected a
date range in the sidebar. This is because the code to set the date
range to the start of a week looked at the wrong date variable when
using a custom date range.

Fixes #500.
2013-03-08 15:24:03 +00:00
Mark Liversedge
caec4ee0fe Code Cleanup: Remove #if 0 code
As a personal habit I tend to use the C pre-processor to
comment out code blocks I don't want to remove. This is in
case the code will be required in the future.

I think it is now safe to say the code commented out is not
required -- most of it is legacy and marks the transition from
earlier designs or legacy code.

I've done this in one big commit since in theory it has no
functional change, and in future can look in this commit for any
code we may want to reinstate.
2013-02-11 15:00:00 +00:00
Mark Liversedge
2290b194e3 Code Cleaning: LTM sources
Addressing or removing 'XXX' code alerts across the Long Term
Metrics source files.

This is part of a code cleanup prior to V3.0 release.
2013-02-07 12:04:44 +00:00
Mark Liversedge
791f84d51f Add reveal controls to LTM chart
Allows user to quickly change the settings for
- group by (week, month, year etc)
- shading (power / hr zones)
- show events (chart markers)
2013-02-05 13:23:23 +00:00
Mark Liversedge
3f7cf132bb LTM Show Events Checkbox
Adds a checkbox to the LTM plot to enable and
disable the plot markers for season and events.
2013-02-04 12:51:30 +00:00
Mark Liversedge
975f45fafe Fix thru today date selection on LTM
.. it needs to be applied every time a
date range is selected, so need a new bool
useToToday to flag that up.

Will need to fix the other date range charts
to do the same.
2013-01-14 09:06:04 +00:00