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:
+22
-42
@@ -24,7 +24,6 @@
|
||||
|
||||
#include "gcal-fading-label.h"
|
||||
#include "gcal-application.h"
|
||||
#include "gcal-context.h"
|
||||
#include "gcal-clock.h"
|
||||
#include "gcal-debug.h"
|
||||
#include "gcal-event-popover.h"
|
||||
@@ -74,14 +73,11 @@ struct _GcalEventWidget
|
||||
|
||||
gint old_width;
|
||||
gint old_height;
|
||||
|
||||
GcalContext *context;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
PROP_CONTEXT,
|
||||
PROP_EVENT,
|
||||
PROP_TIMESTAMP_POLICY,
|
||||
PROP_ORIENTATION,
|
||||
@@ -250,6 +246,7 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self,
|
||||
GString *tooltip_mesg;
|
||||
gboolean allday, multiday, is_ltr;
|
||||
guint description_len;
|
||||
GcalContext *context;
|
||||
|
||||
tooltip_mesg = g_string_new (NULL);
|
||||
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
|
||||
{
|
||||
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||
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));
|
||||
|
||||
if (multiday)
|
||||
{
|
||||
switch (gcal_context_get_time_format (self->context))
|
||||
switch (gcal_context_get_time_format (context))
|
||||
{
|
||||
case GCAL_TIME_FORMAT_24H:
|
||||
if (is_ltr)
|
||||
@@ -315,7 +313,7 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self,
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (gcal_context_get_time_format (self->context))
|
||||
switch (gcal_context_get_time_format (context))
|
||||
{
|
||||
case GCAL_TIME_FORMAT_24H:
|
||||
if (is_ltr)
|
||||
@@ -445,10 +443,12 @@ static void
|
||||
gcal_event_widget_update_timestamp (GcalEventWidget *self)
|
||||
{
|
||||
g_autofree gchar *timestamp_str = NULL;
|
||||
GcalContext *context;
|
||||
|
||||
if (GCAL_IS_EVENT (self->event) &&
|
||||
self->timestamp_policy != GCAL_TIMESTAMP_POLICY_NONE)
|
||||
{
|
||||
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||
g_autoptr (GDateTime) time = NULL;
|
||||
|
||||
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
|
||||
*/
|
||||
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");
|
||||
else
|
||||
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.
|
||||
*/
|
||||
|
||||
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||
|
||||
/* The event spawns with a floating reference, and we take it's ownership */
|
||||
g_set_object (&self->event, event);
|
||||
|
||||
@@ -512,7 +514,7 @@ gcal_event_widget_set_event_internal (GcalEventWidget *self,
|
||||
self,
|
||||
G_CONNECT_SWAPPED);
|
||||
|
||||
g_signal_connect_object (self->context,
|
||||
g_signal_connect_object (context,
|
||||
"notify::time-format",
|
||||
G_CALLBACK (gcal_event_widget_update_timestamp),
|
||||
self,
|
||||
@@ -671,17 +673,6 @@ gcal_event_widget_set_property (GObject *object,
|
||||
|
||||
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:
|
||||
gcal_event_widget_set_event_internal (self, g_value_get_object (value));
|
||||
break;
|
||||
@@ -713,10 +704,6 @@ gcal_event_widget_get_property (GObject *object,
|
||||
|
||||
switch (property_id)
|
||||
{
|
||||
case PROP_CONTEXT:
|
||||
g_value_set_object (value, self->context);
|
||||
break;
|
||||
|
||||
case PROP_EVENT:
|
||||
g_value_set_object (value, self->event);
|
||||
break;
|
||||
@@ -760,7 +747,6 @@ gcal_event_widget_finalize (GObject *object)
|
||||
/* releasing properties */
|
||||
g_clear_pointer (&self->css_class, g_free);
|
||||
g_clear_object (&self->event);
|
||||
g_clear_object (&self->context);
|
||||
|
||||
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->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:
|
||||
*
|
||||
@@ -886,6 +859,8 @@ gcal_event_widget_class_init (GcalEventWidgetClass *klass)
|
||||
static void
|
||||
gcal_event_widget_init (GcalEventWidget *self)
|
||||
{
|
||||
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||
|
||||
g_type_ensure (GCAL_TYPE_OVERFLOW_BIN);
|
||||
|
||||
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_STATE_PRESSED, FALSE,
|
||||
-1);
|
||||
|
||||
g_signal_connect_object (gcal_context_get_clock (context),
|
||||
"minute-changed",
|
||||
G_CALLBACK (update_color),
|
||||
self,
|
||||
G_CONNECT_SWAPPED);
|
||||
}
|
||||
|
||||
GtkWidget*
|
||||
gcal_event_widget_new (GcalContext *context,
|
||||
GcalEvent *event)
|
||||
gcal_event_widget_new (GcalEvent *event)
|
||||
{
|
||||
return g_object_new (GCAL_TYPE_EVENT_WIDGET,
|
||||
"context", context,
|
||||
"event", event,
|
||||
NULL);
|
||||
}
|
||||
@@ -1055,6 +1034,7 @@ gcal_event_widget_show_preview (GcalEventWidget *self,
|
||||
GcalEventPreviewCallback callback,
|
||||
gpointer user_data)
|
||||
{
|
||||
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||
PreviewData *data;
|
||||
|
||||
GCAL_ENTRY;
|
||||
@@ -1066,7 +1046,7 @@ gcal_event_widget_show_preview (GcalEventWidget *self,
|
||||
data->callback = callback;
|
||||
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);
|
||||
|
||||
gtk_widget_set_parent (self->preview_popover, GTK_WIDGET (self));
|
||||
@@ -1099,7 +1079,7 @@ gcal_event_widget_get_event (GcalEventWidget *self)
|
||||
GtkWidget*
|
||||
gcal_event_widget_clone (GcalEventWidget *widget)
|
||||
{
|
||||
return gcal_event_widget_new (widget->context, widget->event);
|
||||
return gcal_event_widget_new (widget->event);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -39,8 +39,7 @@ typedef void (*GcalEventPreviewCallback) (GcalEventWidge
|
||||
GcalEventPreviewAction action,
|
||||
gpointer user_data);
|
||||
|
||||
GtkWidget* gcal_event_widget_new (GcalContext *context,
|
||||
GcalEvent *event);
|
||||
GtkWidget* gcal_event_widget_new (GcalEvent *event);
|
||||
|
||||
GcalEvent* gcal_event_widget_get_event (GcalEventWidget *self);
|
||||
|
||||
|
||||
@@ -601,7 +601,6 @@ gcal_agenda_view_add_event (GcalTimelineSubscriber *subscriber,
|
||||
g_autoptr (GDateTime) event_date = gcal_event_get_date_start (event);
|
||||
GtkWidget *widget, *row;
|
||||
GcalTimestampPolicy timestamp_policy;
|
||||
GcalContext *context;
|
||||
|
||||
GCAL_ENTRY;
|
||||
|
||||
@@ -623,10 +622,7 @@ gcal_agenda_view_add_event (GcalTimelineSubscriber *subscriber,
|
||||
else
|
||||
timestamp_policy = GCAL_TIMESTAMP_POLICY_START;
|
||||
|
||||
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||
|
||||
widget = g_object_new (GCAL_TYPE_EVENT_WIDGET,
|
||||
"context", context,
|
||||
"event", event,
|
||||
"orientation", GTK_ORIENTATION_VERTICAL,
|
||||
"timestamp-policy", timestamp_policy,
|
||||
|
||||
@@ -111,7 +111,7 @@ update_event_list (GcalMonthPopover *self)
|
||||
|
||||
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);
|
||||
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);
|
||||
|
||||
@@ -644,7 +644,6 @@ 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;
|
||||
@@ -655,7 +654,6 @@ 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);
|
||||
|
||||
@@ -682,7 +680,7 @@ recalculate_layout_blocks (GcalMonthViewRow *self)
|
||||
{
|
||||
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))
|
||||
gcal_event_widget_set_timestamp_policy (GCAL_EVENT_WIDGET (event_widget), GCAL_TIMESTAMP_POLICY_START);
|
||||
setup_child_widget (self, event_widget);
|
||||
|
||||
@@ -912,7 +912,6 @@ void
|
||||
gcal_week_grid_add_event (GcalWeekGrid *self,
|
||||
GcalEvent *event)
|
||||
{
|
||||
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||
GtkWidget *widget;
|
||||
|
||||
g_return_if_fail (GCAL_IS_WEEK_GRID (self));
|
||||
@@ -920,7 +919,6 @@ gcal_week_grid_add_event (GcalWeekGrid *self,
|
||||
g_object_ref (event);
|
||||
|
||||
widget = g_object_new (GCAL_TYPE_EVENT_WIDGET,
|
||||
"context", context,
|
||||
"event", event,
|
||||
"orientation", GTK_ORIENTATION_VERTICAL,
|
||||
"timestamp-policy", GCAL_TIMESTAMP_POLICY_START,
|
||||
|
||||
@@ -785,7 +785,6 @@ add_event_to_grid (GcalWeekHeader *self,
|
||||
gint start,
|
||||
gint end)
|
||||
{
|
||||
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||
g_autoptr (GDateTime) week_start = NULL;
|
||||
g_autoptr (GDateTime) week_end = NULL;
|
||||
GtkLayoutManager *layout_manager;
|
||||
@@ -803,7 +802,7 @@ add_event_to_grid (GcalWeekHeader *self,
|
||||
move_events_at_column (self, DOWN, start, position);
|
||||
|
||||
/* Add the event to the grid */
|
||||
widget = gcal_event_widget_new (context, event);
|
||||
widget = gcal_event_widget_new (event);
|
||||
setup_event_widget (self, widget);
|
||||
|
||||
gtk_grid_attach (self->grid,
|
||||
|
||||
Reference in New Issue
Block a user