Since the GtkListBox is bound to the calendars GListModel, and since the
GListModel is already sorted, there is no longer a need for sorting the
rows by name.
Ports the import dialog out of AdwPreferencesPage to
modify some properties of the ScrolledWindow so the dialog
does the sizing as expected
This avoids scrolling when the natural height of the contents
fits within the window
When enabling or disabling a calendar through the GcalCalendarButton
popover, the user loses the ability to click right after. This bug was
caused by the update mechanism, triggered by the calendar-changed signal,
which would delete then create a brand new GtkWidget for the row.
To fix this, I replaced the manual signal-based create, update and
remove mechanisms with a binding between the GtkListBox and the calendar
GListModel.
A new widget to perform drag and drop operations, for example,
dropping ICS files to the GcalWindow. It allows to overlay
a child for visual feedback when a DnD operation is done.
either in the main window or in the import dialog,
depending on whether none could be imported, or just some
of them.
It is based on Loupe's DragOverlay widget.
Closes#1257
This builds on top of the existing UI/code, while adding a few improvements and
behavioral changes:
- The popover displays the changes-prevent icon when the even is read-only.
- Each section is properly separated with `GtkSeparator`s, with equal amount of
top and bottom margins.
- Location and Meetings section are mutually exclusive; only one is shown.
- When an event has no event note, the popover will always display that there's no
description.
- `GcalMeetingRow` has been ported to `GtkListBoxRow`.
- The action button adapts its icon and tooltip text depending on the event
permission.
because days starts at 01:01:01 (HH:MM::SS), some events at the start
or end of day may be push into another day or back into previous day.
day should starts at 00:00:00 and previous day should stop at 23:59:59.
fixes:
https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1255
In the import dialog, start and end date-time fields were being
incorrectly displayed, not considering the local timezone and the
24-hours vs 12-hours format used by the user. Also, the libical
already deals with the case in which events do not have the DTEND
field, simplifying the implementation.
Fixes#1175
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
When the alarm sound changes, the change is not updated because
gcal-manager does not see the changes.
We now update the components and make more comparisons so that
it can be seen by gcal-manager
In case the location is an URL, it is irrelevant to display the full
link,
as it is not clickable. So, this shows the meeting service provider if
it
is known or reduces the text in the tooltip, preventing it from covering
other information in the calendar.
Closes: #1232
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.
When the text is pasted on gitlab, it recognizes the version SHA and
places a hyperlink to the commit, which might facilitate unintended
references to be created.
By enclosing the string between backticks, gitlab does not recognize it.
Closes#1246
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.
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
This removes a lot of duplicated code, as we can simply reuse the
appdata file. It will also allow us to add release notes without
needing to rewrite them. A simple update in the
`adw_about_dialog_new_from_appdata` method will take care of
displaying the release notes.
This also renames the appdata file from `appdata.xml` to
`metainfo.xml`, as `appdata.xml` is considered a legacy filename.
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