gui/event-widget: Replace "context" property with context getter method

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
This commit is contained in:
Hari Rana
2026-03-23 19:30:02 +00:00
committed by Marge Bot
parent 3c9a525710
commit 037ffd3700
7 changed files with 26 additions and 56 deletions
+22 -42
View File
@@ -24,7 +24,6 @@
#include "gcal-fading-label.h" #include "gcal-fading-label.h"
#include "gcal-application.h" #include "gcal-application.h"
#include "gcal-context.h"
#include "gcal-clock.h" #include "gcal-clock.h"
#include "gcal-debug.h" #include "gcal-debug.h"
#include "gcal-event-popover.h" #include "gcal-event-popover.h"
@@ -74,14 +73,11 @@ struct _GcalEventWidget
gint old_width; gint old_width;
gint old_height; gint old_height;
GcalContext *context;
}; };
enum enum
{ {
PROP_0, PROP_0,
PROP_CONTEXT,
PROP_EVENT, PROP_EVENT,
PROP_TIMESTAMP_POLICY, PROP_TIMESTAMP_POLICY,
PROP_ORIENTATION, PROP_ORIENTATION,
@@ -250,6 +246,7 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self,
GString *tooltip_mesg; GString *tooltip_mesg;
gboolean allday, multiday, is_ltr; gboolean allday, multiday, is_ltr;
guint description_len; guint description_len;
GcalContext *context;
tooltip_mesg = g_string_new (NULL); tooltip_mesg = g_string_new (NULL);
escaped_summary = g_markup_escape_text (gcal_event_get_summary (event), -1); escaped_summary = g_markup_escape_text (gcal_event_get_summary (event), -1);
@@ -279,12 +276,13 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self,
} }
else else
{ {
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
tooltip_start = g_date_time_to_local (gcal_event_get_date_start (event)); tooltip_start = g_date_time_to_local (gcal_event_get_date_start (event));
tooltip_end = g_date_time_to_local (gcal_event_get_date_end (event)); tooltip_end = g_date_time_to_local (gcal_event_get_date_end (event));
if (multiday) if (multiday)
{ {
switch (gcal_context_get_time_format (self->context)) switch (gcal_context_get_time_format (context))
{ {
case GCAL_TIME_FORMAT_24H: case GCAL_TIME_FORMAT_24H:
if (is_ltr) if (is_ltr)
@@ -315,7 +313,7 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self,
} }
else else
{ {
switch (gcal_context_get_time_format (self->context)) switch (gcal_context_get_time_format (context))
{ {
case GCAL_TIME_FORMAT_24H: case GCAL_TIME_FORMAT_24H:
if (is_ltr) if (is_ltr)
@@ -445,10 +443,12 @@ static void
gcal_event_widget_update_timestamp (GcalEventWidget *self) gcal_event_widget_update_timestamp (GcalEventWidget *self)
{ {
g_autofree gchar *timestamp_str = NULL; g_autofree gchar *timestamp_str = NULL;
GcalContext *context;
if (GCAL_IS_EVENT (self->event) && if (GCAL_IS_EVENT (self->event) &&
self->timestamp_policy != GCAL_TIMESTAMP_POLICY_NONE) self->timestamp_policy != GCAL_TIMESTAMP_POLICY_NONE)
{ {
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
g_autoptr (GDateTime) time = NULL; g_autoptr (GDateTime) time = NULL;
if (self->timestamp_policy == GCAL_TIMESTAMP_POLICY_START) if (self->timestamp_policy == GCAL_TIMESTAMP_POLICY_START)
@@ -464,7 +464,7 @@ gcal_event_widget_update_timestamp (GcalEventWidget *self)
* https://docs.gtk.org/glib/method.DateTime.format.html * https://docs.gtk.org/glib/method.DateTime.format.html
*/ */
timestamp_str = g_date_time_format (time, _("%a %B %d")); timestamp_str = g_date_time_format (time, _("%a %B %d"));
else if (gcal_context_get_time_format (self->context) == GCAL_TIME_FORMAT_24H) else if (gcal_context_get_time_format (context) == GCAL_TIME_FORMAT_24H)
timestamp_str = g_date_time_format (time, "%R"); timestamp_str = g_date_time_format (time, "%R");
else else
timestamp_str = g_date_time_format (time, "%I:%M %P"); timestamp_str = g_date_time_format (time, "%I:%M %P");
@@ -487,6 +487,8 @@ gcal_event_widget_set_event_internal (GcalEventWidget *self,
* disconnecting functions or cleaning up the previous event. * disconnecting functions or cleaning up the previous event.
*/ */
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
/* The event spawns with a floating reference, and we take it's ownership */ /* The event spawns with a floating reference, and we take it's ownership */
g_set_object (&self->event, event); g_set_object (&self->event, event);
@@ -512,7 +514,7 @@ gcal_event_widget_set_event_internal (GcalEventWidget *self,
self, self,
G_CONNECT_SWAPPED); G_CONNECT_SWAPPED);
g_signal_connect_object (self->context, g_signal_connect_object (context,
"notify::time-format", "notify::time-format",
G_CALLBACK (gcal_event_widget_update_timestamp), G_CALLBACK (gcal_event_widget_update_timestamp),
self, self,
@@ -671,17 +673,6 @@ gcal_event_widget_set_property (GObject *object,
switch (property_id) switch (property_id)
{ {
case PROP_CONTEXT:
g_assert (self->context == NULL);
self->context = g_value_dup_object (value);
g_signal_connect_object (gcal_context_get_clock (self->context),
"minute-changed",
G_CALLBACK (update_color),
self,
G_CONNECT_SWAPPED);
break;
case PROP_EVENT: case PROP_EVENT:
gcal_event_widget_set_event_internal (self, g_value_get_object (value)); gcal_event_widget_set_event_internal (self, g_value_get_object (value));
break; break;
@@ -713,10 +704,6 @@ gcal_event_widget_get_property (GObject *object,
switch (property_id) switch (property_id)
{ {
case PROP_CONTEXT:
g_value_set_object (value, self->context);
break;
case PROP_EVENT: case PROP_EVENT:
g_value_set_object (value, self->event); g_value_set_object (value, self->event);
break; break;
@@ -760,7 +747,6 @@ gcal_event_widget_finalize (GObject *object)
/* releasing properties */ /* releasing properties */
g_clear_pointer (&self->css_class, g_free); g_clear_pointer (&self->css_class, g_free);
g_clear_object (&self->event); g_clear_object (&self->event);
g_clear_object (&self->context);
G_OBJECT_CLASS (gcal_event_widget_parent_class)->finalize (object); G_OBJECT_CLASS (gcal_event_widget_parent_class)->finalize (object);
} }
@@ -778,19 +764,6 @@ gcal_event_widget_class_init (GcalEventWidgetClass *klass)
object_class->dispose = gcal_event_widget_dispose; object_class->dispose = gcal_event_widget_dispose;
object_class->finalize = gcal_event_widget_finalize; object_class->finalize = gcal_event_widget_finalize;
/**
* GcalEventWidget::context:
*
* The context of the event.
*/
g_object_class_install_property (object_class,
PROP_CONTEXT,
g_param_spec_object ("context",
"Context",
"Context",
GCAL_TYPE_CONTEXT,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
/** /**
* GcalEventWidget::event: * GcalEventWidget::event:
* *
@@ -886,6 +859,8 @@ gcal_event_widget_class_init (GcalEventWidgetClass *klass)
static void static void
gcal_event_widget_init (GcalEventWidget *self) gcal_event_widget_init (GcalEventWidget *self)
{ {
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
g_type_ensure (GCAL_TYPE_OVERFLOW_BIN); g_type_ensure (GCAL_TYPE_OVERFLOW_BIN);
gtk_widget_init_template (GTK_WIDGET (self)); gtk_widget_init_template (GTK_WIDGET (self));
@@ -899,14 +874,18 @@ gcal_event_widget_init (GcalEventWidget *self)
gtk_accessible_update_state (GTK_ACCESSIBLE (self), gtk_accessible_update_state (GTK_ACCESSIBLE (self),
GTK_ACCESSIBLE_STATE_PRESSED, FALSE, GTK_ACCESSIBLE_STATE_PRESSED, FALSE,
-1); -1);
g_signal_connect_object (gcal_context_get_clock (context),
"minute-changed",
G_CALLBACK (update_color),
self,
G_CONNECT_SWAPPED);
} }
GtkWidget* GtkWidget*
gcal_event_widget_new (GcalContext *context, gcal_event_widget_new (GcalEvent *event)
GcalEvent *event)
{ {
return g_object_new (GCAL_TYPE_EVENT_WIDGET, return g_object_new (GCAL_TYPE_EVENT_WIDGET,
"context", context,
"event", event, "event", event,
NULL); NULL);
} }
@@ -1055,6 +1034,7 @@ gcal_event_widget_show_preview (GcalEventWidget *self,
GcalEventPreviewCallback callback, GcalEventPreviewCallback callback,
gpointer user_data) gpointer user_data)
{ {
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
PreviewData *data; PreviewData *data;
GCAL_ENTRY; GCAL_ENTRY;
@@ -1066,7 +1046,7 @@ gcal_event_widget_show_preview (GcalEventWidget *self,
data->callback = callback; data->callback = callback;
data->user_data = user_data; data->user_data = user_data;
self->preview_popover = gcal_event_popover_new (self->context, self->event); self->preview_popover = gcal_event_popover_new (context, self->event);
g_object_add_weak_pointer (G_OBJECT (self->preview_popover), (gpointer *) &self->preview_popover); g_object_add_weak_pointer (G_OBJECT (self->preview_popover), (gpointer *) &self->preview_popover);
gtk_widget_set_parent (self->preview_popover, GTK_WIDGET (self)); gtk_widget_set_parent (self->preview_popover, GTK_WIDGET (self));
@@ -1099,7 +1079,7 @@ gcal_event_widget_get_event (GcalEventWidget *self)
GtkWidget* GtkWidget*
gcal_event_widget_clone (GcalEventWidget *widget) gcal_event_widget_clone (GcalEventWidget *widget)
{ {
return gcal_event_widget_new (widget->context, widget->event); return gcal_event_widget_new (widget->event);
} }
/** /**
+1 -2
View File
@@ -39,8 +39,7 @@ typedef void (*GcalEventPreviewCallback) (GcalEventWidge
GcalEventPreviewAction action, GcalEventPreviewAction action,
gpointer user_data); gpointer user_data);
GtkWidget* gcal_event_widget_new (GcalContext *context, GtkWidget* gcal_event_widget_new (GcalEvent *event);
GcalEvent *event);
GcalEvent* gcal_event_widget_get_event (GcalEventWidget *self); GcalEvent* gcal_event_widget_get_event (GcalEventWidget *self);
-4
View File
@@ -601,7 +601,6 @@ gcal_agenda_view_add_event (GcalTimelineSubscriber *subscriber,
g_autoptr (GDateTime) event_date = gcal_event_get_date_start (event); g_autoptr (GDateTime) event_date = gcal_event_get_date_start (event);
GtkWidget *widget, *row; GtkWidget *widget, *row;
GcalTimestampPolicy timestamp_policy; GcalTimestampPolicy timestamp_policy;
GcalContext *context;
GCAL_ENTRY; GCAL_ENTRY;
@@ -623,10 +622,7 @@ gcal_agenda_view_add_event (GcalTimelineSubscriber *subscriber,
else else
timestamp_policy = GCAL_TIMESTAMP_POLICY_START; timestamp_policy = GCAL_TIMESTAMP_POLICY_START;
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
widget = g_object_new (GCAL_TYPE_EVENT_WIDGET, widget = g_object_new (GCAL_TYPE_EVENT_WIDGET,
"context", context,
"event", event, "event", event,
"orientation", GTK_ORIENTATION_VERTICAL, "orientation", GTK_ORIENTATION_VERTICAL,
"timestamp-policy", timestamp_policy, "timestamp-policy", timestamp_policy,
+1 -1
View File
@@ -111,7 +111,7 @@ update_event_list (GcalMonthPopover *self)
event_end = g_date_time_add_days (event_start, 1); event_end = g_date_time_add_days (event_start, 1);
event_widget = gcal_event_widget_new (context, event); event_widget = gcal_event_widget_new (event);
gtk_widget_set_focusable (event_widget, FALSE); gtk_widget_set_focusable (event_widget, FALSE);
gcal_event_widget_set_date_start (GCAL_EVENT_WIDGET (event_widget), event_start); gcal_event_widget_set_date_start (GCAL_EVENT_WIDGET (event_widget), event_start);
gcal_event_widget_set_date_end (GCAL_EVENT_WIDGET (event_widget), event_end); gcal_event_widget_set_date_end (GCAL_EVENT_WIDGET (event_widget), event_end);
+1 -3
View File
@@ -644,7 +644,6 @@ prepare_layout_blocks (GcalMonthViewRow *self,
static void static void
recalculate_layout_blocks (GcalMonthViewRow *self) recalculate_layout_blocks (GcalMonthViewRow *self)
{ {
GcalContext *context;
g_autoptr (GDateTime) range_start = NULL; g_autoptr (GDateTime) range_start = NULL;
guint events_at_weekday[N_WEEKDAYS] = { 0, }; guint events_at_weekday[N_WEEKDAYS] = { 0, };
guint n_events; guint n_events;
@@ -655,7 +654,6 @@ recalculate_layout_blocks (GcalMonthViewRow *self)
range_start = gcal_range_get_start (self->range); range_start = gcal_range_get_start (self->range);
n_events = g_list_model_get_n_items (G_LIST_MODEL (self->events)); n_events = g_list_model_get_n_items (G_LIST_MODEL (self->events));
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
g_hash_table_remove_all (self->layout_blocks); g_hash_table_remove_all (self->layout_blocks);
@@ -682,7 +680,7 @@ recalculate_layout_blocks (GcalMonthViewRow *self)
{ {
GtkWidget *event_widget; GtkWidget *event_widget;
event_widget = gcal_event_widget_new (context, event); event_widget = gcal_event_widget_new (event);
if (!gcal_event_get_all_day (event) && !gcal_event_is_multiday (event)) if (!gcal_event_get_all_day (event) && !gcal_event_is_multiday (event))
gcal_event_widget_set_timestamp_policy (GCAL_EVENT_WIDGET (event_widget), GCAL_TIMESTAMP_POLICY_START); gcal_event_widget_set_timestamp_policy (GCAL_EVENT_WIDGET (event_widget), GCAL_TIMESTAMP_POLICY_START);
setup_child_widget (self, event_widget); setup_child_widget (self, event_widget);
-2
View File
@@ -912,7 +912,6 @@ void
gcal_week_grid_add_event (GcalWeekGrid *self, gcal_week_grid_add_event (GcalWeekGrid *self,
GcalEvent *event) GcalEvent *event)
{ {
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
GtkWidget *widget; GtkWidget *widget;
g_return_if_fail (GCAL_IS_WEEK_GRID (self)); g_return_if_fail (GCAL_IS_WEEK_GRID (self));
@@ -920,7 +919,6 @@ gcal_week_grid_add_event (GcalWeekGrid *self,
g_object_ref (event); g_object_ref (event);
widget = g_object_new (GCAL_TYPE_EVENT_WIDGET, widget = g_object_new (GCAL_TYPE_EVENT_WIDGET,
"context", context,
"event", event, "event", event,
"orientation", GTK_ORIENTATION_VERTICAL, "orientation", GTK_ORIENTATION_VERTICAL,
"timestamp-policy", GCAL_TIMESTAMP_POLICY_START, "timestamp-policy", GCAL_TIMESTAMP_POLICY_START,
+1 -2
View File
@@ -785,7 +785,6 @@ add_event_to_grid (GcalWeekHeader *self,
gint start, gint start,
gint end) gint end)
{ {
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
g_autoptr (GDateTime) week_start = NULL; g_autoptr (GDateTime) week_start = NULL;
g_autoptr (GDateTime) week_end = NULL; g_autoptr (GDateTime) week_end = NULL;
GtkLayoutManager *layout_manager; GtkLayoutManager *layout_manager;
@@ -803,7 +802,7 @@ add_event_to_grid (GcalWeekHeader *self,
move_events_at_column (self, DOWN, start, position); move_events_at_column (self, DOWN, start, position);
/* Add the event to the grid */ /* Add the event to the grid */
widget = gcal_event_widget_new (context, event); widget = gcal_event_widget_new (event);
setup_event_widget (self, widget); setup_event_widget (self, widget);
gtk_grid_attach (self->grid, gtk_grid_attach (self->grid,