static void rhythmdb_property_model_finalize (GObject *object) { RhythmDBPropertyModel *model; g_return_if_fail (object != NULL); g_return_if_fail (RHYTHMDB_IS_PROPERTY_MODEL (object)); model = RHYTHMDB_PROPERTY_MODEL (object); rb_debug ("finalizing property model %p", model); g_return_if_fail (model->priv != NULL); g_hash_table_destroy (model->priv->reverse_map); g_sequence_foreach (model->priv->properties, (GFunc)_prop_model_entry_cleanup, NULL); g_sequence_free (model->priv->properties); g_hash_table_destroy (model->priv->entries); g_free (model->priv->all); g_array_free (model->priv->sort_propids, TRUE); G_OBJECT_CLASS (rhythmdb_property_model_parent_class)->finalize (object); }
static void rhythmdb_property_model_dispose (GObject *object) { RhythmDBPropertyModel *model; g_return_if_fail (object != NULL); g_return_if_fail (RHYTHMDB_IS_PROPERTY_MODEL (object)); model = RHYTHMDB_PROPERTY_MODEL (object); rb_debug ("disposing property model %p", model); g_return_if_fail (model->priv != NULL); if (model->priv->syncing_id != 0) { g_source_remove (model->priv->syncing_id); model->priv->syncing_id = 0; } if (model->priv->query_model != NULL) { g_object_unref (model->priv->query_model); model->priv->query_model = NULL; } G_OBJECT_CLASS (rhythmdb_property_model_parent_class)->dispose (object); }
static void rhythmdb_property_model_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { RhythmDBPropertyModel *model = RHYTHMDB_PROPERTY_MODEL (object); switch (prop_id) { case PROP_RHYTHMDB: model->priv->db = g_value_get_object (value); break; case PROP_PROP: model->priv->propid = g_value_get_int (value); switch (model->priv->propid) { case RHYTHMDB_PROP_GENRE: append_sort_property (model, RHYTHMDB_PROP_GENRE); break; case RHYTHMDB_PROP_ARTIST: append_sort_property (model, RHYTHMDB_PROP_ARTIST_SORTNAME); append_sort_property (model, RHYTHMDB_PROP_ARTIST); break; case RHYTHMDB_PROP_ALBUM: append_sort_property (model, RHYTHMDB_PROP_ALBUM_SORTNAME); append_sort_property (model, RHYTHMDB_PROP_ALBUM); break; case RHYTHMDB_PROP_SUBTITLE: append_sort_property (model, RHYTHMDB_PROP_ALBUM); append_sort_property (model, RHYTHMDB_PROP_SUBTITLE); break; case RHYTHMDB_PROP_TITLE: case RHYTHMDB_PROP_LOCATION: append_sort_property (model, RHYTHMDB_PROP_TITLE); break; default: g_assert_not_reached (); break; } break; case PROP_QUERY_MODEL: rhythmdb_property_model_set_query_model_internal (model, g_value_get_object (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void rhythmdb_property_model_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { RhythmDBPropertyModel *model = RHYTHMDB_PROPERTY_MODEL (object); switch (prop_id) { case PROP_RHYTHMDB: g_value_set_object (value, model->priv->db); break; case PROP_PROP: g_value_set_int (value, model->priv->propid); break; case PROP_QUERY_MODEL: g_value_set_object (value, model->priv->query_model); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }