.. themes are now either light or dark, which selects the default
color set used to set the standard colors.
.. users can of course maintain them, but when applying a theme
there is no need to adjust now (some of the default colors looked
poor on a light background).
.. there is a line of code in main.cpp to dump the current colors to
stderr so it can be cut and paste into colors.cpp -- this makes it
much easier to use the UI to maintain colors and update the code.
this is obviously just for developers.
.. letting users define their own themes could be done later, but feels
like overkill at this point.
A new logging category is added gc.usb, inactive by default, to log all the USB transfers between GC and the USB trainers. It can be activated by changing the logging filter with the --debug-rules option.
* Add debugging options to select the log file, format and rules, and redirect stderr even on Windows
* unistd.h does not exist on Windows use io.h instead
* STDERR_FILENO does not exist on Windows
* Different strategies and much error checking to redirect stderr on Windows
* Synchronize cerr and stderr with filedes 2 and STD_ERROR_HANDLE
* Some functions like write in Linux and Win32 have slightly different signatures
* Code cleanup, final test to check that fd=2, stderr, qDebug and cerr are redirected
* Remove the file and line number from the default logging format in release mode
Default is checked to preserve current behavior, when cleared
the choose athlete dialog will be presented at start.
Workout library setting was moved to Train preferences
page to reduce clutter in General settings page.
[publish binaries]
.. the concept of a new gui as a replacement for MainWindow was dropped
in preference for gradually adjusting MainWindow to the new design.
.. this is still in progress, but the 'newgui' concept is dead.
.. 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
This has been reported to produce garbled output on Windows and,
according to https://doc.qt.io/qt-5/qtglobal.html#qPrintable,
it is dangerous since the array returned by QString::toLocal8Bit()
will fall out of scope, so lets use a safer version to avoid
the risk of crashes hard to debug.
[publish binaries]
This reverts commit 6bc48200e7.
It is crashing on Windows 8, I can't debug on that version
and it is not that useful feature, --debug gives more information.
[publish binaries]
Similar to Linux/macOS builds, messages are redirected to goldencheetah.log
when not output to console is requested, but instead of relying on low level
stderr redirection a message handler logging directly to the file is installed.
[publish binaries]
This gives a more Unix-like behavior when GC is launched from
cmd or PowerShell, including --debug output, on release builds.
Fixed#3481
[skip travis]
[publish binaries]
This is a clean up to remove conditional compilation for all Qt versions
older than the last known to work: Qt 5.9 with Qt WebEngine and Qt Charts.
Includes an update note to INSTALL documents.
.. will become a first class dependency, but for now, whilst we
update the build systems it is optional.
.. to enable update gcconfig.pri with
DEFINES += GC_WANT_GSL ## switch GSL support on
GSL_INCLUDES = ## the include path (no -I)
GCL_LIBS = ## -Lpath and -lgsl -lgslcblas -lm or others
.. see gcconfig.pri.in for examples, Linux has been tested.
.. to install this new depdendency:
Linux: sudo apt-get install libgsl-dev
MacOS: brew install gsl
Windows: vcpkg install gsl
.. prototyping a new qmainwindow layout, will only be shown
if you pass --newgui on the command line.
.. there will be lots of commits as this develops across
different platforms and building blocks are put into
place.
.. this is likely to take 2 months or more before it becomes
something usable.
.. the --newgui is for developers only, since there will not
be any usable functionality for quite some time.
* Initial implementation of Python data processors
* Add RideEditor to PyFIx script editor
* Enable write-access to activity data for python fixes
* Add GC.deleteActivitySample method
* Add GC.deleteSeries method
* Check for python fix for changes before close
* Build python fixes menu dynamically
* Make python fixes first class data processors
* Add GC.postProcess method
* Check GC_WANT_PYTHON and "Enable Python" setting for python fixes
* Add GC.createXDataSeries method
* Clean up ScriptContext ctor mess
* Support editing xdata series
* PDP: Implement xdata append/remove methods
.. just bootstrapping, so Python is loaded and version
number made available in the about box.
.. see gcconfig.pri.in and src.pro for settings needed
.. not considering threading etc at this point
.. there are so many QT bugs related to this with opengl and
other aspects of scaling we should just unset it. This is
because we now have native support for Hi-DPI so this setting
should not be needed anyway.
.. a CloudServiceFactory now has all full cloud services
registered for service we currently support for sync
including; Local File Store, Dropbox, Google Drive,
Todays Plan and SixCycle.
.. need to now refactors all the other cloud services
to use the CloudService base class: Strava, Cycling
Analytics, Ride With GPS, Withings, Web Calendar,
Training Stage Buch, Selfloops, Velo hero and Sports
Plus Health.
.. should use device independent pixels !
.. VirtualBox, Windows and Linux all use different ratios
of device pixels to device independent pixels so its
important we stay device independent.
.. the padding around pushbuttons and combo boxes is not scaled
for hidpi displays, so we fix up with a global style sheet
in main.cpp
.. it is only applied in hi-dpi for Windows and Linux.
.. Start of support for hi-dpi displays; only relevant if you
are running on a hi-dpi display and have not chosen to set
any 'auto' scaling.
.. it just sets a dialog box ratio (which is unused at this
point) and sets the default font to something reasonable for
the display size.
.. next steps are to check impact across Linux, Windows and
MacOS hi-dpi displays and then work through and correct code
that works with dialog boxes and sets widget sizes.
.. this will be a bit of a slog, but worth it for crisper
rendering on those expensive 4k panels
.. if the setting has not been made in options/prefs we
set the API web services to be disabled.
.. this is to stop warning messages about windows firewall
that will appear, and also to reflect the fact that
the majority of users will likely not require the
web services anyway.
.. Add option to disable embedded R in preferences
.. Better diagnostics if load fails
.. If we find it in the usual place we load and set R_HOME
automatically without requiring R_HOME or config
.. The config option overrides R_HOME not the other way around
.. mostly startup issues when R_HOME is not known
.. need to think carefully about how we get the user to
register the R home. We could let them select the R
binary so we can run `R RHOME` and apply that (?)