Commit Graph

161 Commits

Author SHA1 Message Date
Mark Liversedge
a7af4e4a5f Dont delete intervals in RideItem::close 2015-10-06 21:08:42 +01:00
Mark Liversedge
391ed47d0e Fix Memory Exhaustion on Mass Import/Sync
.. RideCache::addRide() deletes the prior ride, which is rather meaningless
   if you are just importing a ride, but when syncing large numbers
   of rides will stop memory being exhausted.

.. similarly in the FileStoreSyncDialog we now free up the memory
   used to read the downloaded files before moving on to the next.
2015-10-06 13:06:34 +01:00
Mark Liversedge
35c098101a RideItem::overrides_ on load
.. need to fixup clear and setFrom
2015-09-05 10:44:39 +01:00
Mark Liversedge
44c0f0a9b5 Formula isset(field)
.. returns true if the user has overridden a
   metric, or a metadata tag is set.
2015-09-05 10:03:33 +01:00
Mark Liversedge
6799d2eb9d UserData compute in AllPlot
.. and cached in RideItem
2015-08-26 21:28:05 +01:00
Mark Liversedge
2427f42b76 Don't include "Calendar Text" in Meta CRC
.. otherwise it causes a refresh() when it is reconstructed
   due to config changes (not data changes!)
2015-07-30 20:24:22 +01:00
Mark Liversedge
ca63736c46 Reinstate Withings Measures
.. bodyfat kg, lean kg, bodyfat percent
.. fixup charts.xml to use it

NOTE: RideItem changes so touch *.y or
      make clean after pulling this commit
2015-07-18 20:18:51 +01:00
Joern
48cc7a2bfa Translation Enablement 2015-07-17 18:59:07 +02:00
Mark Liversedge
47dac73da1 Interval Discovery config default no PEAKS
.. since interval discovery impacts load time (reading from backing
   store) and refresh time (computing metrics for intervals) we do
   not search for PEAK power/pace by default.

.. if the user wants that info (which is of limited value) then they
   can switch it on in preferences/options.

.. should help to reduce performance overhead for startup and refresh
   especially as an experience immediately after upgrading to v3.2
2015-07-02 07:45:27 +01:00
Mark Liversedge
0d025afd8e Don't skip user intervals for peaks etc
.. when the autodiscovery has been switched off.
2015-06-27 12:45:14 +01:00
Mark Liversedge
8a09fe0ca2 Enable user to configure autodiscovery
.. select which kind of intervals we want

.. makes it faster and also reduces the size of
   the rideDB.json file quite dramatically which
   may be useful for some users.
2015-06-27 12:30:27 +01:00
Mark Liversedge
b03420b7bb Fix SEGV on time going backwards
.. as demonstrated in Günter Speckhofer file after
   some editing in the editor.
2015-06-23 22:18:58 +01:00
Claus Assmann
9c057191b5 Fix comment typos 2015-06-07 16:31:56 +01:00
Mark Liversedge
df997a5e0e Sustained Time in Zone Metrics
.. how much time is spent on sustained efforts
   in each zone.
2015-06-04 21:00:09 +01:00
Mark Liversedge
b02a869674 bool not BOOL 2015-06-03 16:41:05 +01:00
Alejandro Martinez
038e6f5098 Discover Peak Pace intervals for running and swimming 2015-06-03 12:05:54 -03:00
Mark Liversedge
5fc448c6ab Fix interval painting and lazy delete
.. the lazy delete was a horrible hack and memory leak.
   So, now the paint delegate no longer dereferences the
   IntervalItem * from the QTreeWidgetItem.

   Instead we use setData for UserRole+1 to store the interval
   color when constructing the trees. The paint function can
   get this directly and we avoid any contention when the
   intervals are deleted and created.

   The lazy delete can be removed and deleted once the changes
   have been notified via intervalsUpdate().
2015-06-02 10:56:28 +01:00
Mark Liversedge
7ae35dbcf8 Lazy Delete IntervalItems in RideItem
.. since they are deleted in threads and affect the gui

.. to avoid the overhead of cross-thread mutex we just
   delete intervals lazily; each time we refresh them
   the last lot are wiped away.
2015-06-01 18:51:55 +01:00
Mark Liversedge
eb413b7c3f Fix paint SEGV on RideItem::updateIntervals()
.. zaps interval items whilst they are referenced in
   the interval tree etc.
2015-06-01 13:54:50 +01:00
Mark Liversedge
48ac3aebbe EFFORTS found using metadata only
.. if no zones are configured.
2015-05-31 23:52:02 +01:00
Mark Liversedge
05f4997fca Added "Pmax" override in metadata
.. only used in interval discovery
2015-05-31 23:21:59 +01:00
Mark Liversedge
c69b2b2e96 TT analysis fixups
.. SEGV on setting CP when no zones configured. Since
   RideItem::updateIntervals() dereferenced a range
   when CP is set, but none existed.

.. fixup use of Metadata field "W'" to override settings
   in Metrics tab.
2015-05-31 22:18:17 +01:00
Mark Liversedge
ea980149ca Mark MATCHES that are To Exhaustion
.. name and also red color.
2015-05-31 13:34:22 +01:00
Mark Liversedge
dfc058cd04 Autodiscover MATCHES
.. and add them to the ride EFFORTS
2015-05-31 13:05:22 +01:00
Joern
675efe966e Auto-Intervals - Translation Enablement
... enable Translation for Text is auto-determined intervals
... adjust Translation DE for the changes
2015-05-29 19:53:11 +02:00
Mark Liversedge
2f43e564d8 Overlapping Sustained Efforts
.. we now filter sustained efforts by zone rather than picking
   the very best non-overlapping effort.

.. this means that a L7 sprint mid way through a L4 climb within
   a L3 ride will find find 3 sustained intervals rather than just
   the sprint.
2015-05-26 16:39:14 +01:00
Mark Liversedge
4979ac585a Fox off-by-one for Zone/Level
.. they start at 0, not 1 in class Zones but users
   think in terms of Zones 1-7 !
2015-05-26 09:25:59 +01:00
Mark Liversedge
4b52dda7c4 Simplify EFFORTS intervals
.. just place TTE, EFFORTS and SPRINTS under
   the EFFORTS interval type.

.. this is getting ready for handling overlapping
   efforts rather than just the very best.
2015-05-25 20:16:44 +01:00
Mark Liversedge
51077668e5 Route Search Refactor Part 2 of 2
.. Route segments are found during interval refresh

.. Config/routes.xml only holds config now

.. The fingerprint for a rideitem includes the route
   fingerprint now so it will refresh automatically
   when the routes config changes

.. if no routes are defined then no work is done, so the
   amount of work is really defined by the user

NOTE: RouteWindow, and now, RouteItem will need to
      be reworked and fixed up for v4.0
2015-05-23 18:40:10 +01:00
Mark Liversedge
f7f4578241 No Zones or CP then don't search for TTE
.. pointless searching for a default value.
2015-05-23 10:37:16 +01:00
grauser
d8b3e500ac AnalysisSidebar: Reinstate interval DRAG/DROP in list 3 2015-05-22 21:49:06 +02:00
Mark Liversedge
25c5b7f8b8 Refactor RideFile out of IntervalItem
.. and a few nits to get Routes to compile, but it
   needs to be aligned to the intervalsUpdate() method
   in RideItem.
2015-05-22 18:41:59 +01:00
Mark Liversedge
5f4357a232 Reinstating Interval functions: ADD ON ALLPLOT
.. by click and drag
2015-05-22 14:47:43 +01:00
Mark Liversedge
597dccff9c Reinstating Interval functions: RENAMING/RENUMBERING
.. rename a number of intervals in one go
2015-05-22 11:58:16 +01:00
Mark Liversedge
2f96e475ec Fixup sidebar refresh after RideItem::updateIntervals()
.. by introducing a specific signal to trigger it.

.. its very specific, but its more flexible (and a lot less
   work) than adopting a model for the QTreeView that would
   be a better 'architecture'.
2015-05-20 05:55:55 +01:00
grauser
3b3c98187f Auto Interval Discovery : Update SPRINT detection 4 2015-05-19 21:13:00 +02:00
grauser
d5238b7cf1 Auto Interval Discovery : Update SPRINT detection 3
try with 3 components model
2015-05-19 19:01:51 +02:00
Mark Liversedge
2ae96d3d8e Fix syntax error in RideItem.cpp 2015-05-19 11:49:59 +01:00
Mark Liversedge
fabd6bffc9 Fix off by on in the effort algorithm
.. subtraction in integrated series is for the period
   after the current point (i) not from the current point.
2015-05-19 11:43:28 +01:00
Mark Liversedge
353527af13 Fix off-by-two effort/sprint discovery
.. the integrated joules and resampling to 1sec code
   was not taking into account the first sample is 0 seconds
   and was incrementing 1 sample early too.

   As a result the integrated series was 2seconds ahead of the
   recorded data, meaning the discovered efforts and sprints
   would have a start time 2 seconds ahead of where they
   should have been.
2015-05-19 10:55:56 +01:00
grauser
81a3d487e6 Auto Interval Discovery : Update SPRINT detection 2 2015-05-18 23:18:27 +02:00
grauser
4690f0e605 Auto Interval Discovery : SPRINT detection correction 2015-05-18 22:12:07 +02:00
grauser
d285ec8d97 Auto Interval Discovery : Update SPRINT detection 2015-05-18 21:30:39 +02:00
grauser
d12d18c701 Auto Interval Discovery : SPRINT detection 2015-05-18 19:57:09 +02:00
Mark Liversedge
9027e1db02 Reinstating Interval functions: DELETE
.. you can now delete interval(s) via the hamburger menu
   or by right-clicking a specific interval.
2015-05-18 18:41:51 +01:00
Mark Liversedge
758e9256a1 Establish runtime link for USER intervals
.. from IntervalItem to RideFileInterval when
   the ridefile is opened
2015-05-18 15:44:21 +01:00
Mark Liversedge
d5ae1bf685 RideFile::intervals_ now array of pointers
.. so we can keep a reference to the user interval
   in a ridefile from the rideitem and not worry about
   trying to match or handle index offsets into the array

.. this is required to fixup the relationship between
   an IntervalItem and a RideFileInterval in RideItem
   and RideFile respectively.
2015-05-18 13:57:21 +01:00
Mark Liversedge
2912982132 Reinstating Interval functions: ZOOM
.. you can now zoom out / zoom in for an interval.
.. the rest of the menus items are also shown but not active yet.
2015-05-18 12:25:32 +01:00
grauser
dec099fd21 Auto Interval Discovery : Update CLIMB detection 4 2015-05-17 10:02:53 +02:00
grauser
f292e523e2 Auto Interval Discovery : Update CLIMB detection 3 2015-05-16 20:18:38 +02:00