[gnome-boxes/download-oses-page: 7/12] os-database, wizard-source: Sort Downloads list in the model



commit 9ca2369a819ee6d449fbe9ca668d31967da2a8d7
Author: Felipe Borges <felipeborges gnome org>
Date:   Tue Jan 23 16:37:43 2018 +0100

    os-database, wizard-source: Sort Downloads list in the model

 src/os-database.vala   | 13 +++++++++++++
 src/wizard-source.vala |  7 +------
 2 files changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/src/os-database.vala b/src/os-database.vala
index 3d0959ec..3580e3e5 100644
--- a/src/os-database.vala
+++ b/src/os-database.vala
@@ -117,6 +117,19 @@ public async Os get_os_by_id (string id) throws OSDatabaseError {
             }
         }
 
+        // Sort list in desceding order by release date.
+        after_list.sort ((media_a, media_b) => {
+            var release_a = media_a.os.get_release_date ();
+            var release_b = media_b.os.get_release_date ();
+
+            if (release_a == null)
+                return -1;
+            else if (release_b == null)
+                return 1;
+
+            return release_b.compare (release_a);
+        });
+
         return after_list;
     }
 
diff --git a/src/wizard-source.vala b/src/wizard-source.vala
index a0cf0e99..bbcc3bf8 100644
--- a/src/wizard-source.vala
+++ b/src/wizard-source.vala
@@ -420,12 +420,7 @@ public void setup_ui (AppWindow window) {
                 var media_list = os_db.list_downloadable_oses.end (result);
 
                 foreach (var media in media_list) {
-                    available_downloads_model.insert_sorted (media, (a, b) => {
-                        var os1 = a as Osinfo.Media;
-                        var os2 = b as Osinfo.Media;
-
-                        return os2.os.get_release_date ().compare (os1.os.get_release_date ());
-                    });
+                    available_downloads_model.append (media);
                 }
             } catch (OSDatabaseError error) {
                 debug ("Failed to populate the list of downloadable OSes: %s", error.message);


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