Fixed test to support signals carrying service
[maevies] / src / mvs-tmdb-movie.c
index 7a5f1d3..1ffffbe 100644 (file)
@@ -17,6 +17,7 @@
  */
 
 #include "mvs-tmdb-movie.h"
+#include "mvs-tmdb-image.h"
 
 G_DEFINE_TYPE (MvsTmdbMovie, mvs_tmdb_movie, G_TYPE_OBJECT)
 
@@ -40,8 +41,6 @@ enum {
         PROP_LAST_MODIFIED,
 };
 
-
-
 #define GET_PRIVATE(o) \
   (G_TYPE_INSTANCE_GET_PRIVATE ((o), MVS_TYPE_TMDB_MOVIE, MvsTmdbMoviePrivate))
 
@@ -60,7 +59,7 @@ struct _MvsTmdbMoviePrivate {
         gchar *certification;
         gchar *overview;
         gchar *released;
-        gchar *images;
+        GList *images;
         gchar *last_modified;
 };
 
@@ -80,9 +79,6 @@ mvs_tmdb_movie_get_property (GObject *object, guint property_id,
         case PROP_ID:
                 g_value_set_string (value, self->priv->id);
                 break;
-        case PROP_IMAGES:
-                g_value_set_string (value, self->priv->images);
-                break;
         case PROP_IMDB_ID:
                 g_value_set_string (value, self->priv->imdb_id);
                 break;
@@ -129,7 +125,6 @@ mvs_tmdb_movie_set_property (GObject *object, guint property_id,
                          const GValue *value, GParamSpec *pspec)
 {
         MvsTmdbMovie *self = MVS_TMDB_MOVIE (object);
-        GDate *date = NULL;
 
         switch (property_id) {
         case PROP_ALT_NAME:
@@ -143,10 +138,6 @@ mvs_tmdb_movie_set_property (GObject *object, guint property_id,
                 mvs_tmdb_movie_set_id (self,
                                 g_value_get_string (value));
                 break;
-        case PROP_IMAGES:
-                mvs_tmdb_movie_set_images (self,
-                                g_value_get_string (value));
-                break;
         case PROP_IMDB_ID:
                 mvs_tmdb_movie_set_imdb_id (self,
                                 g_value_get_string (value));
@@ -208,7 +199,6 @@ mvs_tmdb_movie_finalize (GObject *object)
         g_free (self->priv->alt_name);
         g_free (self->priv->certification);
         g_free (self->priv->id);
-        g_free (self->priv->images);
         g_free (self->priv->imdb_id);
         g_free (self->priv->language);
         g_free (self->priv->last_modified);
@@ -222,6 +212,9 @@ mvs_tmdb_movie_finalize (GObject *object)
         g_free (self->priv->type);
         g_free (self->priv->url);
 
+        g_list_foreach (self->priv->images, (GFunc) g_object_unref, NULL);
+        g_list_free (self->priv->images);
+
         G_OBJECT_CLASS (mvs_tmdb_movie_parent_class)->finalize (object);
 }
 
@@ -257,13 +250,6 @@ mvs_tmdb_movie_class_init (MvsTmdbMovieClass *klass)
                                  G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
 
         g_object_class_install_property
-                (object_class, PROP_IMAGES,
-                 g_param_spec_string ("images", "Movie images",
-                                 "The movie images",
-                                 NULL,
-                                 G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
-        g_object_class_install_property
                 (object_class, PROP_IMDB_ID,
                  g_param_spec_string ("imdb_id", "Movie IMDB ID",
                                  "The movie IMDB ID",
@@ -375,7 +361,7 @@ set_property (gchar **property, const gchar *value)
         g_free (*property);
         *property = g_strdup (value);
 
-        return TRUE;
+        return *property != NULL;
 }
 
 gboolean
@@ -419,13 +405,14 @@ mvs_tmdb_movie_get_id (MvsTmdbMovie *self)
 }
 
 gboolean
-mvs_tmdb_movie_set_images (MvsTmdbMovie *self, const gchar *images)
+mvs_tmdb_movie_set_images (MvsTmdbMovie *self, GList *images)
 {
         g_return_val_if_fail (MVS_TMDB_MOVIE (self), FALSE);
-        return set_property (&self->priv->images, images);
+        self->priv->images = images;
+        return TRUE;
 }
 
-const gchar*
+GList*
 mvs_tmdb_movie_get_images (MvsTmdbMovie *self)
 {
         return self->priv->images;
@@ -504,6 +491,12 @@ mvs_tmdb_movie_set_popularity (MvsTmdbMovie *self, const gchar *popularity)
         return set_property (&self->priv->popularity, popularity);
 }
 
+const gchar*
+mvs_tmdb_movie_get_popularity (MvsTmdbMovie *self)
+{
+        return self->priv->popularity;
+}
+
 gboolean
 mvs_tmdb_movie_set_rating (MvsTmdbMovie *self, const gchar *rating)
 {
@@ -590,7 +583,8 @@ mvs_tmdb_movie_print (MvsTmdbMovie *self)
         g_print ("[Alternative name]: %s\n", self->priv->alt_name);
         g_print ("[Certification]: %s\n", self->priv->certification);
         g_print ("[Id]: %s\n", self->priv->id);
-        g_print ("[Images]: %s\n", self->priv->images);
+        g_print ("[Images]: %d\n", g_list_length(self->priv->images));
+        g_list_foreach (self->priv->images, (GFunc) mvs_tmdb_image_print, NULL);
         g_print ("[IMDB Id]: %s\n", self->priv->imdb_id);
         g_print ("[Language]: %s\n", self->priv->language);
         g_print ("[Last modified]: %s\n", self->priv->last_modified);