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]);
|
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
|
static void
|
||||||
clear_and_hide_dialog (GcalEventEditorDialog *self)
|
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));
|
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
|
* @dialog: a #GcalDialog
|
||||||
|
* @parent: a widget within the toplevel
|
||||||
* @event: (nullable): a #GcalEvent
|
* @event: (nullable): a #GcalEvent
|
||||||
|
* @new_event: whether to treat @event as a new event
|
||||||
*
|
*
|
||||||
* Sets the event of the @dialog. When @event is
|
* Updates @self to operate on @event and then presents itself.
|
||||||
* %NULL, the current event information is unset.
|
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gcal_event_editor_dialog_set_event (GcalEventEditorDialog *self,
|
gcal_event_editor_dialog_present_event (GcalEventEditorDialog *self,
|
||||||
GcalEvent *event,
|
GtkWidget *parent,
|
||||||
gboolean new_event)
|
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_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 */
|
adw_dialog_present (ADW_DIALOG (self), parent);
|
||||||
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]);
|
|
||||||
|
|
||||||
if (self->writable)
|
if (self->writable)
|
||||||
gtk_widget_grab_focus (GTK_WIDGET (self->summary_section));
|
gtk_widget_grab_focus (GTK_WIDGET (self->summary_section));
|
||||||
else
|
else
|
||||||
gtk_widget_grab_focus (self->done_button);
|
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);
|
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,
|
GcalEvent *event,
|
||||||
gboolean new_event);
|
gboolean new_event);
|
||||||
|
|
||||||
|
|||||||
@@ -650,8 +650,7 @@ on_window_new_event_cb (GSimpleAction *action,
|
|||||||
default_calendar = gcal_manager_get_default_calendar (manager);
|
default_calendar = gcal_manager_get_default_calendar (manager);
|
||||||
event = gcal_event_new (default_calendar, comp, NULL);
|
event = gcal_event_new (default_calendar, comp, NULL);
|
||||||
|
|
||||||
adw_dialog_present (ADW_DIALOG (self->event_editor), GTK_WIDGET (self));
|
gcal_event_editor_dialog_present_event (self->event_editor, GTK_WIDGET (self), event, TRUE);
|
||||||
gcal_event_editor_dialog_set_event (self->event_editor, event, TRUE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -889,8 +888,7 @@ edit_event (GcalQuickAddPopover *popover,
|
|||||||
GcalEvent *event,
|
GcalEvent *event,
|
||||||
GcalWindow *self)
|
GcalWindow *self)
|
||||||
{
|
{
|
||||||
adw_dialog_present (ADW_DIALOG (self->event_editor), GTK_WIDGET (self));
|
gcal_event_editor_dialog_present_event (self->event_editor, GTK_WIDGET (self), event, TRUE);
|
||||||
gcal_event_editor_dialog_set_event (self->event_editor, event, TRUE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -913,8 +911,7 @@ create_event_detailed_cb (GcalView *view,
|
|||||||
default_calendar = gcal_manager_get_default_calendar (manager);
|
default_calendar = gcal_manager_get_default_calendar (manager);
|
||||||
event = gcal_event_new (default_calendar, comp, NULL);
|
event = gcal_event_new (default_calendar, comp, NULL);
|
||||||
|
|
||||||
adw_dialog_present (ADW_DIALOG (self->event_editor), GTK_WIDGET (self));
|
gcal_event_editor_dialog_present_event (self->event_editor, GTK_WIDGET (self), event, TRUE);
|
||||||
gcal_event_editor_dialog_set_event (self->event_editor, event, TRUE);
|
|
||||||
|
|
||||||
g_clear_object (&comp);
|
g_clear_object (&comp);
|
||||||
}
|
}
|
||||||
@@ -931,8 +928,7 @@ event_preview_cb (GcalEventWidget *event_widget,
|
|||||||
{
|
{
|
||||||
case GCAL_EVENT_PREVIEW_ACTION_EDIT:
|
case GCAL_EVENT_PREVIEW_ACTION_EDIT:
|
||||||
event = gcal_event_widget_get_event (event_widget);
|
event = gcal_event_widget_get_event (event_widget);
|
||||||
adw_dialog_present (ADW_DIALOG (self->event_editor), GTK_WIDGET (self));
|
gcal_event_editor_dialog_present_event (self->event_editor, GTK_WIDGET (self), event, FALSE);
|
||||||
gcal_event_editor_dialog_set_event (self->event_editor, event, FALSE);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GCAL_EVENT_PREVIEW_ACTION_NONE:
|
case GCAL_EVENT_PREVIEW_ACTION_NONE:
|
||||||
|
|||||||
Reference in New Issue
Block a user