[gnome-boxes] os-database: Add get_all_media_urls_as_store()



commit 8ab09bb3dc48f2d3f19dbd92691b393e4d2985c3
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Tue Feb 17 12:52:53 2015 +0000

    os-database: Add get_all_media_urls_as_store()
    
    Add a method to get all know media URLs as Gtk.ListStore. In the
    following patch, we use this to provide completion in 'Enter URL' entry.

 src/os-database.vala |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)
---
diff --git a/src/os-database.vala b/src/os-database.vala
index e2f311b..ad100f3 100644
--- a/src/os-database.vala
+++ b/src/os-database.vala
@@ -131,6 +131,29 @@ private class Boxes.OSDatabase : GLib.Object {
         return after_list;
     }
 
+    public async Gtk.ListStore get_all_media_urls_as_store () throws OSDatabaseError {
+        if (!yield ensure_db_loaded ())
+            throw new OSDatabaseError.DB_LOADING_FAILED ("Failed to load OS database");
+
+        var store = new Gtk.ListStore (1, typeof (string));
+        foreach (var entity in db.get_os_list ().get_elements ()) {
+            var os = entity as Os;
+
+            foreach (var media_entity in os.get_media_list ().get_elements ()) {
+                var media = media_entity as Media;
+
+                if (media.url != null && (media.installer || media.live)) {
+                    Gtk.TreeIter iter;
+
+                    store.append (out iter);
+                    store.set (iter, 0, media.url);
+                }
+            }
+        }
+
+        return store;
+    }
+
     public Media get_media_by_id (Os os, string id) throws OSDatabaseError {
         var medias = os.get_media_list ();
 


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