? .swp
? less
? massif.17234.ps
? massif.17234.txt
? massif.17398.ps
? massif.17398.txt
? massif.17399.ps
? massif.17399.txt
? memcheck.19211
? refdbg.log
? staying
? test
? test.c
? tools
? data/playlists-initial.xml
? data/playlists-initial.xml.in
? data/glade/mdns-error.glade
? shell/rb-play-order-linear-loop-one.c
? shell/rb-play-order-linear-loop-one.h
? sources/rb-audio-player-source.c
? sources/rb-audio-player-source.h
? sources/rb-lastfm-source.c
? sources/rb-lastfm-source.h
Index: rhythmdb/rhythmdb-query-model.c
===================================================================
RCS file: /cvs/gnome/rhythmbox/rhythmdb/rhythmdb-query-model.c,v
retrieving revision 1.90
diff -u -u -r1.90 rhythmdb-query-model.c
--- rhythmdb/rhythmdb-query-model.c	10 Dec 2005 12:08:24 -0000	1.90
+++ rhythmdb/rhythmdb-query-model.c	13 Dec 2005 01:21:41 -0000
@@ -175,6 +175,7 @@
 	gint pending_update_count;
 
 	gboolean reorder_drag_and_drop;
+	gboolean show_hidden;
 };
 
 #define RHYTHMDB_QUERY_MODEL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), RHYTHMDB_TYPE_QUERY_MODEL, RhythmDBQueryModelPrivate))
@@ -190,6 +191,7 @@
 	PROP_MAX_SIZE,
 	PROP_MAX_COUNT,
 	PROP_MAX_TIME,
+	PROP_SHOW_HIDDEN,
 };
 
 enum
@@ -226,35 +228,30 @@
 							      "RhythmDB object",
 							      RHYTHMDB_TYPE,
 							      G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
 	g_object_class_install_property (object_class,
 					 PROP_QUERY,
 					 g_param_spec_pointer ("query",
 							      "Query",
 							      "RhythmDBQuery",
 							      G_PARAM_READWRITE));
-
 	g_object_class_install_property (object_class,
 					 PROP_SORT_FUNC,
 					 g_param_spec_pointer ("sort-func",
 							      "SortFunc",
 							      "Sort function",
 							       G_PARAM_READWRITE));
-
 	g_object_class_install_property (object_class,
 					 PROP_SORT_DATA,
 					 g_param_spec_pointer ("sort-data",
 							      "SortData",
 							      "Sort user data",
 							       G_PARAM_READWRITE));
-
 	g_object_class_install_property (object_class,
 					 PROP_SORT_DATA_DESTROY,
 					 g_param_spec_pointer ("sort-data-destroy",
 							      "GDestroyNotify",
 							      "Sort data destroy function",
 							       G_PARAM_READWRITE));
-
 	g_object_class_install_property (object_class,
 					 PROP_MAX_SIZE,
 					 g_param_spec_int ("max-size",
@@ -262,7 +259,6 @@
 							   "maximum size (MB)",
 							   0, G_MAXINT, 0,
 							   G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
 	g_object_class_install_property (object_class,
 					 PROP_MAX_COUNT,
 					 g_param_spec_int ("max-count",
@@ -270,7 +266,6 @@
 							   "maximum count (songs)",
 							   0, G_MAXINT, 0,
 							   G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
 	g_object_class_install_property (object_class,
 					 PROP_MAX_TIME,
 					 g_param_spec_int ("max-time",
@@ -278,6 +273,13 @@
 							   "maximum time (seconds)",
 							   0, G_MAXINT, 0,
 							   G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+	g_object_class_install_property (object_class,
+					 PROP_SHOW_HIDDEN,
+					 g_param_spec_boolean ("show-hidden",
+							       "show hidden",
+							       "maximum time (seconds)",
+							       FALSE,
+							       G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
 
 	rhythmdb_query_model_signals[ENTRY_PROP_CHANGED] =
 		g_signal_new ("entry-prop-changed",
@@ -385,6 +387,10 @@
 	case PROP_MAX_TIME:
 		model->priv->max_time = g_value_get_int (value);
 		break;
+	case PROP_SHOW_HIDDEN:
+		model->priv->show_hidden = g_value_get_boolean (value);
+		/* FIXME: this will have funky issues if this is changed after entries are added */
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -425,6 +431,8 @@
 	case PROP_MAX_TIME:
 		g_value_set_int (value, model->priv->max_time);
 		break;
+	case PROP_SHOW_HIDDEN:
+		g_value_set_boolean (value, model->priv->show_hidden);
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -571,7 +579,7 @@
 				     RhythmDBQueryModel *model)
 {
 	if (model->priv->query) {
-		if (rhythmdb_entry_get_boolean (entry, RHYTHMDB_PROP_HIDDEN))
+		if (!model->priv->show_hidden && rhythmdb_entry_get_boolean (entry, RHYTHMDB_PROP_HIDDEN))
 			return;
 
 		if (rhythmdb_evaluate_query (db, model->priv->query, entry)) {
@@ -591,7 +599,7 @@
 		return;
 
 
-	hidden = rhythmdb_entry_get_boolean (entry, RHYTHMDB_PROP_HIDDEN);
+	hidden = (!model->priv->show_hidden && rhythmdb_entry_get_boolean (entry, RHYTHMDB_PROP_HIDDEN));
 
 	if (g_hash_table_lookup (model->priv->reverse_map, entry) == NULL) {
 		if (hidden == FALSE) {
@@ -664,7 +672,8 @@
 		for (i = 0; i < update->entries->len; i++ ) {
 			RhythmDBEntry *entry = g_ptr_array_index (update->entries, i);
 
-			if (!rhythmdb_entry_get_boolean (entry, RHYTHMDB_PROP_HIDDEN))
+			if (update->model->priv->show_hidden ||
+			    !rhythmdb_entry_get_boolean (entry, RHYTHMDB_PROP_HIDDEN))
 				rhythmdb_query_model_do_insert (update->model, entry, -1);
 			
 			rhythmdb_entry_unref (update->model->priv->db, entry);
@@ -718,7 +727,7 @@
 {
 	struct RhythmDBQueryModelUpdate *update;
 
-	if (rhythmdb_entry_get_boolean (entry, RHYTHMDB_PROP_HIDDEN)) {
+	if (!model->priv->show_hidden && rhythmdb_entry_get_boolean (entry, RHYTHMDB_PROP_HIDDEN)) {
 		rb_debug ("attempting to add hidden entry");
 		return;
 	}
@@ -987,7 +996,7 @@
 	GtkTreePath *path;
 	GtkTreeIter iter;
 
-	g_assert (!rhythmdb_entry_get_boolean (entry, RHYTHMDB_PROP_HIDDEN));
+	g_assert (model->priv->show_hidden || !rhythmdb_entry_get_boolean (entry, RHYTHMDB_PROP_HIDDEN));
 
 	/* we check again if the entry already exists in the hash table */
 	if (g_hash_table_lookup (model->priv->reverse_map, entry) != NULL)
Index: sources/rb-static-playlist-source.c
===================================================================
RCS file: /cvs/gnome/rhythmbox/sources/rb-static-playlist-source.c,v
retrieving revision 1.3
diff -u -u -r1.3 rb-static-playlist-source.c
--- sources/rb-static-playlist-source.c	10 Dec 2005 12:08:25 -0000	1.3
+++ sources/rb-static-playlist-source.c	13 Dec 2005 01:21:42 -0000
@@ -102,6 +102,8 @@
 			parent_class->constructor (type, n_construct_properties, construct_properties));
 	RhythmDBQueryModel *model = rb_playlist_source_get_query_model (RB_PLAYLIST_SOURCE (source));
 
+	g_object_set (G_OBJECT (model), "show-hidden", TRUE, NULL);
+
 	/* watch these to find out when things are dropped into the entry view */
 	g_signal_connect_object (G_OBJECT (model), "row-inserted",
 			 G_CALLBACK (rb_static_playlist_source_row_inserted),
