When the user deletes a calendar in the calendar management dialog, a
popover allows them to undo the deletion. The calendar is fully deleted
only when the toast is dismissed or when the toast reaches its timeout.
When the user closes the calendar management dialog without dismissing
the toast and before the end of the timeout, the calendar can still be
manipulated for a short period of time.
To fix this, I removed the calendar-management-dialog from the UI of the
window, and made the window create and destroy the dialog on demand.
This forces the toast overlay to dismiss all toasts.
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
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.
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.
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
Currently, the progress bar is pulsed as soon as the user starts
typing, giving the impression that a process is on going. But,
in reality, validation is performed 500 ms.
After this changes the progress bar is pulsed only when validation
is on-going. The timeout has been increased to 750ms too.
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
Due to some languages using the "nplurals=1; plural=0" plural form,
and the string already in use in src/gui/calendar-management/gcal-new-calendar-page.c
with g_dngettext, add context to the other "Add Calendar" strings to fix the problem.
AFAIK, other locales (confirmed: be_BY, fa_IR, id_ID, kk_KZ, ko_KR, my_MM, zh_CN)
are also affected by this issue.
Currently, if you have lots of calendars you need to scroll all the way
to the bottom of list to have access to the "New Calendar" button.
This commit moves the "New Calendar" button to be on a bottom toolbar
provided by AdwToolbarView. It makes the button always on view and easy
to access.
Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1051