Commit Graph
3029 Commits
Author SHA1 Message Date
Automeris naranja 061c027520 event-editor-dialog: Use an AdwBanner when a calendar is read-only
Using a tooltip to inform when the calendar is read-only won't
work in touch devices.

This change also improves a11y, as Orca now reads this message,
something that wasn't happening before.
2024-10-22 11:29:53 +00:00
Brage Fuglseth 3c85d7d19e metainfo: Expand and modernize
- Reorder to be consistent with other apps
- Remove `<help>` link to Discourse as that tag is intended for
  persistent docs rather than a place to ask for help
- Remove deprecated `.desktop` suffix from `<id>`
- Add brand colors
- Update HW requirements to be more in accordance with AppStream
  recommendations
2024-10-17 17:52:46 +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
Georges Basile Stavracas Neto c5424c8bfa calendar-management/new-calendar: Remove unused code 2024-10-11 22:39:04 -03:00
Georges Basile Stavracas Neto fc642bb65d build: Remove enum templates
Meson has a handy way to do that without these template files. Let's
just use it
2024-10-11 22:36:35 -03:00
Georges Basile Stavracas Neto 41208bc746 47.0 2024-09-16 10:28:53 -03:00
Otávio Silva b25623071f view: Fix drag and drop issue with events in daylight saving time
When dragging and dropping events in week view during the week of
daylight savings time switch, events were off by one hour. This fixes this
behavior by using the util function gcal_date_time_add_floating_minutes.

Fixes #1198
2024-08-28 00:20:18 +00: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
Diego Iván M.E 9443520411 utils: Fix double free in gcal_create_writable_calendars_model
gtk_filter_list_model_new expected that the model passed to be
an owned reference, but we were passing an unowned one, causing
a double free after the function is called repeatedly. This
was particularly noticeable in the importer dialog.

Fixes #1282
2024-08-27 13:40:28 +00:00
Diego Iván M.E 2df48b6fc2 import-dialog: Fix default calendar search
By !474, we now use a GListModel to store the calendars.
Nonetheless, we still use the GListStore API, which no longer
works.

This commit introduces a simple linear search for the default calendar
2024-08-27 13:40:28 +00: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
Hari Rana d7131d5141 import: Only list writable calendars 2024-08-23 13:46:00 -03:00
Hari Rana 26d34930b6 event-editor: Only list writable calendars 2024-08-23 13:46:00 -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 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
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