[rhythmbox] rhythmdb: make it easy to create a query model for a given entry type



commit 3be94c36452dc7d6a61f2da99234a4ccd43df31e
Author: Jonathan Matthew <jonathan d14n org>
Date:   Sun Nov 2 17:20:24 2014 +1000

    rhythmdb: make it easy to create a query model for a given entry type
    
    Messing around with queries is hard, and sometimes RBBrowserSource
    isn't suitable as a base class.

 rhythmdb/rhythmdb-query-model.c |   24 ++++++++++++++++++++++++
 rhythmdb/rhythmdb-query-model.h |    4 ++++
 2 files changed, 28 insertions(+), 0 deletions(-)
---
diff --git a/rhythmdb/rhythmdb-query-model.c b/rhythmdb/rhythmdb-query-model.c
index 0716bce..f87aa85 100644
--- a/rhythmdb/rhythmdb-query-model.c
+++ b/rhythmdb/rhythmdb-query-model.c
@@ -852,6 +852,30 @@ rhythmdb_query_model_new_empty (RhythmDB *db)
                             "db", db, NULL);
 }
 
+/**
+ * rhythmdb_query_model_new_for_entry_type:
+ * @db: the #RhythmDB
+ * @entry_type: the #RhythmDBEntryType to display
+ * @show_hidden: if %TRUE, show hidden entries
+ *
+ * Return value: the newly constructed query model
+ */
+RhythmDBQueryModel *
+rhythmdb_query_model_new_for_entry_type (RhythmDB *db,
+                                        RhythmDBEntryType *entry_type,
+                                        gboolean show_hidden)
+{
+       RhythmDBQueryModel *model;
+       model = rhythmdb_query_model_new_empty (db);
+       g_object_set (model, "show-hidden", show_hidden, NULL);
+       rhythmdb_do_full_query_async (db,
+                                     RHYTHMDB_QUERY_RESULTS (model),
+                                     RHYTHMDB_QUERY_PROP_EQUALS, RHYTHMDB_PROP_TYPE, entry_type,
+                                     RHYTHMDB_QUERY_END);
+       return model;
+}
+
+
 static void
 _copy_contents_foreach_cb (RhythmDBEntry *entry, RhythmDBQueryModel *dest)
 {
diff --git a/rhythmdb/rhythmdb-query-model.h b/rhythmdb/rhythmdb-query-model.h
index fd575ec..b5121c2 100644
--- a/rhythmdb/rhythmdb-query-model.h
+++ b/rhythmdb/rhythmdb-query-model.h
@@ -101,6 +101,10 @@ RhythmDBQueryModel *       rhythmdb_query_model_new                (RhythmDB *db,
 
 RhythmDBQueryModel *   rhythmdb_query_model_new_empty          (RhythmDB *db);
 
+RhythmDBQueryModel *   rhythmdb_query_model_new_for_entry_type (RhythmDB *db,
+                                                                RhythmDBEntryType *entry_type,
+                                                                gboolean show_hidden);
+
 void                   rhythmdb_query_model_copy_contents      (RhythmDBQueryModel *dest,
                                                                 RhythmDBQueryModel *src);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]