week-grid, week-header: simplify code
We don't need to check whether the end date is NULL, for GcalEvent always ensures that.
This commit is contained in:
@@ -1008,6 +1008,7 @@ gcal_week_grid_drag_drop (GtkWidget *widget,
|
|||||||
GcalWeekGrid *self;
|
GcalWeekGrid *self;
|
||||||
g_autoptr (GDateTime) week_start;
|
g_autoptr (GDateTime) week_start;
|
||||||
g_autoptr (GDateTime) dnd_date;
|
g_autoptr (GDateTime) dnd_date;
|
||||||
|
g_autoptr (GDateTime) new_end;
|
||||||
GtkWidget *event_widget;
|
GtkWidget *event_widget;
|
||||||
GcalEvent *event;
|
GcalEvent *event;
|
||||||
GTimeSpan timespan = 0;
|
GTimeSpan timespan = 0;
|
||||||
@@ -1043,8 +1044,7 @@ gcal_week_grid_drag_drop (GtkWidget *widget,
|
|||||||
* Calculate the diff between the dropped cell and the event's start date,
|
* Calculate the diff between the dropped cell and the event's start date,
|
||||||
* so we can update the end date accordingly.
|
* so we can update the end date accordingly.
|
||||||
*/
|
*/
|
||||||
if (gcal_event_get_date_end (event))
|
timespan = g_date_time_difference (gcal_event_get_date_end (event), gcal_event_get_date_start (event));
|
||||||
timespan = g_date_time_difference (gcal_event_get_date_end (event), gcal_event_get_date_start (event));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the event's start and end dates. Since the event may have a
|
* Set the event's start and end dates. Since the event may have a
|
||||||
@@ -1053,12 +1053,10 @@ gcal_week_grid_drag_drop (GtkWidget *widget,
|
|||||||
gcal_event_set_all_day (event, FALSE);
|
gcal_event_set_all_day (event, FALSE);
|
||||||
gcal_event_set_date_start (event, dnd_date);
|
gcal_event_set_date_start (event, dnd_date);
|
||||||
|
|
||||||
if (gcal_event_get_date_end (event))
|
|
||||||
{
|
|
||||||
g_autoptr (GDateTime) new_end = g_date_time_add (dnd_date, timespan);
|
|
||||||
|
|
||||||
gcal_event_set_date_end (event, new_end);
|
/* Setup the new end date */
|
||||||
}
|
new_end = g_date_time_add (dnd_date, timespan);
|
||||||
|
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);
|
||||||
|
|||||||
@@ -1402,8 +1402,10 @@ gcal_week_header_drag_drop (GtkWidget *widget,
|
|||||||
GcalWeekHeader *self;
|
GcalWeekHeader *self;
|
||||||
g_autoptr (GDateTime) week_start;
|
g_autoptr (GDateTime) week_start;
|
||||||
g_autoptr (GDateTime) dnd_date;
|
g_autoptr (GDateTime) dnd_date;
|
||||||
|
g_autoptr (GDateTime) new_end;
|
||||||
GDateTime *start_date;
|
GDateTime *start_date;
|
||||||
GDateTime *end_date;
|
GDateTime *end_date;
|
||||||
|
GTimeSpan difference;
|
||||||
GtkWidget *event_widget;
|
GtkWidget *event_widget;
|
||||||
GcalEvent *event;
|
GcalEvent *event;
|
||||||
gboolean turn_all_day;
|
gboolean turn_all_day;
|
||||||
@@ -1455,20 +1457,11 @@ gcal_week_header_drag_drop (GtkWidget *widget,
|
|||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Since the event may have a NULL end date, so we have to check it here */
|
/* End date */
|
||||||
if (end_date)
|
difference = turn_all_day ? 24 : g_date_time_difference (end_date, start_date) / G_TIME_SPAN_HOUR;
|
||||||
{
|
|
||||||
g_autoptr (GDateTime) new_end;
|
|
||||||
GTimeSpan difference;
|
|
||||||
|
|
||||||
if (turn_all_day)
|
new_end = g_date_time_add_hours (dnd_date, difference);
|
||||||
difference = 24;
|
gcal_event_set_date_end (event, new_end);
|
||||||
else
|
|
||||||
difference = g_date_time_difference (end_date, start_date) / G_TIME_SPAN_HOUR;
|
|
||||||
|
|
||||||
new_end = g_date_time_add_hours (dnd_date, difference);
|
|
||||||
gcal_event_set_date_end (event, new_end);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the start date ~after~ the end date, so we can compare
|
* Set the start date ~after~ the end date, so we can compare
|
||||||
|
|||||||
Reference in New Issue
Block a user