[gnome-boxes/download-oses-page: 6/7] 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: 6/7] wizard-source: Hardcode the front-page downloads list
- Date: Wed, 24 Jan 2018 14:45:08 +0000 (UTC)
commit 0e6605c4b7c0ba02754a763144dccc7aadc7df8f
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 | 33 ++++++++++++++++++++++++++++-----
2 files changed, 29 insertions(+), 5 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 a6cc1c2d..c13d045e 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);
@@ -407,11 +414,6 @@ public void setup_ui (AppWindow window) {
this.window = 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);
-
os_db.get_all_media_urls_as_store.begin ((db, result) => {
try {
media_urls_store = os_db.get_all_media_urls_as_store.end (result);
@@ -462,6 +464,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]