Commit Graph

11236 Commits

Author SHA1 Message Date
Magnus Gille
2910799610 Remove goldencheetah_plugin_import.cpp as it is autogenerated 2026-01-12 16:34:32 -03:00
Alejandro Martinez
452d194658 Revert "CloudDB - Use the new go125 server for testing"
This reverts commit 72ec4a3463.
2026-01-10 18:05:12 -03:00
Alejandro Martinez
72ec4a3463 CloudDB - Use the new go125 server for testing
[publish binaries]
2026-01-10 16:45:09 -03:00
Magnus Gille
b25b3e3c61 Key the CloudDB cache by hostname and add a button to clear the cache (#4794)
Using the new go125 server for testing purposes

[publish binaries]
2026-01-10 16:35:30 -03:00
Alejandro Martinez
e705831571 Partially revert #4762 and rebuild v3.8-DEV2601
The PR included unrelated changes which broke CloudDB connection.
[publish binaries]
2026-01-10 11:03:57 -03:00
Alejandro Martinez
95531b043a Trigger v3.8-DEV2601 build
First v3.8 Dev Build with planned activities
[publish binaries]
v3.8-DEV2601
2026-01-08 21:39:17 -03:00
Alejandro Martinez
8d4996c905 v3.8-DEV2601
First v3.8 Dev Build, includes planned activities
[publish binaries]
2026-01-07 01:50:22 -03:00
Alejandro Martinez
9bd37f0e97 v3.8-DEV2601
First v3.8 Dev Build, includes planned activities
[publish binaries]
2026-01-06 20:17:34 -03:00
Alejandro Martinez
87ea10c916 Update translation files
To include new planning calendar strings
2026-01-06 15:50:32 -03:00
Joachim Kohlhammer
24269f0dbf Multi Metrics support for Agenda (#4793)
Agenda used to display entries similar to the Calendar: Primary line for
a field, secondary line for one metric, tertiary line for a multi-line
field.
As the agenda has more space available per line, this change adds
support for multiple metrics in the secondary line. Defaults are
Duration and TriScore.
2026-01-06 15:41:10 -03:00
Paul Johnson
6fde458393 Athlete folder change confirmation (#4792) 2026-01-06 09:43:02 -03:00
Paul Johnson
1ee5af3d85 Fixes for MacOs compiler warnings (#4778) 2026-01-06 09:31:29 -03:00
Paul Johnson
d57b7c5ead Suppress "may be unsafe" MSVC compiler warnings for C functions (#4789)
* Suppress C function warnings in Windows using pragmas
2026-01-05 17:07:35 -03:00
Joachim Kohlhammer
3a995f768e Linking planned and completed activities (#4772)
* Bidirectional linking of planned and completed activities via field "Linked Filename"
* Convenience functions in RideCache, taking care of updating all relations
  * link activities
  * unlink activities
  * move activities
  * copy planned activities
  * batch copy planned activities
  * shift planned activities
* Calendar
  * Visual hints to show whether an activity is linked (bar on right side)
  * Options to link, unlink, jump to linked activity
  * Option to save an activity
  * Visual hint indicating unsaved changes in an activity (italic font)
  * Deleting activities clears the link
* Agenda: Hiding completed / linked activities
* Repeat Schedule: Clearing the link in copied entries
* RideImportWizard: Autolinking new activities if a planned counterpart exists
* Stricter consistency handling of linked activities
Additional:
* highlighting linked activities when clicking in calendar
* linked() datafilter access function (similar to filename())
* New dialog to link planned and completed activities
* Centralized the calendar context menus (only one location to maintain them for all views)
* Restructured the entries of all calendar context menus
2026-01-05 15:58:59 -03:00
Alejandro Martinez
dbd7de01b8 Remove vertical lines in Overview Zones Tiles
They were introduced by #4779, which replaced setAxisX
which removes the previously existing default x-axis
for the new one, with addAxis which doesn't remove anything.
This change just remove the existing (default) x-axis before
to add the new one to minimize the impact in the remaining code.
2026-01-04 20:09:16 -03:00
Alejandro Martinez
beede09500 Deprecate VeloHero integration
The service is being shutdown.
Fixes #4782
2026-01-04 16:38:02 -03:00
Alejandro Martinez
7421371a2d Update translation files
After removing all lupdate warnings
2026-01-04 16:34:18 -03:00
Alejandro Martinez
c6c5ff0bac Remove deprecated macextras
Removed from Qt6 and we don't support Qt5 anymore
2026-01-04 16:32:18 -03:00
Paul Johnson
f3d50c4f3a Remove unused httpsession and httpsessionstore from build (#4785) 2026-01-04 14:28:56 -03:00
Magnus Gille
ab1b9633d0 Fixes so that lupdate doesn't throw warnings (#4788)
src/Gui/CalendarItemDelegates.h:
  ColumnDelegatingItemDelegate
    - uses tr() so should call Q_OBJECT
  CalendarDetailedDayDelegate
    - uses tr() so should call Q_OBJECT
  Moved Q_OBJECT to the top of the class for consistency and this also guarantees it's private (which it has to be).

src/Gui/ColorButton.h:
  - Moved the comment from Colors.h here.

src/Gui/Colors.h:
  - Removed #if 0 code that confused lupdate since it doesn't understand preprocessor macros.
2026-01-04 10:07:50 -03:00
Alejandro Martinez
1b21c6a4fc AppVeyor - Revert QWT build to -j1 on Windows
To avoid ocassional errors due to race conditions,
since QWT is rebuilt only when appveyor.yml changes
the impact on performance is limited in normal cases.
2026-01-02 17:32:47 -03:00
Paul Johnson
a6c2114e0a Fixes Qt6 standard buttons warnings (#4783) 2026-01-02 10:17:11 -03:00
Paul Johnson
9bae3a7658 Update Calendar on Batch Import (#4734)
When more than 20 activities are imported at once.
2026-01-01 22:10:49 -03:00
Paul Johnson
4ff62b4893 Fixes for QT6 deprecation warnings (#4779) 2026-01-01 13:09:26 -03:00
Magnus Gille
addf1b55d3 Fix signalSafety unittest (#4773) [skip ci] 2025-12-28 12:18:26 -03:00
Magnus Gille
c4e880622b QZip improvements (#4768)
Removed unused constructors
Replaced raw pointer with a unique_ptr to clearly pass ownership.
Fixed a bug where we compared if a signed integer is negative (it never is).
Fixed a case where we take the pointer to a pointer we de-reference!
2025-12-27 16:06:45 -03:00
Poncho
2d463c8bc2 Upgrade FIT SDK to 21.188 (#4776) [skip ci]
The presence of a \ in a string will produce an error in python 3.13
Using raw strings in all regexes avoids this.
2025-12-27 16:05:48 -03:00
Poncho
a45bb2503c linux/51-garmin-usb.rules: use mode 0660 and tag uaccess (#4775) [skip ci]
Use a more modern approach for device access.

The uaccess tag makes udev apply a dynamic user ACL to the device node, which
makes the device usable to logged-in users.

See https://wiki.archlinux.org/title/Udev#Allowing_regular_users_to_use_devices
2025-12-26 20:19:01 -03:00
Paul Johnson
8a19c38b3a QSqlQuery copy constructor deprecated in Qt6.2 (#4771)
The QSqlQuery assignment and copy constructor are deprecated since Qt6.2, and will be removed in Qt7, see https://doc.qt.io/qt-6/qsqlquery-obsolete.html
2025-12-24 08:28:05 -03:00
Paul Johnson
4eaec533aa Remove type truncation warnings (#4770)
warning C4267: '=': conversion from 'size_t' to 'int', possible loss of data
warning C4805: '!=': unsafe mix of type 'int' and type 'bool' in operation
warning C4305: 'argument': truncation from 'double' to 'float'
2025-12-23 10:21:11 -03:00
Paul Johnson
1a0cd74c19 Remove Qt6 stateChanged deprecation warning (#4766)
From QT6.7.0 QCheckBox::stateChanged() is being replaced with QCheckBox::checkStateChanged(), and stateChanged() is deprecated in Qt6.9.0
2025-12-22 16:32:57 -03:00
Paul Johnson
7caa7582dd Remove Windows crash handler compile warning (#4765)
Warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead.
2025-12-22 13:37:36 -03:00
Paul Johnson
9cff593c68 Remove unused variables and parameter warnings (#4767)
Remove the following types of build warnings:

warning C4189: local variable is initialized but not referenced
warning C4100: unreferenced parameter
warning C4101: unreferenced local variable

I have only commented out unused variables and used [[maybe_unused]] for unused parameters.
2025-12-22 09:59:31 -03:00
Alejandro Martinez
b0b65e4e1f Update minimum Qt version 6.6.1 recommended 6.8.3 2025-12-21 21:35:44 -03:00
Magnus Gille
03ca4fdbc3 Parallelize builds and upgrade build environments (#4749)
* Parallelize QWT builds
* Upgrade macOS Builds to Sonoma with Xcode 15.2 and Qt 6.6
* Upgrade Windows builds to Visual Studio 2022
2025-12-21 18:24:27 -03:00
Alejandro Martinez
be01a861b8 Fix crash when importing compressed zip files
The bug was introduced by #4751 when QScopedPointer was replaced
by std::unique_ptr but release() was not called to replace take().
2025-12-19 14:05:52 -03:00
Paul Johnson
78fb79cfe1 Correct initial view change for navigation model (#4735)
Change startupView flag from static to member variable in AthleteTab class
2025-12-18 18:34:40 -03:00
Paul Johnson
c67d913f11 Deprecate QT5 support (#4751)
* Remove Qt5 Compatibility
* Remove QT compiler directives < QT6.5.3, set QT6.5.3 as minimum GC version
* Remove references to QT5 Video
Fixes #4750
2025-12-18 10:37:55 -03:00
Magnus Gille
9bb90e3737 Fix crash safety issues: Unsafe signal connections and tree child access (#4761)
Systematically resolved 30 identified potential crash vectors and established automated regression testing to prevent strict reoccurrence.

Key Changes:
- Fixed 11 instances of unsafe `QObject::connect` calls (missing context object) in srd/Charts/AgendaWindow.cpp, FixSpikes.cpp, src/FileIO/FixSpikes.cpp, src/Gui/Agenda.cpp, src/Gui/BatchProcessingDialog.cpp, and src/Gui/IconManager.cpp. This prevents crashes caused by signals firing after the receiver has been destroyed.
- Fixed 19 instances of unsafe `QTreeWidgetItem` child access in src/Charts/LTMChartParser.cpp, src/Gui/ColorButton.cpp, src/Gui/AthletePages.cpp, and src/Gui/Pages.cpp by adding defensive `nullptr` checks before dereferencing.
- Added Python detection scripts util/check_unsafe_connects.py and util/check_unsafe_tree_child.py to statically analyze the codebase for these specific unsafe patterns.
- Integrated detection scripts into the regression test suite under `unittests/Core/signalSafety`, verifying the fixes and enforcing a strict zero-tolerance policy for future regressions.
- Added `testSplineCrash` to cover edge cases with empty spline lookups.
2025-12-17 13:52:38 -03:00
Magnus Gille
2dc2d02e80 QFileDialog::getOpenFileName returns an empty string on cancel (#4762)
There's no need to throw a message box up
2025-12-17 08:33:44 -03:00
Joachim Kohlhammer
396a3535c0 Workout Infowidget: Showing real zone name (#4763)
Display the zone names instead of a fixed Z# in the Workout Infowidget.
Since configChanged is emitted only when zones are added or modified -
but not when their names or descriptions are edited - changes to a
zone’s name or description requires selecting a different workout to
reflect the change
Fixes #4760
2025-12-16 21:23:33 -03:00
Alejandro Martinez
e63f6ff6fc IconManager - Use normalized values for Sport
To match getFilepath using RideItem::sport,
which is the normalized Sport value.
2025-12-16 20:04:12 -03:00
Joachim Kohlhammer
a31a2795ac Add missing receiver parameter to lambda signal connections (#4759)
PR #4690 reveals a bug in the calendar:
* Go to plan view
* Add a calendar
* Reset the layout
* Switch date range -> crash

Root cause: Lambda-connections without a dedicated receiver don't get
automatically disconnected on destruction if the sender lives longer.
When resetting the layout, the old is destroyed but the connection is
still triggered -> crash

This PR adds receivers and additionally narrows down the captures
([=] -> [this, whatever I really need]
2025-12-14 17:17:33 -03:00
Alejandro Martinez
4177327a8b Update snapshot builds
To test Plan view and Calendar/Agenda refinements.
[publish binaries]
2025-12-14 11:01:25 -03:00
Paul Johnson
bd3b0dfb0e Fix to prevent view pages being collapsed by the splitter (#4758) 2025-12-14 11:00:36 -03:00
Paul Johnson
3a75464182 Fix the LTM sidebar initial width for new athletes (#4757) 2025-12-14 10:59:42 -03:00
Joachim Kohlhammer
7117389fb2 Planning workout: Adding description to Notes (#4755)
When planning a workout based on a ErgFile, the description is appended
to the Notes (never overwriting what was entered before, only
appending). This makes the description available e.g. in the agenda,
giving a quick insight of what is ahead
2025-12-14 09:39:20 -03:00
Joachim Kohlhammer
2d0e2a9b7d Adapting visual refinements from agenda in calendar (#4754)
* Adapting visual refinements from agenda in calendar

* Removed colored background for seasons and events (instead coloring
  the icons)
* Metric name shown in lighter font, removed brackets
* Added option (agenda and calendar) to remove the metric name
* Put settings of agenda in scrollarea to avoid squeezing

* Fixed clipping
2025-12-14 09:37:37 -03:00
Joachim Kohlhammer
f17257885b Modify phases and events in calendar (#4753)
* Phases and events can be created, edited, deleted in the calendar (all
  views)
* LTMSidebar reacts to modified events
* Phase and Event dialogs show the associated season
* Menu entries are only active within the current season
2025-12-14 09:36:52 -03:00
Paul Johnson
4488b6e4f4 Rebrand Diary View to Plan View (#4690)
It shares Trends sidebar minus the charts library.
Initially hosting Calendar, Agenda and Expected PMCs.
Let's see how it works and evolve.
2025-12-13 19:06:31 -03:00