Commit Graph

48 Commits

Author SHA1 Message Date
Mark Liversedge
5e59fbe0b7 Workout Editor - Part 1 of MANY
.. initial code to display an ERG file for editing

.. this just introduces the basic model for rendering
   the erg file and loading the model.

.. the interaction model using a 'points' editor will
   follow next and then one to use 'blocks'.

.. There is a LONG way to go, this commit is just to
   put a checkpoint down and test across platforms
2015-12-28 16:44:28 +00:00
Mark Liversedge
4b6de65e04 Remove reference to code pushed early
.. in previous commit.
2015-12-25 20:30:58 +00:00
Mark Liversedge
192708c3ab Reorganise src.pro
.. it had become a bit of a mess with various changes
   over the last 5 years so restructured into 3 sections

   * core and platform config
   * optional dependencies
   * source and headers

   This is to help make it easier to maintain, especially
   since support for the MSVC toolchain is likely to mean
   it is modified quite a bit (in section 2 anyway)
2015-12-25 20:10:44 +00: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
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
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
35bd254a70 Add "GC_HAS_INTERVALS" for Route Window
... do not allow Route Window if not demanded
2015-01-16 18:35:18 +01:00
Mark Liversedge
e814d98797 GcWindowResgistry compile nit 2014-12-29 21:49:09 +00:00
Damien
08987d693a IntervalView: Add a new intervals View 2014-11-12 22:29:40 +01:00
Joern
f1447d2664 AthleteDirectory - Folder Structure Part 1
... introduce new "home" Folder structure object representing the
previous flat-folder
... adjust relevant QDir home - access to use the sub-folder method of
the new object

Note: the new structure is not yet active ! - everything is written to
the main folder still

To Do:
... add upgrade procedure for existing folder content to merge to the
new folders
2014-10-25 19:08:27 +02:00
Damien
3fabc6810a RouteSegment: Manage RouteSegment (alpha version) 2014-10-02 22:55:54 +02:00
Mark Liversedge
515f9f77fc Set the title when adding a chart
Fixes #967
2014-07-10 20:13:45 +01:00
Mark Liversedge
ddfdb78e55 GC_VIDEO_XXX Configuration (windows)
.. now tested on Qt4 and Qt5 with VLC and NONE without issues.

.. but did notice a double include in GcWindowRegistry that has been removed.

NOTE: Still needs testing on Mac OS X
2014-06-28 15:22:20 +01:00
Mark Liversedge
fde98093a7 GC_VIDEO_XXX Configuration
.. you can now select what kind of video widget you
   want to build.

   GC_VIDEO_NONE       - No media support compiled in
   GC_VIDEO_VLC        - Use VLC (only on Win/Linux)
   GC_VIDEO_QUICKTIME  - Use Apple QuickTime (only on OS X)
   GC_VIDEO_QT5        - QT5 video and associated backends (O/S dependent)

NOTE: This needs testing on non-Linux platforms.
2014-06-28 14:49:33 +01:00
Mark Liversedge
c6ed3f0a3b Use QT 5 Video Playback
.. If you build with QT 5 then we now use the QT video widgets
   instead of VLC for Windows and Linux

.. We still use QuickTime for Mac OS X

NOTE: On linux Gstreamer is used and therefore all the right
      codecs and backends need to be setup for this to work.
      On windows its more complicated as it depends how Qt
      was compiled, see:

         http://qt-project.org/wiki/Qt_Multimedia_Backends
2014-06-23 16:23:45 +01:00
Mark Liversedge
5cc7fdf2a9 3.1 Upgrade Processing Part 3 of 3
.. PM chart is deprecated, so when loading an LTM chart
   with skiba curves is implemented instead.

.. we cannot easily add charts to the layout without refactoring
   HomeWindow so have moved that out of scope

NOTE: The upgrade processing has not been activated -- but can
      be once we build and issue our first 3.1 RC.
2014-06-22 16:25:17 +01:00
Mark Liversedge
8669ce641a 3d plot code update
.. to reflect current code requirements

NOTE: there is a 'phantom' widget with the 3d window that
      covers the left side of the chart bar and makes it
      impossible to click on the summary button.
2014-06-21 22:58:20 +01:00
Mark Liversedge
2da093cbe9 Deprecate the old PMC
.. its too far out of date;

   the UX is terrible and flickery
   its a cpu hog (deletes all objects on each replot !? wtf)
   it doesn't honour colour config
   it doesn't integrate with the sidebar date selection
   the metric selection should be via a reveal control
   can't hide the legend / set grid / use chart settings
   should use a tooltip
   doesn't work with compare

.. all these issues are resolved using an LTM based PMC

Fixes #880
2014-05-20 06:06:16 +01:00
Mark Liversedge
ccfaaf3b97 Fix CP chart reveal controls on QT5
.. and also remove the yucky labels on the chart in readiness
   for a CP model widget to overlay and move about the chart.
2014-03-21 12:38:11 +00:00
Mark Liversedge
d54d7e3f83 Rename LTM to Metric Trends
.. LTM is a meaningless acronym
2014-03-19 18:57:29 +00:00
Mark Liversedge
87ba542197 What's in a name ?
The 4 views have been shown to be confusing -- it is not clear
to new users what their purpose is, and hence how or why they
are different.

So in an effort to reduce the confusion I've renamed a few
things to be much more explicit and specific.

.. We embrace the fact we are a cycling program and use the term
   RIDES not ACTIVITIES for all files

.. HOME is confusing, renamed to TRENDS

.. the ANALYSIS view name is confusing, its all about ANALYSIS
   to renamed to RIDES

There will no doubt be areas that are not renamed properly we
can fix those when the arise.
2014-01-12 13:06:00 +00:00
Mark Liversedge
880f9178b2 Checkpoint TabView commit
Part 4 of the MainWindow refactor is moving the code for the
4 views (Analysis, Train, Home, Diary) out of MainWindow and
into a separate set of classes.

TabView is the base class for the 4 views and the basic code
is in this commit, but now need to work on the 4 derived
classes for Analysis, Home etc and the controller class 'Tab'.
2013-07-27 10:29:26 +01:00
Mark Liversedge
05f1d577db 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
e407237ac0 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
9f94ba823d Code Cleanup: Deprecating stuff
Train view - race* - out of date and no used
Train view - SimpleNetwork - not used
Analysis view - WeeklySummaryWindow - not used
MainWindow - RideCalendar - deprecated 2 years ago
2013-02-11 10:03:21 +00:00
Mark Liversedge
d8696debb4 Code Cleanup: GUI elements 2013-02-10 21:18:14 +00:00
Alejandro Martinez
3df4211d1f Enable chart names translation 2012-12-18 14:32:03 -03:00
Mark Liversedge
2dea77e1ae UI Nits: LTM Sidebar (Part 1 of 3)
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.
2012-11-26 20:20:36 +00:00
Mark Liversedge
d22777ed74 UI Nits: Daily/Weekly/Monthly Summary
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.
2012-11-13 13:27:36 +00:00
Mark Liversedge
344cccb913 Added SpinScan Plot
I finally got round to decoding the spinscan data
from computrainers. This is now implented in train
view.

A new chart is available 'Pedal Stroke' to show the
spinscan data returned by the computrainer.

I am unsure if the decoding is 100% on the money but
have been testing for a week and it seems ok.

Fixes #530.
2011-11-30 23:26:20 +00:00
Mark Liversedge
c5038d87d4 Add Chart Menu fixups
The add chart menu had the ride plot on home
and charts were ordered in a relatively random
order.

This patch orders the charts by relevance for the
particular view and moves the 'Performance' chart
to the Analysis selection.
2011-11-20 15:58:45 +00:00
Mark Liversedge
8dd6da0027 Add Chart from Toolbar menu
The drag and drop function for adding charts may
be functionally appropriate, but it is not intuitive
for new users.

This patch moves the add chart function to the toolbar
as a drop down menu. it also makes the chart selection
context sensitive - so on training view only realtime
charts are listed.

Fixes #517.
2011-11-19 14:27:55 +00:00
Mark Liversedge
053bd6ca69 Train View controls in Toolbar
Updated the realtime view (Train) to put the
realtime controls in the toolbar and removed
the old realtime controls chart.  They only
appear in Train view.

Additionally, the workout list and media list
are now in the sidebar under 'Workout Library'.

Finally, the first device configured is always
selected at startup, but this is a temporary
change until the realtime device wizard is coded
to set a default device.
2011-11-06 19:34:46 +00:00
Mark Liversedge
09724e5796 Mac Video Playback via QTKit not VLC
Ghetto code with video selection and all the basic
building blocks in place. Playback is only via the
quicktime controls, paint issues abound and there
is a problem with deallocation of the movie object.

But the basic stuff is there, time to refine and iron
out all the little bugs.

Written whilst on hols in Gran Canaria :)
2011-10-30 22:35:23 +00:00
Mark Liversedge
0d1ad15bf7 RideNavigator as a Window
You can now place a ride navigator on the chart layouts, this allows
the user to configure many more columns and use the navigator to
browse and order the activity history in a log/journal format.

The default diary layout now has two tabs; one for the calendar and
another for the activity history.

There appears to be a few minor bugs related to column/chart resizing
that have been present for a while, but are more obvious now the navigator
is a chart in its own right. These will be resolved later.
2011-10-21 18:43:24 +01:00
Greg Lonnon
af18bc83cf Added Map and StreetView charts to the TrainTool.
Following changes
* added google Map and Streetview charts.
* changed the telemetryUpdate to use a const reference instead of a value.
* RealtimeData is const correct, or more const correct than it was...
* added a new resource files to support the new charts.
* changed the NullController to return a constant speed to help with development.
2011-09-20 20:29:31 -06:00
Mark Liversedge
f777ada39f Start to use consistent terminology
* Rides are now Activities
* Cyclists are now Athletes

This is just a first pass, no doubt many more
lurk within the codebase. Will raise a defect
to cover the remainder.
2011-09-01 21:48:51 +01:00
Mark Liversedge
df6a44ca83 Workout Controls for Train View
Fixes broken controls on train view, so we can now start stop
with the sidebar hidden and also adjust the settings for the
realtime dials on the layout.

Will need to think about saving the properties of the controls
to use last used settings.

Fixes #439.
2011-09-01 20:59:03 +01:00
Mark Liversedge
1bfe0bd3f8 Microsoft Bing Map
Following on from the recent changes to the Google Map control
to support their new v3 API, this patch introduces an alternative
map view using the Microsoft Bing v7.0 API.

Remarkably, the MS and Google APIs are extremely similar. Porting the
original code to use the MS API was relatively trivial. It would
probably make sense to combine the two charts into a single chart
with an option to select a map provider.

However, at this point to help in code maintenance they are separate
charts. It is likely that they will diverge somewhat to take advantage
of the differing features offered.

The same functionality and basic colors/lines are available in the
Bing map as the Google one. We should look at adjusting, since the
Bing map styles are more detailed and go to a much higher resolution
than Googles. As a result the current theme looks quite clumsy on
a Bing map and could be changed to use more strident colors and
take advantage of dash polylines (for example).
2011-07-31 13:29:24 +01:00
Mark Liversedge
4ab96e16d1 Sidebar, Ride List and Aeshetics
An update to the ride list on the left hand side
to enable the user to choose and sort or group-by
metrics, metadata fields and ride information.

In addition, the sidebar has been 'improved'
cosmetically and to require less screen estate.

Also, the ticks and frames on plots have been
adjusted to be more aesthtically appealling.

There is more to come on the look-and-feel front,
but this patch heralds some work on the sidebar
which needs to be resolved.
2011-06-01 16:34:24 +01:00
Mark Liversedge
3ae81329d7 Make Training View Configurable
The training view (aka realtime) is now configurable
allowing users to drag and drop appropriate charts
and dials onto the main view.

The controls for this view are static and comprise the
old controls with start/stop buttons, device selections etc.

I have removed deprecated code too, the following are removed
from the repository;
* ViewSelection
* RealtimeWindow
* TrainWindow
* TrainTabs

Fixes #290.
2011-05-10 18:21:08 +01:00
Mark Liversedge
be86541ff5 Add WorkoutPlotWindow
As part of the ongoing preparation for training mode to support
a more configurable layout the workout (ergfile) plot is now
a window that can be dragged and dropped onto a layout.
2011-05-08 20:27:33 +01:00
Mark Liversedge
c54b2b3e3e Add Realtime Plot Window
The realtime plot is now a chart than can be dragged and dropped
onto a window layout. This is part of the preparation to move
the training view to use be configurable, aka home window.
2011-05-08 13:58:53 +01:00
Mark Liversedge
36faf69b43 Add metadata window to charts
The home window layout will soon be extended to cover
realtime and analysis views. In preparation for that
some additional charts are being created.

This patch introduces the metadatawindow which only
contains the metadata fields (i.e. no ride summary).
2011-05-08 10:36:00 +01:00
Mark Liversedge
714ab730b3 Training Mode Improvements - Part 1 of 3
Update to training mode to improve the UI and overall
user experience. This initial patch introduces:

* Video Window - but ghetto and not fully functional
* Congigurable - drag and drop 'dials' onto homewindow

In future updates we need to:
* Support Video fully - Only Linux in this patch
* HomeWindow - Make Training mode the same as HomeWindow
* More Dials - Support metrics (e.g. BikeScore)
* RT Charts - Make RT plot drag/drop and support other
              types of charts (e.g. Time In Zone)
* Controls - Add more controls for FFWD/REW, Skip etc

This patch has been tested on Linux ONLY. It is being committed
to support further build/deployment work for Win32 and Mac OSX.
2011-04-03 18:30:35 +01:00
Damien Grauser
6ac75fda3a SRMWIN Style HrPw Plot
Added a plot of heartrate to power showing
histograms of power on y-axis, heartrate on
the x-axis and overlaid hr/power scatter.
2011-01-07 22:07:23 +00:00
Mark Liversedge
0ef63a51a4 Make libical optional
If ICAL_INSTALL is not defined in gcconfig.pri
then diary/calendar functions are not compiled. This makes
libical an optional dependency, like libkml, libqwtplot3d et al.
2011-01-03 11:30:56 +00:00
Mark Liversedge
3aba7dd788 Inital V3 Branch 2010-12-30 17:35:23 +00:00