views/month-view: Replace "context" property with context getter method
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
This commit is contained in:
@@ -1225,7 +1225,6 @@ gcal_window_constructed (GObject *object)
|
|||||||
* FIXME: this is a hack around the issue that happens when trying to bind
|
* FIXME: this is a hack around the issue that happens when trying to bind
|
||||||
* these properties using the GtkBuilder .ui file.
|
* 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->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->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);
|
g_object_bind_property (self, "context", self->event_editor, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
|
||||||
|
|||||||
+23
-106
@@ -20,7 +20,6 @@
|
|||||||
#define G_LOG_DOMAIN "GcalMonthCell"
|
#define G_LOG_DOMAIN "GcalMonthCell"
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "gcal-application.h"
|
|
||||||
#include "gcal-clock.h"
|
#include "gcal-clock.h"
|
||||||
#include "gcal-debug.h"
|
#include "gcal-debug.h"
|
||||||
#include "gcal-event-widget.h"
|
#include "gcal-event-widget.h"
|
||||||
@@ -50,8 +49,6 @@ struct _GcalMonthCell
|
|||||||
gboolean different_month;
|
gboolean different_month;
|
||||||
gboolean selected;
|
gboolean selected;
|
||||||
|
|
||||||
GcalContext *context;
|
|
||||||
|
|
||||||
GcalWeatherInfo *weather_info;
|
GcalWeatherInfo *weather_info;
|
||||||
|
|
||||||
GBinding *icon_tooltip_binding;
|
GBinding *icon_tooltip_binding;
|
||||||
@@ -66,15 +63,7 @@ enum
|
|||||||
N_SIGNALS
|
N_SIGNALS
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
PROP_0,
|
|
||||||
PROP_CONTEXT,
|
|
||||||
N_PROPS
|
|
||||||
};
|
|
||||||
|
|
||||||
static guint signals[N_SIGNALS] = { 0, };
|
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 (GcalEvent) changed_event = NULL;
|
||||||
g_autoptr (GDateTime) start_dt = NULL;
|
g_autoptr (GDateTime) start_dt = NULL;
|
||||||
GTimeSpan timespan = 0;
|
GTimeSpan timespan = 0;
|
||||||
|
GcalContext *context;
|
||||||
GDateTime *end_dt;
|
GDateTime *end_dt;
|
||||||
gint diff;
|
gint diff;
|
||||||
gint start_month, current_month;
|
gint start_month, current_month;
|
||||||
@@ -173,21 +163,20 @@ move_event (GcalMonthCell *self,
|
|||||||
gcal_event_set_date_end (changed_event, new_end);
|
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
|
static void
|
||||||
update_weather (GcalMonthCell *self)
|
update_weather (GcalMonthCell *self)
|
||||||
{
|
{
|
||||||
|
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||||
GcalWeatherService *weather_service;
|
GcalWeatherService *weather_service;
|
||||||
GcalWeatherInfo *weather_info;
|
GcalWeatherInfo *weather_info;
|
||||||
GDate date;
|
GDate date;
|
||||||
gint day_of_month;
|
gint day_of_month;
|
||||||
|
|
||||||
if (!self->context)
|
|
||||||
return;
|
|
||||||
|
|
||||||
day_of_month = g_date_time_get_day_of_month (self->date);
|
day_of_month = g_date_time_get_day_of_month (self->date);
|
||||||
|
|
||||||
g_date_set_dmy (&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_month (self->date),
|
||||||
g_date_time_get_year (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);
|
weather_info = gcal_weather_service_get_weather_info_for_date (weather_service, &date);
|
||||||
|
|
||||||
g_assert (!weather_info || GCAL_IS_WEATHER_INFO (weather_info));
|
g_assert (!weather_info || GCAL_IS_WEATHER_INFO (weather_info));
|
||||||
@@ -370,58 +359,17 @@ static void
|
|||||||
gcal_month_cell_dispose (GObject *object)
|
gcal_month_cell_dispose (GObject *object)
|
||||||
{
|
{
|
||||||
GcalMonthCell *self = (GcalMonthCell *)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_weather_service_release (weather_service);
|
||||||
|
|
||||||
gcal_clear_date_time (&self->date);
|
gcal_clear_date_time (&self->date);
|
||||||
g_clear_object (&self->context);
|
|
||||||
g_clear_pointer (&self->breakpoint_bin, gtk_widget_unparent);
|
g_clear_pointer (&self->breakpoint_bin, gtk_widget_unparent);
|
||||||
|
|
||||||
G_OBJECT_CLASS (gcal_month_cell_parent_class)->dispose (object);
|
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
|
static void
|
||||||
gcal_month_cell_class_init (GcalMonthCellClass *klass)
|
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);
|
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
||||||
|
|
||||||
object_class->dispose = gcal_month_cell_dispose;
|
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;
|
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_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);
|
gtk_widget_class_bind_template_child (widget_class, GcalMonthCell, breakpoint_bin);
|
||||||
@@ -506,6 +444,7 @@ gcal_month_cell_class_init (GcalMonthCellClass *klass)
|
|||||||
static void
|
static void
|
||||||
gcal_month_cell_init (GcalMonthCell *self)
|
gcal_month_cell_init (GcalMonthCell *self)
|
||||||
{
|
{
|
||||||
|
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||||
GtkDropTarget *drop_target;
|
GtkDropTarget *drop_target;
|
||||||
|
|
||||||
gtk_widget_init_template (GTK_WIDGET (self));
|
gtk_widget_init_template (GTK_WIDGET (self));
|
||||||
@@ -517,6 +456,21 @@ gcal_month_cell_init (GcalMonthCell *self)
|
|||||||
|
|
||||||
g_signal_connect_swapped (self->breakpoint_bin,
|
g_signal_connect_swapped (self->breakpoint_bin,
|
||||||
"notify::current-breakpoint", G_CALLBACK (on_breakpoint_changed_cb), self);
|
"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*
|
GtkWidget*
|
||||||
@@ -568,43 +522,6 @@ gcal_month_cell_set_date (GcalMonthCell *self,
|
|||||||
update_weather (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
|
guint
|
||||||
gcal_month_cell_get_overflow (GcalMonthCell *self)
|
gcal_month_cell_get_overflow (GcalMonthCell *self)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -36,11 +36,6 @@ GDateTime* gcal_month_cell_get_date (GcalMonthCell
|
|||||||
void gcal_month_cell_set_date (GcalMonthCell *self,
|
void gcal_month_cell_set_date (GcalMonthCell *self,
|
||||||
GDateTime *date);
|
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);
|
guint gcal_month_cell_get_overflow (GcalMonthCell *self);
|
||||||
|
|
||||||
void gcal_month_cell_set_overflow (GcalMonthCell *self,
|
void gcal_month_cell_set_overflow (GcalMonthCell *self,
|
||||||
|
|||||||
@@ -38,8 +38,6 @@ struct _GcalMonthPopover
|
|||||||
GtkWidget *main_box;
|
GtkWidget *main_box;
|
||||||
GtkButton *new_event_button;
|
GtkButton *new_event_button;
|
||||||
|
|
||||||
GcalContext *context;
|
|
||||||
|
|
||||||
GDateTime *date;
|
GDateTime *date;
|
||||||
AdwAnimation *animation;
|
AdwAnimation *animation;
|
||||||
|
|
||||||
@@ -51,13 +49,6 @@ static void event_activated_cb (GcalEventWidge
|
|||||||
|
|
||||||
G_DEFINE_TYPE (GcalMonthPopover, gcal_month_popover, GTK_TYPE_WIDGET)
|
G_DEFINE_TYPE (GcalMonthPopover, gcal_month_popover, GTK_TYPE_WIDGET)
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
PROP_0,
|
|
||||||
PROP_CONTEXT,
|
|
||||||
N_PROPS,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
EVENT_ACTIVATED,
|
EVENT_ACTIVATED,
|
||||||
@@ -66,7 +57,6 @@ enum
|
|||||||
};
|
};
|
||||||
|
|
||||||
static guint signals[LAST_SIGNAL] = { 0, };
|
static guint signals[LAST_SIGNAL] = { 0, };
|
||||||
static GParamSpec *properties [N_PROPS] = { NULL, };
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -76,6 +66,7 @@ static GParamSpec *properties [N_PROPS] = { NULL, };
|
|||||||
static void
|
static void
|
||||||
update_event_list (GcalMonthPopover *self)
|
update_event_list (GcalMonthPopover *self)
|
||||||
{
|
{
|
||||||
|
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||||
g_autoptr (GDateTime) start_dt = NULL;
|
g_autoptr (GDateTime) start_dt = NULL;
|
||||||
g_autoptr (GDateTime) end_dt = NULL;
|
g_autoptr (GDateTime) end_dt = NULL;
|
||||||
g_autoptr (GPtrArray) events = NULL;
|
g_autoptr (GPtrArray) events = NULL;
|
||||||
@@ -94,7 +85,7 @@ update_event_list (GcalMonthPopover *self)
|
|||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
end_dt = g_date_time_add_days (start_dt, 1);
|
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++)
|
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_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);
|
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);
|
||||||
@@ -377,44 +368,6 @@ gcal_month_popover_focus (GtkWidget *widget,
|
|||||||
* GObject overrides
|
* 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
|
static void
|
||||||
gcal_month_popover_dispose (GObject *object)
|
gcal_month_popover_dispose (GObject *object)
|
||||||
{
|
{
|
||||||
@@ -434,21 +387,11 @@ gcal_month_popover_class_init (GcalMonthPopoverClass *klass)
|
|||||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
||||||
|
|
||||||
object_class->dispose = gcal_month_popover_dispose;
|
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->measure = gcal_month_popover_measure;
|
||||||
widget_class->size_allocate = gcal_month_popover_size_allocate;
|
widget_class->size_allocate = gcal_month_popover_size_allocate;
|
||||||
widget_class->focus = gcal_month_popover_focus;
|
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",
|
signals[EVENT_ACTIVATED] = g_signal_new ("event-activated",
|
||||||
GCAL_TYPE_MONTH_POPOVER,
|
GCAL_TYPE_MONTH_POPOVER,
|
||||||
G_SIGNAL_RUN_FIRST,
|
G_SIGNAL_RUN_FIRST,
|
||||||
|
|||||||
@@ -54,8 +54,6 @@ struct _GcalMonthViewRow
|
|||||||
GListStore *events;
|
GListStore *events;
|
||||||
GHashTable *layout_blocks;
|
GHashTable *layout_blocks;
|
||||||
gboolean layout_blocks_valid;
|
gboolean layout_blocks_valid;
|
||||||
|
|
||||||
GcalContext *context;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static gint compare_events_cb (gconstpointer a,
|
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)
|
G_DEFINE_FINAL_TYPE (GcalMonthViewRow, gcal_month_view_row, GTK_TYPE_WIDGET)
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
PROP_0,
|
|
||||||
PROP_CONTEXT,
|
|
||||||
N_PROPS,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
EVENT_ACTIVATED,
|
EVENT_ACTIVATED,
|
||||||
@@ -90,7 +81,6 @@ enum
|
|||||||
};
|
};
|
||||||
|
|
||||||
static guint signals[N_SIGNALS] = { 0, };
|
static guint signals[N_SIGNALS] = { 0, };
|
||||||
static GParamSpec *properties [N_PROPS];
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -654,6 +644,7 @@ 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;
|
||||||
@@ -664,6 +655,7 @@ 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);
|
||||||
|
|
||||||
@@ -690,7 +682,7 @@ recalculate_layout_blocks (GcalMonthViewRow *self)
|
|||||||
{
|
{
|
||||||
GtkWidget *event_widget;
|
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))
|
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);
|
||||||
@@ -1096,44 +1088,6 @@ gcal_month_view_row_finalize (GObject *object)
|
|||||||
G_OBJECT_CLASS (gcal_month_view_row_parent_class)->finalize (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
|
static void
|
||||||
gcal_month_view_row_class_init (GcalMonthViewRowClass *klass)
|
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->dispose = gcal_month_view_row_dispose;
|
||||||
object_class->finalize = gcal_month_view_row_finalize;
|
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->map = gcal_month_view_row_map;
|
||||||
widget_class->focus = gcal_month_view_row_focus;
|
widget_class->focus = gcal_month_view_row_focus;
|
||||||
widget_class->measure = gcal_month_view_row_measure;
|
widget_class->measure = gcal_month_view_row_measure;
|
||||||
widget_class->size_allocate = gcal_month_view_row_size_allocate;
|
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",
|
signals[EVENT_ACTIVATED] = g_signal_new ("event-activated",
|
||||||
GCAL_TYPE_MONTH_VIEW_ROW,
|
GCAL_TYPE_MONTH_VIEW_ROW,
|
||||||
G_SIGNAL_RUN_FIRST,
|
G_SIGNAL_RUN_FIRST,
|
||||||
@@ -1211,29 +1155,6 @@ gcal_month_view_row_new (void)
|
|||||||
return g_object_new (GCAL_TYPE_MONTH_VIEW_ROW, NULL);
|
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 *
|
GcalRange *
|
||||||
gcal_month_view_row_get_range (GcalMonthViewRow *self)
|
gcal_month_view_row_get_range (GcalMonthViewRow *self)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -34,11 +34,6 @@ G_DECLARE_FINAL_TYPE (GcalMonthViewRow, gcal_month_view_row, GCAL, MONTH_VIEW_RO
|
|||||||
|
|
||||||
GtkWidget * gcal_month_view_row_new (void);
|
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);
|
GcalRange * gcal_month_view_row_get_range (GcalMonthViewRow *self);
|
||||||
|
|
||||||
void gcal_month_view_row_set_range (GcalMonthViewRow *self,
|
void gcal_month_view_row_set_range (GcalMonthViewRow *self,
|
||||||
|
|||||||
@@ -22,7 +22,6 @@
|
|||||||
#define G_LOG_DOMAIN "GcalMonthView"
|
#define G_LOG_DOMAIN "GcalMonthView"
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "gcal-context.h"
|
|
||||||
#include "gcal-debug.h"
|
#include "gcal-debug.h"
|
||||||
#include "gcal-month-cell.h"
|
#include "gcal-month-cell.h"
|
||||||
#include "gcal-month-popover.h"
|
#include "gcal-month-popover.h"
|
||||||
@@ -77,7 +76,6 @@ struct _GcalMonthView
|
|||||||
gdouble last_velocity;
|
gdouble last_velocity;
|
||||||
|
|
||||||
GDateTime *date;
|
GDateTime *date;
|
||||||
GcalContext *context;
|
|
||||||
|
|
||||||
GtkWidget *last_focused_widget;
|
GtkWidget *last_focused_widget;
|
||||||
|
|
||||||
@@ -99,7 +97,6 @@ G_DEFINE_FINAL_TYPE_WITH_CODE (GcalMonthView, gcal_month_view, GTK_TYPE_WIDGET,
|
|||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_CONTEXT,
|
|
||||||
PROP_DATE,
|
PROP_DATE,
|
||||||
PROP_TIME_DIRECTION,
|
PROP_TIME_DIRECTION,
|
||||||
N_PROPS,
|
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.start);
|
||||||
gcal_clear_date_time (&self->selection.end);
|
gcal_clear_date_time (&self->selection.end);
|
||||||
gcal_clear_date_time (&self->date);
|
gcal_clear_date_time (&self->date);
|
||||||
g_clear_object (&self->context);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (gcal_month_view_parent_class)->finalize (object);
|
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);
|
g_value_set_boxed (value, self->date);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_CONTEXT:
|
|
||||||
g_value_set_object (value, self->context);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PROP_TIME_DIRECTION:
|
case PROP_TIME_DIRECTION:
|
||||||
g_value_set_enum (value, GTK_ORIENTATION_VERTICAL);
|
g_value_set_enum (value, GTK_ORIENTATION_VERTICAL);
|
||||||
break;
|
break;
|
||||||
@@ -1880,16 +1872,6 @@ gcal_month_view_set_property (GObject *object,
|
|||||||
gcal_view_set_date (GCAL_VIEW (self), g_value_get_boxed (value));
|
gcal_view_set_date (GCAL_VIEW (self), g_value_get_boxed (value));
|
||||||
break;
|
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:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
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->size_allocate = gcal_month_view_size_allocate;
|
||||||
widget_class->snapshot = gcal_month_view_snapshot;
|
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_DATE, "active-date");
|
||||||
g_object_class_override_property (object_class, PROP_TIME_DIRECTION, "time-direction");
|
g_object_class_override_property (object_class, PROP_TIME_DIRECTION, "time-direction");
|
||||||
|
|
||||||
@@ -1971,7 +1952,6 @@ gcal_month_view_init (GcalMonthView *self)
|
|||||||
|
|
||||||
/* Overflow popover */
|
/* Overflow popover */
|
||||||
self->overflow.popover = gcal_month_popover_new ();
|
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, "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);
|
g_signal_connect (self->overflow.popover, "closed", G_CALLBACK (on_month_popover_closed_cb), self);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user