46 Commits
Author SHA1 Message Date
Jean-François Fortin Tam ab76cd59be Create only DISPLAY alarms in reminders, not AUDIO
Creating "AUDIO" VALARM notification actions causes endless problems:
users may only hear a sound notification (with no visuals), if at all,
and most other apps don't honor nor support editing audio-only alarms.
Other systems typically play a sound automatically on "DISPLAY" alarms.

https://datatracker.ietf.org/doc/html/rfc5545#section-3.6.6 says:

> Multiple mutually independent "VALARM" calendar components
> can be specified for a single "VEVENT" or "VTODO" calendar component.

However, each component states:

> 'action' and 'trigger' are both REQUIRED,
> but MUST NOT occur more than once.

To keep the UI simple, we should pick one or the other; "DISPLAY" it is.
Remove "AUDIO" alarm code and add a warning to never add it again.

Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1280
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/680>
2026-01-16 01:18:28 +00:00
Jean-François Fortin Tam e6a4c204ab gui/calendar-list: Ellipsize long headers labels
This prevents long calendar accounts' names from breaking the whole UI.

Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1531
2026-01-06 10:53:48 -05:00
Jean-François Fortin Tam 719f60e289 appdata: Add keywords to improve discoverability
The description is not used for searching by some software center apps,
like GNOME Software.

Use keywords to make this app easier to find, as per this documentation:
https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-keywords
2025-12-31 14:49:03 -05:00
99aea45334 utils: Honor "week-start-day" gsetting on startup
This lets users override the "first day of the week" through a
GSetting, instead of being forced to use whatever is defined by
the locale, which often may not be correct for their culture,
language or location.

Currently this would apply only upon (re)starting the app.

Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/160
Co-authored-by: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Co-authored-by: Titouan Real <titouan.real@gmail.com>
Co-authored-by: Adrien Plazas <aplazas@gnome.org>
2025-12-28 13:02:27 -05:00
Jean-François Fortin Tam e470ecfc25 quick-add-popover: Use semantic typographic wrapping of time ranges
Atomically maintain time ranges on the same line when possible.
This is done using invisible non-breaking whitespace characters.

When selecting a range of time in the week view's timetable,
this ensures eye-pleasing, natural-looking typography.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/661>
2025-11-19 13:34:54 +00:00
Jean-François Fortin Tam dbe0fef2ba Add a default issue reporting description template
Encourage new bug reporters to use one of the available templates.
This is a soft approach similar to what the Nautilus project does.
2025-11-08 19:44:09 -03:00
Jean-François Fortin Tam 3e31bd1641 Revert "event-editor/notes: Add height-request"
The widget already auto-adjusts its height depending on text contents.
Let it use as much or as little height it needs.
This avoids extra scrolling in some cases.

This reverts commit a09c02591e.

Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1455
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/636>
2025-10-17 17:04:00 +00:00
Jean-François Fortin Tam 28e8e07219 gcal-event-editor: Add mnemonic for "Delete Event"
This lets keyboard-centric power users delete events in 1 second.
It can be useful in rare situations when you need to delete many events.

Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1313
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/628>
2025-10-10 13:27:46 +00:00
Jean-François Fortin Tam d86d0f7e1e event-editor: Focus the whole title entry on start
This avoids the text cursor being positioned at the start of the entry.

Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1452
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/631>
2025-08-30 00:24:15 -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
Jean-François Fortin Tam 1ab28d3e95 month-cell: Bold month name & 1st day labels
Make it easier to track which month you are crossing while scrolling.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/962
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/478>
2025-07-15 15:46:41 -04:00
Jean-François Fortin Tam 1b500973e6 month-cell: Simplify calls to day_of_month
We already had this local variable waiting to be used;
let's reuse it to avoid calling querying the date repeatedly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/478>
2025-07-15 15:46:41 -04:00
Jean-François Fortin Tam 3e4ef6f9c7 event-editor: Hide Cancel & Delete when read-only
Read-only events show a "Done" button instead of the "Save" button.
The "Done" button does the same thing as "Cancel",
so the "Cancel" button is then redundant.

Likewise, it is impossible to delete events from read-only calendars,
as stated by the banner message in that dialog. In that case,
there's no reason to show a big "Delete" button that you can't click on.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1168
2025-07-11 23:27:08 -04:00
Jean-François Fortin Tam c2b36c1161 shortcuts-dialog: Update F9 to "Toggle Sidebar"
Replace the "Open Calendars Menu" description by "Toggle Sidebar";
there is no more menu for it, and the shortcut was reassigned.
2025-07-10 10:45:41 -04:00
Jean-François Fortin Tam 0d09bef260 Post-release version bump 2025-03-01 01:44:59 +00:00
Jean-François Fortin Tam ec29c4ee11 48.rc 2025-03-01 00:53:34 +00:00
Jean-François Fortin Tam 83e80de629 Correct NEWS and release date of 48.beta
This clarifies one of the changes listed in the NEWS file,
so the related change in the upcoming 48.rc release can be distinct.
2025-02-28 19:31:28 -05:00
Jean-François Fortin Tam f4ebe672cb build: Point to the correct branch for GCR
gitlab.gnome.org/GNOME/gcr does not have a "master" branch, only "main"
2025-01-12 23:11:09 -05:00
Jean-François Fortin Tam 6327e469e4 Mention Nightly in GitLab issue templates
Encourage bug reporters to always test with the development version,
in addition to the stable version they might be using.
2024-12-28 13:34:10 -05:00
Jean-François Fortin Tam 8d000cb4e3 Update GitLab issues templates
Use the new links pointing to the GNOME Handbook website,
as the wiki has been decommissioned.
2024-12-28 13:33:14 -05:00
Jean-François Fortin Tam f7aadd23bb import-dialog: Add a11y description on "hidden" calendar status icons 2024-08-27 15:25:22 -04:00
Jean-François Fortin Tam 7566bf273b import-dialog: Show indicator icons for invisible calendars
When importing .ics files as events,
you can assign the resulting events to any writable calendar,
even those hidden from the view.

However, it is good to have a hint of such calendars being invisible.
That way, users can have predictable expectations.

Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1184
2024-08-27 15:04:03 -04:00
Jean-François Fortin Tam f76659c706 import-dialog: Move parent source name color code
Reading the `get_source_parent_name_color` call after `color_paintable`,
one gets the impression they are somehow related, but they are not.

Furthermore, this unfortunate location complicates my upcoming changes.
Let's relocate that code next to the context where it is actually used.

This improves clarity and maintainability.
2024-08-27 14:45:49 -04:00
Jean-François Fortin Tam a844920620 gcal-window: Set a general tooltip for the "Today" button
This static tooltip helps users discover what the feature is about.
It also helps with accessibility in general.
2024-08-23 17:14:59 -04:00
Jean-François Fortin Tam fb5b03b2df new-calendar: Title the local calendar group
In practice, the name and color widgets are currently meant to be used
when creating a local calendar, not when subscribing online, especially
as a single online calendar link can bundle multiple calendars.

This makes the scope of those widgets clearer,
and also makes the dialog more balanced.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/566
2024-08-23 15:50:40 +00:00
Jean-François Fortin Tam 29396acf46 new-calendar: Use "title" in AdwPreferencesGroup
Replace the manually positioned & styled group label by a property

This simplifies the XML code, makes the style match the rest of the UI,
and prevents libadwaita from sometimes moving such labels to the bottom.
2024-08-23 15:50:40 +00:00
Jean-François Fortin Tam 126929b8c5 new-calendar: Clarify web calendar strings
Now that the "Open" button has been removed,
it is now a feature to "Connect" rather than "Import",
so update the section title to reflect that.

Also give a hint as to what protocols are supported.
2024-08-23 15:50:40 +00:00
Jean-François Fortin Tam a74ae36e6c Remove gcal-file-chooser-button code
As it is no longer used in the calendar management dialog,
and it was not used anywhere else in the codebase,
it can now be dropped entirely.
2024-08-23 15:50:40 +00:00
Jean-François Fortin Tam f827b8a1f2 Remove .ics file importer button in "New Calendar"
A file imported as a "new calendar" would make it dependent on the file.
This feature was confusing everybody and is downright dangerous.

This does not prevent anyone from creating normal calendars,
and importing events from .ics files into them.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/390
2024-08-23 15:50:40 +00:00
Jean-François Fortin Tam 588bec96b6 utils/source-discoverer: Fix HTTP errors interpretation
There can be many reasons why a request is not allowed or authorized.
403 and 405 HTTP error codes do not prompt the visitor for credentials.
Only 401 and 407 responses are credentials prompts.

Only raise a username and password request when facing a 401 or 407.

Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/645
Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/552
2024-08-16 18:47:57 -04:00
Jean-François Fortin Tam 577efdd967 utils/source-discoverer: Add a debug statement
This debug statement would happen before any interpretation of errors,
which is useful in troubleshooting issues related to interpretation.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/645
2024-08-16 18:47:57 -04:00
Jean-François Fortin Tam 2860a468f1 new-calendar: Show webcalendar subscription errors
Let the user know what went wrong,
using a secondary icon and tooltip directly in the URL entry field.
Also provide a hint to GTK that it is meant to be a URL field.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1177
2024-08-16 18:46:36 -04:00
Jean-François Fortin Tam 11499ad1d5 NEWS: Add missing major 47 alpha/beta improvements 2024-08-12 13:18:52 +00:00
Jean-François Fortin Tam fb2cfe690f Add an icon to represent hidden calendars
To be used in calendars lists in the evente editor and importer dialogs
2024-08-11 23:35:42 +00: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
Jean-François Fortin Tam 006437bf61 Avoid duplication when adding online calendars
When subscribing to one or multiple online Webcal or CalDAV calendars,
do not unexpectedly create an extra local calendar.

While this doesn't allow customizing names & colors while subscribing,
users can still easily set those just after adding the subscriptions,
as they are then returned to the "Calendars" page of "Manage Calendars".

Punting this to a separate step might not seem like the "perfect" flow,
but it works well enough and fixes the buggy UX that we currently had.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/566
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/978
2024-07-09 16:44:01 -04:00
Jean-François Fortin Tam b547db1170 event-editor: Demystify the read-only padlock icon
Non-technical users may not realize why they can not edit some events
from read-only subscribed remote calendars.

A symbolic padlock icon does not suffice to make this obvious.
This tooltip makes the UI self-documenting, and improves accessibility.
2024-05-01 15:01:39 +00:00
Jean-François Fortin Tam f332b5a076 Delay search activation for better UX & perfs
A more realistic default delay avoids spamming the search backends.
Benefits of this approach:

* Improves overall performance, allows wider search timeline ranges;
* Reduces power consumption;
* Reduces or eliminates flickering in the GUI;
* Reduces the amount of trace logging noise by more than 15x.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1170
2024-05-01 14:52:13 +00:00
Jean-François Fortin Tam d7f200fff8 search-button: Add debug statements
This makes it easier to troubleshoot what triggers and stops searches.
2024-05-01 14:52:13 +00:00
Jean-François Fortin Tam 704c0815a1 event-editor: Focus "Done" for read-only events
In commit 1494f7407, we focus the summary entry when opening the dialog.
However, this prevents the Escape keyboard shortcut from working
when opening a read-only event after having opened a writable event.

Set focus onto the "Done" button when showing a read-only event,
as it's the only widget that can be activated/clicked in this situation.

This makes the "Escape", "Spacebar" and "Enter" keyboard shortcuts work.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1180
2024-04-26 12:54:59 +00:00
Jean-François Fortin Tam 1ae6fbb637 event-editor: Fix widgets groups sensitivity sync
A side-effect of changing the default "writable" state in commit 06b3c38
is that we must ensure that all the widget groups are synced with it.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1178
2024-02-23 17:13:01 -05:00
Jean-François Fortin Tam 06b3c38db8 event-editor: Fix the "Save" / "Done" button label
The "Done" button was apparently meant for read-only events,
while the "Save" action was for everything else.
It didn't work correctly because of a mismatch between code and UI XML.

Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1142
2024-02-23 16:19:40 +00:00
Jean-François Fortin Tam c0e258b6e4 style: Harmonize the mini calendar's week numbers with GNOME Shell
Make the week numbers a bit clearer to look at in the mini calendar,
differentiating them from day numbers so it's easier to tell them apart.

The style is loosely inspired from GNOME Shell's calendar widget,
but retains GNOME Calendar's more compact layout.

Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/378
Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/934
2023-12-13 20:33:58 -05:00
Jean-François Fortin Tam 10a93fc9cd appdata: Rewrite the app's summary and description metadata
Rewrite the text to properly market the app,
while avoiding referencing the target environment (GNOME).

Broadly emphasize the UX, existing key features, intended use,
and benefits of the application for the user in their day-to-day lives,
without over-selling it either.

We can augment this description in the future when more core features land.

Fixes issue #1109
2023-11-07 13:40:50 -05:00
Jean-François Fortin Tam aa333722af Set a better default size (height and width) for the event editor dialog
These are still hardcoded instead of measuring the available space,
but it's better than nothing in the meantime.

Decent WMs size the window correctly if width/height exceed the screen.

Also, allow the Notes field to expand vertically, to fill the space.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/602
2023-01-02 16:24:44 -05:00