Commit Graph
47 Commits
Author SHA1 Message Date
davidandClaude Opus 5.5 8be61e439a build: Support libical 4
libical 4 changed several APIs used by GNOME Calendar:

 - libical-glib now provides autoptr cleanup for ICalTime, so only
   define it ourselves for older versions.
 - i_cal_recurrence_get/set_by_day() were removed in favor of the
   dynamically sized by-rule arrays; add local helpers on top of
   i_cal_recurrence_get/set_by().
 - i_cal_errno_return() was renamed to i_cal_error_icalerrno().

Also make the create-tzid event test independent of line folding,
which differs between libical versions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 08:44:07 -06:00
david 8d9eb034c7 Invite people to events on Federated Core calendars 2026-10-29 08:18:52 -06: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
mindonwarp acd8fbaf69 utils: Use ISO weekday numbering for 'get_first_weekday' function
Change the 'get_first_weekday' function to number the weekdays
Monday(1)-Sunday(7) like ISO does. Change the function name to reflect
that. Add tests for different locales, although the tests depend on
system-installed locales.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/822>
2026-09-26 17:22:00 +00:00
Hari Rana 65896c6ece utils: Prefix macros with GCAL_
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/842>
2026-09-20 12:44:24 +00:00
Hari Rana 117c032d95 utils: Prefix every function with gcal_util_
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/842>
2026-09-20 12:44:24 +00:00
Hari Rana 38ad6ea3ea utils: Remove unused functions
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/842>
2026-09-20 12:44:23 +00:00
Jan-Michael Brummer ef5935f1fa event-popover: Add support for Teams links
Add a separate function to extract the description and the URL from a
Teams-formatted event. Add a test for this as well.

Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/1312
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/753>
2026-05-26 19:55:25 -03:00
Hari Rana 312b286e2b utils: Add utility function for creating activate signal and shortcuts
The current way of adding activation shortcuts is cumbersome,
as it is a for-loop pasted in the middle of class initializers.
The utility function addresses this problem by simply allowing us
to declaratively add these shortcuts with minimal effort.

Furthermore, the implementation is also simpler, thanks to the
`gtk_widget_class_add_binding_signal()` wrapper function.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/747>
2026-05-04 10:42:02 +00:00
Hari Rana a84cf3aed9 utils: Add macro for getting default application
This will be needed as a replacement for the removal of the
"context" property on every object.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:29:58 +00:00
Hari Rana 50e048c7e0 utils: Turn number of weekdays into a macro
While "7" may be obvious in the context of calendaring that
it represents the number of week days, it often gives me the
impression of it being a magic number when I'm hyperfocused on certain
parts of the codebase for several consecutive hours. Turning the
number into a macro helps me scan functions much more easily.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/674>
2026-03-08 21:53:40 -04:00
mindonwarp ba3ca061ce event-editor: Add attendees section and details page
UX/UI designed by Philipp Sauberzweig (@PhilippSauberz).

The event editor dialog is now a NavigationView and the participants
details open in a separate page. Group attendees/participants in
AdwPreferencesGroups and bind groups'
ListBox widgets to backing filter models. These are just "views" into a
single GListStore containing all the event attendees.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/671>
2026-01-21 19:37:52 +00:00
Georges Basile Stavracas Neto d16cc2bc68 utils: Remove get_source_parent_name_color
One less weird function lurking around.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/610>
2025-07-02 18:04:26 +00:00
Georges Basile Stavracas Neto 004fdb0f3d utils: Shuffle and cleanup some paintable code
- It's only used in GcalShellSearchProvider so move it there.
- GdkTexture implements GIcon so no need to convert to a pixbuf.
2024-10-11 22:55:03 -03:00
Hari Rana 8ff3a843b3 utils: Add function to create writable-only calendars lists 2024-08-23 13:46:00 -03:00
Jean-François Fortin Tam 008b914f9e utils/source-discoverer: Set the User-Agent
This avoids some web servers or WAFs doing weird stuff with our requests
which would lead to situations where our web calendar source discovery
would face server errors, redirects, incorrect contents, etc.

Fixes #651

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/290
2024-08-07 12:32:00 -04:00
Otávio Silva 9433db55a2 utils: Move get_service_name_from_url to utils
This function can be useful in contexts other than the creation of
the meeting row.
2024-07-09 16:14:47 -03:00
Georges Basile Stavracas Neto cbe89a9daa gui/event-editor: Rework calendars menu
Use a GtkListBox and bind from the model. Create rows from the model
items, and bind properties as needed.

The action target is set only when the calendar is writable because
setting an invalid action+target pair makes the row insensitive.

Remove the ancient menu icon hack.
2024-03-01 00:39:42 -03:00
Hari Rana ddb54c8c1c event-editor: Improve event name validation handling
- Fix a bug where clicking the "Add Event" button created an empty title in the event editor dialog.
- Add "error" class when the user writes an invalid event name.
- Add new function to validate event name.

Because the sections are split into files, the event editor will need a signal to check that each section is correct, and each section will have to emit the signal. This will need to be done in a future commit.
2024-02-25 08:55:17 -05:00
Daniel Garcia Moreno 68c921bf60 test: Add event_date_edit_tzid
This new test check that the tz data in the component is set correctly
after editing an event date end.

See https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/170
2023-11-09 20:59:59 +00:00
Georges Basile Stavracas Neto b26f33ea10 utils: Remove 24h utility function
The last user of this function is gone now.
2023-09-23 02:39:39 -03:00
Victoria Lacroix aec45594f9 gcal-utils: Combine GNOME Settings launchers
This refactor combines the functions
gcal_utils_launch_online_accounts_panel and
gcal_utils_launch_datetime_settings_panel into a single function that
takes a panel ID as an argument.
2023-07-15 23:04:51 +00:00
Victoria Lacroix 3526cadcca gcal-window: datetime settings shortcut
Shortcut is added so that time-related system settings can be easily
accessed. See #1023

The code is largely just a copy-paste of the code that opens the
"Online Accounts…" menu.

Fixes #1023
2023-07-15 23:04:51 +00:00
Georges Basile Stavracas Neto 6a5c0229b9 utils: Add boolean flag for showing MOD_ALL
This will be used by next commit to more finely control editing
of recurrent events.
2022-10-17 23:37:13 -03:00
Björn Daase ad7ff65a4d event-editor/schedule-section: Fix localization mix
The gcal_util_translate_time_string function is a plain copy of
gnome-shells shell_util_translate_time_string solving the same problem.

Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/581
2022-02-12 17:43:49 +01:00
Georges Basile Stavracas Neto 47a72f8156 event-editor-dialog: Port to new callback-based ask API 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto ee5acbd493 Reimplement event drag n' drop
Reintroduce the code using GTK4 tooling for in-process DnD.
This is looking much better!
2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto fb504db31f util: Drop unused function 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto 1cbce60c4a month-view: Port to GTK4 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto b31b16da17 week-view: Port to GTK4 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto 2139f40e67 project: Adjust color rendering to use GdkPaintable 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 41ba168250 calendar-management/calendars-page: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 01ee4a2b49 utils: Add Google extractor
Google events have an exotic section at the end of their event
descriptions, we can parse that to find some information like
the meeting URL.
2021-06-27 18:36:05 -03:00
Michael Catanzaro 0733844690 Remove autocleanup for GWeatherLocation with new gweather 2021-01-12 15:08:50 -06:00
Georges Basile Stavracas Neto 1f6559de68 Remove ECalDataModel and ECalDataModelSubscriber
Drop the bomb!
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto 5e4bbe446f utils: Pass GcalCalendar to ask_recurrence_modification_type()
The method ask_recurrence_modification_type() currently
receives an ESource, and tried to fetch the ECalClient
from the ESource by using g_object_get_data().

However, since we moved to GcalCalendar, we do not set
this data field in ESource.

Receive a GcalCalendar instead, and use the appropriate
function gcal_calendar_get_client() instead.
2019-09-14 21:38:53 -03:00
Georges Basile Stavracas Neto ff0644ad76 utils: Add auxiliary function to format display names
This will be used by the web source discoverer to format
any URLs that contain a file name in their path.
2019-07-13 16:04:31 -03:00
Georges Basile Stavracas Neto 8743121f4d source-dialog: Move Online Accounts panel spawn to utils
So that it can be reused by other files.
2019-06-24 21:32:44 -03:00
Milan Crha a0cae4356a Port to libecal-2.0
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/merge_requests/70
2019-05-17 21:58:55 +02:00
Georges Basile Stavracas Neto 5e3eb40c53 utils: Add gcal_clear_signal_handler 2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 0acf0b60ba utils: Receive const GdkRGBA*
We do not modify their values, they're const in
practice already.
2019-05-04 12:05:39 -03:00
Georges Basile Stavracas Neto 907b71635b manager: Move threading functions to utils 2019-04-29 17:08:52 -03:00
Georges Basile Stavracas Neto 6dda74432c utils: Remove more unused functions 2019-04-26 15:42:32 -03:00
Georges Basile Stavracas Neto c52bacfc3f utils: Move more API to gcal-date-time-utils.c 2019-04-26 13:57:05 -03:00
Georges Basile Stavracas Neto ab1c0b6ca4 utils: Rename gcal_clear_datetime to gcal_clear_date_time
To keep it consistent with the rest of the API.
2019-04-26 13:27:37 -03:00
Georges Basile Stavracas Neto 68943eec57 utils: Add GDateTime utils
This will greatly help with the transition to GDateTime.
In the future, we can propose these APIs to GLib itself.
2019-04-26 12:59:29 -03:00
Georges Basile Stavracas Neto 3bff2b8981 utils: Move to utils/ subdir
We will split this file into more, specialized, files
so it makes sense to not pollute the top source dir.
2019-04-25 20:59:08 -03:00