quick-add-popover: Refactor

This commit is contained in:
Rami Alkawadri
2024-01-15 19:31:56 +00:00
committed by Georges Basile Stavracas Neto
parent 487e72ee07
commit a383ac38e0
+32 -31
View File
@@ -414,32 +414,32 @@ get_date_string_for_day (GDateTime *day)
static void static void
update_header (GcalQuickAddPopover *self) update_header (GcalQuickAddPopover *self)
{ {
g_autoptr (GDateTime) range_start = NULL;
g_autoptr (GDateTime) range_end = NULL;
gboolean multiday_or_timed; gboolean multiday_or_timed;
gchar *title_date; gchar *title_date;
GDateTime *date_start, *date_end;
if (!self->range) if (!self->range)
return; return;
date_start = gcal_range_get_start (self->range); range_start = gcal_range_get_start (self->range);
date_end = gcal_range_get_end (self->range); range_end = gcal_range_get_end (self->range);
multiday_or_timed = date_end && multiday_or_timed = gcal_range_get_range_type (self->range) == GCAL_RANGE_DEFAULT ||
(g_date_time_difference (date_end, date_start) / G_TIME_SPAN_DAY > 1 || gcal_date_time_compare_date (range_start, range_end) != 0;
g_date_time_difference (date_end, date_start) / G_TIME_SPAN_MINUTE > 1);
if (multiday_or_timed) if (multiday_or_timed)
{ {
gboolean all_day; gboolean all_day;
all_day = gcal_date_time_is_date (date_start) && (date_end ? gcal_date_time_is_date (date_end) : TRUE); all_day = gcal_range_get_range_type (self->range) == GCAL_RANGE_DATE_ONLY;
if (all_day && if (all_day &&
(g_date_time_difference (date_end, date_start) / G_TIME_SPAN_DAY > 1 && (g_date_time_difference (range_end, range_start) / G_TIME_SPAN_DAY > 1 &&
g_date_time_difference (date_end, date_start) / G_TIME_SPAN_MINUTE > 1)) g_date_time_difference (range_end, range_start) / G_TIME_SPAN_MINUTE > 1))
{ {
title_date = get_date_string_for_multiday (date_start, g_date_time_add_days (date_end, -1)); title_date = get_date_string_for_multiday (range_start, g_date_time_add_days (range_end, -1));
} }
else else
{ {
@@ -456,10 +456,10 @@ update_header (GcalQuickAddPopover *self)
else else
hour_format = "%I:%M %P"; hour_format = "%I:%M %P";
start_hour = g_date_time_format (date_start, hour_format); start_hour = g_date_time_format (range_start, hour_format);
end_hour = g_date_time_format (date_end, hour_format); end_hour = g_date_time_format (range_end, hour_format);
event_date_name = get_date_string_for_day (date_start); event_date_name = get_date_string_for_day (range_start);
if (all_day) if (all_day)
{ {
@@ -479,7 +479,7 @@ update_header (GcalQuickAddPopover *self)
else else
{ {
g_autofree gchar *event_date_name = NULL; g_autofree gchar *event_date_name = NULL;
event_date_name = get_date_string_for_day (date_start); event_date_name = get_date_string_for_day (range_start);
title_date = g_strdup_printf ("%s", event_date_name); title_date = g_strdup_printf ("%s", event_date_name);
} }
@@ -636,11 +636,12 @@ static void
edit_or_create_event (GcalQuickAddPopover *self, edit_or_create_event (GcalQuickAddPopover *self,
GtkWidget *button) GtkWidget *button)
{ {
g_autoptr (GDateTime) range_start = NULL;
g_autoptr (GDateTime) range_end = NULL;
ECalComponent *component; ECalComponent *component;
GcalCalendar *calendar; GcalCalendar *calendar;
GcalManager *manager; GcalManager *manager;
GDateTime *date_start, *date_end; GDateTime *date_start, *date_end;
GDateTime *self_date_start, *self_date_end;
GTimeZone *tz; GTimeZone *tz;
GcalEvent *event; GcalEvent *event;
const gchar *summary; const gchar *summary;
@@ -649,35 +650,35 @@ edit_or_create_event (GcalQuickAddPopover *self,
if (!self->selected_row) if (!self->selected_row)
return; return;
self_date_start = gcal_range_get_start (self->range); range_start = gcal_range_get_start (self->range);
self_date_end = gcal_range_get_end (self->range); range_end = gcal_range_get_end (self->range);
manager = gcal_context_get_manager (self->context); manager = gcal_context_get_manager (self->context);
calendar = g_object_get_data (G_OBJECT (self->selected_row), "calendar"); calendar = g_object_get_data (G_OBJECT (self->selected_row), "calendar");
single_day = gcal_date_time_compare_date (self_date_end, self_date_start) == 0; single_day = gcal_date_time_compare_date (range_end, range_start) == 0;
all_day = gcal_date_time_compare_date (self_date_end, self_date_start) > 1 || all_day = gcal_date_time_compare_date (range_end, range_start) > 1 ||
g_date_time_compare (self_date_end, self_date_start) == 0; g_date_time_compare (range_end, range_start) == 0;
tz = all_day ? g_time_zone_new_utc () : g_time_zone_new_local (); tz = all_day ? g_time_zone_new_utc () : g_time_zone_new_local ();
/* Gather start date */ /* Gather start date */
date_start = g_date_time_new (tz, date_start = g_date_time_new (tz,
g_date_time_get_year (self_date_start), g_date_time_get_year (range_start),
g_date_time_get_month (self_date_start), g_date_time_get_month (range_start),
g_date_time_get_day_of_month (self_date_start), g_date_time_get_day_of_month (range_start),
g_date_time_get_hour (self_date_start), g_date_time_get_hour (range_start),
g_date_time_get_minute (self_date_start), g_date_time_get_minute (range_start),
0); 0);
/* Gather date end */ /* Gather date end */
if (self_date_end) if (range_end)
{ {
date_end = g_date_time_new (tz, date_end = g_date_time_new (tz,
g_date_time_get_year (self_date_end), g_date_time_get_year (range_end),
g_date_time_get_month (self_date_end), g_date_time_get_month (range_end),
g_date_time_get_day_of_month (self_date_end) + (single_day && all_day ? 1 : 0), g_date_time_get_day_of_month (range_end) + (single_day && all_day ? 1 : 0),
g_date_time_get_hour (self_date_end), g_date_time_get_hour (range_end),
g_date_time_get_minute (self_date_end), g_date_time_get_minute (range_end),
0); 0);
} }
else else