view: Replace the manager property by the context

This commit is contained in:
Georges Basile Stavracas Neto
2019-04-25 16:30:55 -03:00
parent 8366d22cf0
commit c175599550
13 changed files with 118 additions and 106 deletions
+3 -3
View File
@@ -1259,10 +1259,10 @@ gcal_window_constructed (GObject *object)
*/
g_object_bind_property (self, "context", self->weather_settings, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self, "context", self->source_dialog, "context", G_BINDING_DEFAULT);
g_object_bind_property (self, "context", self->week_view, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self, "context", self->month_view, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self, "context", self->year_view, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self->context, "manager", self->edit_dialog, "manager", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self->context, "manager", self->week_view, "manager", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self->context, "manager", self->month_view, "manager", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self->context, "manager", self->year_view, "manager", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self->context, "manager", self->quick_add_popover, "manager", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self, "time-format", self->edit_dialog, "time-format", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
g_object_bind_property (self, "time-format", self->search_popover, "time-format", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
+19 -19
View File
@@ -49,7 +49,7 @@ struct _GcalMonthCell
gboolean hovered : 1;
gboolean pressed : 1;
GcalManager *manager;
GcalContext *context;
GcalWeatherInfo *weather_info;
};
@@ -65,7 +65,7 @@ enum
enum
{
PROP_0,
PROP_MANAGER,
PROP_CONTEXT,
N_PROPS
};
@@ -271,7 +271,7 @@ gcal_month_cell_drag_drop (GtkWidget *widget,
g_clear_pointer (&new_end, g_date_time_unref);
}
gcal_manager_update_event (self->manager, event, mod);
gcal_manager_update_event (gcal_context_get_manager (self->context), event, mod);
}
g_clear_pointer (&start_dt, g_date_time_unref);
@@ -348,7 +348,7 @@ gcal_month_cell_finalize (GObject *object)
GcalMonthCell *self = (GcalMonthCell *)object;
gcal_clear_datetime (&self->date);
g_clear_object (&self->manager);
g_clear_object (&self->context);
G_OBJECT_CLASS (gcal_month_cell_parent_class)->finalize (object);
}
@@ -364,8 +364,8 @@ gcal_month_cell_set_property (GObject *object,
switch (property_id)
{
case PROP_MANAGER:
gcal_month_cell_set_manager (self, g_value_get_object (value));
case PROP_CONTEXT:
gcal_month_cell_set_context (self, g_value_get_object (value));
break;
default:
@@ -384,8 +384,8 @@ gcal_month_cell_get_property (GObject *object,
switch (property_id)
{
case PROP_MANAGER:
g_value_set_object (value, self->manager);
case PROP_CONTEXT:
g_value_set_object (value, self->context);
break;
default:
@@ -419,10 +419,10 @@ gcal_month_cell_class_init (GcalMonthCellClass *klass)
1,
GTK_TYPE_WIDGET);
properties[PROP_MANAGER] = g_param_spec_object ("manager",
"Manager",
"The GcalManager of the application",
GCAL_TYPE_MANAGER,
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);
@@ -576,22 +576,22 @@ gcal_month_cell_set_different_month (GcalMonthCell *self,
gtk_style_context_remove_class (context, "out-of-month");
}
GcalManager*
gcal_month_cell_get_manager (GcalMonthCell *self)
GcalContext*
gcal_month_cell_get_context (GcalMonthCell *self)
{
g_return_val_if_fail (GCAL_IS_MONTH_CELL (self), NULL);
return self->manager;
return self->context;
}
void
gcal_month_cell_set_manager (GcalMonthCell *self,
GcalManager *manager)
gcal_month_cell_set_context (GcalMonthCell *self,
GcalContext *context)
{
g_return_if_fail (GCAL_IS_MONTH_CELL (self));
if (g_set_object (&self->manager, manager))
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_MANAGER]);
if (g_set_object (&self->context, context))
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_CONTEXT]);
}
guint
+4 -4
View File
@@ -19,7 +19,7 @@
#ifndef GCAL_MONTH_CELL_H
#define GCAL_MONTH_CELL_H
#include "gcal-manager.h"
#include "gcal-context.h"
#include "gcal-weather-info.h"
#include <gtk/gtk.h>
@@ -45,10 +45,10 @@ gboolean gcal_month_cell_get_different_month (GcalMonthCell
void gcal_month_cell_set_different_month (GcalMonthCell *self,
gboolean out);
GcalManager* gcal_month_cell_get_manager (GcalMonthCell *self);
GcalContext* gcal_month_cell_get_context (GcalMonthCell *self);
void gcal_month_cell_set_manager (GcalMonthCell *self,
GcalManager *manager);
void gcal_month_cell_set_context (GcalMonthCell *self,
GcalContext *context);
guint gcal_month_cell_get_overflow (GcalMonthCell *self);
+13 -12
View File
@@ -18,6 +18,7 @@
#define G_LOG_DOMAIN "GcalMonthPopover"
#include "gcal-context.h"
#include "gcal-debug.h"
#include "gcal-event-widget.h"
#include "gcal-month-popover.h"
@@ -40,7 +41,7 @@ struct _GcalMonthPopover
GtkWidget *relative_to;
GtkWindow *transient_for;
GcalManager *manager;
GcalContext *context;
DzlAnimation *opacity_animation;
DzlAnimation *position_animation;
@@ -65,7 +66,7 @@ G_DEFINE_TYPE (GcalMonthPopover, gcal_month_popover, GTK_TYPE_WINDOW)
enum
{
PROP_0,
PROP_MANAGER,
PROP_CONTEXT,
PROP_RELATIVE_TO,
PROP_X,
PROP_Y,
@@ -319,7 +320,7 @@ update_event_list (GcalMonthPopover *self)
start = datetime_to_icaltime (start_dt);
end = datetime_to_icaltime (end_dt);
events = gcal_manager_get_events (self->manager, start, end);
events = gcal_manager_get_events (gcal_context_get_manager (self->context), start, end);
for (l = events; l; l = l->next)
{
@@ -608,8 +609,8 @@ gcal_month_popover_get_property (GObject *object,
switch (prop_id)
{
case PROP_MANAGER:
g_value_set_object (value, self->manager);
case PROP_CONTEXT:
g_value_set_object (value, self->context);
break;
case PROP_RELATIVE_TO:
@@ -639,8 +640,8 @@ gcal_month_popover_set_property (GObject *object,
switch (prop_id)
{
case PROP_MANAGER:
self->manager = g_value_dup_object (value);
case PROP_CONTEXT:
self->context = g_value_dup_object (value);
break;
case PROP_RELATIVE_TO:
@@ -678,11 +679,11 @@ gcal_month_popover_class_init (GcalMonthPopoverClass *klass)
widget_class->show = gcal_month_popover_show;
widget_class->realize = gcal_month_popover_realize;
properties [PROP_MANAGER] = g_param_spec_object ("manager",
"Manager",
"Manager",
GCAL_TYPE_MANAGER,
(G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
properties [PROP_CONTEXT] = g_param_spec_object ("context",
"Context",
"Context",
GCAL_TYPE_CONTEXT,
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS);
properties [PROP_RELATIVE_TO] = g_param_spec_object ("relative-to",
"Relative To",
+13 -12
View File
@@ -23,6 +23,7 @@
#include "e-cal-data-model-subscriber.h"
#include "gcal-application.h"
#include "gcal-clock.h"
#include "gcal-context.h"
#include "gcal-debug.h"
#include "gcal-month-cell.h"
#include "gcal-month-popover.h"
@@ -119,7 +120,7 @@ struct _GcalMonthView
/* property */
icaltimetype *date;
GcalManager *manager;
GcalContext *context;
GcalWeatherService *weather_service;
@@ -156,7 +157,7 @@ enum
{
PROP_0,
PROP_DATE,
PROP_MANAGER,
PROP_CONTEXT,
PROP_WEATHER_SERVICE,
N_PROPS
};
@@ -2087,13 +2088,13 @@ gcal_month_view_set_property (GObject *object,
gcal_view_set_date (GCAL_VIEW (object), g_value_get_boxed (value));
break;
case PROP_MANAGER:
self->manager = g_value_dup_object (value);
case PROP_CONTEXT:
self->context = g_value_dup_object (value);
for (i = 0; i < 42; i++)
gcal_month_cell_set_manager (GCAL_MONTH_CELL (self->month_cell[i / 7][i % 7]), self->manager);
gcal_month_cell_set_context (GCAL_MONTH_CELL (self->month_cell[i / 7][i % 7]), self->context);
g_object_notify (object, "manager");
g_object_notify (object, "context");
break;
case PROP_WEATHER_SERVICE:
@@ -2124,8 +2125,8 @@ gcal_month_view_get_property (GObject *object,
g_value_set_boxed (value, self->date);
break;
case PROP_MANAGER:
g_value_set_object (value, self->manager);
case PROP_CONTEXT:
g_value_set_object (value, self->context);
break;
case PROP_WEATHER_SERVICE:
@@ -2149,7 +2150,7 @@ gcal_month_view_finalize (GObject *object)
g_clear_pointer (&self->overflow_cells, g_hash_table_destroy);
g_clear_pointer (&self->multi_cell_children, g_list_free);
g_clear_object (&self->manager);
g_clear_object (&self->context);
g_clear_object (&self->weather_service);
if (self->update_grid_id > 0)
@@ -2193,7 +2194,7 @@ gcal_month_view_class_init (GcalMonthViewClass *klass)
container_class->forall = gcal_month_view_forall;
g_object_class_override_property (object_class, PROP_DATE, "active-date");
g_object_class_override_property (object_class, PROP_MANAGER, "manager");
g_object_class_override_property (object_class, PROP_CONTEXT, "context");
g_object_class_override_property (object_class, PROP_WEATHER_SERVICE, "weather-service");
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/month-view.ui");
@@ -2248,9 +2249,9 @@ gcal_month_view_init (GcalMonthView *self)
self->overflow_popover = (GcalMonthPopover*) gcal_month_popover_new ();
g_object_bind_property (self,
"manager",
"context",
self->overflow_popover,
"manager",
"context",
G_BINDING_DEFAULT);
g_signal_connect (self->overflow_popover, "event-activated", G_CALLBACK (on_month_popover_event_activated_cb), self);
+13 -13
View File
@@ -49,10 +49,10 @@ gcal_view_default_init (GcalViewInterface *iface)
* The #GcalManager of the view.
*/
g_object_interface_install_property (iface,
g_param_spec_object ("manager",
"The manager",
"The manager of the view",
GCAL_TYPE_MANAGER,
g_param_spec_object ("context",
"The context",
"The context of the view",
GCAL_TYPE_CONTEXT,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
/**
@@ -129,24 +129,24 @@ gcal_view_set_date (GcalView *view,
}
/**
* gcal_view_get_manager:
* gcal_view_get_context:
* @self: a #GcalView
*
* Retrieves the #GcalManager instance from @self.
* Retrieves the #GcalContext instance from @self.
*
* Returns: (transfer none): a #GcalManager
* Returns: (transfer none): a #GcalContext
*/
GcalManager*
gcal_view_get_manager (GcalView *self)
GcalContext*
gcal_view_get_context (GcalView *self)
{
GcalManager *manager;
GcalContext *context;
g_return_val_if_fail (GCAL_IS_VIEW (self), NULL);
g_object_get (self, "manager", &manager, NULL);
g_object_unref (manager);
g_object_get (self, "context", &context, NULL);
g_object_unref (context);
return manager;
return context;
}
/**
+2 -1
View File
@@ -19,6 +19,7 @@
#ifndef __GCAL_VIEW_H__
#define __GCAL_VIEW_H__
#include "gcal-context.h"
#include "gcal-event-widget.h"
#include "gcal-weather-service.h"
@@ -63,7 +64,7 @@ void gcal_view_set_date (GcalView
icaltimetype* gcal_view_get_date (GcalView *view);
GcalManager* gcal_view_get_manager (GcalView *self);
GcalContext* gcal_view_get_context (GcalView *self);
GcalWeatherService* gcal_view_get_weather_service (GcalView *view);
+6 -5
View File
@@ -21,6 +21,7 @@
#include "gcal-application.h"
#include "gcal-clock.h"
#include "gcal-context.h"
#include "gcal-debug.h"
#include "gcal-week-grid.h"
#include "gcal-week-view.h"
@@ -65,7 +66,7 @@ struct _GcalWeekGrid
gint selection_end;
gint dnd_cell;
GcalManager *manager;
GcalContext *context;
};
G_DEFINE_TYPE (GcalWeekGrid, gcal_week_grid, GTK_TYPE_CONTAINER);
@@ -1040,7 +1041,7 @@ gcal_week_grid_drag_drop (GtkWidget *widget,
/* Commit the changes */
gcal_manager_update_event (self->manager, event, mod);
gcal_manager_update_event (gcal_context_get_manager (self->context), event, mod);
out:
/* Cancel the DnD */
@@ -1142,12 +1143,12 @@ gcal_week_grid_init (GcalWeekGrid *self)
/* Public API */
void
gcal_week_grid_set_manager (GcalWeekGrid *self,
GcalManager *manager)
gcal_week_grid_set_context (GcalWeekGrid *self,
GcalContext *context)
{
g_return_if_fail (GCAL_IS_WEEK_GRID (self));
self->manager = manager;
self->context = context;
}
void
+3 -3
View File
@@ -19,7 +19,7 @@
#ifndef GCAL_WEEK_GRID_H
#define GCAL_WEEK_GRID_H
#include "gcal-manager.h"
#include "gcal-context.h"
#include "gcal-event-widget.h"
#include <gtk/gtk.h>
@@ -30,8 +30,8 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (GcalWeekGrid, gcal_week_grid, GCAL, WEEK_GRID, GtkContainer)
void gcal_week_grid_set_manager (GcalWeekGrid *week_grid,
GcalManager *manager);
void gcal_week_grid_set_context (GcalWeekGrid *week_grid,
GcalContext *context);
void gcal_week_grid_set_first_weekday (GcalWeekGrid *week_grid,
gint nr_day);
+8 -5
View File
@@ -22,6 +22,7 @@
#define G_LOG_DOMAIN "GcalWeekHeader"
#include "gcal-application.h"
#include "gcal-context.h"
#include "gcal-clock.h"
#include "gcal-debug.h"
#include "gcal-event-widget.h"
@@ -70,7 +71,7 @@ struct _GcalWeekHeader
GtkWidget *expand_button_image;
GtkWidget *header_labels_box;
GcalManager *manager;
GcalContext *context;
/*
* Stores the events as they come from the week-view
@@ -1580,7 +1581,9 @@ gcal_week_header_drag_drop (GtkWidget *widget,
gcal_event_set_all_day (event, TRUE);
/* Commit the changes */
gcal_manager_update_event (self->manager, event, GCAL_RECURRENCE_MOD_THIS_ONLY);
gcal_manager_update_event (gcal_context_get_manager (self->context),
event,
GCAL_RECURRENCE_MOD_THIS_ONLY);
/* Cancel the DnD */
self->dnd_cell = -1;
@@ -1822,12 +1825,12 @@ gcal_week_header_update_weather_infos (GcalWeekHeader *self)
}
void
gcal_week_header_set_manager (GcalWeekHeader *self,
GcalManager *manager)
gcal_week_header_set_context (GcalWeekHeader *self,
GcalContext *context)
{
g_return_if_fail (GCAL_IS_WEEK_HEADER (self));
self->manager = manager;
self->context = context;
}
void
+3 -3
View File
@@ -19,7 +19,7 @@
#ifndef GCAL_WEEK_HEADER_H
#define GCAL_WEEK_HEADER_H
#include "gcal-manager.h"
#include "gcal-context.h"
#include "gcal-event-widget.h"
#include "gcal-weather-service.h"
#include "gcal-weather-info.h"
@@ -32,8 +32,8 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (GcalWeekHeader, gcal_week_header, GCAL, WEEK_HEADER, GtkGrid)
void gcal_week_header_set_manager (GcalWeekHeader *self,
GcalManager *manager);
void gcal_week_header_set_context (GcalWeekHeader *self,
GcalContext *context);
void gcal_week_header_add_event (GcalWeekHeader *self,
GcalEvent *event);
+11 -11
View File
@@ -53,7 +53,7 @@ struct _GcalWeekView
/* property */
icaltimetype *date;
GcalManager *manager; /* owned */
GcalContext *context;
GcalWeatherService *weather_service; /* owned */
guint scroll_grid_timeout_id;
@@ -71,7 +71,7 @@ enum
{
PROP_0,
PROP_DATE,
PROP_MANAGER,
PROP_CONTEXT,
PROP_TIME_FORMAT,
PROP_WEATHER_SERVICE,
NUM_PROPS
@@ -506,7 +506,7 @@ gcal_week_view_finalize (GObject *object)
g_clear_pointer (&self->date, g_free);
g_clear_object (&self->manager);
g_clear_object (&self->context);
g_clear_object (&self->weather_service);
/* Chain up to parent's finalize() method. */
@@ -527,12 +527,12 @@ gcal_week_view_set_property (GObject *object,
gcal_view_set_date (GCAL_VIEW (object), g_value_get_boxed (value));
break;
case PROP_MANAGER:
self->manager = g_value_dup_object (value);
case PROP_CONTEXT:
self->context = g_value_dup_object (value);
gcal_week_grid_set_manager (GCAL_WEEK_GRID (self->week_grid), self->manager);
gcal_week_header_set_manager (GCAL_WEEK_HEADER (self->header), self->manager);
g_object_notify (object, "manager");
gcal_week_grid_set_context (GCAL_WEEK_GRID (self->week_grid), self->context);
gcal_week_header_set_context (GCAL_WEEK_HEADER (self->header), self->context);
g_object_notify (object, "context");
break;
case PROP_TIME_FORMAT:
@@ -568,8 +568,8 @@ gcal_week_view_get_property (GObject *object,
g_value_set_boxed (value, self->date);
break;
case PROP_MANAGER:
g_value_set_object (value, self->manager);
case PROP_CONTEXT:
g_value_set_object (value, self->context);
break;
case PROP_TIME_FORMAT:
@@ -600,7 +600,7 @@ gcal_week_view_class_init (GcalWeekViewClass *klass)
object_class->get_property = gcal_week_view_get_property;
g_object_class_override_property (object_class, PROP_DATE, "active-date");
g_object_class_override_property (object_class, PROP_MANAGER, "manager");
g_object_class_override_property (object_class, PROP_CONTEXT, "context");
g_object_class_override_property (object_class, PROP_WEATHER_SERVICE, "weather-service");
g_object_class_install_property (object_class,
+20 -15
View File
@@ -20,6 +20,7 @@
#include "gcal-application.h"
#include "gcal-clock.h"
#include "gcal-context.h"
#include "gcal-debug.h"
#include "gcal-year-view.h"
#include "gcal-view.h"
@@ -66,7 +67,7 @@ struct _GcalYearView
GtkWidget *popover; /* Popover for popover_mode */
/* manager singleton */
GcalManager *manager;
GcalContext *context;
GcalWeatherService *weather_service; /* owned, nullable */
/* range shown on the sidebar */
@@ -120,7 +121,7 @@ struct _GcalYearView
enum {
PROP_0,
PROP_DATE,
PROP_MANAGER,
PROP_CONTEXT,
PROP_WEATHER_SERVICE,
PROP_SHOW_WEEK_NUMBERS,
LAST_PROP
@@ -308,16 +309,18 @@ add_event_to_day_array (GcalYearView *year_view,
GList **days_widgets_array,
gint days_span)
{
GcalManager *manager;
GtkWidget *child_widget;
GDateTime *dt_start, *dt_end;
GDateTime *date, *second_date;
gboolean is_readonly;
gint i;
manager = gcal_context_get_manager (year_view->context);
is_readonly = !gcal_manager_is_client_writable (manager, gcal_event_get_source (event));
child_widget = gcal_event_widget_new (event);
gcal_event_widget_set_read_only (GCAL_EVENT_WIDGET (child_widget),
!gcal_manager_is_client_writable (year_view->manager, gcal_event_get_source (event)));
gcal_event_widget_set_read_only (GCAL_EVENT_WIDGET (child_widget), is_readonly);
dt_start = gcal_event_get_date_start (event);
dt_end = gcal_event_get_date_end (event);
@@ -409,6 +412,7 @@ add_event_to_day_array (GcalYearView *year_view,
static void
update_sidebar (GcalYearView *year_view)
{
GcalManager *manager;
GtkWidget *child_widget;
GList *events, *l;
GList **days_widgets_array;
@@ -421,7 +425,8 @@ update_sidebar (GcalYearView *year_view)
days_span = icaltime_day_of_year(*(year_view->end_selected_date)) - icaltime_day_of_year(*(year_view->start_selected_date)) + 1;
days_widgets_array = g_new0 (GList*, days_span);
events = gcal_manager_get_events (year_view->manager, year_view->start_selected_date, year_view->end_selected_date);
manager = gcal_context_get_manager (year_view->context);
events = gcal_manager_get_events (manager, year_view->start_selected_date, year_view->end_selected_date);
if (events == NULL)
{
days_span = 0;
@@ -812,7 +817,7 @@ draw_month_grid (GcalYearView *year_view,
today.hour = 0;
today.minute = 0;
today.second = 0;
today.zone = gcal_manager_get_system_timezone (year_view->manager);
today.zone = gcal_manager_get_system_timezone (gcal_context_get_manager (year_view->context));
for (i = 0; i < 7 * shown_rows; i++)
{
@@ -1513,7 +1518,7 @@ navigator_drag_drop_cb (GcalYearView *self,
g_clear_pointer (&new_end, g_date_time_unref);
}
gcal_manager_update_event (self->manager, event, mod);
gcal_manager_update_event (gcal_context_get_manager (self->context), event, mod);
g_clear_pointer (&new_start, g_date_time_unref);
}
@@ -1631,8 +1636,8 @@ gcal_year_view_get_property (GObject *object,
g_value_set_boxed (value, self->date);
break;
case PROP_MANAGER:
g_value_set_object (value, self->manager);
case PROP_CONTEXT:
g_value_set_object (value, self->context);
break;
case PROP_WEATHER_SERVICE:
@@ -1662,9 +1667,9 @@ gcal_year_view_set_property (GObject *object,
gcal_view_set_date (GCAL_VIEW (self), g_value_get_boxed (value));
break;
case PROP_MANAGER:
self->manager = g_value_dup_object (value);
g_object_notify (object, "manager");
case PROP_CONTEXT:
self->context = g_value_dup_object (value);
g_object_notify (object, "context");
break;
case PROP_WEATHER_SERVICE:
@@ -1965,7 +1970,7 @@ gcal_year_view_class_init (GcalYearViewClass *klass)
widget_class->direction_changed = gcal_year_view_direction_changed;
g_object_class_override_property (object_class, PROP_DATE, "active-date");
g_object_class_override_property (object_class, PROP_MANAGER, "manager");
g_object_class_override_property (object_class, PROP_CONTEXT, "context");
g_object_class_override_property (object_class, PROP_WEATHER_SERVICE, "weather-service");
g_object_class_install_property (object_class,