[gnome-boxes/handle-live-guests: 3/3] icon/list-view: Indicate that a guest is a live image




commit 655722d78f9b0c7686cf383e0b42e83997ebfe62
Author: Felipe Borges <felipeborges gnome org>
Date:   Mon Feb 8 13:10:58 2021 +0100

    icon/list-view: Indicate that a guest is a live image
    
    Not installed, booting from the source installer media.

 data/ui/icon-view-child.ui | 15 +++++++++++++++
 data/ui/list-view-row.ui   | 15 +++++++++++++++
 src/icon-view-child.vala   | 14 +++++++++++---
 src/list-view-row.vala     | 14 +++++++++++---
 4 files changed, 52 insertions(+), 6 deletions(-)
---
diff --git a/data/ui/icon-view-child.ui b/data/ui/icon-view-child.ui
index 34366d03..63c40936 100644
--- a/data/ui/icon-view-child.ui
+++ b/data/ui/icon-view-child.ui
@@ -54,6 +54,21 @@
               </packing>
             </child>
 
+            <child>
+              <object class="GtkImage" id="live_thumbnail">
+                <property name="visible">True</property>
+                <property name="icon-name">media-optical-symbolic</property>
+                <property name="icon-size">6</property>
+                <style>
+                  <class name="thumbnail"/>
+                </style>
+              </object>
+
+              <packing>
+                <property name="name">live</property>
+              </packing>
+            </child>
+
             <child>
               <object class="GtkSpinner" id="spinner">
                 <property name="visible">True</property>
diff --git a/data/ui/list-view-row.ui b/data/ui/list-view-row.ui
index 0d0cb6e8..9e0a6a63 100644
--- a/data/ui/list-view-row.ui
+++ b/data/ui/list-view-row.ui
@@ -37,6 +37,21 @@
           </packing>
         </child>
 
+        <child>
+          <object class="GtkImage" id="live_thumbnail">
+            <property name="visible">True</property>
+            <property name="icon-name">media-optical-symbolic</property>
+            <property name="icon-size">3</property>
+            <style>
+              <class name="thumbnail"/>
+            </style>
+          </object>
+
+          <packing>
+            <property name="name">live_thumbnail</property>
+          </packing>
+        </child>
+
         <child>
           <object class="GtkSpinner" id="spinner">
             <property name="visible">True</property>
diff --git a/src/icon-view-child.vala b/src/icon-view-child.vala
index b76f1f28..f07751c0 100644
--- a/src/icon-view-child.vala
+++ b/src/icon-view-child.vala
@@ -39,6 +39,8 @@
     [GtkChild]
     private Gtk.Image favorite;
     [GtkChild]
+    private Gtk.Image live_thumbnail;
+    [GtkChild]
     private Gtk.Label machine_name;
 
     private Boxes.MachineThumbnailer thumbnailer;
@@ -69,15 +71,21 @@ public IconViewChild (CollectionItem item) {
     }
 
     private void update_thumbnail () {
+        var libvirt_machine = machine as LibvirtMachine;
+
         if (machine.under_construction) {
             stack.visible_child = spinner;
             spinner.start ();
             spinner.visible = true;
-        }
-        else {
+
+            return;
+        } else if (VMConfigurator.is_live_config (libvirt_machine.domain_config)) {
+            stack.visible_child = live_thumbnail;
+        } else {
             stack.visible_child = thumbnail;
-            spinner.stop ();
         }
+
+        spinner.stop ();
     }
 
     private void update_favorite () {
diff --git a/src/list-view-row.vala b/src/list-view-row.vala
index 4f919250..3bbee8cb 100644
--- a/src/list-view-row.vala
+++ b/src/list-view-row.vala
@@ -41,6 +41,8 @@
     [GtkChild]
     private Gtk.Image thumbnail;
     [GtkChild]
+    private Gtk.Image live_thumbnail;
+    [GtkChild]
     private Gtk.Spinner spinner;
     [GtkChild]
     private Gtk.Image favorite;
@@ -84,15 +86,21 @@ public ListViewRow (CollectionItem item) {
     }
 
     private void update_thumbnail () {
+        var libvirt_machine = machine as LibvirtMachine;
+
         if (machine.under_construction) {
             stack.visible_child = spinner;
             spinner.start ();
             spinner.visible = true;
-        }
-        else {
+
+            return;
+        } else if (VMConfigurator.is_live_config (libvirt_machine.domain_config)) {
+            stack.visible_child = live_thumbnail;
+        } else {
             stack.visible_child = thumbnail;
-            spinner.stop ();
         }
+
+        spinner.stop ();
     }
 
     private void update_favorite () {


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