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:
@@ -5,89 +5,102 @@ template $GcalEventEditorDialog: Adw.Dialog {
|
||||
content-width: 700;
|
||||
content-height: 1000;
|
||||
|
||||
Adw.ToolbarView {
|
||||
[top]
|
||||
Adw.HeaderBar {
|
||||
show-start-title-buttons: false;
|
||||
show-end-title-buttons: false;
|
||||
Adw.NavigationView nav_view {
|
||||
Adw.NavigationPage main_page {
|
||||
Adw.ToolbarView {
|
||||
[top]
|
||||
Adw.HeaderBar {
|
||||
show-start-title-buttons: false;
|
||||
show-end-title-buttons: false;
|
||||
|
||||
Button cancel_button {
|
||||
use-underline: true;
|
||||
label: _("_Cancel");
|
||||
clicked => $on_cancel_button_clicked_cb(template) not-swapped;
|
||||
}
|
||||
|
||||
[end]
|
||||
Button done_button {
|
||||
use-underline: true;
|
||||
label: _("_Done");
|
||||
action-name: "event-editor.save";
|
||||
|
||||
styles [
|
||||
"suggested-action",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
content: Box {
|
||||
orientation: vertical;
|
||||
|
||||
Adw.Banner {
|
||||
title: _("This event is in a read-only calendar. It cannot be edited or deleted.");
|
||||
revealed: bind template.writable inverted;
|
||||
}
|
||||
|
||||
Adw.PreferencesPage {
|
||||
vexpand: true;
|
||||
|
||||
Adw.PreferencesGroup {
|
||||
$GcalSummarySection summary_section {
|
||||
sensitive: bind template.writable;
|
||||
}
|
||||
}
|
||||
|
||||
Adw.PreferencesGroup {
|
||||
$GcalCalendarComboRow calendar_combo_row {
|
||||
sensitive: bind template.writable;
|
||||
}
|
||||
}
|
||||
|
||||
Adw.PreferencesGroup {
|
||||
$GcalScheduleSection schedule_section {
|
||||
sensitive: bind template.writable;
|
||||
}
|
||||
}
|
||||
|
||||
Adw.PreferencesGroup {
|
||||
title: _("Reminders");
|
||||
|
||||
$GcalRemindersSection reminders_section {
|
||||
sensitive: bind template.writable;
|
||||
}
|
||||
}
|
||||
|
||||
Adw.PreferencesGroup {
|
||||
title: _("Notes");
|
||||
|
||||
$GcalNotesSection notes_section {
|
||||
sensitive: bind template.writable;
|
||||
vexpand: true;
|
||||
}
|
||||
}
|
||||
|
||||
Adw.PreferencesGroup delete_group {
|
||||
Adw.ButtonRow {
|
||||
activated => $on_delete_row_activated_cb(template) not-swapped;
|
||||
title: _("_Delete Event");
|
||||
Button cancel_button {
|
||||
use-underline: true;
|
||||
label: _("_Cancel");
|
||||
clicked => $on_cancel_button_clicked_cb(template) not-swapped;
|
||||
}
|
||||
|
||||
[end]
|
||||
Button done_button {
|
||||
use-underline: true;
|
||||
label: _("_Done");
|
||||
action-name: "event-editor.save";
|
||||
|
||||
styles [
|
||||
"destructive-action",
|
||||
"suggested-action",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
content: Box {
|
||||
orientation: vertical;
|
||||
|
||||
Adw.Banner {
|
||||
title: _("This event is in a read-only calendar. It cannot be edited or deleted.");
|
||||
revealed: bind template.writable inverted;
|
||||
}
|
||||
|
||||
Adw.PreferencesPage {
|
||||
vexpand: true;
|
||||
|
||||
Adw.PreferencesGroup {
|
||||
$GcalSummarySection summary_section {
|
||||
sensitive: bind template.writable;
|
||||
}
|
||||
}
|
||||
|
||||
Adw.PreferencesGroup {
|
||||
$GcalCalendarComboRow calendar_combo_row {
|
||||
sensitive: bind template.writable;
|
||||
}
|
||||
}
|
||||
|
||||
Adw.PreferencesGroup {
|
||||
$GcalScheduleSection schedule_section {
|
||||
sensitive: bind template.writable;
|
||||
}
|
||||
}
|
||||
|
||||
Adw.PreferencesGroup participants_group {
|
||||
$GcalAttendeesSection attendees_section {
|
||||
sensitive: bind template.writable;
|
||||
summary-row-activated => $on_attendees_summary_activated_cb(template) not-swapped;
|
||||
}
|
||||
}
|
||||
|
||||
Adw.PreferencesGroup {
|
||||
title: _("Reminders");
|
||||
|
||||
$GcalRemindersSection reminders_section {
|
||||
sensitive: bind template.writable;
|
||||
}
|
||||
}
|
||||
|
||||
Adw.PreferencesGroup {
|
||||
title: _("Notes");
|
||||
|
||||
$GcalNotesSection notes_section {
|
||||
sensitive: bind template.writable;
|
||||
vexpand: true;
|
||||
}
|
||||
}
|
||||
|
||||
Adw.PreferencesGroup delete_group {
|
||||
Adw.ButtonRow {
|
||||
activated => $on_delete_row_activated_cb(template) not-swapped;
|
||||
title: _("_Delete Event");
|
||||
use-underline: true;
|
||||
|
||||
styles [
|
||||
"destructive-action",
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
$GcalAttendeeDetailsPage attendee_details_page {}
|
||||
}
|
||||
|
||||
ShortcutController {
|
||||
|
||||
Reference in New Issue
Block a user