static void
carrick_list_set_property (GObject *object, guint property_id,
                           const GValue *value, GParamSpec *pspec)
{
  CarrickListPrivate *priv = LIST_PRIVATE (object);

  switch (property_id)
    {
    case PROP_ICON_FACTORY:
      priv->icon_factory = CARRICK_ICON_FACTORY (g_value_get_object (value));
      break;

    case PROP_NOTIFICATIONS:
      priv->notes = CARRICK_NOTIFICATION_MANAGER (g_value_get_object (value));
      break;

    case PROP_MODEL:
      carrick_list_set_model (CARRICK_LIST (object),
                              CARRICK_NETWORK_MODEL (g_value_get_object (value)));
      break;

    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
    }
}
static void
carrick_network_model_dispose (GObject *object)
{
  CarrickNetworkModel *self = CARRICK_NETWORK_MODEL (object);
  CarrickNetworkModelPrivate *priv = self->priv;
  GList *list_iter = NULL;
  gchar *path = NULL;
  GtkTreeIter iter;
  GtkListStore *store = GTK_LIST_STORE (self);

  if (priv->connection)
    {
      dbus_g_connection_unref (priv->connection);
      priv->connection = NULL;
    }

  for (list_iter = priv->services;
       list_iter != NULL;
       list_iter = list_iter->next)
    {
      path = list_iter->data;

      if (network_model_have_service_by_path (store, &iter, path) == TRUE)
        gtk_list_store_remove (store, &iter);

      g_free (path);
    }

  if (priv->services)
    {
      g_list_free (priv->services);
      priv->services = NULL;
    }

  G_OBJECT_CLASS (carrick_network_model_parent_class)->dispose(object);
}