Commit Graph
5337 Commits
Author SHA1 Message Date
Federico Mena Quintero f787afbeab Clarify oudated comments
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:58 -03:00
Federico Mena Quintero 1cfb58e3c4 Fix leak of date_time_end
It's replaced by this line:

  date_time_end = all_day ? g_date_time_add_days (date_time_end, -1) : date_time_end;

so we need to be able to free that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:58 -03:00
Federico Mena Quintero ba69d04465 Remove unused variable
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:58 -03:00
Federico Mena Quintero 2ca29785dc Remove superfluous conditional
Now that all cases set the same times to the
{start,end}_date_time_chooser widgets, we don't need that condition anymore.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:58 -03:00
Federico Mena Quintero 1309bf4a82 gcal_schedule_section_set_event(): Don't change the timezones when setting up the widgets
I think this was being done so that:

  - create a new all-day event
  - open it in the event editor
  - switch to time-slot
  - time choosers now say "UTC"

doesn't happen.  I think this can be handled more gracefully.

Evolution does not handle it very gracefully; when turning off
all-day in its event editor, it sets the times to $now.

The iOS calendar app is better.  If you turn all-day off, it picks
$next_hour_based_on_now for the start time, and $next_hour_plus_one
for the end time.  So if you turn off all-day and it is 18:24 right
now, it will set the start_time to 19:00 and the end_time to 20:00 ---
that is, it creates a one-hour event at the next start of the hour
from now.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:58 -03:00
Federico Mena Quintero 923424acab Run the tests for the flatpak build
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:58 -03:00
Federico Mena Quintero a0a817ee8a Add scaffolding for a new test-internals binary
* There is a gcal_tests_add_internal() function...

* called from tests/test-internals.c...

* ... which doesn't add any tests yet, but we'll have some soon.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:57 -03:00
Federico Mena Quintero cdc602bb1f Start sketching gcal_schedule_values_set_start_date()
But we need a test first!

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:17 -03:00
Federico Mena Quintero 938419c1d4 Handle the time_format as part of GcalScheduleValues and WidgetState
This will let us write tests for changing the time format without a
context object.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:17 -03:00
Federico Mena Quintero 11dcab5ddf Set the state of the schedule_type_toggle_group in update_widgets()
And now the redundancy in gcal_schedule_section_set_event() is gone.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:17 -03:00
Federico Mena Quintero 253b1d4f17 Start transitioning gcal_schedule_section_set_event() to use update_widgets()
For now this is redundant, as update_widgets() only sets the
visibility of the time selectors, while the call to
adw_toggle_group_set_active_name() effectively does the same.

But that redundancy will go away in the next step.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:17 -03:00
Federico Mena Quintero 640488883b Introduce a WidgetState structure and compute it from GcalScheduleValues
You may think, yet more indirection!  But behold:

1. We take events from the widgets ("schedule type (all-day) changed") and turn
   them into actions (gcal_schedule_values_set_all_day()).

2. Those actions (e.g. that function) decide how to change the GcalScheduleValues.

3. We compute the desired state of the wigets, based on the new
   values.

4. We set the state of the widgets based on that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:17 -03:00
Federico Mena Quintero 2c476f6d02 New function to set the all_day flag on GcalScheduleValues
You may think that this is too much indirection.  But wait!  This is
the start of enabling tests.  Hang in there.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:17 -03:00
Federico Mena Quintero a4d891aadd New function to copy a GcalScheduleValues
These structs are immutable.  Any changes will be made on a copy.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:17 -03:00
Federico Mena Quintero 939b60d6b4 gcal_schedule_section_apply(): extract an _apply_to_event() helper function
With this, there's no direct mutation of the self->event anywhere; the
_apply() function just uses self->event as a target for mutation
because that's what the surrounding architecture expects.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:16 -03:00
Federico Mena Quintero 70173639e4 gcal-schedule-section.c: Use the stored values instead of pulling them from the event every time
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:16 -03:00
Federico Mena Quintero f51186c298 gcal_schedule_section_apply(): use the stored values as a reference
Also, update the values from the updated event at the end.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:16 -03:00
Federico Mena Quintero 68126bcfac gcal_schedule_section_set_event(): set the widgets from the extracted values, not from the event
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:16 -03:00
Federico Mena Quintero d44e6847c7 GcalScheduleSection: store the values when an event is set
We don't use them yet; just hooking things up for now.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:16 -03:00
Federico Mena Quintero f75785a34c GcalScheduleValues: new struct to hold values from a GcalEvent for the schedule widges
We'll move GcalScheduleSection to operate without a backing GcalEvent,
so we can add tests.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:16 -03:00
Federico Mena Quintero 42b00ec052 Fix cut&paste error
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:16 -03:00
Federico Mena Quintero 72762ee11d GcalEventWidget: remove the date-end property; it is unused
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:16 -03:00
Federico Mena Quintero 7a814cc1f3 Move explanatory comment
Analogous to date-start

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:16 -03:00
Federico Mena Quintero 6e10e746c3 GCalEventWidget: remove the date-start property; it is never used
Setting and getting the value always happens through
gcal_event_widget_set_date_start() and gcal_event_widget_get_date_start().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:16 -03:00
Federico Mena Quintero 2f86a7a77b Move explanatory comment
We'll remove the date-start property, so put its description in the
corresponding setter function.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550>
2025-08-27 19:59:15 -03:00
Piotr Drąg 9ca0d873fa Update Polish translation 2025-08-27 18:45:25 +02:00
ARAKHNID 616481b60c gui/event-popover: Always focus action button
Previously, if there was a meeting row, the join button would be focused
instead of the action button. This ended up being undesired behavior, so
it's been removed.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1445

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/626>
2025-08-26 17:47:49 +00:00
Hari Rana 1ab336009e views/month-view: Skip view when tabbing in event widget
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1444
2025-08-25 21:33:58 -06:00
Luming Zh ed79807f93 Update Chinese (China) translation 2025-08-24 07:55:00 +00:00
Daniele Ziaco 1f86255e33 gcal-event-widget: Update labels when time-format changes
When the time format changes in Settings,
events in the week/month views did not update at runtime.

This connects the appropriate signal so the widget updates immediately.

Fixes #1373

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/625>
2025-08-20 23:29:44 +00:00
Daniel Rusek ea7e3635fb Update Czech translation 2025-08-20 12:28:34 +00:00
Danial Behzadi 0b759b8bd3 Update Persian translation 2025-08-19 14:03:19 +00:00
Hari Rana 27b4237410 css: Reduce week number background opacity
The week numbers' foreground and background colors are relatively
low in contrast; decreasing the background color's opacity heavily
helps with contrast.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/624>
2025-08-18 20:00:19 -04:00
Hari Rana 6252069d26 css: Adjust week number borders
We should generally avoid setting padding without subtracting with
the border width. On high contrast style, week numbers receive a
1px border width without subtracting it from the padding. This
causes a layout shift and makes the sidebar wider.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/624>
2025-08-18 20:00:19 -04:00
Hari Rana 534fb3a83c gui: Update to libadwaita's custom properties and style classes
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1440

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/624>
2025-08-18 19:59:43 -04:00
Hari Rana f887ea10f8 css: Remove unused style classes
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/624>
2025-08-18 18:37:29 -04:00
Hari Rana 8889139b82 gui/month-view: Use dimmed style class
Instead of manually setting the font color for the month view's
week header, the `dimmed` style class dims labels according to the
HIG while simultaneously accommodating high contrast users.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1437

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/624>
2025-08-18 18:37:29 -04:00
Hari Rana be0ba51481 gui: Replace dim-label with dimmed style class
`dim-label` is deprecated.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/624>
2025-08-18 18:37:25 -04:00
Jean-François Fortin Tam e56ef92abd gcal-month-cell: Fix a typo in a comment 2025-08-18 15:16:35 -04:00
Jean-François Fortin Tam e2a3d31532 month-cell: Use full-length month names when safe to do so
Full month names are easier to notice and read while scrolling,
and would be read more naturally by text-to-speech screen readers.

An exception must be made when today is near the beginning of the month,
as the weather forecast temperatures labels might also appear there.
In that case, use the abbreviated version of the month name label.

Fixes issue #962
2025-08-18 15:16:35 -04:00
Makoto Sakaguchi c3ba87f7f1 Update Japanese translation 2025-08-12 05:47:36 +00:00
Artur S0 d3a60b5ab0 Update Russian translation 2025-08-08 14:04:02 +00:00
Ahmed Najmawi f2fb854e76 Update Arabic translation 2025-08-04 13:33:56 +00:00
Martin 5c0cce21f5 Update Slovenian translation 2025-08-03 14:58:33 +00:00
Fran Diéguez 55d5ab3b58 Update Galician translation 2025-08-02 22:37:24 +00:00
Hari Rana 78e87fad4b gui/event-popover: Apply style to italicize
Using the italic attribute in the label property made the
attribute translatable, which is undesired.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1427
2025-08-02 15:20:36 -04:00
Philipp Sauberzweig cec8a66e88 gui/event-widget: Update event widget style
This significantly changes the border radius of event widgets, as
well as their edge, background, and foreground colors.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1433
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/621>
2025-08-01 18:25:48 -04:00
Makoto Sakaguchi 589c1a1171 Update Japanese translation 2025-08-01 09:02:51 +00:00
Emma Blink fbc181743b week-view: explicitly handle PgUp/PgDown via ShortcutController
ScrolledWindow handles PgUp/PgDown in bubble phase to trigger scrolling.
Which leads to inconsistent behaviour: scrolling when an event is focused,
and moving to the previous/next week when not. Explicitly handling the
shortcuts with a ShortcutController in capture phase makes it consistently
navigate to previous/next week.

Fixes #1409

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/618>
2025-07-27 16:23:40 +01:00
Hari Rana d477ac2d72 event-editor/multi-choice: Focus widget if increment/decrement buttons are pressed
This also re-sets the state flags of the buttons, because otherwise
the increment/decrement buttons lose their hovered state after
the widget gains focus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/616>
2025-07-27 07:20:15 -04:00