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:
@@ -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);
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user