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;
|
AdwNavigationPage parent_instance;
|
||||||
|
|
||||||
GcalEvent *event;
|
|
||||||
GListStore *attendees;
|
GListStore *attendees;
|
||||||
|
|
||||||
GtkFilterListModel *filter_list_accepted;
|
GtkFilterListModel *filter_list_accepted;
|
||||||
@@ -214,6 +213,8 @@ gcal_attendee_details_page_init (GcalAttendeeDetailsPage *instance)
|
|||||||
{
|
{
|
||||||
g_assert (GCAL_IS_ATTENDEE_DETAILS_PAGE (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);
|
instance->attendees = g_list_store_new (GCAL_TYPE_EVENT_ATTENDEE);
|
||||||
gcal_attendee_details_page_init_filters (instance);
|
gcal_attendee_details_page_init_filters (instance);
|
||||||
gcal_attendee_details_page_init_filter_models (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.
|
* @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.
|
* Sets the attendees for display.
|
||||||
* 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.
|
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gcal_attendee_details_page_set_event (GcalAttendeeDetailsPage *self,
|
gcal_attendee_details_page_set_attendees (GcalAttendeeDetailsPage *self,
|
||||||
GcalEvent *event)
|
GSList *attendees)
|
||||||
{
|
{
|
||||||
g_assert (GCAL_IS_ATTENDEE_DETAILS_PAGE (self));
|
g_assert (GCAL_IS_ATTENDEE_DETAILS_PAGE (self));
|
||||||
|
|
||||||
if (self->event == event)
|
|
||||||
return;
|
|
||||||
|
|
||||||
gcal_attendee_details_page_clear_list (self);
|
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;
|
g_autoptr (GSList) iter = NULL;
|
||||||
|
|
||||||
attendees = gcal_event_get_attendees (self->event);
|
|
||||||
for (iter = attendees; iter != NULL; iter = iter->next)
|
for (iter = attendees; iter != NULL; iter = iter->next)
|
||||||
{
|
{
|
||||||
g_list_store_append (self->attendees, iter->data);
|
g_list_store_append (self->attendees, iter->data);
|
||||||
|
|||||||
@@ -21,15 +21,13 @@
|
|||||||
|
|
||||||
#include <adwaita.h>
|
#include <adwaita.h>
|
||||||
|
|
||||||
#include "gcal-event.h"
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GCAL_TYPE_ATTENDEE_DETAILS_PAGE (gcal_attendee_details_page_get_type ())
|
#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)
|
G_DECLARE_FINAL_TYPE (GcalAttendeeDetailsPage, gcal_attendee_details_page, GCAL, ATTENDEE_DETAILS_PAGE, AdwNavigationPage)
|
||||||
|
|
||||||
void gcal_attendee_details_page_set_event (GcalAttendeeDetailsPage *self,
|
void gcal_attendee_details_page_set_attendees (GcalAttendeeDetailsPage *self,
|
||||||
GcalEvent *event);
|
GSList *attendees);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
|||||||
@@ -313,10 +313,14 @@ static void
|
|||||||
on_attendees_summary_activated_cb (GcalAttendeesSection *section,
|
on_attendees_summary_activated_cb (GcalAttendeesSection *section,
|
||||||
GcalEventEditorDialog *self)
|
GcalEventEditorDialog *self)
|
||||||
{
|
{
|
||||||
|
g_autoptr (GSList) attendees = NULL;
|
||||||
|
|
||||||
g_assert (GCAL_IS_EVENT_EDITOR_DIALOG (self));
|
g_assert (GCAL_IS_EVENT_EDITOR_DIALOG (self));
|
||||||
|
|
||||||
gcal_attendee_details_page_set_event (GCAL_ATTENDEE_DETAILS_PAGE (self->attendee_details_page),
|
attendees = gcal_event_get_attendees (self->event);
|
||||||
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_view_push (ADW_NAVIGATION_VIEW (self->nav_view),
|
||||||
ADW_NAVIGATION_PAGE (self->attendee_details_page));
|
ADW_NAVIGATION_PAGE (self->attendee_details_page));
|
||||||
|
|||||||
Reference in New Issue
Block a user