Commit Graph

58 Commits

Author SHA1 Message Date
grauser
e55f408cd9 Interval: Correct start, stop edit 2015-10-03 22:35:02 +02:00
grauser
fdb04a0446 AnalysisSidebar: Rename Route
fix #1430
2015-08-13 22:25:54 +02:00
Mark Liversedge
985cea4020 Revert "Edit interval distance"
This reverts commit c4c15ada67.
2015-07-08 14:57:47 +01:00
Alejandro Martinez
c4c15ada67 Edit interval distance
Implements #1432 as an option for Edit Interval, the user must
enable it via checkbox and confirm before it modifies speed and
distance for the underlying samples.
2015-07-07 23:14:50 -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
082ee3b4c0 Allow user to stop tracking a segment
.. in case you add one that isn't useful.
2015-05-29 12:42:41 +01:00
Mark Liversedge
b8c21ca895 Change the color of an interval
.. in the IntervalEditDialog
2015-05-27 16:04:15 +01:00
Mark Liversedge
3d6f079147 Qt::ItemNeverHasChildren is from QT 5.1.1 not 5.0
.. fix compiler failure on QT5.0.x
2015-05-25 11:40:06 +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
47afd82d9e Route Search Refactor Part 1 of 2
.. clean code and get ready to add background
   scanning for routes

.. next update will add background scanning
2015-05-23 13:38:07 +01:00
Mark Liversedge
947190a683 Fix AllPlotInterval SEGV on SAVE
.. it optimises out setRide when it is the same ride as currently
   being plotted, but the intervals will have changed since they
   were reloaded

.. so we always notify of intervals changed after intervalsUpdate()
   just in case other charts skip refresh when the selected ride is
   the same as the one they are already showing
2015-05-23 09:18:09 +01:00
grauser
6f7546b6ba AnalysisSidebar: Reinstate interval SORT in list 2015-05-23 08:48:23 +02:00
Mark Liversedge
e2a56fd8a4 Reinstating Interval functions: ADD VIA FIND DIALOG
.. by click and drag
2015-05-22 19:17:39 +01: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
ba748461d7 User Intervals Tree always at top
.. in sidebar
2015-05-22 15:13:21 +01:00
Mark Liversedge
f1775c800b Fixups Add Interval on AllPlot
.. fix by distance mode
.. remove findPeakPower from sidebar
2015-05-22 14:57:38 +01:00
Mark Liversedge
88b668f604 Fix interval metric refresh after edit
.. when the start/stop is changed.
2015-05-22 12:15:35 +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
70d6fd192b Reinstating Interval functions: EDIT
.. not extending to include new members, just the old
   functionality reinstated for now.
2015-05-22 10:26:35 +01:00
Mark Liversedge
645d392a08 Remove qDebug() erroneously committed 2015-05-22 08:47:19 +01:00
Mark Liversedge
5c745e60d4 Reinstating Interval functions: SELECT/DESELECT
.. from interval navigator or map marker
2015-05-22 08:41:26 +01:00
Mark Liversedge
f8a0900ee1 Retain selection status when intervals updated
.. since we are called to refresh when intervals
   are updated within the RideItem
2015-05-22 07:31:24 +01:00
Claus Assmann
9679c48cae Fix QT4.8 drag/drop update compile error
.. Qt::NeverHasChildren is QT5 only
.. Calling signal instead of notifier in Context
2015-05-22 06:54:26 +01:00
grauser
fc320c30c3 AnalysisSidebar: Reinstate interval DRAG/DROP in list (correction2)
Let Drag non User intervals for compare pane
2015-05-21 23:03:29 +02:00
grauser
0c76544c34 AnalysisSidebar: Reinstate interval DRAG/DROP in list (correction)
Last commit correction
2015-05-21 22:37:27 +02:00
grauser
c1f642d520 AnalysisSidebar: Reinstate interval DRAG/DROP in list 2015-05-21 22:36:05 +02: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
Mark Liversedge
1e3f7227e2 Fix IntervalSidebar SEGV on Save
Rebuilds the interval tree when a ride is saved and
refreshes intervals as a result.

There are a number of other scenarios that will also
need to call a sidebar refresh as a result of the
intervals being updated.

* edit ride data
* change metadata

There may be others lurking. This needs a review of
the code pathways leading to RideItem::updateIntervals()
and how we keep the sidebar in sync.
2015-05-19 21:17:12 +01: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
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
Mark Liversedge
ca4de3b676 Fix color config update for Interval tree
.. it wasn't being reset when you changed the
   color config in options > appearance.
2015-05-11 21:34:53 +01:00
Mark Liversedge
377310c24f Sidebar Interval Type Font Bold 2015-05-10 17:51:00 +01:00
Mark Liversedge
6b2a2dbb65 Auto Interval Discovery (Part 3a of 3)
In this part we have now reinstated the sidebar interval tree
but it is refactored out of athlete and into AnalysisSidebar
where it belongs.

* you can hover and select/deselect intervals in the sidebar

Left to do;

* All the interval operations like sort, drag and drop, find
  delete etc do not work at present and will require some work

* Add a color button to the tree to let the user change the color
  for USER defined intervals

* Add more types of intervals to the discovery; esp routes and
  sustained intervals
2015-05-10 08:30:13 +01:00
Mark Liversedge
100c0be881 Auto Interval Discovery (Part 2 of 3)
In this part we have updated all the charts to reference
the RideItem::intervals() members instead of the TreeWidget
and RideFile::intervals().

The code to create/change/delete intervals is not included
so selecting and editing on charts/sidebar is disabled til
part 3 of the update, but hover should work properly.

Still left todo in future updates;

    * Updates to the interval sidebar to list intervals
      in a tree (by interval type) with a color selector

    * Code to create, edit, delete etc the intervals via
      the rideitem/intervalitem and see them reflected in
      the ridefile

    * Update to search for all the different types of
      IntervalItems including routes and sustained intervals
2015-05-09 18:56:42 +01:00
Mark Liversedge
90c053f09f Auto Interval Discovery (Part 1 of 3)
In this part we have added Intervals to RideDB.json and
are refreshed within RideItem, including interval metrics.

At present the IntervalItems are loaded from the ride file
and we ignore peaks and entire laps in favour of creating
them in the discovery code.

Still left todo in future updates;

* Updates to the interval sidebar to list intervals
  in a tree (by interval type) with a color selector

* Update all the interval charts and dialogs to use IntervalItem
  and the updated sidebar

* Update to search for all the different types of
  IntervalItems including climbs and routes

NOTE: We will not be adding an Interval view until v4.0
2015-05-04 15:59:16 +01:00
Mark Liversedge
bf4ca0af64 Remove old Intervals View
.. we are taking a different approach for v3.2

.. the auto discovery will augment rides and maintain a cache
   of all intervals across all rides

.. the discovered intervals will be selectable alongside ride
   intervals in the sidebar

.. new interval views will be developed in v4.0
2015-05-01 14:03:40 +01:00
grauser
49e964f585 Interval: Add interval type (Device, User, Peak, Route,...) 2015-04-30 18:20:22 +02:00
Mark Liversedge
fb994fa5e7 Rename Ride to Activity
.. across the code, except where it clearly is a ride
   e.g. importing PowerTap or SRM
2015-01-30 10:59:56 +00:00
Joern
6c9de3597b De-activate "Route" related feature (if not selected)
... deactivate "create route from interval" menu entries in SideBar
2015-01-20 18:43:35 +01:00
Mark Liversedge
5692d362d0 ConfigChanged Part 1 of 3
.. introduce concept of configChanged(what) to
   pass details of what config has been changed

.. fixed zones changes to re-read after write
   to correct the save twice to get changes to
   zones bug.

.. next parts need to spot changes (part 2) and
   then action appropriately (part 3)
2014-12-29 13:41:50 +00:00
Mark Liversedge
936d3fe77d Add Double-Click interval to Zoom
.. in the interval sidebar
2014-12-28 12:18:34 +00:00
Joern
0610575a7c Enable Context Help (Shift+F1) using "QT's - What's This"
... adds "What's this" to (hopefully) most of the widgets (please report
on missing ones)
... defines draft "Whats' this" texts including a
context specific WikiLink

.. Help Key for all platforms is <Shift>+<F1> + in some widgets
"RightMouse - Click"

... Tested on Win and Mac (On Mac QtMacButton seems not supporting
"What's this") - so here <Shift>+<F1> has no result.

... ToDo: Create final texts and links based on the to be updated 3.11
Wiki
2014-12-14 18:55:42 +01:00
Mark Liversedge
f148481ada Finally remove Old Ride list QTreeWidget !
.. its been there since the beginning at the heart of the code
   as a registry of the rides (RideItem) and controlling the
   selection of rides.

.. in v3.0 we stopped showing it, but it was still created and
   then hidden immediately. But removing the 'spine' of the code
   was seen as a step too far.

.. this is the first part of moving from SQL to a NoSQL cache
   for ride metrics, metadata and measures -- RideItem is now
   no longer inheriting from QTreeWidgetItem with all the issues
   that brings.

.. since its right at the heart there are likely to be unforeseen
   bugs as we go, especially since it affects the ride navigator.

.. add/delete has been tested a fair amount and should be reliable.
2014-12-03 10:33:50 +00:00
Damien
08987d693a IntervalView: Add a new intervals View 2014-11-12 22:29:40 +01:00
Damien
11c026cf29 RouteSegment: Add a new sidebar 2014-11-12 22:29:40 +01:00
Damien
c094aa92b0 RouteSegment: Search route in interval 2014-10-15 21:08:09 +02:00
Damien
3fabc6810a RouteSegment: Manage RouteSegment (alpha version) 2014-10-02 22:55:54 +02:00
Mark Liversedge
3e72e99b6d Fix RideNavigator white background
.. its in the viewport, which seems a common problem across
   the Qt widgets, we need to be aware of the internal implementation
   details when setting styles.

   Thats a bit crappy.
2014-04-17 16:11:00 +01:00
Mark Liversedge
110d41654d Interval Summary Sidebar Colors
.. now honours the color settings too
2014-04-16 14:38:13 +01:00