[gnome-boxes] Adapt to new osinfo's OS detection API



commit 139424b696357e000f77e1586f58dea7dcd9cdce
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Wed Nov 23 23:59:37 2011 +0200

    Adapt to new osinfo's OS detection API
    
    Now osinfo gives us the exact media from its list that was matched
    against the media we provided.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=664214

 configure.ac             |    2 +-
 src/installer-media.vala |   12 ++++++------
 src/os-database.vala     |    7 +++++--
 3 files changed, 12 insertions(+), 9 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index d5d7200..474ba88 100644
--- a/configure.ac
+++ b/configure.ac
@@ -44,7 +44,7 @@ LIBVIRT_GCONFIG_MIN_VERSION=0.0.1
 LIBXML2_MIN_VERSION=2.7.8
 SPICE_GTK_MIN_VERSION=0.7.81
 GUDEV_MIN_VERSION=167
-OSINFO_MIN_VERSION=0.0.1
+OSINFO_MIN_VERSION=0.0.3
 
 PKG_CHECK_MODULES(BOXES, [
   clutter-gtk-1.0 >= $CLUTTER_GTK_MIN_VERSION
diff --git a/src/installer-media.vala b/src/installer-media.vala
index 54d1329..055c74e 100644
--- a/src/installer-media.vala
+++ b/src/installer-media.vala
@@ -55,17 +55,17 @@ private class Boxes.InstallerMedia : Object {
                                        Cancellable? cancellable) throws GLib.Error {
         var device = yield get_device_from_path (path, client, cancellable);
 
-        if (device != null)
+        if (device != null) {
             get_os_and_label_from_device (device, os_db);
-        else {
+            if (os != null)
+                os_media = os_db.get_prefered_media_for_os (os);
+        } else {
             from_image = true;
-            os = yield os_db.guess_os_from_install_media (device_file, cancellable);
+            os = yield os_db.guess_os_from_install_media (device_file, out os_media, cancellable);
         }
 
-        if (os != null) {
+        if (os != null)
             label = os.get_name ();
-            os_media = os_db.get_prefered_media_for_os (os);
-        }
 
         if (label == null)
             label = Path.get_basename (device_file);
diff --git a/src/os-database.vala b/src/os-database.vala
index eed1ca5..b103854 100644
--- a/src/os-database.vala
+++ b/src/os-database.vala
@@ -30,10 +30,12 @@ private class Boxes.OSDatabase {
         db = loader.get_db ();
     }
 
-    public async Os? guess_os_from_install_media (string media_path, Cancellable? cancellable) throws GLib.Error {
+    public async Os? guess_os_from_install_media (string media_path,
+                                                  out Media os_media,
+                                                  Cancellable? cancellable) throws GLib.Error {
         var media = yield Media.create_from_location_async (media_path, Priority.DEFAULT, cancellable);
 
-        return db.guess_os_from_media (media);
+        return db.guess_os_from_media (media, out os_media);
     }
 
     public Os? get_os_by_id (string id) {
@@ -54,6 +56,7 @@ private class Boxes.OSDatabase {
         return get_resources_from_os_resources (minimum, recommended);
     }
 
+    // FIXME: We should be choosing the media that actually correponsds to original media (if any)
     public Media? get_prefered_media_for_os (Os os) {
         var medias = os.get_media_list ();
 



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