[gnome-boxes/download-oses-page: 11/12] wizard-source: Hardcode the front-page downloads list
- From: Felipe Borges <felipeborges src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-boxes/download-oses-page: 11/12] wizard-source: Hardcode the front-page downloads list
- Date: Mon, 29 Jan 2018 15:39:27 +0000 (UTC)
commit 9eeffe62fa2a1333d2f255511bf9b7158444e814
Author: Felipe Borges <felipeborges gnome org>
Date: Wed Jan 24 12:37:03 2018 +0100
wizard-source: Hardcode the front-page downloads list
data/ui/wizard-source.ui | 1 +
src/wizard-source.vala | 32 ++++++++++++++++++++++++++++----
2 files changed, 29 insertions(+), 4 deletions(-)
---
diff --git a/data/ui/wizard-source.ui b/data/ui/wizard-source.ui
index 47dab2c9..7565317c 100644
--- a/data/ui/wizard-source.ui
+++ b/data/ui/wizard-source.ui
@@ -49,6 +49,7 @@
<child>
<object class="BoxesWizardScrolled" id="downloads_scrolled">
<property name="visible">False</property>
+ <signal name="show" handler="on_downloads_scrolled_shown"/>
</object>
</child>
diff --git a/src/wizard-source.vala b/src/wizard-source.vala
index 09190bd8..10a6c813 100644
--- a/src/wizard-source.vala
+++ b/src/wizard-source.vala
@@ -312,6 +312,12 @@ private void on_notify_estimated_load_progress () {
public string filename { get; set; }
+ private string[] recommended_downloads = {
+ "http://ubuntu.com/ubuntu/16.04",
+ "http://opensuse.org/opensuse/42.2",
+ "http://fedoraproject.org/fedora/27",
+ };
+
public bool download_required {
get {
string scheme = Uri.parse_scheme (uri);
@@ -383,6 +389,7 @@ private void on_notify_estimated_load_progress () {
downloads_scrolled.setup (num_visible);
downloads_vbox = downloads_scrolled.vbox;
+ downloads_vbox.row_activated.connect (on_downloadable_entry_clicked);
media_scrolled.bind_property ("visible", downloads_scrolled, "visible", BindingFlags.INVERT_BOOLEAN);
@@ -408,10 +415,6 @@ public void setup_ui (AppWindow window) {
var os_db = media_manager.os_db;
- var available_downloads_model = new GLib.ListStore (typeof (Osinfo.Media));
- downloads_vbox.bind_model (available_downloads_model, create_downloadable_entry);
- downloads_vbox.row_activated.connect (on_downloadable_entry_clicked);
-
// We need a Shadowman logo and libosinfo mandates that we specify an
// OsinfoOs to get a logo. However, we don't have an OsinfoOs to begin
// with, and by the time we get one from the Red Hat developer portal
@@ -441,6 +444,27 @@ public void setup_ui (AppWindow window) {
});
}
+ [GtkCallback]
+ private void on_downloads_scrolled_shown () {
+ var os_db = media_manager.os_db;
+ foreach (var os_id in recommended_downloads) {
+ os_db.get_os_by_id.begin (os_id, (obj, res) => {
+ try {
+ var os = os_db.get_os_by_id.end (res);
+
+ // TODO: Select the desktop/workstation variant.
+ var media = os.get_media_list ().get_nth (0) as Osinfo.Media;
+ var entry = create_downloadable_entry (media);
+
+ downloads_vbox.insert (entry, -1);
+ } catch (OSDatabaseError error) {
+ warning ("Failed to find OS with ID '%s': %s", os_id, error.message);
+ return;
+ }
+ });
+ }
+ }
+
private Gtk.Widget create_downloadable_entry (Object item) {
var media = item as Osinfo.Media;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]