Commit Graph

34 Commits

Author SHA1 Message Date
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
38597b0ed9 UI Nits: RideMetadata clean look on Windows
.. remove the ugly frame.
2013-03-24 17:34:35 +00:00
Mark Liversedge
18e53197a8 Windows Look and Feel
.. akin to the Mac look and feel
.. still needs a bit of cosmetic work, but basically sound
.. also added in fixes to native file imports

Fixes #404
Fixes #504
2013-03-14 22:53:37 +00:00
Mark Liversedge
9bc328ce8c Weight entry honours user preference
.. metric or imperial.
2013-02-24 18:38:39 +00:00
Mark Liversedge
d341943da9 Code Cleanup: Ride Data and Friends
.. cleaning XXX and misleading comments
2013-02-10 10:57:33 +00:00
Mark Liversedge
3bf8b8d721 Edit times using a QTimeEdit in Metadata
When overriding the duration, time riding and other
time based metrics in the metadata screen it asks
the user for the time in seconds.

This update offers a QTimeEdit to edit them, a little
more user friendly.

Fixes #422
2013-01-05 12:43:48 +00:00
Mark Liversedge
f51a582330 UI Nits: Metadata TextEdit double frame
For example the notes field on its own tab looks fugly
with a frame inside a tab (especially on a Mac). So this
patch removes the frame and background for a cleaner look.
2012-12-27 23:58:03 +00:00
Alejandro Martinez
c0372290d7 Enable Metadata translation
This patch keeps the original english name of SpecialFields and SpecialTabs
as internalName, to preserve compatibility, while it uses a translated
displayName for user interfase in other languages.
2012-12-04 22:00:59 -03:00
Damien
8eee2ddb25 Choose Metric/Imperial units in New Athlete dialog
fixes #34
2012-11-26 23:35:35 +01:00
Mark Liversedge
9bf3e69beb User configure Field to set colors from
The user can now select a metadata text field to use when
setting colors from keywords.

Fixes #32.
2012-11-23 22:01:41 +00:00
Mark Liversedge
557bf01018 UI Nits: Add Brief Summary on Calendar Sidebar
To show aggregated summary of effort for the time period. This
is part of a collection of updates to address iritations or
nits in the v3 UI.
2012-11-12 13:21:53 +00:00
Mark Liversedge
25033cf7cd UI Nits: Metadata gap in tab widget 2012-11-07 21:01:58 +00:00
Mark Liversedge
d33c337b8f Search/Filter using Lucene
Searching and filtering the ride list using a search box.
This is implemented using a new optional dependency on
CLucene.

Fixes #627.
2012-10-21 15:28:26 +01:00
Damien
a1252f4844 Modify TM processing
For some reason the processing of the TM symbol causes a
crash on Mac OSX. This patch fixes that.
2012-09-15 18:38:24 +01:00
Mark Liversedge
9c7a009f82 Fix (TM) processing
Lost in previous commit somehow.
2012-08-19 20:36:52 +01:00
Damien
d51cb951ce Add Left/Right Power Support
Add Left/Right Power Balance for FIT and Polar HRM parsers
 Add Left/Right Balance metric
 Add Left/Right series to Ride Chart

Fixes #711.
2012-08-19 13:57:24 +01:00
Mark Liversedge
58e670e2c3 Add Temperature to Ride Summary
More complex than I had hoped for, to add
Temperature I needed to;

* introduce two new metrics Avg/Max temperature
* adjust metric conversion to include a conversionSum
  for the C to F conversion
* handle temperature as a metadata field as well as a
  ride data series
* handle the RideFile::noTemp value rather than just
  averaging or calculating max.

Fixes #603.
2012-01-15 16:27:09 +00:00
Mark Liversedge
43964f97e8 Disable roch text in metadata
It causes significant performance issues when
pasting complex font information, we only allow
plain text since we only serialise the plain text
elements anyway.

Fixes #599.
2012-01-14 12:21:39 +00:00
Mark Liversedge
ccdce3b3a5 Fix SEGV on Mac on Save Preferences. 2011-11-26 22:54:30 +00:00
Mark Liversedge
7dbf9ccaff Fix Serious Delay after saving Preferences
Caused by instantiating way too many copies
of the specialfields class, when one is freely
available for reference.
2011-11-26 20:51:45 +00:00
Mark Liversedge
dfaf151eab Check Date/Time unique
Issue a warning if the user changes the ride date/time
to the same as an existing ride.

They can still go ahead, but when saving it will overwrite
the existing file.

Fixing the save routines to check would require significant
refactoring and can be fixed at a later date.

Fixes #466.
2011-10-06 19:50:37 +01:00
Mark Liversedge
9a6e14e399 Activity Popup Bubble
A popup bubble when hovering over the activity
history or an entry on the calendar.

It is a pre-cursor for the activity bar for
selecting rides and is available for any
widget to call (it is a member of mainwindow).

To support the data series indicator icons a
new metadata field 'Data' has been added to
store a string to represent the data series
that are present.

In addition, the Sport code is used to decide
if a bike/run/swim icon should be shown instead
of a string (but needs translation support when
we get round to that).

Lastly, it has been coded for horizontal alignment
but will need to be updated for the activity bar
to support vertical alignment.

This is an experimental feature and will develop
over time, specifically;

* you cannot define which metrics are show in the
  bubble -- they are hardcoded at present

* the coloring is hardcoded, as is the font size

* Only the activity list and diary use it.
2011-09-10 22:36:13 +01:00
Mark Liversedge
0da64bb85e User definable value list for Metadata fields
The user can now define a value list for the metadata
fields. This means for codes like 'Sport' they can define
values like 'Bike', 'Run', 'Swim'.

The input box uses a popup Qcompleter and will only warn
if the entry is not one of the pre-defined values (i.e.
it is not a MANDATORY list).

Fixes #444.
2011-09-03 10:59:06 +01:00
Mark Liversedge
70c371d982 Add Activity Details to Sidebar
The metadata information is now shown within
the sidebar.

We need to implement a mechanism for the users
to configure the sidebar widgets etc pretty soon
now, since this update is useful, but the sidebar
is getting crowded out.

Minor changes to ridemetadata to allow a 'single
column' view, but mostly all the widgets were
already instantiated so there is no real cost
to this update.
2011-08-31 21:11:49 +01:00
Mark Liversedge
8a058c0db5 Show "hidden" metadata in an 'Extras' tab
The ride file readers will often set metadata fields
for device specific information, or just to store data
that has nowhere else to go.

In addition, when an athlete shares a ride with their
coach they would need to keep a common metadata setup.

To get around the 'hidden' nature of metadata that is
not configured and therefore not shown, the metadata
screen will show all tags, which are not shown elsewhere
in an tab labelled 'Extras'.

It is not possible to edit this data, we may change that
later. But for now the consequences of users changing
'internal' metadata is unquantified.

The overhead of creating and destroying widgets on the
extras tab mean that scrolling up and down the ridelist
with the Extra tab shown may be slow for some users. I
have optimised the refresh as much as possible (it has
zero impact if the extras tab is not selected).

In developing this I found that the homewindow
was sending two update signals when you were in tab
mode. This is fixed and tab mode should feel a tiny
bit snappier.

Fixes #385.
2011-08-02 22:37:52 +01:00
Mark Liversedge
ed9f851f4b More Tab / UI fixups
A bit more love for tabs and other minor cosmetic tweaks.

* View now remembers style used (tab, scroll, tile)
* Allow user to re-order tabs
* Google Map border reduced
* Google Map refresh delay (to make UI snappy when resizing)
* Minor calendar cosmetics
* Use utf8 encoding on config files (language support)
2011-06-13 16:12:16 +01:00
Mark Liversedge
da8eec1b13 Further UI fixups
More work to unify the tab view with the overall
UI look-and-feel, allowing you to remove and add
tabs via mouse over rather than the close tab
icon. Also added a number of cosmetic adjustments.

Fixed up PerformanceManager and ScatterPlot to
pick up on the chart fonts and tick size etc.

Removed some erroneous static members in the
ScatterPlot that caused a SEGV when adding multiple
charts (or cancelling an add then adding again).
2011-06-10 23:27:51 +01:00
Mark Liversedge
4801fc0b87 Make toolbar color configurable
Not generally useful but allows one to make the toolbar
menu and titlebar match for a more pleasing general effect.
Most users will not use this I imagine and use the default
window colors.
2011-05-15 21:35:21 +01:00
Mark Liversedge
1fdf45d26d Improved Calendar Support
Fixes previous CalDAV support, as MobileMe based calendars
now work ok. Additionally, a new 'id' field has been created
to provide a persistent and immutable identifier for a ride
file (regardless of changes to date/filename).

The URL provided in the Calendar config pane can now include
'@' symbols (they are translated to %40).

The CalDAV URL should be provided for a calendar collection and
not for a principal. Examples being (trailing slash is significant):

Google  : https://www.google.com/calendar/dav/xxxx@gmail.com/events/
MobileMe: https://cal.me.com:8443/calendars/users/x.xxxxxxxxxx/home/
2011-01-22 18:54:05 +00:00
Mark Liversedge
1db39c5536 Fix homewindow bugs
Fixes;
- drag and drop ride works again
- segv on an empty measures curve in metric plot
- remembers all LTMsettings
- further cosmetic/visual tweaks
2011-01-02 13:14:34 +00:00
Mark Liversedge
3aba7dd788 Inital V3 Branch 2010-12-30 17:35:23 +00:00
Mark Liversedge
cd3bbc4e64 Ride editor and tools
A new tab 'Editor' for manually editing ride file data points and
associated menu options under 'Tools' for fixing spikes, gaps, GPS
errors and adjusting torque values. A revert to saved ride option
is also included to 'undo' all changes.

The ride editor supports undo/redo as well as cut and paste and
"paste special" (to append points or swap columns/overwrite
selected data series). The editor also supports search and will
automatically highlight anomalous data.

When a file is saved, the changes are recorded in a new metadata
special field called "Change History" which can be added as a
Textbox in the metadata config.

The data processors can be run manually or automatically when a
ride is opened - these are configured on the ride data tab in
the config pane.

Significant changes have been introduced in the codebase, the most
significant of which are; a RideFileCommand class for modifying
ride data has been introduced (as a member of RideFile) and the
RideItem class is now a QObject as well as QTreeWidgetItem to
enable signalling. The Ride Editor uses a RideFileTableModel that
can be re-used in other parts of the code. LTMoutliers class has been
introduced in support of anomaly detection in the editor (which
highlights anomalies with a wiggly red line).

Fixes #103.
2010-07-17 14:33:39 +01:00
Mark Liversedge
778d651f00 User Configurable Metadata
User configurable data entry for recording information about
each workout.

FEATURES:
* Config UI for defining tabs and fields to maintain
* Config UI for defining keywords and colors
* Data maintenance UI on RideSummaryWindow
* "Special" Metadata fields are related to current variables
* Read/Write new fields/metric overrides via GcRideFile
* Metadata extraction in WKO files
* Calendar uses keyword and color config
* Numeric metadata is plottable on the Metric charts
*Metric refresh has been optimised
2010-04-01 10:29:13 -04:00