.. what dpi scaling and font size are we using. helpful for
understanding how the ui is reacting to different resolutions
and OS specific settings for scaling
When exiting, GC complains that the Web Profile is released before Web pages that refer to it with the message: "Release of profile requested but WebEnginePage still not deleted. Expect troubles !".
The Web pages are now released explicitly in the destructor to insure that they are freed earlier than the Profile.
Fixes#3844
.. 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]
.. 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
After this change:
QtMacVideoWindow.h is used only for native macOS video options:
GC_VIDEO_AV (incomplete)
GC_VIDEO_QUICKTIME (obsolete)
Otherwise standard VideoWindow.h is included with the same options for
the three supported OS:
GC_VIDEO_NONE: placeholder for no video, currently used for macOS builds
GC_VIDEO_VLC: basic video control plus videosync, macOS experimental
GC_VIDEO_QT5: basic video control only, macOS experimental
Overlay Widgets only works on Windows with VLC.
Tested with VLC 3.0.8 on the 3 Operating Systems.
.. 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
.. its dead (not updated for 5 years)
.. it introduces dependency issues with openssl/crypto/icu
on Linux distros
.. we don't need it, since OAuthDialog does the heavy
lifting we need (ok, its not pretty but it works).
.. old code moved into the deprecated folder
Fixes#2881
* fix unclosed file descriptors
* remove various compiler warnings
sometimes it was only ambiguous indentation, sometimes bugs were fixed:
- forgotten `break;` instructions or `fallthrough` annotations:
- src/ANT/ANTChannel.cpp
- src/Charts/CriticalPowerWindow.cpp
- src/Charts/MUPlot.cpp
- src/Core/DataFilter.cpp
- src/FileIO/RideFileCache.cpp
- src/FileIO/RideFileCommand.cpp
- src/Train/DialWindow.cpp
- forgotten braces:
- lmfit/lmmin.c
- src/FileIO/XDataDialog.cpp
- test on the wrong variables:
- src/Gui/Pages.cpp
- wrong parenthesis
- src/Charts/CPPlot.cpp
- missing macro argument
- src/Cloud/WithingsDownload.cpp
- missing `return;` statement
- src/Cloud/Xert.cpp
- unused variables
- src/Gui/DiarySidebar.cpp
- unclear indentation
- src/Core/RideItem.cpp
- src/FileIO/BinRideFile.cpp
- src/Metrics/PaceZones.cpp
- src/Metrics/RideMetadata.cpp
- src/Metrics/Zones.cpp
* remove unnecessary Leaf::Parameters enum value from data filters
lists of parameters don't exist as such outside of the parser, and have
no business using the same type `Leaf` as complete terms anyway
* remove unnecessary argument
`leaf1.print(leaf2,...)` would print `leaf2` and completely ignore
`leaf1`, so now `leaf2.print(...)` is used instead
.. fixup trivial issues like PATHSEP and separators in general.
.. it seems that Py_SetProgramName will drive the initialisation of the
Python interpreter to set sys.path, sys.prefix and sys.exec_prefix.
.. rather than trying to fixup these directly instead we set the program
name to the python installed binary (full path).
.. you still need python in your path, will fixup in part 2.
.. lastly, also added a 'printd' macro to embed debug info, which can
be enabled in gcconfig.pri via DEFINES += PYTHON_DEBUG=true
.. 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
.. run through the entire code base looking for calls to
setColumnWidth, resizeColumns, setFixedSize and replace
with calls that apply dpiXFactor/dpiYFactor
.. get runtime version loaded and show on crash dialog and console
since the runtime may be different from compile time as it is
now dynamically loaded.
.. 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 (?)
.. so don't even try to build and warn via qmake
.. RInside/Rcpp do not suport MSVC
.. Microsoft Open R may help, but doesn't at this point
.. we can revisit at a later date.
.. refactoring code to introduce an RTool for working
with RInside and Rcpp and move code away from main.cpp
.. get ready to write all the data accessors in a way
that supports multiple athlete windows.
.. remove Webkit dependency if the user adds the following
to their gcconfig.pri: DEFINES += NOWEBKIT
.. at present the build disables:
* Bing map
* Google map
* Ride Window
* Street View
.. since QT 5.6 enables c++11 dependent libs may no longer
compile with c++11 enabled (e.g. qwtplot3d)
.. this is experimental and in place to enable further work
on deprecating the webkit dependency in GoldenCheetah v4.0
Introducing a directory structure to make it a bit less
daunting for new developers and perhaps even old hands.
The main folders all start with an upper character, so src
files are now located in;
* Core - Core data structures
* Gui - Main GUI elements
* Metrics - Models and Metrics
* FileIO - Device and File I/O
* Charts - All the chart types
* Cloud - Working with Web Resources
* Train - Anything Train View specific
* ANT - Our ANT+ Stack
* Resources - Images, Translations, Web etc
Apologies to anyone who needs to merge across this update.