#include <hildon/hildon.h>
#include "milk-task-model.h"
+#include "milk-auth.h"
#include "milk-task.h"
static void
struct _MilkTaskModelPrivate
{
GtkListStore *store;
+ MilkAuth *auth;
+};
+
+enum {
+ PROP_AUTH = 1,
};
static GtkTreeModelFlags
}
static void
-milk_task_model_get_property (GObject *object,
- guint property_id,
- GValue *value,
- GParamSpec *pspec)
-{
- switch (property_id)
- {
- 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)
- {
- 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->store) {
- g_object_unref (priv->store);
- priv->store = NULL;
- }
-
- G_OBJECT_CLASS (milk_task_model_parent_class)->dispose (object);
-}
-
-static void
-milk_task_model_constructed (GObject* object)
+populate_model (MilkTaskModel *model)
{
typedef struct {
const char *id;
{ "5", "Finalize Halloween costume", 3},
};
- MilkTaskModelPrivate *priv = MILK_TASK_MODEL_PRIVATE (object);
+ MilkTaskModelPrivate *priv = MILK_TASK_MODEL_PRIVATE (model);
GtkTreeIter iter;
gint i;
+ /* FIXME: remove all existing rows */
+ /* FIXME: use the tasks from the auth */
+
/* Populate model */
for (i = 0; i < G_N_ELEMENTS (tasks); i++) {
MilkTask *task;
}
}
+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);
+}
+
static void
milk_task_model_class_init (MilkTaskModelClass *klass)
{
object_class->get_property = milk_task_model_get_property;
object_class->set_property = milk_task_model_set_property;
- object_class->constructed = milk_task_model_constructed;
object_class->dispose = milk_task_model_dispose;
+
+ g_object_class_install_property
+ (object_class,
+ PROP_AUTH,
+ g_param_spec_object
+ ("auth",
+ "Authentication proxy",
+ "Remember The Milk authentication proxy.",
+ MILK_TYPE_AUTH,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
}
static void
}
MilkTaskModel*
-milk_task_model_new ()
+milk_task_model_new (MilkAuth *auth)
{
- return g_object_new (MILK_TYPE_TASK_MODEL, NULL);
+ return g_object_new (MILK_TYPE_TASK_MODEL, "auth", auth, NULL);
}