Commit Graph

65 Commits

Author SHA1 Message Date
Mark Liversedge
d33f07661a 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
de11f0cbb7 Animate Activity List collapse/expand
.. its standard Qt, and is kinda cool.
2013-08-05 16:05:54 +01:00
Mark Liversedge
9473e28200 MainWindow Refactor Part 4 of 5
Split the views in MainWindow into separate classes;

* Tab is a collection of the 4 main views

* TabView is a base class for all of the 4 view types

* {Analysis,Train,Diary,Home}View are all derived from
  TabView and deal with specifics of those views (e.g.
  Diary/Home worry about date ranges).

We should be ready to move to tabbed athletes soon.

There are a few nits left for this part of the refactor
that will need to be resolved in some fixups over the
next few days;

* tile mode segment selector has wrong segment selected
  when the view is in tile mode.

* Minimum height/width of MainWindow is large for some
  reason

* the Train view controls (play, ffwd etc) have nowhere
  to go at present -- need to fix that !!!

* When you resize the mainwindow width the sidebars expand
  and should remain a fixed width

* not sure if it will build on Windows or Mac!
2013-07-27 21:41:03 +01:00
Mark Liversedge
d2901c3119 Move intervals to AnalysisSidebar
Further MainWindow updates, this time moving the code
for working with intervals to the AnalysisSidebar and the
associate menus.

Ultimately, the functions for working with Activities and
their Intervals will move from MainWindow and Sidebars to
the ActivityCollection classes.

This is a step as we strip out MainWindow to just GUI
aspects.
2013-07-18 08:00:35 +01:00
Mark Liversedge
bc4a6d978e Introduce AnalysisSidebar widget
Moving the code intertwined into MainWindow for
the analysis view sidebar; activity list, intervals
and calendar into a new AnalysisSidebar class.

                WARNING!

This is a work in progress checkpoint commit
as the sidebar menus and context menus have
not yet been migrated out -- this will be done
in the next commit or two.
2013-07-15 22:24:31 +01:00
Mark Liversedge
7f1a6dafef Deprecate the Bubble
.. its hideous and really annoying.
2013-07-14 21:18:10 +01:00
Mark Liversedge
59fd0db564 Move specialFields from MainWindow to Context
.. and tidy up a few unneccessary references to mainWindow
2013-07-14 11:51:34 +01:00
Mark Liversedge
d21ca376be 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
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
1b461a9734 10.9 Code Nits
Couple of minor coding nits identified when compiling
on OS X 10.9 Mavericks with Xcode 5 tools.
2013-06-20 15:59:45 +01:00
Mark Liversedge
dc65c5f5c5 Remove Column Chooser from Chart Settings
Because the chart settings are modal its a really bad
idea to open up a column chooser from there. So, by
default, we don't have a column chooser option on the
search/filter box -- it must be explicitly requested.

We therefore explicity set the column chooser from the
mainwindow and also from the ride navigator window.
2013-06-05 07:01:36 +01:00
Mark Liversedge
34a58dbc52 Column Chooser Still Too Big
.. made font smaller so now just about squeezes onto
   a netbook 800x600.

.. we need to make it a scrollarea so it can be much
   smaller.
2013-04-23 07:02:08 +01:00
Mark Liversedge
c1dab28ccd Choose Columns Matrix on Netbooks
The choose columns matrix is to big for a typical notebook display.
This little update makes it wider and not so tall.
2013-04-21 22:07:00 +01:00
Alejandro Martinez
1b078c08fe Enabled translation of GroupBy labels and formats in RideNavigator 2013-04-11 11:46:45 -03:00
Mark Liversedge
d5400c0c51 UI Nits: Activity list cosmetic
Drives me mad, but the separator line was over painted
and it just looked amateurish. Been meaning to fix it for
absolutely ages!
2013-04-06 12:57:16 +01:00
Mark Liversedge
9b677e60f5 Fix sidebar groupby column names error
The visual headings are not reset when the view is reset, for
example after startup. This means the wrong columns are offered
on the activity popup menu for group by.

The resetView() function needed to call columnsChanged() to get
the visual headings reset.
2013-03-09 11:38:04 +00:00
Mark Liversedge
c9dffd2e1a Less right-click on Activity list
.. group by and field chooser now appear on the
popupMenu in the sidebar.
2013-03-09 11:25:32 +00:00
Mark Liversedge
47c58397b5 Code Cleanup: RideNavigator
Remove XXX and commented out code. No functional changes.
2013-02-07 13:08:05 +00:00
Mark Liversedge
0134931638 Fix compiler warnings
All are harmless but for the sake of clarity have
fixed them all bar a couple;

- Lucene grumbles about signed/unsigned conversion which
  is/isn't valid depending upon the version of CLucene you
  compile with. Either way it is harmless.

- QxtScheduleView has a bunch of issues, but since it is a
  third party widget its better to leave it unchanged.
2013-02-06 15:54:32 +00:00
Alejandro Martinez
bf2239d333 Fix RideNavigator Translation
column names from xml file need to be translated to match translated headings,
other posibility would be to match before translation, but this option needed
fewer changes.
2012-12-29 15:16:27 -03:00
Alejandro Martinez
4e8b398c63 Enable RideNavigator Translation 2012-12-19 19:31:54 -03:00
Alejandro Martinez
1774f1b3db Enable Rho and Twitter translations 2012-12-08 16:45:41 -03:00
Mark Liversedge
193a5b01f1 UI Nits: Fixup after ridelist scrollbar 2012-12-04 19:04:43 +00:00
Mark Liversedge
aff76bfde0 UI Nits: Ride list scrollbar on Mac
Style was all wrong and when rides were filtered
the scrollbar disappeared by the space was left
un painted.
2012-12-04 15:58:27 +00:00
Mark Liversedge
d13b7bd979 UI Nits: Ride Navigator weird gap fix
Workaround that by putting new columns at the left
not at the right and the problem goes away. Suspect
it is related to issues with QT and expandLastColumn()
which also displayed issues.
2012-12-03 16:21:21 +00:00
Mark Liversedge
e339abd4af UI Nits: RideNavigator honout font metrics
The row height in the ride list is fixed. When the user
selects a different font the row height should adjust
accordingly.
2012-12-01 17:34:52 +00:00
Mark Liversedge
cce5b9c590 UI Nits: GcBubble positioning
RideNavigator set the GCBubble to the wrong position on
screen which can be confusing when you have a narrow list
of rides. The bubble appeared to be displaying for a totally
different ride.
2012-11-30 10:27:23 +00:00
Damien
8eee2ddb25 Choose Metric/Imperial units in New Athlete dialog
fixes #34
2012-11-26 23:35:35 +01:00
Mark Liversedge
b62fe6a035 UI Nits: Don't delete last column
Don't let the user delete the last column on the
ride navigator. If they do that then there is no
way of adding a column back!
2012-11-23 23:20:03 +00:00
Mark Liversedge
eb30dd9f0e UI Nits: Ride navigator contents margins
When adjusting column widths take into account the
contents margins. Also shows sort indicator on the
columns when not on a mac (this was changed as part
of the recent Mac native polish commits).
2012-11-23 22:27:46 +00:00
Damien
d77c9eeb73 Add a column Start Time in the ride navigator
fixes #33
2012-11-21 22:30:57 +01:00
Mark Liversedge
c8c6af6026 UI Nits: Small font in Details Screen
Adjustment sneaked in by accident to reduce the
font size was hard to track down, but this patch
fixes it and also removes some errant (but harmless)
code in the navigator too.
2012-11-20 06:47:11 +00:00
Mark Liversedge
4796f08930 Add OpenBSD compile support
Thanks to Claus Assmann for the fixups;
- RideNavigator double foreach loops used same name for iterator
- N_TTY line discipline is not defined on OpenBSD (possibly)

Would be nice to have a better fix for the line discipline
stuff, but 0 is usually the TTY line discipline. Bit of a
hack, but ok for now.
2012-11-20 06:08:47 +00:00
Mark Liversedge
f43ac923c5 Mac Native UI (Part 1 of 3)
Part of a series of commits to adjust the UI on a Mac to
look more native and conform better to the Mac UI design
guidelines.

This patch introduces a unified title and toolbar which hosts
a search field and buttons for commonly used functions like
import, split ride, delete etc.

Since it is not possible (or more importantly good practice) to
hide and show toolbar items the Train View controls have now been
moved to the sidebar on a Mac. This is a temporary measure and
will be resolved in future updates.

Further updates planned are;
Part 2 - fixup the preferences pane to be more Mac-like
Part 3 - Spit and Polish around the charts; drop shadows, controls etc
2012-11-18 15:55:07 +00:00
Mark Liversedge
271dbfe48c UI Nits: Indent first column ridenav
Just to make a little more pleasing on the eye.
2012-11-13 20:09:21 +00:00
Mark Liversedge
ed9485f9dd UI Nits: Ridelist cosmetics
A few minor adjustments to the ride list to make
it a bit easier to ride and less dense.
2012-11-13 19:27:27 +00:00
Mark Liversedge
fcbff57bac UI Nits: RideNavigator margins to allow resize
The ride navigator has 0 contents margins which made
grabbing and resizing impossible in paned mode. This
was done to make it look beter when it is a ride list.

It now has a constructor argument to specify if its
being put into mainwindow as the ride list or its being
added to a view.
2012-11-13 14:45:27 +00:00
Mark Liversedge
442cad931b UI Nits: Ride list horiz scrollbar
The ride list / navigator gets a horizontal scrollbar
every time it is shown as the columns are resized but
not taking into account the need for a vertical scrollbar.

The reasons behind this are more complicated but this
patch fixes this annoyance.
2012-11-12 16:12:56 +00:00
Mark Liversedge
054a515354 UI Nits: Fewer default columns
The ride list had way too many default columns making it almost
impossible to see any info. This makes the default columns
workout code, TSS and Date.
2012-11-08 18:11:25 +00:00
Mark Liversedge
fa03fdeeb4 UI Nits: Ride list column widths fixup
An annoying bug that has been around for far too long.. the ride
list headings are resizable and the user can adjust them. But
when GC restarts the sizes are lost.

This was caused by an error in the code that saved away to column
widths -- it failed to use the logical index for each column (since
columns can be re-arranged).

Now upon restart the columns will be the right size -- but for the
very first launch after this bug is fixed the sizes will still be wrong.
They will need to be reorganised and then restart GC one more time.
2012-11-06 12:55:55 +00:00
Mark Liversedge
f48ae3d2a8 Mac UI Sidebar Cosmetics
The sidebar elements all get a blue focus rectangle on
Mac OSX. This is a platform specific setting. This patch
removes the focus rectangle for sidebar components only.
2012-11-06 11:16:41 +00:00
Mark Liversedge
d0b009c922 Data Filter (Part 3 of 3)
Last part of the search/filter functionality;

* SearchBox now incorporates filter and search
  with a new widget. We can update this widget
  to include more fancy UI/Interactions without
  having to change the ride list or charts etc.

* Added search/filter widget to the relevant charts
  and screens; Metrics, TreeMap, CP, Histogram,
  Activity Log, Ride list (refactored out of MainWindow)

* Added namedsearches.xml and adding/selecting them
  from a drop down menu on the search box.

* Fixed some performance bugs related to duplicate
  signals and redraw/reprocessing. Also ensured that
  CLucene remains optional -- but means no search or
  filter functionality unless it is available.
2012-11-05 15:44:01 +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
8eb349ded0 Select active ride in the ride navigator
Fixes #545.
2012-01-21 21:00:52 +00: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
4bf90eff8f Fix crash on exit (WinIdChange). 2011-11-19 20:39:22 +00:00
Mark Liversedge
6d92c204ba Fixup RideNavigator on Linux
Linux build using the 4.8 qt rc uncovered a couple
of bugs in the new ride navigator code. This fixes
that, but needs to be tested in earlier versions,
e.g. 4.6, 4.7.
2011-10-21 19:39:15 +01: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
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