Commit Graph
2810 Commits
Author SHA1 Message Date
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
Nathan Pratta TeodosioandSimon McVittie 1a9bd4e9ca time_t is now 64 bits, long is not enough in all architectures.
Co-authored-by: Simon McVittie <smcv@collabora.com>
2024-08-23 15:49:03 +00:00
Diego Iván M.E f482f3521f drop-overlay: Mark as not visible when there are no DnD operations
This allows the GtkInspector to select widgets that are behind it.

Fixes #1271
2024-08-20 13:47:43 +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
Diego Iván M.E 50c1197d61 new-calendar-page: Reset entry progress when validating
This way, the pulse is hidden once the operation fails, is cancelled
or succeeds.

Fixes #1273
2024-08-13 12:58:12 -06:00
Diego Iván M.E 648badb826 new-calendar-page: Cancel validation/discovery when user types
It allows the user to fix typos in URLs or delete them. Before this,
it would still prompt the password dialog, for instance

Closes #1272
2024-08-13 12:58:09 -06:00
Diego Iván M.E b024319f60 new-calendar-page: Change URL validation feedback
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.
2024-08-13 12:55:51 -06:00
Georges Basile Stavracas Neto 5f86b88c3b views/month: Increase overflow popover min width
Makes it so that it's at least 1.25 the width of a day cell, and at
most 1.5 of that.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1166
2024-08-13 16:25:45 +00:00
Georges Basile Stavracas Neto 2b85b9c680 views/month: Rename a variable
Makes it clearer that this is the day cell.
2024-08-13 16:25:45 +00:00
Georges Basile Stavracas Neto 54657788d0 views/month: Use variables some more
Makes it easier to reason about the if conditions there.
2024-08-13 16:25:45 +00:00
Diego Iván 0af5ffc334 event-editor-dialog: Use GcalCalendarRow to display calendars
Use the widget to display calendars and distinguish whether
they are visible or not. Currently, it does not distinguish
read-only calendars, but once !494 is merged, it should not
be a problem.
2024-08-11 23:35:42 +00:00
Diego Iván 1d418ce1ba event-editor: Introduce GcalCalendarRow
This widget displays the calendar and shows whether it is
visible or not. The widget displays the color of the calendar
at the left of the label and the visibility state at the right.
2024-08-11 23:35:42 +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
Enzo MAROS 5addd751fa import-dialog: Port to AdwSpinner 2024-08-06 17:27:36 +00:00
Enzo MAROS 096261af38 sync-indicator: Port to AdwSpinner 2024-08-06 17:27:36 +00:00
Enzo MAROS dee98d1e20 calendar-button: Bind calendar color with paintable
When updating the color of the calendar, the corresponding colored dot
in the "Calendars" popover does not change. This is due to the fact that
GListModel doesn't notify when one child changes internally. Any widget
depicting a calendar should watch for changes on the data.

To fix this, I used the same code as in GcalEventEditorDialog, which
creates a binding between the calendar's color and the paintable inside
the image.
2024-08-06 13:18:20 +00:00
Enzo MAROS 972b88a97d calendar-button: Remove useless listbox sort
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.
2024-08-06 13:18:20 +00:00
Diego Iván 7e4a4ca99b import-dialog: Adjust dialog to content size
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
2024-08-05 15:54:23 +00:00
Enzo MAROS 9ea843807d calendar-button: Implementing new update method for children
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.
2024-08-05 15:43:49 +00:00
Diego Iván dfc5a9b970 drop-overlay: Introduce GcalDropOverlay
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
2024-08-05 12:31:31 -03:00
Diego Iván 75ad1425e7 import-dialog: Add a toast overlay
This toast overlay will be used to display error messages
in import operations, namely, files that could not be
imported in a drag and drop operation
2024-08-05 12:09:55 -03:00
Abdullahi Usman 094d1330f4 gcal-window: start selected day at 00:00:00(HH:MM:SS)
whenever a day is selected anywhere, let start it at 00:00:00

fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1256
2024-07-31 22:11:25 +01:00
Diego Iván 773a55a53e import-dialog: Show event count in header bar
Fixes a regression introduced in !465 by replacing the
`GtkHeaderBar` with a `AdwHeaderBar`

Closes #1265
2024-07-29 13:10:48 -06:00
Philipp S a0ec0cde36 views/month: Distribute week day header labels homogeneously. 2024-07-26 22:09:02 +00:00
Diego Iván aaa868a62a importer: Fix a critical in import file row
Closes #1208
2024-07-24 16:00:59 +00:00
Diego Iván 2038ff1da1 import-dialog: Port to AdwDialog
This also brings some other changes:

* Enables closing the window using Escape
* Fixes a few criticals

Closes #1258
2024-07-24 16:00:59 +00:00
Automeris naranja e00d8cbf66 gcal-calendars-page: Minor tweaks to the AdwToast title
AdwToast title is already bold, so using HTML b tags doesn't do
anything. To fix this, use quote symbols instead.

And:
- Use the quote symbols recommended by HIG:
https://developer.gnome.org/hig/guidelines/typography.html#take-advantage-of-unicode
- Add a translator comment explaining what "%s" means
2024-07-24 15:08:51 +00:00
Hari Rana 00cf2a735d event-popover: Rework UI and code
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.
2024-07-22 16:20:57 -06:00
Abdullahi Usman 1e3acba3cb date-chooser: fix some events randomly disappearing
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
2024-07-21 23:03:43 +01:00
Otávio Silva c175073ab0 import-file-row: correctly display start and end dates in import dialog
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
2024-07-20 20:20:16 +00:00
Otávio Silva 0bc006be5c import-dialog: add constructed() override
Add GObject.constructed override and call the setup_calendars
function inside of it.
2024-07-20 20:20:16 +00:00
Otávio Silva b8903657c5 import-file-row: Receive a context
Modify the GcalImportFileRow struct to now have the
property GcalContext.
2024-07-20 20:20:16 +00:00
Felipe Anibal 5ce7b210dc event: correctly interpret floating time events
When dealing with floating time events the timezone used was UTC,
but according to RFC5545 when the timezone is not specified the
local timezone should be used.

Fixes #171
2024-07-12 11:07:24 -03:00
Abdullahi Usman 2896bd5177 timeline: notify subscribers to remove event outside their range
Timeline subscribers (i.e week_view, month_view, agenda_view, date_chooser) were not
properly notified of event(s) moved out of their listening ranges.
We notify them to remove these events.

fixes: #994 and #1043
2024-07-12 06:59:43 +01: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
Georges Basile Stavracas Neto 75a42c7d83 event-widget: Truncate the correct string
I shouldn't write code in a hurry
2024-07-09 17:40:01 -03:00
Georges Basile Stavracas Neto 06bf58d5fa event-widget: Don't modify translated strings 2024-07-09 17:35:48 -03:00
Georges Basile Stavracas Neto ae03627f0c utils: Port to AdwAlertDialog 2024-07-09 17:09:29 -03:00
Daniel Garcia Moreno c7875f03ff timeline: Handle multiday events in calculate_changed_events
This patch do not sends ADD_EVENT for events that are multiday and are
part of the old_range when calling calculate_changed_events. This will
prevent multiday duplicate events to appear in the agenda widget when
using the week view.

If the event is a multiday and it was in the previous range, it won't
send the REMOVE_EVENT so multiday events won't dissapear when it's still
relevant.

See https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/898#note_1602391
2024-07-09 19:59:42 +00:00
Daniel Garcia Moreno d7bbda4eaa views/agenda: Do not create new header for all-day
Fix https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/898
Fix https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/968
2024-07-09 19:59:42 +00:00
Dimitrios Christidis 5dbf0c24bd event-editor: Introduce reminder at event start time 2024-07-09 19:54:03 +00:00
Abdullahi Usman d8e2fd6d81 reminders-section: make alarm sound changes persistent
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
2024-07-09 19:47:13 +00:00
Abdullahi Usman 420a126ddb reminders-section: fix reminder alarm toggle button states
Alarm toggle state are in three stages because we do not update both
icon and active when pressed.

we now update the icons to match their states.
2024-07-09 19:47:13 +00:00
Vitaly Dyachkov 2dab78b556 Make event title selectable
Currenlty, there is no easy way to copy an event title.
2024-07-09 19:31:56 +00:00
Otávio Silva 7cebd2bf95 event-widget: Use "On..." in tooltip when location is a meeting service
In the tooltip, the event location always has the preposition "At ...".
This changes it to "On ..." when the location is a known meeting
service.
2024-07-09 16:26:29 -03:00
Otávio Silva f3359d0246 event-widget: Display meeting service name in event tooltip
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
2024-07-09 16:26:00 -03:00