Commit Graph
3050 Commits
Author SHA1 Message Date
Hari Rana 78e87fad4b gui/event-popover: Apply style to italicize
Using the italic attribute in the label property made the
attribute translatable, which is undesired.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1427
2025-08-02 15:20:36 -04:00
Philipp Sauberzweig cec8a66e88 gui/event-widget: Update event widget style
This significantly changes the border radius of event widgets, as
well as their edge, background, and foreground colors.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1433
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/621>
2025-08-01 18:25:48 -04:00
Emma Blink fbc181743b week-view: explicitly handle PgUp/PgDown via ShortcutController
ScrolledWindow handles PgUp/PgDown in bubble phase to trigger scrolling.
Which leads to inconsistent behaviour: scrolling when an event is focused,
and moving to the previous/next week when not. Explicitly handling the
shortcuts with a ShortcutController in capture phase makes it consistently
navigate to previous/next week.

Fixes #1409

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/618>
2025-07-27 16:23:40 +01:00
Hari Rana d477ac2d72 event-editor/multi-choice: Focus widget if increment/decrement buttons are pressed
This also re-sets the state flags of the buttons, because otherwise
the increment/decrement buttons lose their hovered state after
the widget gains focus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/616>
2025-07-27 07:20:15 -04:00
Hari Rana 576c82b060 event-editor/multi-choice: Add focus ring around the entire widget
The current behavior of the widget makes it so keyboard focus
outlines the toggle button rather than the entire widget. In some
cases, the outline touches the edges of the label, which makes it
look cramped.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/616>
2025-07-19 17:55:11 -04:00
Jean-François Fortin Tam 1ab28d3e95 month-cell: Bold month name & 1st day labels
Make it easier to track which month you are crossing while scrolling.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/962
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/478>
2025-07-15 15:46:41 -04:00
Jean-François Fortin Tam 1b500973e6 month-cell: Simplify calls to day_of_month
We already had this local variable waiting to be used;
let's reuse it to avoid calling querying the date repeatedly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/478>
2025-07-15 15:46:41 -04:00
Jean-François Fortin Tam 3e4ef6f9c7 event-editor: Hide Cancel & Delete when read-only
Read-only events show a "Done" button instead of the "Save" button.
The "Done" button does the same thing as "Cancel",
so the "Cancel" button is then redundant.

Likewise, it is impossible to delete events from read-only calendars,
as stated by the banner message in that dialog. In that case,
there's no reason to show a big "Delete" button that you can't click on.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1168
2025-07-11 23:27:08 -04:00
Georges Basile Stavracas Neto 7282943d21 views/month: Remove useless function
The update_header_labels() was rendered useless after commit 1de447f7.

This was discovered by static-scan. Thanks for Arak for finding the
root cause.

Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1418
2025-07-11 13:33:13 -03:00
FineFindus a00a1f01bb gui/event-popover: Add export button
Adds an export button to the event popover, allowing users to export
the selected event as an ICS file.

Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1276
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/602>
2025-07-11 16:25:30 +00:00
Jean-François Fortin Tam c2b36c1161 shortcuts-dialog: Update F9 to "Toggle Sidebar"
Replace the "Open Calendars Menu" description by "Toggle Sidebar";
there is no more menu for it, and the shortcut was reassigned.
2025-07-10 10:45:41 -04:00
Jamie Gravendeel 48b9bcc0e8 window: Make view button tooltips HIG compliant
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/592>
2025-07-08 15:31:06 +00:00
Jamie Gravendeel 7eb65ded71 window: Use closures for view button tooltip text
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/592>
2025-07-08 15:31:06 +00:00
Hari Rana 684ed71711 css: Rework month view's box shadows
This makes the box shadows permanent.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/604>
2025-07-08 14:08:37 +00:00
Hari Rana a0b530298a views/month-view: Allocate more for grid height
This allocates two extra pixels for the grid's height to make
the cell borders hide below the footer.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/604>
2025-07-08 14:08:37 +00:00
ARAKHNID abcce2a1d5 shortcuts-dialog: match contents to actual shortcuts
!542 updated some shortcuts, notably Alt+1, Alt+2, and F8. These changes
weren't reflected in the shortcuts dialog.

This commit updates the shortcuts dialog so its listed shortcuts match
the actual shortcuts.

Closes #1404

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/614>
2025-07-06 18:44:08 -05:00
Hari Rana 110856ee1a views/month-cell: Don't assert icon_tooltip_binding
The g_assert line would exit the program whenever we tried targeting
a month cell from the inspector.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/601>
2025-07-05 18:06:05 -04:00
Hari Rana 8dd8538014 views/month-cell: Use GtkWidget APIs for retrieving margin
GtkStyleContext is deprecated.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/601>
2025-07-05 18:05:07 -04:00
Hari Rana 11ac0e43e8 css: Use box shadow for month cells
This is probably a better approach for getting month separators,
because box shadows don't affect the layout, unlike borders. Since
GtkStyleContext is deprecated, it makes more sense to use properties
that don't have any side effects with physical size.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/601>
2025-07-05 18:05:04 -04:00
Hari Rana ba716102b9 common/date-chooser: Make arrow left/right move focus across grid
This also notifies the user when out of bound with arrow buttons.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1036
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/608>
2025-07-05 21:07:50 +00:00
Hari Rana 032a71dde6 common/date-chooser: Skip calendar grid with tab
Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1036
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/608>
2025-07-05 21:07:50 +00:00
Georges Basile Stavracas Neto 8db5c1cada 49.alpha 2025-07-05 17:41:18 -03:00
Hari Rana 6e4fe88e58 gui: Port GtkShortcutsWindow to AdwShortcutsDialog
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/611>
2025-07-02 20:50:31 -04:00
Georges Basile Stavracas Neto d16cc2bc68 utils: Remove get_source_parent_name_color
One less weird function lurking around.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/610>
2025-07-02 18:04:26 +00:00
Georges Basile Stavracas Neto 281191b5b3 gui/calendar-list: Add headers
This makes it easier to see which calendar belongs to which group.

Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1196
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/610>
2025-07-02 18:04:26 +00:00
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