Commit Graph

19 Commits

Author SHA1 Message Date
Joachim Kohlhammer
a00e27638f Dialog to build filter queries for similar activities (#4805)
* list all (non-zero) fields and metrics
* filter list by field / metric name
* select an operator per field (ignore, equals, contains, larger than, ...)
* available in the context menus of activity- and calendar view
2026-01-17 14:36:34 -03:00
Joachim Kohlhammer
3e8c6fe047 Updating power values of planned activities with linked workouts (#4799)
* Updating power values of workout based planned activities when they
  fall into a timerange with different CP
* Triggers:
  * CP configuration changes (future activities only)
  * planned activities are moved (calendar)
  * schedules are repeated (calendar)
  * rest days are inserted or removed (calendar)
* Additional: Typo in Calendar (show in train _n_ode -> mode)
2026-01-13 01:42:43 -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
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
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
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
Joachim Kohlhammer
bcf486cfc3 Moved the agenda to a dedicated chart (#4740)
* New chart: Agenda
* Removed the agenda from the calendar chart
* Reworked the agenda
  * Separate panes for activities, phases, events
  * Phases and events can be edited from this chart
  * Showing descriptions of activities and events (optional)
* TimeUtils: New functions to convert days to weeks or months for user
  friendly UIs
* EditPhaseDialog: Enforcing from-date < to-date
* Hack: Since ids of events are not filled, matching them by comparing
  all available fields when selecting the instance to edit
2025-12-08 10:00:27 -03:00
Alejandro Martinez
69093d5ff7 Revert "Made planned activities functionality optional"
This reverts commit da3743a66b.
It was a temporary fix to release v3.7.1
2025-11-27 19:56:03 -03:00
Alejandro Martinez
bd06fa96b1 Revert "Made the agenda view of Calendar optional"
This reverts commit 5d58b75fe1.
It was a temporary fix to release v3.7.1
2025-11-27 19:55:24 -03:00
Joachim Kohlhammer
5d58b75fe1 Made the agenda view of Calendar optional 2025-11-19 20:18:41 -03:00
Joachim Kohlhammer
da3743a66b Made planned activities functionality optional 2025-11-19 20:18:41 -03:00
Joachim Kohlhammer
84d7272f6d Calendar: Agenda View (#4727)
* Read-only view to show
  * missed planned activities (configurable number of days to look back)
  * todays planned activities, phases and events
  * upcoming planned activities, phases and events (configurable number
    of days to look ahead)
* Color of planned activities is now user configurable (coming from
  global color theme)
* Added a hint to show whether a filter is active (all calendar views)
* Configuration: Reorganized in tabs
* Refactoring: Created enums for all user roles used in the calendar
  (all views, all delegates) to improve readability; removed data that
  was only written but never read
2025-11-10 12:08:27 -03:00
Joachim Kohlhammer
f9fd1840ec New configuration-options for Calendar (#4716)
* Start- and end-hour for day and week view
* Summaries can be hidden for day and week view (month view was already available)
* The default view for first start can be selected
2025-10-16 20:16:06 -03:00
Joachim Kohlhammer
9a3ca625d6 Calendar: Week view (#4715)
* Added new week view based on the table from day view
* Changed navigation behaviour
  * jump to next / previous day / week / month (based on view)
  * removed skip-buttons (was: jump by year)
  * added a menu to the date display in the topline
    * day and week view: Select any month from the current year (if
      belonging to the current season)
    * month view: Select any year belonging to the current season
* Update to day view: Phases / events moved from the sidebar to the
  header
* Refactorings:
  * Consolidated hit tests into one class (was: ~5 times equal code)
  * Using the same painting function to draw the header of all views
    (date + event / phase)
  * Using the same code to create all tooltips
2025-10-14 18:20:16 -03:00
Joachim Kohlhammer
98959d8d11 Explicitly applying the palette to the measures-tabs (#4707)
* As the measures tabs are recreated when selecting a day and palette
inheritatance doesn't work as expected, it is now applied explicitly
* Optimizations for low resolutions
* Implemented CalendarTimeScaleDelegate::sizeHint to prevent cutting off
  the timescale in day view
* Changing the button-color for very dark themes. This improves contrast
  in QTabWIdget when using Fusion QStyle
* Made the content in the Measures-QTabWidget scrollable
* Showing the CalendarOverview fixed at preferred width
* Setting a fixed height for CalendarOverview
* Improved palette for dark themes
* Month view: Dim day numbers for non-current month
2025-10-04 03:31:59 +02:00
Joachim Kohlhammer
d0d5105bd3 Athlete Measures on Calendar Day View (#4706)
* Showing the athlete measures to the calendar day view
* Actions to add or edit measures
* Refactoring: Moved the UI of the day view to its own class
2025-09-25 01:44:33 +02:00
Joachim Kohlhammer
f84f9a410e Added a day view to PlanningCalendarWindow (#4704)
* Reusing the existing configuration
* Linked from days in month view to the more detailed view
* Fixed color setting after construction
2025-09-15 22:08:35 -03:00
Joachim Kohlhammer
a1ddf9b8e0 New dialog to repeat planned workouts (#4692)
* Added dialog to repeat planned workouts
* New Wizard to select planned workouts based on past timerange
* Implemented simple conflict resolution strategies (remove all
  preexisting, skip days with preexisting, fail)
* Create new planned activities based on the selected, past ones
2025-09-05 20:19:11 -03:00
Joachim Kohlhammer
49cbe3db0c New monthly calendar (#4679)
* Created new Trends-Chart "Planning Calendar"
* Added supporting tools to Colors
* Added notification about changed season
* Updated ManualActivityWizard to optionally take the date as parameter
* Added some new icons for the calendar
* Reading normalized sport from RideItem
* Showing all events from all seasons
* Added chart-setting to configure the first day of the week
* Added chart-setting to show / hide the summary column
* Updated the appearance of planned workouts (orange icon with no background)
* Setting a pixmap next to the cursor while dragging an activity
* Added a weekly summary
* Summary and entries can be configured in chart-settings
* Replaced some material icons (phases, events, generic sport) with
  ones from breeze (https://github.com/KDE/breeze-icons)
* Updated the calendar-navigation-header
* Minor visual updates (no orange icons on blue selection, ...)
* Always showing subsport when creating a completed / planned activity
* Added "Show in Train Mode..." to Calendar
2025-08-18 18:53:34 -03:00