[gnome-boxes] wizard-source: Don't list just a single ISO
- From: Felipe Borges <felipeborges src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-boxes] wizard-source: Don't list just a single ISO
- Date: Wed, 29 Nov 2017 12:59:29 +0000 (UTC)
commit 53e74078811dbc79e592a2fe168ec8ce250d1a07
Author: Felipe Borges <felipeborges gnome org>
Date: Mon Nov 20 13:26:25 2017 +0100
wizard-source: Don't list just a single ISO
In the "Available to Download" section we reveal a list of
available ISOs for each operating system when its entry gets
clicked.
There's no need to list it if there's just one item to show.
https://bugzilla.gnome.org/show_bug.cgi?id=790614
src/wizard-source.vala | 21 ++++++++++++++++++---
1 files changed, 18 insertions(+), 3 deletions(-)
---
diff --git a/src/wizard-source.vala b/src/wizard-source.vala
index 20e0adb..8f4b608 100644
--- a/src/wizard-source.vala
+++ b/src/wizard-source.vala
@@ -84,6 +84,8 @@ private class Boxes.WizardDownloadableEntry : Gtk.ListBoxRow {
[GtkChild]
private Gtk.ListBox medias_listbox;
+ public Osinfo.Media single_media;
+
public signal void activated (Osinfo.Media media);
public WizardDownloadableEntry (Osinfo.Os os) {
@@ -92,7 +94,15 @@ private class Boxes.WizardDownloadableEntry : Gtk.ListBoxRow {
title_label.label = os.name;
details_label.label = os.vendor;
- foreach (var media_entity in os.get_media_list ().get_elements()) {
+ var media_list = os.get_media_list () as Osinfo.List;
+ if (media_list.get_length () == 1)
+ single_media = media_list.get_nth (0) as Osinfo.Media;
+ else
+ populate_media_listbox (media_list);
+ }
+
+ private void populate_media_listbox (Osinfo.List media_list) {
+ foreach (var media_entity in media_list.get_elements()) {
var media = (media_entity as Osinfo.Media);
medias_listbox.insert (new WizardDownloadableMediaEntry (media), -1);
@@ -416,9 +426,14 @@ private class Boxes.WizardSource: Gtk.Stack {
available_downloads_listbox.row_activated.connect ((row) => {
var entry = (row as WizardDownloadableEntry);
- entry.toggle();
-
selected = entry;
+ if (entry.single_media != null) {
+ this.uri = entry.single_media.url;
+
+ activated ();
+ } else {
+ entry.toggle();
+ }
});
os_db.list_latest_downloadable_oses.begin ((db, result) => {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]