+void
+milk_task_model_set_auth (MilkTaskModel *model,
+ MilkAuth *auth)
+{
+ MilkTaskModelPrivate *priv;
+
+ g_return_if_fail (model);
+ g_return_if_fail (MILK_IS_TASK_MODEL (model));
+ g_return_if_fail (auth);
+ g_return_if_fail (MILK_IS_AUTH (auth));
+
+ priv = MILK_TASK_MODEL_PRIVATE (model);
+
+ /* FIXME: cut this */
+ g_debug ("authorizing and populating model with %p", auth);
+
+ if (priv->auth) {
+ g_object_unref (priv->auth);
+ priv->auth = g_object_ref (auth);
+ }
+
+ populate_model (model);
+}
+
+static void
+milk_task_model_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ MilkTaskModelPrivate *priv = MILK_TASK_MODEL_PRIVATE (object);
+
+ switch (property_id)
+ {
+ case PROP_AUTH:
+ g_value_set_object (value, priv->auth);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id,
+ pspec);
+ }
+}
+
+static void
+milk_task_model_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ switch (property_id)
+ {
+ case PROP_AUTH:
+ milk_task_model_set_auth (MILK_TASK_MODEL (object),
+ g_value_get_object (value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id,
+ pspec);
+ }
+}
+
+static void
+milk_task_model_dispose (GObject *object)
+{
+ MilkTaskModelPrivate *priv = MILK_TASK_MODEL_PRIVATE (object);
+
+ if (priv->auth) {
+ g_object_unref (priv->auth);
+ priv->auth = NULL;
+ }
+
+ if (priv->store) {
+ g_object_unref (priv->store);
+ priv->store = NULL;
+ }
+
+ G_OBJECT_CLASS (milk_task_model_parent_class)->dispose (object);
+}
+