Commit Graph
5256 Commits
Author SHA1 Message Date
Georges Basile Stavracas Neto e9ec77f15b core/calendar: Add "parent-source" property
Tracks the parent ESource of this calendar. Will be useful for future
patches.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/610>
2025-07-02 18:04:26 +00:00
Hari Rana 6ab0ef7386 gui/event-widget: Set child depending on the orientation
Commit https://gitlab.gnome.org/GNOME/gnome-calendar/-/commit/73abcf19b0e70fb6fdd45394169b00e21ea0734a
introduced a bug where it uses the wrong widget on
vertical orientation.

This patch fixes that bug by using the correct widget
for their respective orientation. It also removes the use of
AdwClamp, as it was clamping labels above a certain height requested.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/607>
2025-06-30 15:00:59 -04:00
Hari Rana b368e1f674 views/agenda-view: Set accessible properties for list items
This is needed to have the screen reader read event information
out loud.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1036
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/606>
2025-06-30 16:18:06 +00:00
Georges Basile Stavracas Neto 4e7bc70450 gui/window: Cosmetics 2025-06-30 12:48:47 -03:00
Hari Rana d809192dd5 common/date-chooser: Wrap months
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/603>
2025-06-29 08:51:46 -04:00
Hari Rana 7a40a3be6a common/date-chooser: Add accessible labels to GcalMultiChoice widgets
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/603>
2025-06-29 08:51:27 -04:00
Hari Rana 7be43df099 event-editor/multi-choice: Always set focus-visible flag when focused
This is to ensure that the focus ring never disappears until
the toggle button is unfocused.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/603>
2025-06-29 08:51:24 -04:00
Hari Rana b4853da249 event-editor/multi-choice: Add keyboard interaction
A significant portion of the behavior was guided by the
"Date Picker Spin Button Example" page in the
ARIA Authoring Practices Guide (APG):
https://www.w3.org/WAI/ARIA/apg/patterns/spinbutton/examples/datepicker-spinbuttons/

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1036
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/603>
2025-06-29 08:51:21 -04:00
Hari Rana 5628a5f311 event-editor/multi-choice: Make up/down buttons unfocusable
Spin buttons' increment/decrement buttons are standardly not made
to be accessible/focusable.

This copies the behavior from the GtkSpinButton widget.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1036
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/603>
2025-06-29 08:51:19 -04:00
Hari Rana 2a7a4e3b30 event-editor/multi-choice: Implement GtkAccessibleRange
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/603>
2025-06-29 08:51:17 -04:00
Hari Rana 70b9fde162 event-editor/multi-choice: Implement GtkAccessible
This is needed to have the toggle button communicate with the
screen reader to use the parent widget to retrieve accessible
information, rather than the toggle button itself.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/603>
2025-06-29 08:51:15 -04:00
Hari Rana 196f86b4f4 event-editor/multi-choice: Use g_assert in public methods
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/603>
2025-06-29 08:51:11 -04:00
Hari Rana d1a8e072b2 event-editor/multi-choice: Add file name to header
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/603>
2025-06-29 08:51:09 -04:00
Hari Rana 5ca18c7a34 event-editor/multi-choice: Document public methods
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/603>
2025-06-29 08:51:07 -04:00
Hari Rana a6015bd357 event-editor/multi-choice: Properly space out code
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/603>
2025-06-29 08:50:58 -04:00
Hari Rana 640308652b event-editor/multi-choice: Comment code sections
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/603>
2025-06-29 08:50:41 -04:00
Hari Rana 4ec25d8775 reminders-section: Add focus ring
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/399>
2025-06-29 01:03:00 +00:00
Hari Rana f40ed5b90c reminders-section: Modernize popover
This makes the alarms popover look much closer to the AdwComboRow widget.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/399>
2025-06-29 01:03:00 +00:00
Hari Rana 40cbf66c1b gui/calendar-list: Turn row into a checkbox
Using a GtkCheckButton widget as a child as we've been doing was a
little bit too much, considering it was overachieving its use case.
Given the nature of a button, the widget was also capable of
being targetable, focusable, and activatable, which forces
a keyboard user to tab an additional time to get to the
next row in the list.

This patch introduces a new method by turning the entire row into a
check button widget, with an image widget that becomes visible or
invisible, which addresses the issues raised above. This also
avoids binding properties bidirectionally, as the image is only
used for decorative purposes.

https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542#note_2459629

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/588>
2025-06-28 20:27:28 +00:00
Hari Rana 2ee31847fa gui/event-widget: Use default value
The default value for GtkGestureSingle:button is 1:
https://docs.gtk.org/gtk4/property.GestureSingle.button.html

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/587>
2025-06-28 14:01:11 -04:00
Hari Rana 73abcf19b0 gui/event-widget: Use AdwClamp
AdwSqueezer is deprecated.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/587>
2025-06-28 14:01:11 -04:00
Hari Rana e8249e9e43 gui/event-widget: Update pressed state
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/587>
2025-06-28 14:01:08 -04:00
Hari Rana 96fef80ca2 gui/event-widget: Set has-popup accessible property to true
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/587>
2025-06-28 13:49:16 -04:00
Hari Rana 73e1baad04 gui/event-widget: Set accessible role as toggle button
Since it's a toggleable button with a popup, it makes more sense
to set its accessible role as GTK_ACCESSIBLE_ROLE_TOGGLE_BUTTON.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/587>
2025-06-28 13:49:08 -04:00
Hari Rana ff17056108 gui/event-widget: Use GtkBoxLayout
The GTK inspector would always target and inspect the `main_widget`
box rather than the parent widget, which became repetitive to keep
pressing the "Parent widget" button when working with accessibility,
as the parent widget contained the accessible properties and states.
GtkBoxLayout solves that by allowing us to get rid of the box
completely, which exclusively makes it inspect the widget we
actually want to target.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/587>
2025-06-28 13:48:59 -04:00
Titouan Real 15f172b255 ci: Add Blueprint format check
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/594>
2025-06-25 15:51:42 +00:00
Clockwork-CritterandHari Rana 951062340f views/gcal-view: Appropriately denote properties
Co-authored-by: Hari Rana <theevilskeleton@riseup.net>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/600>
2025-06-22 08:50:19 -04:00
Clockwork-CritterandHari Rana 90556c3881 views/gcal-view: Correct GcalView:context docs
The `GcalView:context` documentation denotes the incorrect information.

Co-authored-by: Hari Rana <theevilskeleton@riseup.net>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/600>
2025-06-22 08:49:59 -04:00
Martin c61cc41912 Update Slovenian translation 2025-06-21 21:52:11 +00:00
Vasil Pupkin e058782640 Update Belarusian translation 2025-06-21 14:11:18 +00:00
Makoto Sakaguchi f8b19f7fdd POTFILES: Fix the error when generating a POT file.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/599>
2025-06-20 09:53:11 +09:00
Markus Göllnitz 05eb46511f week-view: add border around scrolled main area for distiction from toolbar
Currently, at the top there is an always visible border
which, due to having the same colour as the drop shadow,
slightly interferes with how the drop shadow looks, while
more severely, the bottom bar's start is not easily
distinguishable from the week grid's end, as there is
no border at all.

Styling the scrolled content itself with a border
elegantly solves these two issues, because now a drop
shadow is drawn when scrolling in a direction is
possible, and a border is drawn otherwise.

Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1406

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/593>
2025-06-11 06:14:13 +02:00
Jamie Gravendeel c59965670d window: Use closures for view button icons
Fixes #1405

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/591>
2025-06-10 13:16:34 +02:00
Ignacy Kuchciński 33d87c3511 core/context: Delay reading time format
Reading time format from the settings portal during context init results
in interacting with xdg-desktop-portal before GtkApplication can
register the host app id. This makes portals not aware of the
application id, which could cause problems in the future.

Fix that by calling read_time_format during gcal_context_startup, which
is called after the GtkApplication startup chain-up.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/586>
2025-06-08 20:16:08 +00:00
Jamie Gravendeel a509de8b1e gui: Port to Blueprint
This was mostly done with `blueprint-compiler port`.

Since Blueprint doesn't know about custom templates, I had to manually change some values from strings to literals.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/567>
2025-06-08 14:31:01 +02:00
Jamie Gravendeel 2aceaa816f gui: Replace Pango attributes
Blueprint doesn't support Pango attributes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/567>
2025-06-08 12:47:12 +02:00
Markus Göllnitz c03c501888 month-view: fix undershoot for new bottom bar
This adds the same styling as .undershoot-bottom would
while scrolling and adjusts the size allocation of month
rows, so that the top border of the month row right below
the last one is already visible.

Link: https://gitlab.gnome.org/GNOME/libadwaita/-/blob/649967044e269a0118ae09a9ff0ecba90cc58300/src/stylesheet/_drawing.scss#L57

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00
Markus Göllnitz 7764b4dc0a window: reintroduce back and forward buttons
They reappear in the newest adaptive layout wireframes.

These were dropped in
54a8445abb ("window: Drop the back and forward buttons")

Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/933

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00
Markus Göllnitz 4a4dce8ee3 views: add time direction property
The time direction property tells which orientation one
needs to scroll to change the time of the view. In these
directions (up/down v left/right) the new prev/next
buttons will be pointing.

The two buttons will be added in a subsequent commit,
and will gain view-dependent tooltips.

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00
Markus Göllnitz d400048bc6 week-view: remove week, month, and year header
This provides only little benefit over the new navigation
button's label. Thus, it is not there in the here newly
implemented UI mock-ups.

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00
Markus Göllnitz 1de447f7f3 month-view: remove month and year header
This header duplicates the month and year from the new
navigation button in the header.

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00
Markus Göllnitz f06bc265cd window: rearrange month and week view
The mock-ups order these by coarse to fine time scales:
year > month > week / multi-day > day | agenda.

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00
Markus Göllnitz b728e5beae window: reorganise top and bottom toolbars
This lets users directly launch the calendar dialogue
instead of sidebar in narrow mode.

It moves the view switcher to bottom when narrow.

This also makes the sidebar overlaid for an intermediate
step between narrow and always optionally visible sidebar.

Further, it moves the today button to bottom with the new
navigation button at its old location.

Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1007

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00
Markus Göllnitz 7904aba23c gui: introduce navigation button with date chooser
The navigation button provides access to a date chooser
at all times without requiring it to be permanently
visible, as done currently with the always-shown sidebar.

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00
Markus Göllnitz df182ed942 calendar-button: change widget to standalone list for sidebar
The sync entry is dropped here in favour of one in the
main menu.

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00
Markus Göllnitz dec31cadd4 views: move agenda view to main area
This prepares for multiple views to be there for mobile
users, and is the location at which a dedicated agenda
view for desktop will be, once the current agenda view
is refactored to suit desktop use-cases better.

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00
Markus Göllnitz 07a6a077cb window: replace sidebar with overlay sidebar
When collapsed, there is no navigation required nor
wanted. Instead, this allows to have an intermediate
breakpoint at which the sidebar is still used, but
overlaid instead of shown side-by-side.

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00
Markus Göllnitz 26db7e1627 window: only allow changing to visible view
As of now, every view is visible. That however, will
change with a subsequent commit moving the agenda view to
the main area and introducing breakpoint-dependent view
visibilities.

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00
Markus Göllnitz 3dce4414a8 enums+window: make GcalWindowView iterators order and length agnostic
Currently, iterators over the GcalWindowView enum relied
on knowing the first and last enum value. But we know,
without knowing which is the first, that an enum in C
will assign 0 to its first value if not otherwise
specified.

And with the trick of a new end value similar to N_PROPS,
we can determine the amount of available window views
without relying on know which it is.

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00
Markus Göllnitz 55df257ed1 window: remove unnecessary single-childed Gtk.Box
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542>
2025-06-08 09:59:00 +00:00