[gnome-boxes] installer: Launch new domains in fullscreen



commit ae25ec3835ddfa5071e3dd3dff6c01a0511ebe2f
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Thu Feb 16 19:59:19 2012 +0200

    installer: Launch new domains in fullscreen
    
    For non-express installations, after successfully creating and launching
    a domain, select it and make it fullcreen.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=670239

 src/app.vala             |    5 ++++-
 src/collection-view.vala |    2 +-
 src/vm-creator.vala      |   24 ++++++++++++++++++++++--
 3 files changed, 27 insertions(+), 4 deletions(-)
---
diff --git a/src/app.vala b/src/app.vala
index d5c5efd..3cf1555 100644
--- a/src/app.vala
+++ b/src/app.vala
@@ -42,6 +42,7 @@ private class Boxes.App: Boxes.UI {
     public GLib.SimpleAction action_fullscreen;
 
     public signal void ready ();
+    public signal void item_selected (CollectionItem item);
     private Gtk.Application application;
     private Clutter.TableLayout box_table;
     private CollectionView view;
@@ -500,7 +501,7 @@ private class Boxes.App: Boxes.UI {
         return false;
     }
 
-    public bool item_selected (CollectionItem item) {
+    public bool select_item (CollectionItem item) {
         if (ui_state == UIState.COLLECTION && !selection_mode) {
             current_item = item;
 
@@ -511,6 +512,8 @@ private class Boxes.App: Boxes.UI {
                 ui_state = UIState.CREDS;
             } else
                 warning ("unknown item, fix your code");
+
+            item_selected (item);
         }
 
         return false;
diff --git a/src/collection-view.vala b/src/collection-view.vala
index 7c74461..d0f97bb 100644
--- a/src/collection-view.vala
+++ b/src/collection-view.vala
@@ -217,7 +217,7 @@ private class Boxes.CollectionView: Boxes.UI {
         icon_view.set_selection_mode (Gtk.SelectionMode.SINGLE);
         icon_view.item_activated.connect ((view, path) => {
             var item = get_item_for_path (path);
-            app.item_selected (item);
+            app.select_item (item);
         });
         icon_view.selection_changed.connect (() => {
             app.notify_property ("selected-items");
diff --git a/src/vm-creator.vala b/src/vm-creator.vala
index 5b243af..1a3c8f9 100644
--- a/src/vm-creator.vala
+++ b/src/vm-creator.vala
@@ -40,14 +40,34 @@ private class Boxes.VMCreator {
 
     public async Domain create_and_launch_vm (InstallerMedia install_media,
                                               Cancellable?   cancellable) throws GLib.Error {
-        if (install_media is UnattendedInstaller)
-            yield (install_media as UnattendedInstaller).setup (cancellable);
+        var fullscreen = true;
+        if (install_media is UnattendedInstaller) {
+            var unattended = install_media as UnattendedInstaller;
+
+            yield unattended.setup (cancellable);
+            fullscreen = !unattended.express_install;
+        }
 
         var name = yield create_domain_name_from_media (install_media);
         var volume = yield create_target_volume (name, install_media.resources.storage);
         var config = configurator.create_domain_config (install_media, name, volume.get_path ());
 
         var domain = connection.create_domain (config);
+        ulong added_signal_id = 0;
+        ulong selected_signal_id = 0;
+        added_signal_id = app.collection.item_added.connect ((collection, item) => {
+            if (fullscreen && item is LibvirtMachine && (item as LibvirtMachine).domain == domain) {
+                app.select_item (item);
+                app.fullscreen = true;
+                app.collection.disconnect (added_signal_id);
+                app.disconnect (selected_signal_id);
+            }
+        });
+        selected_signal_id = app.item_selected.connect (() => {
+            app.collection.disconnect (added_signal_id);
+            app.disconnect (selected_signal_id);
+        });
+
         domain.start (0);
 
         return domain;



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