event-editor/event-editor-dialog: Rename set_event() to present_event()

This allows us to avoid using `adw_dialog_present()` every time
`set_event()` is being invoked.

All the files using `set_event()` are updated accordingly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/711>
This commit is contained in:
Hari Rana
2026-06-26 08:08:39 -04:00
parent a0b8f4b23e
commit 6cd8d631f5
3 changed files with 85 additions and 75 deletions
+79 -66
View File
@@ -124,10 +124,78 @@ set_writable (GcalEventEditorDialog *self,
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_WRITABLE]);
}
static void
set_event (GcalEventEditorDialog *self,
GcalEvent *event,
gboolean new_event)
{
g_autoptr (GdkPaintable) paintable = NULL;
g_autoptr (GcalEvent) cloned_event = NULL;
GcalEventEditorFlags flags;
GcalCalendar *calendar;
gint i;
GCAL_ENTRY;
g_clear_object (&self->event);
/* If we just set the event to NULL, simply send a property notify */
if (!event)
GCAL_GOTO (out);
cloned_event = gcal_event_new_from_event (event);
self->event = g_object_ref (cloned_event);
calendar = gcal_event_get_calendar (cloned_event);
/* dialog's title */
if (new_event)
adw_navigation_page_set_title (ADW_NAVIGATION_PAGE (self->main_page), _("New Event"));
else if (gcal_calendar_is_read_only (calendar))
adw_navigation_page_set_title (ADW_NAVIGATION_PAGE (self->main_page), _("Event Details"));
else
adw_navigation_page_set_title (ADW_NAVIGATION_PAGE (self->main_page), _("Edit Event"));
g_list_store_remove_all (self->read_only_calendar_model);
if (gcal_calendar_is_read_only (calendar))
g_list_store_append (self->read_only_calendar_model, calendar);
gcal_calendar_combo_row_set_calendar (self->calendar_combo_row, calendar);
/* recurrence_changed */
self->recurrence_changed = FALSE;
set_writable (self, !gcal_calendar_is_read_only (calendar));
gboolean has_participants = gcal_event_get_organizer (self->event) != NULL;
gtk_widget_set_visible (GTK_WIDGET (self->attendees_section), has_participants);
gtk_widget_set_visible (self->cancel_button, self->writable);
self->event_is_new = new_event;
gtk_widget_set_visible (self->delete_group, !new_event && self->writable);
/* fill attendees list */
self->attendees_model = gcal_event_get_attendees (self->event);
out:
flags = GCAL_EVENT_EDITOR_FLAG_NONE;
if (new_event)
flags |= GCAL_EVENT_EDITOR_FLAG_NEW_EVENT;
for (i = 0; i < G_N_ELEMENTS (self->sections); i++)
gcal_event_editor_section_set_event (self->sections[i], cloned_event, flags);
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_EVENT]);
GCAL_EXIT;
}
static void
clear_and_hide_dialog (GcalEventEditorDialog *self)
{
gcal_event_editor_dialog_set_event (self, NULL, FALSE);
set_event (self, NULL, FALSE);
adw_dialog_close (ADW_DIALOG (self));
}
@@ -628,83 +696,28 @@ gcal_event_editor_dialog_new (void)
}
/**
* gcal_event_editor_dialog_set_event:
* gcal_event_editor_dialog_present_event: (set-property event)
* @dialog: a #GcalDialog
* @parent: a widget within the toplevel
* @event: (nullable): a #GcalEvent
* @new_event: whether to treat @event as a new event
*
* Sets the event of the @dialog. When @event is
* %NULL, the current event information is unset.
* Updates @self to operate on @event and then presents itself.
*/
void
gcal_event_editor_dialog_set_event (GcalEventEditorDialog *self,
GcalEvent *event,
gboolean new_event)
gcal_event_editor_dialog_present_event (GcalEventEditorDialog *self,
GtkWidget *parent,
GcalEvent *event,
gboolean new_event)
{
g_autoptr (GdkPaintable) paintable = NULL;
g_autoptr (GcalEvent) cloned_event = NULL;
GcalEventEditorFlags flags;
GcalCalendar *calendar;
gint i;
GCAL_ENTRY;
g_return_if_fail (GCAL_IS_EVENT_EDITOR_DIALOG (self));
g_clear_object (&self->event);
set_event (self, event, new_event);
/* If we just set the event to NULL, simply send a property notify */
if (!event)
GCAL_GOTO (out);
cloned_event = gcal_event_new_from_event (event);
self->event = g_object_ref (cloned_event);
calendar = gcal_event_get_calendar (cloned_event);
/* dialog's title */
if (new_event)
adw_navigation_page_set_title (ADW_NAVIGATION_PAGE (self->main_page), _("New Event"));
else if (gcal_calendar_is_read_only (calendar))
adw_navigation_page_set_title (ADW_NAVIGATION_PAGE (self->main_page), _("Event Details"));
else
adw_navigation_page_set_title (ADW_NAVIGATION_PAGE (self->main_page), _("Edit Event"));
g_list_store_remove_all (self->read_only_calendar_model);
if (gcal_calendar_is_read_only (calendar))
g_list_store_append (self->read_only_calendar_model, calendar);
gcal_calendar_combo_row_set_calendar (self->calendar_combo_row, calendar);
/* recurrence_changed */
self->recurrence_changed = FALSE;
set_writable (self, !gcal_calendar_is_read_only (calendar));
gboolean has_participants = gcal_event_get_organizer (self->event) != NULL;
gtk_widget_set_visible (GTK_WIDGET (self->attendees_section), has_participants);
gtk_widget_set_visible (self->cancel_button, self->writable);
self->event_is_new = new_event;
gtk_widget_set_visible (self->delete_group, !new_event && self->writable);
/* fill attendees list */
self->attendees_model = gcal_event_get_attendees (self->event);
out:
flags = GCAL_EVENT_EDITOR_FLAG_NONE;
if (new_event)
flags |= GCAL_EVENT_EDITOR_FLAG_NEW_EVENT;
for (i = 0; i < G_N_ELEMENTS (self->sections); i++)
gcal_event_editor_section_set_event (self->sections[i], cloned_event, flags);
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_EVENT]);
adw_dialog_present (ADW_DIALOG (self), parent);
if (self->writable)
gtk_widget_grab_focus (GTK_WIDGET (self->summary_section));
else
gtk_widget_grab_focus (self->done_button);
GCAL_EXIT;
}
@@ -32,7 +32,8 @@ G_DECLARE_FINAL_TYPE (GcalEventEditorDialog, gcal_event_editor_dialog, GCAL, EVE
GtkWidget* gcal_event_editor_dialog_new (void);
void gcal_event_editor_dialog_set_event (GcalEventEditorDialog *self,
void gcal_event_editor_dialog_present_event (GcalEventEditorDialog *self,
GtkWidget *parent,
GcalEvent *event,
gboolean new_event);
+4 -8
View File
@@ -650,8 +650,7 @@ on_window_new_event_cb (GSimpleAction *action,
default_calendar = gcal_manager_get_default_calendar (manager);
event = gcal_event_new (default_calendar, comp, NULL);
adw_dialog_present (ADW_DIALOG (self->event_editor), GTK_WIDGET (self));
gcal_event_editor_dialog_set_event (self->event_editor, event, TRUE);
gcal_event_editor_dialog_present_event (self->event_editor, GTK_WIDGET (self), event, TRUE);
}
static void
@@ -889,8 +888,7 @@ edit_event (GcalQuickAddPopover *popover,
GcalEvent *event,
GcalWindow *self)
{
adw_dialog_present (ADW_DIALOG (self->event_editor), GTK_WIDGET (self));
gcal_event_editor_dialog_set_event (self->event_editor, event, TRUE);
gcal_event_editor_dialog_present_event (self->event_editor, GTK_WIDGET (self), event, TRUE);
}
static void
@@ -913,8 +911,7 @@ create_event_detailed_cb (GcalView *view,
default_calendar = gcal_manager_get_default_calendar (manager);
event = gcal_event_new (default_calendar, comp, NULL);
adw_dialog_present (ADW_DIALOG (self->event_editor), GTK_WIDGET (self));
gcal_event_editor_dialog_set_event (self->event_editor, event, TRUE);
gcal_event_editor_dialog_present_event (self->event_editor, GTK_WIDGET (self), event, TRUE);
g_clear_object (&comp);
}
@@ -931,8 +928,7 @@ event_preview_cb (GcalEventWidget *event_widget,
{
case GCAL_EVENT_PREVIEW_ACTION_EDIT:
event = gcal_event_widget_get_event (event_widget);
adw_dialog_present (ADW_DIALOG (self->event_editor), GTK_WIDGET (self));
gcal_event_editor_dialog_set_event (self->event_editor, event, FALSE);
gcal_event_editor_dialog_present_event (self->event_editor, GTK_WIDGET (self), event, FALSE);
break;
case GCAL_EVENT_PREVIEW_ACTION_NONE: