Commit Graph

89 Commits

Author SHA1 Message Date
Mark Liversedge
82baf90131 QT5 -- 1 of 3
Porting the codebase to QT 5 (5.2) to get the
latest bug fixes, performance and improved platform
support.

This first part is to fixup the codebase to compile
on Qt 5, but some aspects have been broken (video).

The second part is to migrate from Qwt 6.0.1 to the
latest Qwt for multiaxis support.

The third part will be to fixup any platform specific
issues or issues identified at runtime.
2013-12-09 09:57:13 +00:00
Mark Liversedge
d668f39237 Auto show compare on drag interval
.. but its broken, needs fixing.
2013-11-30 22:19:38 +00:00
Mark Liversedge
ed2bdc5d3a 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
6a8e5d9a49 More MainWindow tidy
.. reduce the number of public members
2013-07-19 15:28:29 +01:00
Mark Liversedge
12f63e2b73 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
0fcbbe1b77 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
c56c5a9567 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
270be46cea Fixup reset layout for tile mode
The show() is needed them, for each chart.
2013-06-04 19:42:48 +01:00
Mark Liversedge
9fc47560ac Fix reset layout 'crash'
Fixes #629.
2013-06-04 19:18:29 +01:00
Mark Liversedge
8a24da3fc9 Fix first file SEGV
If you delete and readd an activity after showing it on
the diary view you get a SEGV.

This is an edge case related to deleting the last activity
and going back to the blank state before importing another.

Actually there are 3 technical issues;

1. GcCalendar doesn't get notified by MainWindow when
   there are no rides -- so it crashes on refresh

2. RideSummaryWindow doesn't get notified by home window
   if its not visible

3. RideSummaryWindow should check rideItem isn't NULL before
   trying to plot zones (but only for date range summaries)

Fixes #622
2013-05-30 19:31:26 +01:00
Mark Liversedge
a7c6732328 Added Jon Escombe to Contributors
.. in about dialog.
2013-05-04 10:04:55 +01:00
Mark Liversedge
27857e0f3a UI Nits: Add chart frame on chart
The frame on the chart wasn't shown and it looked ugly
in the add chart dialog.
2013-05-04 09:29:33 +01:00
Mark Liversedge
e0aa34502e New chart dialog no stay on top
.. to avoid clashing with dialogs opened from the chart
   settings.

Fixes #562.
2013-04-08 19:45:06 +01:00
Mark Liversedge
4ae50b0ecf Code Cleanup: Home and GcWindows
Tidy up code, removing XXX and comemnted out blocks
of code in preparation for V3.0 release.
2013-02-07 13:21:15 +00:00
Mark Liversedge
08a4e1804d UI Nits: Tile Mode cleaner
Made the spacing in tile mode smaller and cleaned up
the decorations to make them cleaner and more in line
with modern UIs like Win 8 and OSX.

Also parameterised the spacing / margins in HomeWindow
in case we want to add a slidebar to adjust them or
maybe even a zooming.
2013-01-20 12:58:23 +00:00
Damien
58951e4e8f Transparent background for reveal controls
Add controls for HrPwWindow
2013-01-15 23:40:39 +01:00
Mark Liversedge
b9b4894b0d Change 'hotspot' for reveal/unreveal 2013-01-14 23:12:28 +00:00
Mark Liversedge
0c34789dcb Chart settings reveal adjust mouse positions
.. have a larger area to activate and deactivate the
revealed chart controls.
2013-01-13 18:30:13 +00:00
Mark Liversedge
92f81b6433 Autohidden chart settings framework
Setup code to enable revealed chart controls. When
in tabbed mode, if the cursor is towards the title
then the chart controls are revealed, as the cursor
moves away or off the chart the controls are hidden.

Each chart, that wants revealed controls must implement;

bool hasReveal() -- return true if controls are available
void reveal()    -- show controls (must be at top of chart and a single line)
void unrveal()   -- hide controls

Will now work through each chart adding the controls as needed.
Will also probably end up with a 'standard' flat stylesheet for
the controls, can implement this later.

See description for this feature here:
https://github.com/GoldenCheetah/GoldenCheetah/issues/31#issuecomment-12040318
2013-01-13 14:55:16 +00:00
Mark Liversedge
731e74aefb UI Nits: Reformat allplot chart settings
To be a little easier on the eye. But still some
room for improvement.
2013-01-10 21:17:10 +00:00
Mark Liversedge
66434beaf8 Fix date selection in Tile Mode
Fixes #424.
2013-01-06 19:02:00 +00:00
Mark Liversedge
aa56f7aa80 Chart Dates: Part 1 of 3
An update to allow users to define a specific date
range for a chart on the home window. This update
only applies to the LTM chart and only allows a
date range from/to to be defined.

It would be nice to also support a last 'n' 'period'
selection too (i.e. last n days/weeks/months).

Also, further updates are required to add similar
functionality to TreeMap, CP, Dist and Summary charts
when they are on the home window.
2013-01-02 14:34:17 +00:00
Mark Liversedge
e9e61f6837 Add Chart on Scope Bar
Put a button on the scope bar to add a chart. This is more
intuitive than the right click menu. The style could be
better but ok for now.

Deprecated the right-click menu option since it is unintuitive
and hidden from the user (i.e. bad UX).
2012-12-24 19:13:12 +00:00
Mark Liversedge
83b5ab6ee2 UX: Chart Setup simplified
Don't ask about height/width factor, no-one knows
what they mean and ou can adjust it once added to
the view anyway.

Also, if there are not chart controls don't reserve
the space for them.
2012-12-20 19:57:58 +00:00
Mark Liversedge
e8077cd578 Merge pull request #378 from amtriathlon/home
Enable HomeWindow Translations
2012-12-16 14:08:48 -08:00
Alejandro Martinez
9e917123af Translate metrics names and units 2012-12-16 18:41:23 -03:00
Damien
fca4c27d2c Remove some warnings 2012-12-15 17:18:44 +01:00
Alejandro Martinez
3daf2097fa New metricsDetails method in LTMTools 2012-12-12 10:56:28 -03:00
Alejandro Martinez
a7988337f2 Enable HomeWindow Translations 2012-12-10 23:49:51 -03:00
Mark Liversedge
f32e1a8536 UI Nits: LTM add chart use a default date range
When adding a chart to the home view no date range is set.
This update ensures that the last selected date range is
used, so when a chart is selected/configured some data
will be shown.
2012-12-02 18:10:26 +00:00
Mark Liversedge
cd2145504a Fix SEGV on cancel remove chart
Recent update to use deleteLater() when removing
a chart in the event loop /always/ deletes the chart
regardless of the user selection, this is because it
is deleted in the wrong place.

It was deleted when the user selected the close menu
option (in GoldenCheetah.cpp) rather than after the
user had confirmed (in HomeWindow.cpp).
2012-12-01 22:19:46 +00:00
Mark Liversedge
b5300181ce UI Nits: Fix fugly LTM settings dialog
Slightly better. Still room for improvement in the
workflow for working with the preset charts.
2012-12-01 22:02:59 +00:00
Mark Liversedge
09c5e1e59e UI Nits: LTMSidebar performance
Remove the double update from HomeWindow and only
update in CP and Histogram when visible.

Still need to:

1. get CP/Histogram to remember what the last update
was to not bother unless something has changed.

2. get RideFileCache to have a cache of recent aggregations.
   Since (a) the same ranges will be called over and over by
   different charts when a season is selected and (b) there
   are only likely to be 20-30 seasons defined in total, so
   lets cache them instead of recalculating every time.
2012-11-26 22:11:46 +00:00
Mark Liversedge
d74bc19ac8 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
4bdd953bad Fix SEGV on close chart in HomeWindow
Needed to delete outside of the event loop, fortunately this
can be done with QObject::deleteLater().
2012-11-24 20:12:26 +00:00
Mark Liversedge
f68d9f2e43 Revert "UI Nits: Reinstate drop shadow option"
This reverts commit 3c57f01674.

It just doesn't work. Painting and UI responses are lost
and the price is not worth paying for some eye candy.
2012-11-13 16:35:46 +00:00
Mark Liversedge
79efd4181b UI Nits: Reinstate drop shadow option
But NOT for win32 and ONLY on the sidebar and tabwidget (for
performance reasons). Since most users prefer the tabbed look
anyway this should be ok.

Performance of the graphicseffect has improved remarkably in
the 2 years since we tried it before. Worth experimenting with
since it adds a bit of polish to the look and feel.

Users turn it on and off in options, it is off by default.
2012-11-13 15:22:38 +00:00
Mark Liversedge
fe5fb53870 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
caaa10bca6 UI Nits: Chart settings and Chart Close Menu
The chart settings are no longer in the side bar and can be selected
from a drop down menu on the chart. This works in tiled and tabbed
mode and allows for further enhancements e.g. custom menu options
for commonly use config options (ala Android).

This is part of a series of updates to migrate away from a sidebar
that is a toolbox of ridelist etc and move back towards a context
sensitive sidebar.
2012-11-07 10:10:56 +00:00
Mark Liversedge
94b0ae6376 Chart settings dialog no longer fixed size
Fixes #619.
2012-01-30 15:51:33 +00:00
Mark Liversedge
078a3ec450 Add Chart Menus
Allow the user to add a chart from the top-level
view menu, or by right clicking on the home page.

I did not implement as right click on toolbar since
there is already an add chart icon on the toolbar
and adding right click is kind of redundant in that
case.

Fixes #606.
2012-01-24 22:09:29 +00:00
Mark Liversedge
494a4adfbe Reinstate Chart Setup Dialog
It was removed when we had a serious bug
that caused a crash when adding a chart.
That turned out to be related to mouse
event processing and drop shadow graphic
effects.

We can remove this is folks don't like it.
2012-01-12 16:00:35 +00:00
Mark Liversedge
63994e2ac4 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
3e069ce3dd Spacing around tab bar. 2011-11-13 19:41:13 +00:00
Mark Liversedge
4f1eb0aee2 Move tab/tile to Toolbar
To switch between tab/tiled mode the selector has
been moved from the homewindow to the toolbar. A
menu option to select tab/tiled mode has been
added to the view menu.

I have also added icons (that change) for show/hide
sidebar and tab/tile select. The show/hide sidebar
check was not being changed when you use the toolbar
button, this has also been fixed.

The scroll view mode has been deprecated. (But the code
has been retained in case we decide to re-introduce it).

Fixes #512.
2011-11-13 19:03:03 +00:00
Greg Lonnon
eddae9521b added reset window layout to all the HomeWindows. 2011-10-16 19:22:42 -06:00
Mark Liversedge
9cffed3d16 More compact controls
The controls in the sidebar are inconsistent; the interval
selector has no spacing or border for a clean look.

This patch updates LTMTool and TrainTool to be more
efficient with the limited space.

A more extensive update is still required to unify all the
chart controls look and feel and get rid of the clunky
layouts with ugly wide buttons.
2011-09-04 01:42:36 +01:00
Mark Liversedge
f63573645f Pretty Toolbar
Fixups for a GC toolbar and the first pass at trying
to make the look and feel more professional. Whilst the
overall usefulness of the toolbar is moot, the grpahics
show the way for greater attention to detail.

Specifically;
* The sidebar should adopt a similar look/feel
* Chart title bars should adopt a similar look/feel
* Sidebar panes should be unified with the same look
* The style selector needs to move - it is cluttering
  up the general clean look.

The code is a little ghetto in places, but will fix up
as the cosmetics are sorted.
2011-09-04 00:19:26 +01:00
Jamie Kimberley
39946aa21e V3-force use of no elide and scrollbars in tabbed view
depending on the style used on a given system the text in the tab bar for
selection of different charts (summary, ride plot...) may be elided on
screens with small resoulution.   This overrides the use of scrollbars
which is was set explicitly in the v2.x code. this patch forces
the use of non-elided text in the the tabs so that scroll bars appear
regardless of the defaults for a selected style.

Fixes #433.
2011-08-28 23:07:55 +01:00
Mark Liversedge
a7121bc726 Eradicate QGraphicsDropShadowEffect from HomeWindow
Left in by mistake and is to blame for the
QTabBat redraw issues and add chart crash.
2011-08-23 22:40:51 +01:00