Commit Graph

141 Commits

Author SHA1 Message Date
Andreas Buhr
e77b3ff4d0 Replace deprecated QSignalMapper::mapped signalD
Fixes #3986

The QSignalMapper::mapped signal does not exist any more and
was replaced by mappedString, mappedInt, and mappedObject.
This patch adapts its usages and only transitions to
new style signal-slot connection syntax.
2024-01-12 09:54:13 -03:00
Alejandro Martinez
46545d6e72 Don't use Ctrl+C to check for new activities
Fixes #4430 introduced by ea044a0c while fixing a typo.
2024-01-10 09:30:10 -03:00
Alejandro Martinez
ea044a0c39 Accelerators are QKeySequence not tr strings
Continuation of b095b40
2024-01-06 17:15:33 -03:00
enngq11k
c2f440c1c0 Fixed broken workout directory check for the first start (#4410)
Fix1:
appsettings->value default fallback "0" if no fallback value was given.
So a new GoldenCheetah installation will always use path "0" until a
workout directory was set in the settings.
We now use an empty string as fallback to get the condition working
again

Fix2:
Instead of using the athlete->home parent folder, the old code returned
the parent's parent folder. Until a workout directory was set in the
settings, the user had to navigate to the (hidden) athletes folder
everytime by hand.
2023-10-31 11:18:31 -03:00
Alejandro Martinez
b095b403bd Accelerators are QKeySequence not tr strings
Fixes #4409
2023-10-28 10:38:34 -03:00
Alejandro Martinez
733db9cb16 Ignore dot folders on athlete open/backup/delete
Fixes #4392
2023-09-03 21:45:23 -03:00
Mark Liversedge
c97eac67a2 Default Appearance Settings 1 of 2
.. The default appearance settings on new install or directly
   after and upgrade are terrible and create a poor impression
   for new users

.. This commit fixes up scaling, font selection and themes so
   that for a new install or directly after upgrade they are
   set to defaults that are sensible for the current release

.. It is expected that these defaults will change and extend as
   we implement new features and the UI evolves- so these should
   be used as a basis for defaulting in the future.

.. A second update is required to resolve issues with scaling in
   overview charts dependant upon the screen resolution
2023-05-25 08:44:43 +01:00
Paul Johnson
fdb35bf74e Athlete tab colour fix (#4257)
* Corrects Athlete QTabBar tab colours to match NewSideBar,
  abstract on select background color selection from NewSideBar
  to Colors for reuse in MainWindow
* Fixes dropMenu visibility within the Filter/Search Box on Dark Themes
---------
Co-authored-by: Alejandro Martinez <amtriathlon@gmail.com>
2023-03-23 20:01:46 -03:00
Alejandro Martinez
6bf7781aea Change running Python DPs from Edit menu
To better match the new BatchProcessing dialog
- Python DPs are listed together with builtin processors
  to be executed like parameterless built in DPs, with
  option to cancel.
- They also appear under the Python Fixes submenu, but in
  this case they also can be edited.
2023-03-17 13:40:19 -03:00
Paul Johnson
add0f301e9 Batch processing (#4226)
Batch Processing - Delete, Data Processors & Export

Extension of Batch Export dialog to include other operation on multiple activities:
- run data processor (Builtin or Python)
- delete (after confirmation)

Co-authored-by: Alejandro Martinez <amtriathlon@gmail.com>
2023-03-17 13:01:48 -03:00
Mark Liversedge
402edf51fc Stop signal processing during resetPerspective()
.. fixes undesirable behaviour with click thru on user charts

Fixes #4325
2023-01-28 17:44:51 +00:00
Mark Liversedge
64386bc1ba Perspective Selector Sync on switch Athlete tabs
.. when switching athlete tabs the perspective selector would
   always be reset to the first entry, this update makes sure
   we reset to the correct one.

Fixes #4325
2023-01-28 16:28:08 +00:00
Alejandro Martinez
9eb81385e8 Revert "Fix strange behaviour when changing views"
This reverts commit 0ddea94b7a.
2023-01-26 15:31:29 -03:00
Alejandro Martinez
0ddea94b7a Fix strange behaviour when changing views
The problem was introduce by 3a16d1e, the change in perspectiveSelector
current index triggers currentIndexChanged when the view change has
not been finished, to avoid this we use activated signal and add
a check to do nothing when the index has not changed.
The problem was reported at the forum.
2023-01-26 12:06:37 -03:00
Alejandro Martinez
7b44eaa7a8 Deprecate Google Drive and Calendar due to changes in OAuth
Fixes #4259
2022-08-24 18:55:44 -03:00
Alejandro Martinez
6d4921ba09 Add context sensitive help for the toolbar
Includes updated screen capture for the wiki.
2022-07-04 17:31:38 -03:00
Alejandro Martinez
4812661c9c Move Settings in Athlete menu
It did't look good in the previous position.
2022-01-25 21:17:21 -03:00
Mark Liversedge
522844508e Train View Perspective Switch - 1 of 2
.. add configuration of switching mode for train view perspectives

   the next commit will add the code that switches when a
   workout or media is selected.
2021-12-09 12:30:28 +00:00
Mark Liversedge
20201c16a8 View sidebar controls
.. when enter/leave full screen mode the view sidebar is
   hidden and shown to increase screen real estate (and
   especially useful in train view).

.. since the user may want to show/hide for other reasons
   the view menu now also has an option to show/hide the
   view sidebar selector too.
2021-11-18 09:16:34 +00:00
Mark Liversedge
2f703594e9 Hovering Color
.. add GColor(CHOVER) and used in sidebar, chartbar and
   toolbar when hovering over a button or tab.
2021-11-15 16:47:33 +00:00
Alejandro Martinez
d9b768514a Update translation files 2021-10-14 11:54:12 -03:00
Alejandro Martinez
d2a7f5797a Add Athlete > Settings to main menu
For completeness and to allow access to Athlete Settings
from other views.
Fixes #3723
2021-10-10 18:45:59 -03:00
Mark Liversedge
a4d928e4a0 More muted and modern Toolbar buttons
.. the side bar, bottom bar and related buttons were still
   following a skeuomorphic design that has long since
   fallen into disuse.

.. now have a more muted feel with hover/press colors active
   on mouse events.

.. moved the whatsthis button to the far right since this
   is quite a common placement in other apps.

.. it is noticeable how we use many many different schemes
   for hover/pressed colors across the UI- at some point
   this should be unified.

.. also deprecated the segmentcontrol.
2021-08-24 20:56:31 +01:00
Mark Liversedge
e02e19a979 Mac Toolbar UI Tweaks
.. bit more breathing space required, as overly compressed.
   Especially since there is no application menu bar on Mac.
2021-08-24 15:35:38 +01:00
Mark Liversedge
31f51dbdd5 Toolbar Styling on MacOS
.. remove conditional for styling the toolbar on Mac. This is
   an artefact from the old "UnifiedTitleAndToolBar" which we
   no longer use.
2021-08-22 11:02:49 +01:00
Mark Liversedge
d449933ab1 Refresh Perspective Selector on Add/Delete
.. commit 91f2c46 introduced a regression where the selector
   is not updated when the perspectives are changed (via
   the manage/add perspective functions).

.. this was because resetPerspective() returned if the
   athlete/view combination was last used to set the
   selector -- we now override this, but only when the
   perspectives config is changed.
2021-08-12 16:50:06 +01:00
Alejandro Martinez
39fc9e4537 Enable View - Reset Layout considering perspectives
It behaves as before: current view layout is discarded and default
layout with perspectives is fetched from goldencheetah.org first and,
if not available, baked in layout is used.
Website defaults are not updated yet, so baked in layouts are used now.
2021-08-09 17:30:10 -03:00
Mark Liversedge
91f2c46c3e Athlete/View switch update perspective selector
.. along the way renamed AthleteTab related methods in MainWindow
   to reflect the last commit renaming the classes.

.. there are also a handful of fixups to SEGV when no ride is
   selected in DataFilter (triggered by opening a second athlete
   and switching to trends view, which need to recreate the athlete
   switch bug that is also part of #3997).

.. and the logic to reset perspectives is changed in MainWindow
   with a special method resetPerspective that is called everywhere
   but will check the athlete/view combination has not already
   been set (to avoid multiple passes).

.. multi-athlete and perspectives need better testing as there are
   probably more SEGV in there, and if we fix them we could also
   remove the requirement for the opening view to always be Analysis.

Fixes #3997.
2021-08-08 15:19:36 +01:00
Mark Liversedge
01e0d14757 Renaming classes
.. Tab becomes AthleteTab - since Tab is almost meaningless
   TabView becomes AbstractView - since its the base for all the views

   there are no functional changes or fixes in this commit.
2021-08-08 13:05:06 +01:00
Mark Liversedge
663b6af8fb Fix toolbar vs sidebar color configuration
.. they got conflated, now are separate colors but when we
   apply a theme they are set to the same color, of course
   the user can override this.
2021-07-17 11:41:49 +01:00
Alejandro Martinez
39a7e67085 Add parent widget to AddPerspective dialog to stop it being hidden
raise doesn't fix the issue on Windows
2021-07-08 18:24:47 -03:00
Mark Liversedge
b738038907 Trends view perspective filter
.. applies to all charts in the perspective, so you can create
   a perspective called "Running" and set the filter to "isRun"
   and all charts in the perspective will only show data from
   runs.

.. updated charts on Trends view to honor the perspective
   filter, as below:

   * Overview
   * Trends
   * User Chart
   * Treemap
   * Critical Power
   * R Chart
   * Python Chart
   * Histogram - for metrics
   * Summary - no change as deprecating shortly

.. renamed the HomeView to TrendsView in line with some of the
   other recent name changes. The class names were set over 10
   years ago and no longer reflect the UI concepts.

.. New signal: GcWindow::perspectiveChanged(Perspective *)

   When the chart is moved from one perspective to another, likely does
   not need to do anything on Analysis view, but on Trends view its
   quite likely the filter has changed, so refresh is needed.

.. New signal: GcWindow::perspectiveFilterChanged(QString)

   When the perspective filter is updated this signal is called but
   only on trends view since it doesn't really matter on Analysis
   from the charts point of view.
2021-07-08 15:17:14 +01:00
Mark Liversedge
20d34664e3 Analysis View Switch Perspective automatically
.. when creating a perspective you can now add an expression
   that will be evaluated when a ride is selected in the sidebar.

.. For example you can create a perspective "Running" with an
   expression "isRun". When a run is selected on the sidebar
   we automatically switch to the running perspective.

   If now, whilst on the "Running" perspective you select say
   a cycling activity, the expression will evaluate to false,
   so we will look for another perspective to switch to.

   If no expression is found to switch to, and the current
   perspective has an expression that is evaluating to false
   then we just switch back to the first perspective in the
   list (you can reorder them if needed).
2021-07-06 15:39:47 +01:00
Mark Liversedge
8c5144657c Export perspective filename
.. add the view type it is for to the default name, so at least
   the user will have some clue when sharing etc.
2021-07-05 12:00:52 +01:00
Mark Liversedge
eadc3a78bf Honor type of Perspective when import/exporting
.. the perspective type is added to the xml when exporting and
   also when saving state.

.. on import the perspective type is checked to make sure we
   don't import trends views into activities and vice versa.
2021-07-05 11:42:39 +01:00
Mark Liversedge
68e7fcacb4 Perspectives - Part 4a of 4
.. Import and Export perspectives to an '.gchartset' file
   as XML data.

.. Added to MainWindow's View menu and the Manage Perspectives
   dialog.
2021-07-05 11:06:02 +01:00
Mark Liversedge
1026145f9b Perspectives - Part 3 of 4
.. New dialog to rename, add and remove perspectives, re-order them
   and move charts from one perspective to another.

.. The focus is on managing perspectives and not the general UI
   layout (ie. add/remove charts and rename things etc) this is
   likely to be something this morphs into, but for now lets
   keep it simple (this was complicated enough !)

.. also found a SEGV in CP chart when hover in allplot before the
   CP chart has been notified in another perspective-- there are
   likely to be a few of these kinds of bugs around.
2021-07-04 15:34:40 +01:00
Mark Liversedge
07d835e076 Perspectives - Part 2 of 4
.. Perspectives can now be added and are saved and restored on
   startup and close.

.. A new config file 'xxx-perspectives.xml' replaces the old
   'xxx-layout.xml'.

.. HomeWindow has been renamed Perspective across the code.
   With TabView now taking responsibility for loading and
   saving configuration.

.. This is a fairly big refactor that touches upon a number
   of events at startup, including how sidebar events are
   propagated across charts and tabs. And will need a reasonable
   amount of testing before release.

.. Separately, I also fixed a SEGV in the Python chart when
   no ride is selected (an old bug not related to this).
2021-06-22 14:51:13 +01:00
Mark Liversedge
3888246b42 Perspectives - Part 1 of 4
The user will be able to create collections of charts as opposed to
the single long list of charts in each of the four views.

This first update:

.. update toolbar to include a perspective selector

.. also updated aesthetics of toolbar (mostly icons on hidpi)

Further updates pending will:

.. part 2 will introduce code to add, save and restore perspectives

.. part 3 will introduce code to manage and rename perspectives

.. part 4 will introduce new defaults for each perspective

A future enhancement may allow the perspective to be aligned to a
specific sport in activity view, so the perspective can be selected
based upon the sport of the activity being analysed. But that will
not be part of these changes.
2021-06-18 16:15:56 +01:00
Ale Martinez
133364e597 Fix startup crash on Windows/Linux with HighDPI monitors
The problem is setStyle being applied before button creation...
This bug was introduced in c15d1bc, sorry.
2021-04-20 19:07:55 -03:00
Ale Martinez
cb04baf734 Update Context Help for Options/Preferences and ScopeBar
Includes separation of Global/Athlete Options and New SideBar.
[publish binaries]
2021-04-14 12:52:31 -03:00
Ale Martinez
c15d1bc33b Add What's This to Help Menu and Toolbar
To make context help easier to access and promote the use of the wiki.
2021-04-12 18:26:32 -03:00
Ale Martinez
06914d9446 Add Athlete > Delete menu
Allows to delete a closed athlete without the need to exit the program,
it re-uses the logic in ChooseCyclistDialog and removes the AthleteCard
from AthleteView.
2021-03-03 22:27:17 -03:00
Alejandro Martinez
453b05a188 Enable Athlete Open menu to allow creation of new athletes (#3836)
Objective is to allow creation of new athletes, without the need to
exit GoldenCheetah, using Athlete > Open > New Athlete like in v3.5
When a new athlete is created MainWindow emits newAthlete signal
so AthleteView can create the corresponding AthleteCard.
2021-03-03 19:27:43 -03:00
Ale Martinez
759c6593cf Measures Download tidy up
Next step would be to refactor MeasuresDownload for simplification
and generalization
2020-12-22 12:36:41 -03:00
Mark Liversedge
8e84ed280d Only create OpenGL context on Linux
.. MacOS Qt crashes when destroying it, OpenGL is *that*
   broken by Apple.

.. applied to Windows too, despite it not being an issue
   reported there is no value in doing it so removed.

[publish binaries]
2020-09-15 10:58:56 +01:00
Mark Liversedge
8b651b50dc OpenGL rendering
.. Fetch the version of OpenGL available at startup and use it in
   ChartSpace to decide if we want to enable openGL rendering.

.. some fixups for X11 builds, which are not needed on the main
   OS combinations we use (Linux, Mac, Windows) but may prove
   useful when building for X11 vs Wayland in the future
2020-09-01 15:29:37 +01:00
Mark Liversedge
fbd095a2d4 Split Global and Athlete configuration
.. Global settings (themes, metadata etc) are now maintained
   in the config dialog as in the past, whilst athlete settings
   (such as zones, measures etc) are now maintained in a new
   config dialog accessible from the athlete view (gear icon).

.. Config changes are communicated via two signals;
   * Context::configChanged(qint32)
   * GlobalContext::configChanged(qint32)

   Crucially, all global context signals are cascaded through
   the athlete contexts-- so athlete specific widgets only
   need to connect to the athlete context signal (and will get
   athlete and global config change notifications).

   Whilst global widgets such as the sidebar and mainwindow
   need only connect to the globalcontext signal since they
   are not interested in athlete specific details.

[publish binaries]
2020-08-22 11:36:24 +01:00
Mark Liversedge
80ba487153 Fix SEGV configChanged after athlete closed
.. the views were not being deleted, so the global context connection
   to configChanged signal was still called, but the athlete and
   context were long gone - so SEGV (!)

.. the reason this didn't get triggered in earlier releases is due to
   the fact the event was disconnected when the athlete context was
   deleted.
2020-08-14 13:43:41 +01:00
Alejandro Martinez
c52d260949 Generalize Body/Hrv Measures and add Nutrition data as example (#3564)
measures.ini is looked for in Athlete's config folder,
it should have a section for each measures group,
nutrition data with Energy and Macros is provided as example.
Moved default weight to About and removed RiderPhysPage and created
a tab for each measures group under Measures.
MeasuresPage handles conversion between metric and imperial units
Generalized CSV import with configurable headers.
MeasuresDownload enables download from Withings/Todays Plan only for Body
measures.
This is Part 1/2 of #2872
2020-08-11 21:02:19 -03:00