manager: pass ECalObjModType to update and remove
Currently, GcalManager always assumes E_CAL_OBJ_MOD_THIS when modifying or deleting events. Since we're landing the groundwork for recurrence management, we can't assume this anymore. This patch, then, allows GcalManager:modify_event() and :remove_event() receive the ECalObjModType instead of assuming E_CAL_OBJ_MOD_THIS. However, this commit does not add recurrence support yet, and every call to these functions are still passing E_CAL_OBJ_MOD_THIS. https://bugzilla.gnome.org/show_bug.cgi?id=782755
This commit is contained in:
committed by
Georges Basile Stavracas Neto
parent
a53581ed53
commit
9ffa913ad4
@@ -817,7 +817,7 @@ remove_button_clicked (GtkButton *button,
|
|||||||
|
|
||||||
gcal_event_remove_alarm (event, trigger_minutes);
|
gcal_event_remove_alarm (event, trigger_minutes);
|
||||||
|
|
||||||
gcal_manager_update_event (self->manager, event);
|
gcal_manager_update_event (self->manager, event, E_CAL_OBJ_MOD_THIS);
|
||||||
|
|
||||||
gtk_widget_destroy (row);
|
gtk_widget_destroy (row);
|
||||||
|
|
||||||
|
|||||||
+10
-6
@@ -1748,12 +1748,14 @@ gcal_manager_create_event (GcalManager *manager,
|
|||||||
* gcal_manager_update_event:
|
* gcal_manager_update_event:
|
||||||
* @manager: a #GcalManager
|
* @manager: a #GcalManager
|
||||||
* @event: a #GcalEvent
|
* @event: a #GcalEvent
|
||||||
|
* @mod: an #ECalObjModType
|
||||||
*
|
*
|
||||||
* Saves all changes made to @event persistently.
|
* Saves all changes made to @event persistently.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gcal_manager_update_event (GcalManager *manager,
|
gcal_manager_update_event (GcalManager *manager,
|
||||||
GcalEvent *event)
|
GcalEvent *event,
|
||||||
|
ECalObjModType mod)
|
||||||
{
|
{
|
||||||
GcalManagerUnit *unit;
|
GcalManagerUnit *unit;
|
||||||
ECalComponent *component;
|
ECalComponent *component;
|
||||||
@@ -1775,7 +1777,7 @@ gcal_manager_update_event (GcalManager *manager,
|
|||||||
|
|
||||||
e_cal_client_modify_object (unit->client,
|
e_cal_client_modify_object (unit->client,
|
||||||
e_cal_component_get_icalcomponent (component),
|
e_cal_component_get_icalcomponent (component),
|
||||||
E_CAL_OBJ_MOD_THIS,
|
mod,
|
||||||
NULL,
|
NULL,
|
||||||
on_event_updated,
|
on_event_updated,
|
||||||
component);
|
component);
|
||||||
@@ -1787,12 +1789,14 @@ gcal_manager_update_event (GcalManager *manager,
|
|||||||
* gcal_manager_remove_event:
|
* gcal_manager_remove_event:
|
||||||
* @manager: a #GcalManager
|
* @manager: a #GcalManager
|
||||||
* @event: a #GcalEvent
|
* @event: a #GcalEvent
|
||||||
|
* @mod: an #ECalObjModType
|
||||||
*
|
*
|
||||||
* Deletes @event.
|
* Deletes @event.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gcal_manager_remove_event (GcalManager *manager,
|
gcal_manager_remove_event (GcalManager *manager,
|
||||||
GcalEvent *event)
|
GcalEvent *event,
|
||||||
|
ECalObjModType mod)
|
||||||
{
|
{
|
||||||
GcalManagerUnit *unit;
|
GcalManagerUnit *unit;
|
||||||
ECalComponentId *id;
|
ECalComponentId *id;
|
||||||
@@ -1817,7 +1821,7 @@ gcal_manager_remove_event (GcalManager *manager,
|
|||||||
e_cal_client_remove_object (unit->client,
|
e_cal_client_remove_object (unit->client,
|
||||||
id->uid,
|
id->uid,
|
||||||
id->rid,
|
id->rid,
|
||||||
E_CAL_OBJ_MOD_THIS,
|
mod,
|
||||||
manager->async_ops,
|
manager->async_ops,
|
||||||
on_event_removed,
|
on_event_removed,
|
||||||
component);
|
component);
|
||||||
|
|||||||
+4
-2
@@ -75,10 +75,12 @@ void gcal_manager_create_event (GcalManager
|
|||||||
GcalEvent *event);
|
GcalEvent *event);
|
||||||
|
|
||||||
void gcal_manager_update_event (GcalManager *manager,
|
void gcal_manager_update_event (GcalManager *manager,
|
||||||
GcalEvent *event);
|
GcalEvent *event,
|
||||||
|
ECalObjModType mod);
|
||||||
|
|
||||||
void gcal_manager_remove_event (GcalManager *manager,
|
void gcal_manager_remove_event (GcalManager *manager,
|
||||||
GcalEvent *event);
|
GcalEvent *event,
|
||||||
|
ECalObjModType mod);
|
||||||
|
|
||||||
void gcal_manager_move_event_to_source (GcalManager *manager,
|
void gcal_manager_move_event_to_source (GcalManager *manager,
|
||||||
GcalEvent *event,
|
GcalEvent *event,
|
||||||
|
|||||||
+4
-4
@@ -1102,13 +1102,13 @@ edit_dialog_closed (GtkDialog *dialog,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case GCAL_RESPONSE_SAVE_EVENT:
|
case GCAL_RESPONSE_SAVE_EVENT:
|
||||||
gcal_manager_update_event (window->manager, event);
|
gcal_manager_update_event (window->manager, event, E_CAL_OBJ_MOD_THIS);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GCAL_RESPONSE_DELETE_EVENT:
|
case GCAL_RESPONSE_DELETE_EVENT:
|
||||||
if (window->event_to_delete != NULL)
|
if (window->event_to_delete != NULL)
|
||||||
{
|
{
|
||||||
gcal_manager_remove_event (window->manager, window->event_to_delete);
|
gcal_manager_remove_event (window->manager, window->event_to_delete, E_CAL_OBJ_MOD_THIS);
|
||||||
g_clear_object (&window->event_to_delete);
|
g_clear_object (&window->event_to_delete);
|
||||||
|
|
||||||
create_notification (GCAL_WINDOW (user_data), _("Another event deleted"), _("Undo"));
|
create_notification (GCAL_WINDOW (user_data), _("Another event deleted"), _("Undo"));
|
||||||
@@ -1209,7 +1209,7 @@ remove_event (GtkWidget *notification,
|
|||||||
|
|
||||||
if (window->event_to_delete != NULL)
|
if (window->event_to_delete != NULL)
|
||||||
{
|
{
|
||||||
gcal_manager_remove_event (window->manager, window->event_to_delete);
|
gcal_manager_remove_event (window->manager, window->event_to_delete, E_CAL_OBJ_MOD_THIS);
|
||||||
g_clear_object (&window->event_to_delete);
|
g_clear_object (&window->event_to_delete);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1282,7 +1282,7 @@ gcal_window_finalize (GObject *object)
|
|||||||
/* If we have a queued event to delete, remove it now */
|
/* If we have a queued event to delete, remove it now */
|
||||||
if (window->event_to_delete)
|
if (window->event_to_delete)
|
||||||
{
|
{
|
||||||
gcal_manager_remove_event (window->manager, window->event_to_delete);
|
gcal_manager_remove_event (window->manager, window->event_to_delete, E_CAL_OBJ_MOD_THIS);
|
||||||
g_clear_object (&window->event_to_delete);
|
g_clear_object (&window->event_to_delete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -829,7 +829,7 @@ gcal_month_view_drag_drop (GtkWidget *widget,
|
|||||||
g_clear_pointer (&new_end, g_date_time_unref);
|
g_clear_pointer (&new_end, g_date_time_unref);
|
||||||
}
|
}
|
||||||
|
|
||||||
gcal_manager_update_event (self->manager, event);
|
gcal_manager_update_event (self->manager, event, E_CAL_OBJ_MOD_THIS);
|
||||||
|
|
||||||
g_clear_pointer (&new_start, g_date_time_unref);
|
g_clear_pointer (&new_start, g_date_time_unref);
|
||||||
|
|
||||||
|
|||||||
@@ -1007,7 +1007,7 @@ gcal_week_grid_drag_drop (GtkWidget *widget,
|
|||||||
gcal_event_set_date_end (event, new_end);
|
gcal_event_set_date_end (event, new_end);
|
||||||
|
|
||||||
/* Commit the changes */
|
/* Commit the changes */
|
||||||
gcal_manager_update_event (self->manager, event);
|
gcal_manager_update_event (self->manager, event, E_CAL_OBJ_MOD_THIS);
|
||||||
|
|
||||||
/* Cancel the DnD */
|
/* Cancel the DnD */
|
||||||
self->dnd_cell = -1;
|
self->dnd_cell = -1;
|
||||||
|
|||||||
@@ -1407,7 +1407,7 @@ gcal_week_header_drag_drop (GtkWidget *widget,
|
|||||||
gcal_event_set_all_day (event, TRUE);
|
gcal_event_set_all_day (event, TRUE);
|
||||||
|
|
||||||
/* Commit the changes */
|
/* Commit the changes */
|
||||||
gcal_manager_update_event (self->manager, event);
|
gcal_manager_update_event (self->manager, event, E_CAL_OBJ_MOD_THIS);
|
||||||
|
|
||||||
/* Cancel the DnD */
|
/* Cancel the DnD */
|
||||||
self->dnd_cell = -1;
|
self->dnd_cell = -1;
|
||||||
|
|||||||
@@ -1512,7 +1512,7 @@ navigator_drag_drop_cb (GcalYearView *self,
|
|||||||
g_clear_pointer (&new_end, g_date_time_unref);
|
g_clear_pointer (&new_end, g_date_time_unref);
|
||||||
}
|
}
|
||||||
|
|
||||||
gcal_manager_update_event (self->manager, event);
|
gcal_manager_update_event (self->manager, event, E_CAL_OBJ_MOD_THIS);
|
||||||
|
|
||||||
g_clear_pointer (&new_start, g_date_time_unref);
|
g_clear_pointer (&new_start, g_date_time_unref);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user