diff --git a/src/gui/gcal-window.c b/src/gui/gcal-window.c index f21851be..68192240 100644 --- a/src/gui/gcal-window.c +++ b/src/gui/gcal-window.c @@ -1225,7 +1225,6 @@ gcal_window_constructed (GObject *object) * FIXME: this is a hack around the issue that happens when trying to bind * these properties using the GtkBuilder .ui file. */ - g_object_bind_property (self, "context", self->month_view, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); g_object_bind_property (self, "context", self->agenda_view, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); g_object_bind_property (self, "context", self->date_chooser, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); g_object_bind_property (self, "context", self->event_editor, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); diff --git a/src/gui/views/gcal-month-cell.c b/src/gui/views/gcal-month-cell.c index 6d00c289..3588589b 100644 --- a/src/gui/views/gcal-month-cell.c +++ b/src/gui/views/gcal-month-cell.c @@ -20,7 +20,6 @@ #define G_LOG_DOMAIN "GcalMonthCell" #include "config.h" -#include "gcal-application.h" #include "gcal-clock.h" #include "gcal-debug.h" #include "gcal-event-widget.h" @@ -50,8 +49,6 @@ struct _GcalMonthCell gboolean different_month; gboolean selected; - GcalContext *context; - GcalWeatherInfo *weather_info; GBinding *icon_tooltip_binding; @@ -66,15 +63,7 @@ enum N_SIGNALS }; -enum -{ - PROP_0, - PROP_CONTEXT, - N_PROPS -}; - static guint signals[N_SIGNALS] = { 0, }; -static GParamSpec *properties[N_PROPS] = { 0, }; /* @@ -131,6 +120,7 @@ move_event (GcalMonthCell *self, g_autoptr (GcalEvent) changed_event = NULL; g_autoptr (GDateTime) start_dt = NULL; GTimeSpan timespan = 0; + GcalContext *context; GDateTime *end_dt; gint diff; gint start_month, current_month; @@ -173,21 +163,20 @@ move_event (GcalMonthCell *self, gcal_event_set_date_end (changed_event, new_end); } - gcal_manager_update_event (gcal_context_get_manager (self->context), changed_event, mod_type); + context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION); + gcal_manager_update_event (gcal_context_get_manager (context), changed_event, mod_type); } } static void update_weather (GcalMonthCell *self) { + GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION); GcalWeatherService *weather_service; GcalWeatherInfo *weather_info; GDate date; gint day_of_month; - if (!self->context) - return; - day_of_month = g_date_time_get_day_of_month (self->date); g_date_set_dmy (&date, @@ -195,7 +184,7 @@ update_weather (GcalMonthCell *self) g_date_time_get_month (self->date), g_date_time_get_year (self->date)); - weather_service = gcal_context_get_weather_service (self->context); + weather_service = gcal_context_get_weather_service (context); weather_info = gcal_weather_service_get_weather_info_for_date (weather_service, &date); g_assert (!weather_info || GCAL_IS_WEATHER_INFO (weather_info)); @@ -370,58 +359,17 @@ static void gcal_month_cell_dispose (GObject *object) { GcalMonthCell *self = (GcalMonthCell *)object; + GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION); - GcalWeatherService *weather_service = gcal_context_get_weather_service (self->context); + GcalWeatherService *weather_service = gcal_context_get_weather_service (context); gcal_weather_service_release (weather_service); gcal_clear_date_time (&self->date); - g_clear_object (&self->context); g_clear_pointer (&self->breakpoint_bin, gtk_widget_unparent); G_OBJECT_CLASS (gcal_month_cell_parent_class)->dispose (object); } - -static void -gcal_month_cell_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - GcalMonthCell *self = (GcalMonthCell *) object; - - switch (property_id) - { - case PROP_CONTEXT: - gcal_month_cell_set_context (self, g_value_get_object (value)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static void -gcal_month_cell_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - GcalMonthCell *self = (GcalMonthCell *) object; - - switch (property_id) - { - case PROP_CONTEXT: - g_value_set_object (value, self->context); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - static void gcal_month_cell_class_init (GcalMonthCellClass *klass) { @@ -429,8 +377,6 @@ gcal_month_cell_class_init (GcalMonthCellClass *klass) GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); object_class->dispose = gcal_month_cell_dispose; - object_class->set_property = gcal_month_cell_set_property; - object_class->get_property = gcal_month_cell_get_property; widget_class->focus = gcal_month_cell_focus; @@ -476,14 +422,6 @@ gcal_month_cell_class_init (GcalMonthCellClass *klass) } } - properties[PROP_CONTEXT] = g_param_spec_object ("context", - "Context", - "The GcalContext of the application", - GCAL_TYPE_CONTEXT, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties (object_class, N_PROPS, properties); - gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/ui/views/gcal-month-cell.ui"); gtk_widget_class_bind_template_child (widget_class, GcalMonthCell, breakpoint_bin); @@ -506,6 +444,7 @@ gcal_month_cell_class_init (GcalMonthCellClass *klass) static void gcal_month_cell_init (GcalMonthCell *self) { + GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION); GtkDropTarget *drop_target; gtk_widget_init_template (GTK_WIDGET (self)); @@ -517,6 +456,21 @@ gcal_month_cell_init (GcalMonthCell *self) g_signal_connect_swapped (self->breakpoint_bin, "notify::current-breakpoint", G_CALLBACK (on_breakpoint_changed_cb), self); + + g_signal_connect_object (gcal_context_get_clock (context), + "day-changed", + G_CALLBACK (day_changed_cb), + self, + 0); + + g_signal_connect_object (gcal_context_get_weather_service (context), + "weather-changed", + G_CALLBACK (on_weather_service_weather_changed_cb), + self, + 0); + + GcalWeatherService *weather_service = gcal_context_get_weather_service (context); + gcal_weather_service_hold (weather_service); } GtkWidget* @@ -568,43 +522,6 @@ gcal_month_cell_set_date (GcalMonthCell *self, update_weather (self); } -GcalContext* -gcal_month_cell_get_context (GcalMonthCell *self) -{ - g_return_val_if_fail (GCAL_IS_MONTH_CELL (self), NULL); - - return self->context; -} - -void -gcal_month_cell_set_context (GcalMonthCell *self, - GcalContext *context) -{ - g_return_if_fail (GCAL_IS_MONTH_CELL (self)); - - if (!g_set_object (&self->context, context)) - return; - - g_signal_connect_object (gcal_context_get_clock (context), - "day-changed", - G_CALLBACK (day_changed_cb), - self, - 0); - - g_signal_connect_object (gcal_context_get_weather_service (self->context), - "weather-changed", - G_CALLBACK (on_weather_service_weather_changed_cb), - self, - 0); - - GcalWeatherService *weather_service = gcal_context_get_weather_service (self->context); - gcal_weather_service_hold (weather_service); - - update_weather (self); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_CONTEXT]); -} - guint gcal_month_cell_get_overflow (GcalMonthCell *self) { diff --git a/src/gui/views/gcal-month-cell.h b/src/gui/views/gcal-month-cell.h index be610449..24f4a3f5 100644 --- a/src/gui/views/gcal-month-cell.h +++ b/src/gui/views/gcal-month-cell.h @@ -36,11 +36,6 @@ GDateTime* gcal_month_cell_get_date (GcalMonthCell void gcal_month_cell_set_date (GcalMonthCell *self, GDateTime *date); -GcalContext* gcal_month_cell_get_context (GcalMonthCell *self); - -void gcal_month_cell_set_context (GcalMonthCell *self, - GcalContext *context); - guint gcal_month_cell_get_overflow (GcalMonthCell *self); void gcal_month_cell_set_overflow (GcalMonthCell *self, diff --git a/src/gui/views/gcal-month-popover.c b/src/gui/views/gcal-month-popover.c index ca766a17..42de6ee9 100644 --- a/src/gui/views/gcal-month-popover.c +++ b/src/gui/views/gcal-month-popover.c @@ -38,8 +38,6 @@ struct _GcalMonthPopover GtkWidget *main_box; GtkButton *new_event_button; - GcalContext *context; - GDateTime *date; AdwAnimation *animation; @@ -51,13 +49,6 @@ static void event_activated_cb (GcalEventWidge G_DEFINE_TYPE (GcalMonthPopover, gcal_month_popover, GTK_TYPE_WIDGET) -enum -{ - PROP_0, - PROP_CONTEXT, - N_PROPS, -}; - enum { EVENT_ACTIVATED, @@ -66,7 +57,6 @@ enum }; static guint signals[LAST_SIGNAL] = { 0, }; -static GParamSpec *properties [N_PROPS] = { NULL, }; /* @@ -76,6 +66,7 @@ static GParamSpec *properties [N_PROPS] = { NULL, }; static void update_event_list (GcalMonthPopover *self) { + GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION); g_autoptr (GDateTime) start_dt = NULL; g_autoptr (GDateTime) end_dt = NULL; g_autoptr (GPtrArray) events = NULL; @@ -94,7 +85,7 @@ update_event_list (GcalMonthPopover *self) 0, 0, 0); end_dt = g_date_time_add_days (start_dt, 1); - events = gcal_manager_get_events (gcal_context_get_manager (self->context), start_dt, end_dt); + events = gcal_manager_get_events (gcal_context_get_manager (context), start_dt, end_dt); for (i = 0; events && i < events->len; i++) { @@ -120,7 +111,7 @@ update_event_list (GcalMonthPopover *self) event_end = g_date_time_add_days (event_start, 1); - event_widget = gcal_event_widget_new (self->context, event); + event_widget = gcal_event_widget_new (context, event); 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_end (GCAL_EVENT_WIDGET (event_widget), event_end); @@ -377,44 +368,6 @@ gcal_month_popover_focus (GtkWidget *widget, * GObject overrides */ -static void -gcal_month_popover_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GcalMonthPopover *self = GCAL_MONTH_POPOVER (object); - - switch (prop_id) - { - case PROP_CONTEXT: - g_value_set_object (value, self->context); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - -static void -gcal_month_popover_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GcalMonthPopover *self = GCAL_MONTH_POPOVER (object); - - switch (prop_id) - { - case PROP_CONTEXT: - self->context = g_value_dup_object (value); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - static void gcal_month_popover_dispose (GObject *object) { @@ -434,21 +387,11 @@ gcal_month_popover_class_init (GcalMonthPopoverClass *klass) GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); object_class->dispose = gcal_month_popover_dispose; - object_class->get_property = gcal_month_popover_get_property; - object_class->set_property = gcal_month_popover_set_property; widget_class->measure = gcal_month_popover_measure; widget_class->size_allocate = gcal_month_popover_size_allocate; widget_class->focus = gcal_month_popover_focus; - properties [PROP_CONTEXT] = g_param_spec_object ("context", - "Context", - "Context", - GCAL_TYPE_CONTEXT, - G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties (object_class, N_PROPS, properties); - signals[EVENT_ACTIVATED] = g_signal_new ("event-activated", GCAL_TYPE_MONTH_POPOVER, G_SIGNAL_RUN_FIRST, diff --git a/src/gui/views/gcal-month-view-row.c b/src/gui/views/gcal-month-view-row.c index 5f3ba76b..ae0fcda9 100644 --- a/src/gui/views/gcal-month-view-row.c +++ b/src/gui/views/gcal-month-view-row.c @@ -54,8 +54,6 @@ struct _GcalMonthViewRow GListStore *events; GHashTable *layout_blocks; gboolean layout_blocks_valid; - - GcalContext *context; }; static gint compare_events_cb (gconstpointer a, @@ -74,13 +72,6 @@ static gboolean widget_tick_cb (GtkWidget G_DEFINE_FINAL_TYPE (GcalMonthViewRow, gcal_month_view_row, GTK_TYPE_WIDGET) -enum -{ - PROP_0, - PROP_CONTEXT, - N_PROPS, -}; - enum { EVENT_ACTIVATED, @@ -90,7 +81,6 @@ enum }; static guint signals[N_SIGNALS] = { 0, }; -static GParamSpec *properties [N_PROPS]; /* @@ -654,6 +644,7 @@ prepare_layout_blocks (GcalMonthViewRow *self, static void recalculate_layout_blocks (GcalMonthViewRow *self) { + GcalContext *context; g_autoptr (GDateTime) range_start = NULL; guint events_at_weekday[N_WEEKDAYS] = { 0, }; guint n_events; @@ -664,6 +655,7 @@ recalculate_layout_blocks (GcalMonthViewRow *self) range_start = gcal_range_get_start (self->range); 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); @@ -690,7 +682,7 @@ recalculate_layout_blocks (GcalMonthViewRow *self) { GtkWidget *event_widget; - event_widget = gcal_event_widget_new (self->context, event); + event_widget = gcal_event_widget_new (context, 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); setup_child_widget (self, event_widget); @@ -1096,44 +1088,6 @@ gcal_month_view_row_finalize (GObject *object) G_OBJECT_CLASS (gcal_month_view_row_parent_class)->finalize (object); } -static void -gcal_month_view_row_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GcalMonthViewRow *self = GCAL_MONTH_VIEW_ROW (object); - - switch (prop_id) - { - case PROP_CONTEXT: - g_value_set_object (value, self->context); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - -static void -gcal_month_view_row_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GcalMonthViewRow *self = GCAL_MONTH_VIEW_ROW (object); - - switch (prop_id) - { - case PROP_CONTEXT: - gcal_month_view_row_set_context (self, g_value_get_object (value)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - } -} - static void gcal_month_view_row_class_init (GcalMonthViewRowClass *klass) { @@ -1142,22 +1096,12 @@ gcal_month_view_row_class_init (GcalMonthViewRowClass *klass) object_class->dispose = gcal_month_view_row_dispose; object_class->finalize = gcal_month_view_row_finalize; - object_class->get_property = gcal_month_view_row_get_property; - object_class->set_property = gcal_month_view_row_set_property; widget_class->map = gcal_month_view_row_map; widget_class->focus = gcal_month_view_row_focus; widget_class->measure = gcal_month_view_row_measure; widget_class->size_allocate = gcal_month_view_row_size_allocate; - properties[PROP_CONTEXT] = g_param_spec_object ("context", - "Context", - "The GcalContext of the application", - GCAL_TYPE_CONTEXT, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties (object_class, N_PROPS, properties); - signals[EVENT_ACTIVATED] = g_signal_new ("event-activated", GCAL_TYPE_MONTH_VIEW_ROW, G_SIGNAL_RUN_FIRST, @@ -1211,29 +1155,6 @@ gcal_month_view_row_new (void) return g_object_new (GCAL_TYPE_MONTH_VIEW_ROW, NULL); } -GcalContext* -gcal_month_view_row_get_context (GcalMonthViewRow *self) -{ - g_assert (GCAL_IS_MONTH_VIEW_ROW (self)); - - return self->context; -} - -void -gcal_month_view_row_set_context (GcalMonthViewRow *self, - GcalContext *context) -{ - g_assert (GCAL_IS_MONTH_VIEW_ROW (self)); - - if (g_set_object (&self->context, context)) - { - for (guint i = 0; i < N_WEEKDAYS; i++) - gcal_month_cell_set_context (GCAL_MONTH_CELL (self->day_cells[i]), context); - - g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_CONTEXT]); - } -} - GcalRange * gcal_month_view_row_get_range (GcalMonthViewRow *self) { diff --git a/src/gui/views/gcal-month-view-row.h b/src/gui/views/gcal-month-view-row.h index 44aa6dd5..e20e9d73 100644 --- a/src/gui/views/gcal-month-view-row.h +++ b/src/gui/views/gcal-month-view-row.h @@ -34,11 +34,6 @@ G_DECLARE_FINAL_TYPE (GcalMonthViewRow, gcal_month_view_row, GCAL, MONTH_VIEW_RO GtkWidget * gcal_month_view_row_new (void); -GcalContext * gcal_month_view_row_get_context (GcalMonthViewRow *self); - -void gcal_month_view_row_set_context (GcalMonthViewRow *self, - GcalContext *context); - GcalRange * gcal_month_view_row_get_range (GcalMonthViewRow *self); void gcal_month_view_row_set_range (GcalMonthViewRow *self, diff --git a/src/gui/views/gcal-month-view.c b/src/gui/views/gcal-month-view.c index 73ba3d67..6cb9d815 100644 --- a/src/gui/views/gcal-month-view.c +++ b/src/gui/views/gcal-month-view.c @@ -22,7 +22,6 @@ #define G_LOG_DOMAIN "GcalMonthView" #include "config.h" -#include "gcal-context.h" #include "gcal-debug.h" #include "gcal-month-cell.h" #include "gcal-month-popover.h" @@ -77,7 +76,6 @@ struct _GcalMonthView gdouble last_velocity; GDateTime *date; - GcalContext *context; GtkWidget *last_focused_widget; @@ -99,7 +97,6 @@ G_DEFINE_FINAL_TYPE_WITH_CODE (GcalMonthView, gcal_month_view, GTK_TYPE_WIDGET, enum { PROP_0, - PROP_CONTEXT, PROP_DATE, PROP_TIME_DIRECTION, N_PROPS, @@ -1834,7 +1831,6 @@ gcal_month_view_finalize (GObject *object) gcal_clear_date_time (&self->selection.start); gcal_clear_date_time (&self->selection.end); gcal_clear_date_time (&self->date); - g_clear_object (&self->context); G_OBJECT_CLASS (gcal_month_view_parent_class)->finalize (object); } @@ -1853,10 +1849,6 @@ gcal_month_view_get_property (GObject *object, g_value_set_boxed (value, self->date); break; - case PROP_CONTEXT: - g_value_set_object (value, self->context); - break; - case PROP_TIME_DIRECTION: g_value_set_enum (value, GTK_ORIENTATION_VERTICAL); break; @@ -1880,16 +1872,6 @@ gcal_month_view_set_property (GObject *object, gcal_view_set_date (GCAL_VIEW (self), g_value_get_boxed (value)); break; - case PROP_CONTEXT: - g_assert (self->context == NULL); - self->context = g_value_dup_object (value); - - for (gint i = 0; i < N_TOTAL_ROWS; i++) - gcal_month_view_row_set_context (g_ptr_array_index (self->week_rows, i), self->context); - - g_object_notify (object, "context"); - break; - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } @@ -1911,7 +1893,6 @@ gcal_month_view_class_init (GcalMonthViewClass *klass) widget_class->size_allocate = gcal_month_view_size_allocate; widget_class->snapshot = gcal_month_view_snapshot; - g_object_class_override_property (object_class, PROP_CONTEXT, "context"); g_object_class_override_property (object_class, PROP_DATE, "active-date"); g_object_class_override_property (object_class, PROP_TIME_DIRECTION, "time-direction"); @@ -1971,7 +1952,6 @@ gcal_month_view_init (GcalMonthView *self) /* Overflow popover */ self->overflow.popover = gcal_month_popover_new (); - g_object_bind_property (self, "context", self->overflow.popover, "context", G_BINDING_DEFAULT); g_signal_connect (self->overflow.popover, "event-activated", G_CALLBACK (on_month_popover_event_activated_cb), self); g_signal_connect (self->overflow.popover, "closed", G_CALLBACK (on_month_popover_closed_cb), self);