event-editor: Pass only attendees to the details page instead of event
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/671>
This commit is contained in:
@@ -31,7 +31,6 @@ struct _GcalAttendeeDetailsPage
|
||||
{
|
||||
AdwNavigationPage parent_instance;
|
||||
|
||||
GcalEvent *event;
|
||||
GListStore *attendees;
|
||||
|
||||
GtkFilterListModel *filter_list_accepted;
|
||||
@@ -214,6 +213,8 @@ gcal_attendee_details_page_init (GcalAttendeeDetailsPage *instance)
|
||||
{
|
||||
g_assert (GCAL_IS_ATTENDEE_DETAILS_PAGE (instance));
|
||||
|
||||
instance->attendee_type = GCAL_EVENT_ATTENDEE_TYPE_NONE;
|
||||
|
||||
instance->attendees = g_list_store_new (GCAL_TYPE_EVENT_ATTENDEE);
|
||||
gcal_attendee_details_page_init_filters (instance);
|
||||
gcal_attendee_details_page_init_filter_models (instance);
|
||||
@@ -318,34 +319,22 @@ gcal_attendee_details_page_class_init (GcalAttendeeDetailsPageClass *klass)
|
||||
}
|
||||
|
||||
/**
|
||||
* gcal_attendee_details_page_set_event:
|
||||
* gcal_attendee_details_page_set_attendees:
|
||||
* @self: a #GcalAttendeeDetailsPage instance.
|
||||
* @event: a #GcalEvent to use for this page.
|
||||
* @attendees: a list of #GcalEventAttendee to display.
|
||||
*
|
||||
* Sets the event for this page in a similar fashion to the #GcalEventEditorSection.
|
||||
* Because this page is a reusable widget, the old event reference is replaced and
|
||||
* the contents of this widget are reset while properly cleaning up resources.
|
||||
* Sets the attendees for display.
|
||||
*/
|
||||
void
|
||||
gcal_attendee_details_page_set_event (GcalAttendeeDetailsPage *self,
|
||||
GcalEvent *event)
|
||||
gcal_attendee_details_page_set_attendees (GcalAttendeeDetailsPage *self,
|
||||
GSList *attendees)
|
||||
{
|
||||
g_assert (GCAL_IS_ATTENDEE_DETAILS_PAGE (self));
|
||||
|
||||
if (self->event == event)
|
||||
return;
|
||||
|
||||
gcal_attendee_details_page_clear_list (self);
|
||||
|
||||
g_set_object (&self->event, event);
|
||||
|
||||
if (self->event == NULL)
|
||||
return;
|
||||
|
||||
g_autoptr (GSList) attendees = NULL;
|
||||
g_autoptr (GSList) iter = NULL;
|
||||
|
||||
attendees = gcal_event_get_attendees (self->event);
|
||||
for (iter = attendees; iter != NULL; iter = iter->next)
|
||||
{
|
||||
g_list_store_append (self->attendees, iter->data);
|
||||
|
||||
@@ -21,15 +21,13 @@
|
||||
|
||||
#include <adwaita.h>
|
||||
|
||||
#include "gcal-event.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GCAL_TYPE_ATTENDEE_DETAILS_PAGE (gcal_attendee_details_page_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (GcalAttendeeDetailsPage, gcal_attendee_details_page, GCAL, ATTENDEE_DETAILS_PAGE, AdwNavigationPage)
|
||||
|
||||
void gcal_attendee_details_page_set_event (GcalAttendeeDetailsPage *self,
|
||||
GcalEvent *event);
|
||||
void gcal_attendee_details_page_set_attendees (GcalAttendeeDetailsPage *self,
|
||||
GSList *attendees);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
||||
@@ -313,10 +313,14 @@ static void
|
||||
on_attendees_summary_activated_cb (GcalAttendeesSection *section,
|
||||
GcalEventEditorDialog *self)
|
||||
{
|
||||
g_autoptr (GSList) attendees = NULL;
|
||||
|
||||
g_assert (GCAL_IS_EVENT_EDITOR_DIALOG (self));
|
||||
|
||||
gcal_attendee_details_page_set_event (GCAL_ATTENDEE_DETAILS_PAGE (self->attendee_details_page),
|
||||
self->event);
|
||||
attendees = gcal_event_get_attendees (self->event);
|
||||
|
||||
gcal_attendee_details_page_set_attendees (GCAL_ATTENDEE_DETAILS_PAGE (self->attendee_details_page),
|
||||
attendees);
|
||||
|
||||
adw_navigation_view_push (ADW_NAVIGATION_VIEW (self->nav_view),
|
||||
ADW_NAVIGATION_PAGE (self->attendee_details_page));
|
||||
|
||||
Reference in New Issue
Block a user