.. introduce concept of configChanged(what) to
pass details of what config has been changed
.. fixed zones changes to re-read after write
to correct the save twice to get changes to
zones bug.
.. next parts need to spot changes (part 2) and
then action appropriately (part 3)
... adds "What's this" to (hopefully) most of the widgets (please report
on missing ones)
... defines draft "Whats' this" texts including a
context specific WikiLink
.. Help Key for all platforms is <Shift>+<F1> + in some widgets
"RightMouse - Click"
... Tested on Win and Mac (On Mac QtMacButton seems not supporting
"What's this") - so here <Shift>+<F1> has no result.
... ToDo: Create final texts and links based on the to be updated 3.11
Wiki
... multiple pathes per Athlete (on Athlete-Preferences - AutoImport
TAB) - option per Path if Import shall be done or not (e.g. for
temporary de-activation without removig a path)
... configuration stored in XML file in /config subdir
... no "stealth" mode any more - but full log of Rides to be imported
with option to "Abort" the import process at any time
.. in this first part we just add the pace.zones file
and basic configuration of critical velocity history
in the configuration pane.
.. in part 2 we need to fixup custom zones and consider
how they might be adjusted for VDOT/Daniels etc etc
.. in part 3 we need to add pace zones to the ridefile
cache and then histogram and summary charts.
.. segv removed caused by signalling configChanged when context has been
deleted due to all the mainwindows being closed
.. check for path being reset to blank as well as being set to a different
place.
.. when using other languages e.g German it may be
useful to make it wider if needed.
.. the pane still appears using a minimum size that
we calculate, so should affect users.
...ConfigDialog.cpp
- -Increase overall size of window (for NON Mac only so far) - this
eases the translation as in non EN languages
... Pages.CCP
- Changed 2 fixed button sizes (to allow proper translation)
- Correction: if Directoy Browsing was Aborted without selection - the
previous value was deleted
- Chooses the 2nd column to search for "New" text in case of 2 text
colums (short and long)
- All the rest Translation enablement
...DiarySidebar.cpp
- enable translation of date formats
(cherry picked from commit 3bbc68a277e743e610630795bb60dc515ced0355)
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.
Allow the user to select a directory to use for the
athlete libary. Leaving it blank will continue to use
the default location (dependent on platform).
If it is changed the user will be asked to confirm
and then GC shuts down.
Restart wouldn't work due to issues with the DBAccess
QSqlDatabase connection (which is really annoying). I
will look into this as a restart option would be much
cleaner.
Its only taken 4 years to implement this feature! (ouch).
Fixes#282.
There still some assert left in the code, but removed
a fair number of the examples where, its just as easy
to handle the condition gracefully, without crashing.
By 3.1 we will have eradicated assert from the code.
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
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.
The restore / set geometry for the config dialog and mainwindow
was 'adjusted' by setUnifiedTitleAndToolBarOnMac. This meant
that when restoring geometry at startup the window would gradually
decrease in size (by roughly 42 pixels).
Big refactor of the code since it was really messy
and also moved to a Mac style config dialog with
a bit of Mac UI polish.
Moved many of the pages around to make it more user
friendly.
Removed the fortius and proxy code altogether
and removed the measures config since we will need to
look at this in v3.1 and don't want to have to add
backward compatibility support for users that change it.
Fixes#358.
Introduce a wizard for adding realtime devices since it
is prone to user error, is relatively complicated and is
something most users will only ever do once or twice.
There are several logical updates within this patch:
First; Fix intermittent ANT+ not working
* LibUsb - check bufRemaining is > 0 not non-zero
* LibUsb - Always reset the USB stick on open
* ANT.cpp - Support > 4 channels on USB2
* ANTChannel - Do not use pairing, but always
* unassign, assign and set channel id.
Second; Fix device discovery
* Find and discover support in realtime controllers
* Extend Serial.cpp to cover more Serial devices
* Support for 4 or 8 ANT channels for USB1/USB2
Third; Introduce Add Device Wizard with
* General and Specific wizard pages for each device type
* Device pairing with telemetry display
* fixed compile time warnings
Fourth; Update Device Config Page
* use wizard to add new device
* remove edit fields, replaced by wizard
* remove pair, firmware buttons replaced by wizard
Fifth; Deprecate/Remove Device Types
* Null Device - used by developers only
* Quarqd client - replaced by Native ANT+
* GC Server - not implemented yet
I have also introduced a device specific wheel size
and flags for controlling the default selection and
sources for sensor data when in multi-device mode. These
are not yet supported in the code.
Fixes#611.
Fixes#497.
So we can calculate speed from wheelRPM when working
with ANT+ speed sensors in realtime.
The config screen is still ugly as hell, but there is
another bug raised to resolve that.
Fixes#529.
It is now possible to select multiple devices to
workout with.
To enable multi-device support a new setting in
tools->options (preferences on Mac) allows the
user to enable multi-device selections (this just
enables the user to select more than one device
in the side bar).
When a workout is started the user can select which
devices will supply which data.
This enables ANT+ devices to override information
provided by Computrainers or Fortius devices.
Fixes#578.
Initial support for Tacx Fortius devices.
Note this requires libusb support to be present and will
work on Linux, Mac and Windows.
The handlebar buttons up/down will increase/decrease the
load/intensity in a similar fashion to the +/- keys on
the Computrainer controller.
The cancel button will stop a workout and the enter key
is used to mark a lap.
Slope and Ergo modes are supported, but we do not set the
brake at all if the speed is below 10kph, this is to
ensure it does not get burnt out when users 'grind'.
SPECIAL NOTE:
The Fortius handlebar controller is a Ez-Usb device
and requires firmware to be loaded when it is connected.
Since this is copyrighted by Tacx BV we do not distribute
it, instead, when the user sets up a Fortius device they
must also provide the file. Full instructions on how this
should be done are given when configuring the device.
Additionally, for Linux users udev rules should be added to
ensure that the USB devices are accessible to non-root users.
Fixes#538.
Notably when you select a color in the config appearances
the dialog will have modal focus but be hidden behind the
config pane, this is tedious as hell.
I have now checked across the codebase and there are no
dialogs which insist on being on top so the OS window
manager and user is now free to manage windows as they
see fit.
Although not directly related this fixes the only possible
problems with window focus that could be related to another
bug reported by Fernando.
Fixes#117.
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.
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.
First stage of development, folding together the
quarqd sources and creating an ANT+ worker and controller
to work with realtime window.
The basic code is folded together and compiles fine. The next
step is to address the channel management code, device discovery
channel assignment and channel event handling. This will be pushed
as part of the next commit.
The third commit will need to fixup the configuration pages to
support selection of device/baudrate, fix native discovery/pairing
in config and lastly, fix a long standing issue with the config pane
to allow editing of existing device configurations.
This is NOT a functional patch yet, but compiles and runs fine. Committed
as a checkpoint before refactoring quarqd supplied code.
Russian Translation from Gwelu
Czech Translation from Beeda
Updated Japanese Translation courtesy of Key
Updated German Translation courtesy of Luke
Golden Cheetah now supports 7 languages!
- German translation update
- Virtual power in realtime
Conflicts:
src/DeviceConfiguration.cpp - needed to adjust
to use appsettings for read/write of application
settings.
Virtual Power - included patch from Mark Liversedge & corrected bug
with his help.
GSC-10: Check dual sensor 4th and speed-only sensor (which is rare) as
5th.
This means that an all-Garmin setup (ANT+ stick, GSC-10 sensor) will
always work. A speed-only sensor is almost useless in GC real-time
mode anyway, because speed-only sensors tend to run off the front
wheel which will be stationary on a trainer. Fix pointer problems with
device controller/config.
Fixes#219
Provides 100% coverage of language texts*
* a couple of texts for WeeklySummary window containing html
codes (gt,lt et al) had not retained their encoding using
>, <, whilst I edited a few of them in the file, these
two were particularly complex and challenging. We can fix
them later. [Mark Liversedge]
Currently, GC interpolates time gaps in all TCX files as a result of smart
recording. However, this overlooks periods of inactivity (stopped at a light
for instance).
1. Provide a configuration option, that if enabled, will tell GC to interpolate
time gaps in TCX files as if they were a result of smart recording. If the
option is not enabled, then interpolation will not occur.
2. Provide a maximum "high water mark" (in seconds) for these time gaps. The
default HWM is 25 seconds, but is user configurable.
Any time gaps that exceed the high water mark can be fixed via the Fix Gaps
tool under the toolbar.
Fixes#74.