Commit Graph
6121 Commits
Author SHA1 Message Date
Hari RanaandNiklas Wimmer 4defb0019b common/date-chooser: Focus selected date in grid when tabbing into it
When tabbing into a grid or list of items that are selectable,
we want to focus the selected item when entering it. At the moment,
we only focus the first or last item in the date chooser grid,
rather than the selected item.

Co-authored-by: Niklas Wimmer <niklas@viric.eu>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/869>
2026-10-26 08:25:25 -04:00
Hari RanaandPeter Eisenmann 4f7403fd71 core/search-provider: Simplify the way range_changed is being set
Co-authored-by: Peter Eisenmann <p3732@getgoogleoff.me>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/873>
2026-10-25 19:48:04 +00:00
Hari Rana e49788c952 utils: Remove gcal_set_date_time()
`g_set_date_time()` now exists.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/873>
2026-10-25 19:48:04 +00:00
Hari Rana 84875616ab src: Use g_set_date_time()
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/873>
2026-10-25 19:48:04 +00:00
ARAKHNID b50db7aa9d src: Fix grammar issue
"Setup" is a noun, not a verb. Using "set up" instead when it's being used as a verb is correct.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/884>
2026-10-25 13:45:25 -05:00
Aidan Tuhoro-Bell 53f6fa6bb2 Update Maori translation 2026-10-19 01:21:52 +00:00
ARAKHNID 86c00a5292 gui/window: Remove open online calendars menu item
This menu item was found to be confusing in a small experiment with 3
people. Since online calendars are already accessible when adding
calendars in the calendar management dialog, this menu item can be
removed.

Closes #1642

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/876>
2026-10-16 21:37:06 +00:00
Hari Rana acd87d2626 mailmap: Add file
See: https://git-scm.com/docs/gitmailmap
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/879>
2026-10-16 14:41:14 +00:00
Antonio Marin cae9950f49 Update Romanian translation 2026-10-12 19:22:57 +00:00
Cátia Silva 5c8a6767e7 Update Portuguese translation
(cherry picked from commit 4732b630b969fb46cec9d025d43f5d0d0b592916)
2026-10-12 13:07:52 +00:00
Martin adc7273b34 Update Slovenian translation 2026-10-12 07:34:52 +00:00
Georges Basile Stavracas Neto 9d97c5a9bd views/month: Read number of rows from setting
And react to changes.

Helps:
https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/1064

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/856>
2026-10-11 20:07:17 -04:00
Georges Basile Stavracas Neto 4f9b8e5e4a views/month: Parametrize constants
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/856>
2026-10-11 14:50:14 -04:00
Georges Basile Stavracas Neto 4dac610aa8 gsettings: Add setting for Month view rows
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/856>
2026-10-11 14:50:14 -04:00
Hari Rana d6a4137c80 views/agenda: Remove FIXME
`clear_marks()` doesn't need to be implemented in the agenda view.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/872>
2026-10-06 08:05:17 -04:00
Hari Rana 12caabb67d views/month: Set date when the dates are different
Fixes: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/1500>
Fixes: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/1649>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/871>
2026-10-05 11:38:57 +00:00
mindonwarp c2964baaed views/week-header: Avoid setting date when dates share the same start-of-week
Instead of checking `g_date_time_get_week_of_year()`, which doesn't
care about "first day of week" settings, we use our
`gcal_date_time_get_start_of_week()` utility function. This function
determines the first day of the week the passed date belongs to,
constructs a new `GDateTime` object that represents the first day
of week as 'Y-M-D 00:00:00' in local timezone, all while taking
into account the "first day of week" Desktop setting.

Fixes: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/1212>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/868>
2026-10-04 23:00:35 +00:00
mindonwarp 592a63c782 views/week: Signal range changed on first weekday changed
Adds the missing call to the `GcalTimelineSubscriber::range-changed`
after redrawing the week view grids, fixing rearranged days appearing
empty.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/867>
2026-10-04 22:03:26 +00:00
Zelda Ahmed 5a23ab940f views/agenda-item: Drop event widget property and methods
In the end, we did not need to store the event widget in the item to be
able to activate it, so this code can be dropped completely.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/866>
2026-10-04 16:31:38 +01:00
Zelda Ahmed 65ae1c5ef2 views/agenda: Remove unsued ChildData structure
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/866>
2026-10-04 16:29:22 +01:00
Zelda Ahmed 5996b00108 views/agenda: Remove unused items in structure
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/866>
2026-10-04 16:29:22 +01:00
Hari Rana e27e477e69 gui/calendar-navigation-button: Fix memory leak
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/865>
2026-10-04 14:06:44 +00:00
mindonwarp 6f511b600a appdata: Add release info tag for 52~alpha
Since we now have fatal criticals enabled, we are prone to crashes
caused by our external dependencies emitting criticals. The newest case
is the Adwaita About dialog. The critical happened because `ministream`
couldn't find a release tag for 52.0

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/864>
2026-10-04 12:35:19 +02:00
Hari Rana b1f6e609c6 views/week-grid: Only set parent when child_data->widget has been created
`add_event_to_block()` assumes that the child widget has never been
parented, so it will always set the parent widget when the widget
is already parented, which triggers a critical error in GTK.

This patch addresses this situation by only parenting when the
widget has just been created. Additionally, it asserts that the
parent widget is `self` in the end, so that it crashes if this
is incorrect.

Fixes: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/1643>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/863>
2026-10-03 19:24:19 -04:00
mindonwarp 81fa0f29c4 core: Catch errors when trying to read from settings portal
`g_dbus_proxy_call_sync` will return NULL and set the recoverable
`error` in case of failure.

We didn't catch this previously so reading the variant from the return
value caused a CRITICAL because a user didn't have the `week-start-day`
setting (introduced in 50.alpha) and the returned `GVariant` was NULL.

Now, we check whether en error is set after calling
`g_dbus_proxy_call_sync` and propagate it to the calling method so it
can gracefully handle it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/862>
2026-10-03 13:26:49 +02:00
mindonwarp 0a72c05311 views/agenda: Fix critical in first weekday changed
The `gcal_agenda_view_first_weekday_changed` uses the same
`gtk_list_view_scroll_to` method that expects the scroll position to be
smaller than the number of items in the list model.

When the list model contains no items, the method reports a critical
which crashes the Calendar whith `fatal-criticals` enabled.

This is the same fix that Georges made in the
`gcal_agenda_view_set_date` method. We now check the number of items
before trying to scroll the list view to position zero.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/861>
2026-10-03 12:58:02 +02:00
Martin b09d79a9b1 Update Slovenian translation 2026-10-03 10:47:15 +00:00
Zelda Ahmed d163d1bf82 gui/window: Cast the returned value of g_object_get_data
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/849>
2026-10-02 21:39:10 +00:00
Zelda Ahmed 7b9072fdac gui/calendar-list: Cast the returned value of g_object_get_data
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/849>
2026-10-02 21:39:10 +00:00
Zelda Ahmed e16e33783e common/calendar-row: Cast the returned value of g_object_get_data
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/849>
2026-10-02 21:39:10 +00:00
Zelda Ahmed 43fdb229c5 calendar-management/page: Cast the returned value of g_object_get_data
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/849>
2026-10-02 21:39:10 +00:00
ARAKHNID a635ca51ed gui/views/week-view: Add shortcuts for zooming in/out
It's possible to change the density of the week view, but only through
pinch-zooming or Ctrl+scroll wheel. This means it can't be done with
only the keyboard, and since neither of these methods are documented,
it's not discoverable either.

This adds shortcuts for zooming the view in and out, and documents them
in the shortcuts dialog to make them discoverable.

Helps #1556

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/859>
2026-10-02 21:33:57 +00:00
Niklas Wimmer f6bbd38023 flatpak: Enable fatal-criticals
We discussed this on Matrix multiple times and came to the conclusion
that crashing the application is preferred on Nightly and during
development. We often miss a critical log message during development
because it gets swamped by all the other logs. Now we can no longer
ignore them.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/857>
2026-10-02 21:27:15 +00:00
Georges Basile Stavracas Neto a1c3439535 views/agenda: Only scroll when there are items
`gtk_list_view_scroll_to()` is documented to require that `pos` is
smaller than the number of items in the model. We were not checking
if the model was empty before calling this function, which could
lead to criticals.

Check if the listview model has any items before scrolling it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/860>
2026-10-02 18:19:13 -03:00
Georges Basile Stavracas Neto 6c2bc5be46 core/log: Improve logging
- Stop using GDateTime formatting as that's super slow!
- Log the thread id as wel

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/858>
2026-10-02 13:58:05 +00:00
Georges Basile Stavracas Neto 509165286e gui/application: Change --debug to --verbose
And support multiple calls to it. Each call increase the verbose
level, up to level 4. Level 4 increases all tracing.

You can run Calendar as:

$ gnome-calendar -vvvv

now and that'll enable tracing.

Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/1234
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/858>
2026-10-02 13:58:05 +00:00
Georges Basile Stavracas Neto a3598c0c11 main: Always initialize logging
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/858>
2026-10-02 13:58:05 +00:00
Georges Basile Stavracas Neto c4c5c81cdf core/log: Enable tracing with G_MESSAGES_DEBUG=all
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/858>
2026-10-02 13:58:04 +00:00
Georges Basile Stavracas Neto b82f6bbcb8 core/log: Support verbosity levels
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/858>
2026-10-02 13:58:04 +00:00
Georges Basile Stavracas Neto d0e8fa85b3 gui/application: Change --version shortname to uppercase V
This will free -v for --verbose

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/858>
2026-10-02 13:58:03 +00:00
6bba8e2cc8 common/date-chooser: Increment or decrement year when GcalMultiChoice wraps
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/97
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/1484

Co-authored-by: mindonwarp <mind.on.warp@gmail.com>
Co-authored-by: Koc13 <ilija.kocinac@proton.me>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/853>
2026-10-02 13:32:27 +00:00
Hari Rana 1c5b826af0 gui/window: Only enable "win.today" action on the current day
Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/1021
Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/1066
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/839>
2026-10-01 13:34:54 -04:00
Hari Rana b2838e034f views/month-view: Follow day of week when scrolling
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/839>
2026-10-01 13:33:04 -04:00
Hari Rana 11294bd1ac utils: Add macro for computing days after first weekday
Currently, `gcal_date_time_get_start_of_week()` seems to be
the only user of this macro function. In the next commit, the
month view will use it to traverse weeks while maintaining
the weekday.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/839>
2026-10-01 13:31:55 -04:00
Antonio Marin 4d0da828f6 Update Romanian translation 2026-09-30 19:52:28 +00:00
Hari Rana 5aec783a85 common/date-chooser: Use GcalMultiChoice::user-changed
At the moment `gcal_date_chooser_set_date()` is automatically setting
the day to 1, which is undesirable behavior for a method that is
designed to "just" set the date. By connecting to
`GcalMultiChoice::explicitly-changed`, we can simply have the day
set to 1 to accompanying callbacks.

Currently, `multi_choice_changed()` is invoked 50 times at startup.
By using `GcalMultiChoice::explicitly-changed`, `multi_choice_changed()`
is only invoked 10 times. This is still more than ideal, but it's
a significant drop.

Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/1639
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/837>
2026-09-30 14:57:26 -04:00
Hari Rana be244e13c8 event-editor/multi-choice: Add signal for emitting explicit changes
We currently rely on connecting the `notify::value` signal,
which is emitted every time the value is changed explicitly or
implicitly. This can be problematic when, for example, the user
scrolls in the month view, which changes the value of each
GcalDateChooser widget, and each minor difference will re-emit
the signal until it's over. The `GcalMultiChoice::user-changed`
signal will only emit when the user presses the
previous/next buttons.

The next commit will port GcalDateChooser
to `GcalMultiChoice::user-changed`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/837>
2026-09-30 14:57:26 -04:00
Hari Rana 68ac34e8d8 event-editor/multi-choice: Document and rearrange properties and signals
This rearranges and documents the rest of the properties, as well
as providing getter and setter methods for properties that don't
have any.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/754>
2026-09-30 18:34:37 +00:00
Hari Rana 6fd70d4f65 common/multi-choice: Use gcal_multi_choice_get_max_value()
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/754>
2026-09-30 18:34:37 +00:00
Hari Rana 096139721d gui/multi-choice: Rework value properties
This changes the way the current value is being set, as well as
proper getter and setter methods for respective min and max values.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/754>
2026-09-30 18:34:37 +00:00