event-editor: Add attendees section and details page

UX/UI designed by Philipp Sauberzweig (@PhilippSauberz).

The event editor dialog is now a NavigationView and the participants
details open in a separate page. Group attendees/participants in
AdwPreferencesGroups and bind groups'
ListBox widgets to backing filter models. These are just "views" into a
single GListStore containing all the event attendees.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/671>
This commit is contained in:
mindonwarp
2026-01-21 19:37:52 +00:00
committed by Marge Bot
parent 884855ee0b
commit ba3ca061ce
17 changed files with 1495 additions and 83 deletions
@@ -0,0 +1,52 @@
using Gtk 4.0;
using Adw 1;
template $GcalAttendeesSection: Gtk.Box {
orientation: vertical;
hexpand: true;
valign: start;
ListBox listbox {
halign: fill;
valign: fill;
selection-mode: none;
styles [
"boxed-list",
]
Adw.ActionRow organizer_row {
title: _("Organizer");
styles [
"property",
]
}
Adw.ActionRow summary_row {
title: _("Participants");
activatable-widget: open_details;
activated => $on_participant_summary_row_activated_cb(template) not-swapped;
styles [
"property",
]
[suffix]
Label {
valign: center;
label: bind template.num-participants as <string>;
tooltip-text: _("Number of participants");
styles [
"participants-count-label",
]
}
[suffix]
Image open_details {
icon-name: "go-next-symbolic";
}
}
}
}