Your message dated Fri, 05 Dec 2014 19:04:52 +0000
with message-id <1417806292.10998.48.ca...@adam-barratt.org.uk>
and subject line Re: Bug#772155: unblock: gnome-boxes/3.14.2-1
has caused the Debian Bug report #772155,
regarding unblock: gnome-boxes/3.14.2-1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
772155: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772155
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Hi,

please unblock gnome-boxes for a new upstream bugfix release.

gnome-boxes (3.14.2-1) unstable; urgency=medium

  [ Jackson Doak ]
  * New upstream bugfix release.

The Debian diff consists in the above changelog. Attaching the upstream 
diff between 3.14.1.1 and 3.14.2.

unblock gnome-boxes/3.14.2-1

Thanks,
-- 
 .''`.        Josselin Mouette
: :' :
`. `'
  `-
diff --git a/NEWS b/NEWS
index a4e87ee..3a0649c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,46 @@
-3.14.1.1 - Oct 15, 2014
+3.14.2 - Nov 11, 2014
 =====================
 
+Changes since 3.14.1.2:
+
+- Remove redundant revealer from snapshots view.
+- Fix a potential crash on snapshot deletion.
+- Print a more descriptive warning on failing to rename a snapshot.
+- Report ovirt support in configure summary.
+
+3.14.1.2 - Oct 27, 2014
+=======================
+
 Changes since 3.14.1.1:
 
+- Fix crash on launching a VNC box.
+- Fix exit of wizard when going back from customization screen.
+- Don't start the VM after reverting to a snapshot unless it was running in
+  foreground before the reversion operation.
+- Always show "Reverting to SNAPSHOT_NAME" message when reverting as we can
+  never be sure about the speed of the operation.
+- Fix the the issue of pause button still being available to user when a
+  selected box(es) is already being paused and Boxes leading into interesting
+  scenerios if user clicks on the button.
+- Fix the issue of change of box name from toolbar title not getting saved.
+- Fix cancellation of media setup and therefore wizard jumping to setup page
+  even after user has cancelled creation of corresponding VM.
+- Continue wizard to next step on user hitting 'Enter' in URL entry.
+- Correctly handle HTTP(S) redirection.
+- Remove a now redundant work around.
+- Added/updated/fixed translations:
+  - Arabic
+
+All contributors to this release:
+
+Mosaab Alzoubi <moc...@hotmail.com>
+Zeeshan Ali (Khattak) <zeesha...@gnome.org>
+
+3.14.1.1 - Oct 15, 2014
+=======================
+
+Changes since 3.14.1:
+
 - Fix express installation for Microsoft Windows.
 - Fix handling of downloads of unknown size.
 
diff --git a/configure.ac b/configure.ac
index caf7984..cf79f9e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -217,4 +217,5 @@ AC_MSG_NOTICE([
         build from vala sources:  $enable_vala
         USB redirection support:  $enable_usbredir
         Smartcard support:        $enable_smartcard
+        oVirt support:            $have_govirt
 ])
diff --git a/data/ui/snapshot-list-row.ui b/data/ui/snapshot-list-row.ui
index f20ee62..a94fb97 100644
--- a/data/ui/snapshot-list-row.ui
+++ b/data/ui/snapshot-list-row.ui
@@ -22,83 +22,45 @@
   <template class="BoxesSnapshotListRow" parent="GtkListBoxRow">
     <property name="visible">True</property>
     <property name="can_focus">True</property>
+
     <child>
-      <object class="GtkRevealer" id="delete_revealer">
+      <object class="GtkStack" id="mode_stack">
         <property name="visible">true</property>
         <property name="can_focus">false</property>
-        <property name="reveal_child">true</property>
-
+        <property name="transition_type">slide-up-down</property>
         <child>
-          <object class="GtkStack" id="mode_stack">
-            <property name="visible">true</property>
-            <property name="can_focus">false</property>
-            <property name="transition_type">slide-up-down</property>
+          <object class="GtkBox" id="show_name_box">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <child>
-              <object class="GtkBox" id="show_name_box">
+              <object class="GtkLabel" id="name_label">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <child>
-                  <object class="GtkLabel" id="name_label">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="hexpand">True</property>
-                    <property name="vexpand">True</property>
-                    <property name="halign">start</property>
-                    <property name="valign">center</property>
-                    <property name="margin_start">45</property>
-                    <property name="ellipsize">end</property>
-                    <property name="xalign">0</property>
-                  </object>
-                </child>
-
-                <child>
-                  <object class="GtkMenuButton" id="more_button">
-                    <property name="visible">true</property>
-                    <property name="menu_model">actions_menu</property>
-                    <property name="valign">center</property>
-                    <property name="margin_top">4</property>
-                    <property name="margin_bottom">4</property>
-                    <property name="margin_end">4</property>
-                    <style>
-                      <class name="image-button" />
-                    </style>
-                    <child>
-                      <object class="GtkImage">
-                        <property name="visible">true</property>
-                        <property name="icon-name">emblem-system-symbolic</property>
-                      </object>
-                    </child>
-                  </object>
-                </child>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="halign">start</property>
+                <property name="valign">center</property>
+                <property name="margin_start">45</property>
+                <property name="ellipsize">end</property>
+                <property name="xalign">0</property>
               </object>
             </child>
 
             <child>
-              <object class="GtkBox" id="edit_name_box">
+              <object class="GtkMenuButton" id="more_button">
                 <property name="visible">true</property>
-                <property name="orientation">horizontal</property>
-                <property name="can_focus">false</property>
-                <child>
-                  <object class="GtkEntry" id="name_entry">
-                    <property name="visible">true</property>
-                    <property name="can_focus">true</property>
-                    <property name="margin_start">45</property>
-                    <property name="hexpand">true</property>
-                    <signal name="activate" handler="on_save_name_button_clicked" />
-                  </object>
-                </child>
-
+                <property name="menu_model">actions_menu</property>
+                <property name="valign">center</property>
+                <property name="margin_top">4</property>
+                <property name="margin_bottom">4</property>
+                <property name="margin_end">4</property>
+                <style>
+                  <class name="image-button" />
+                </style>
                 <child>
-                  <object class="GtkButton" id="save_name_button">
-                    <property name="can_focus">true</property>
+                  <object class="GtkImage">
                     <property name="visible">true</property>
-                    <property name="margin_start">10</property>
-                    <property name="valign">center</property>
-                    <property name="label" translatable="yes">Done</property>
-                    <signal name="clicked" handler="on_save_name_button_clicked" />
-                    <style>
-                      <class name="text-button" />
-                    </style>
+                    <property name="icon-name">emblem-system-symbolic</property>
                   </object>
                 </child>
               </object>
@@ -106,7 +68,36 @@
           </object>
         </child>
 
+        <child>
+          <object class="GtkBox" id="edit_name_box">
+            <property name="visible">true</property>
+            <property name="orientation">horizontal</property>
+            <property name="can_focus">false</property>
+            <child>
+              <object class="GtkEntry" id="name_entry">
+                <property name="visible">true</property>
+                <property name="can_focus">true</property>
+                <property name="margin_start">45</property>
+                <property name="hexpand">true</property>
+                <signal name="activate" handler="on_save_name_button_clicked" />
+              </object>
+            </child>
 
+            <child>
+              <object class="GtkButton" id="save_name_button">
+                <property name="can_focus">true</property>
+                <property name="visible">true</property>
+                <property name="margin_start">10</property>
+                <property name="valign">center</property>
+                <property name="label" translatable="yes">Done</property>
+                <signal name="clicked" handler="on_save_name_button_clicked" />
+                <style>
+                  <class name="text-button" />
+                </style>
+              </object>
+            </child>
+          </object>
+        </child>
       </object>
     </child>
   </template>
diff --git a/data/ui/wizard-source.ui b/data/ui/wizard-source.ui
index 297eada..920ab83 100644
--- a/data/ui/wizard-source.ui
+++ b/data/ui/wizard-source.ui
@@ -227,6 +227,7 @@
                 <property name="margin-top">10</property>
                 <property name="margin-start">20</property>
                 <property name="margin-end">20</property>
+                <signal name="activate" handler="on_url_entry_activated"/>
               </object>
             </child>
 
diff --git a/po/LINGUAS b/po/LINGUAS
index d8cf07b..bb4a993 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1,4 +1,5 @@
 # Keep this list sorted alphabetically
+ar
 as
 be
 bg
diff --git a/po/ar.po b/po/ar.po
new file mode 100644
index 0000000..b77dfb3
diff --git a/src/downloader.vala b/src/downloader.vala
index f64b1b7..ca3e04d 100644
--- a/src/downloader.vala
+++ b/src/downloader.vala
@@ -137,6 +137,9 @@ private async void download_from_http (Download download, Cancellable? cancellab
         int64 current_num_bytes = 0;
         // FIXME: Reduce lambda nesting by splitting out downloading to Download class
         msg.got_chunk.connect ((msg, chunk) => {
+            if (session.would_redirect (msg))
+                return;
+
             current_num_bytes += chunk.length;
             try {
                 // Write synchronously as we have no control over order of async
diff --git a/src/installer-media.vala b/src/installer-media.vala
index 30b0ca2..a5e0d34 100644
--- a/src/installer-media.vala
+++ b/src/installer-media.vala
@@ -82,8 +82,10 @@
     }
 
     public virtual void set_direct_boot_params (DomainOs os) {}
-    public virtual async void prepare (ActivityProgress progress = new ActivityProgress (),
-                                       Cancellable? cancellable = null) {}
+    public virtual async bool prepare (ActivityProgress progress = new ActivityProgress (),
+                                       Cancellable?     cancellable = null) {
+        return true;
+    }
     public virtual async void prepare_for_installation (string vm_name, Cancellable? cancellable) throws GLib.Error {}
     public virtual void prepare_to_continue_installation (string vm_name) {}
     public virtual void clean_up () {
diff --git a/src/libvirt-machine-properties.vala b/src/libvirt-machine-properties.vala
index 07a6d2c..657875a 100644
--- a/src/libvirt-machine-properties.vala
+++ b/src/libvirt-machine-properties.vala
@@ -11,26 +11,22 @@ public LibvirtMachineProperties (LibvirtMachine machine) {
         this.machine = machine;
 
         machine.notify["name"].connect (() => {
-            try_change_name (machine.name);
+            save_machine_name_change ();
         });
     }
 
-    private bool try_change_name (string name) {
-        if (machine.name == name)
-            return false;
-
+    private bool save_machine_name_change () {
         try {
             var config = machine.domain.get_config (GVir.DomainXMLFlags.INACTIVE);
             // Te use libvirt "title" for free form user name
-            config.title = name;
+            config.title = machine.name;
             // This will take effect only after next reboot, but we use pending/inactive config for name and title
             machine.domain.set_config (config);
 
-            machine.name = name;
             return true;
         } catch (GLib.Error error) {
-            warning ("Failed to change title of box '%s' to '%s': %s",
-                     machine.domain.get_name (), name, error.message);
+            warning ("Failed to save change of title of box from '%s' to '%s': %s",
+                     machine.domain.get_name (), machine.name, error.message);
             return false;
         }
     }
@@ -121,7 +117,12 @@ private string collect_logs () {
             var property = add_string_property (ref list, _("Name"), machine.name);
             property.editable = true;
             property.changed.connect ((property, name) => {
-                return try_change_name (name);
+                machine.name = name;
+
+                // Its unlikely that machine name change fails and even if it
+                // does, name is still changed in the UI at least (it just
+                // doesn't get saved).
+                return true;
             });
 
             var name_property = property;
diff --git a/src/libvirt-machine.vala b/src/libvirt-machine.vala
index b86a7da..22532b6 100644
--- a/src/libvirt-machine.vala
+++ b/src/libvirt-machine.vala
@@ -29,6 +29,8 @@
         set { source.set_boolean ("source", "save-on-quit", value); }
     }
 
+    public override bool can_save { get { return !saving && state != MachineState.SAVED; } }
+
     public override void disconnect_display () {
         stay_on_display = false;
 
@@ -76,11 +78,11 @@ public override async void connect_display (Machine.ConnectFlags flags) throws G
     private MachineStat[] stats;
 
     private bool force_stopped;
+    private bool saving; // Machine is being saved currently..
 
     construct {
         stats = new MachineStat[STATS_SIZE];
         stats_cancellable = new Cancellable ();
-        can_save = true;
     }
 
     public void update_domain_config () {
@@ -430,7 +432,9 @@ public override void delete (bool by_user = true) {
     }
 
     public async override void save_real () throws GLib.Error {
+        saving = true;
         yield domain.save_async (0, null);
+        saving = false;
     }
 
     public async void suspend () throws GLib.Error {
diff --git a/src/machine.vala b/src/machine.vala
index 76bcedc..e419ca0 100644
--- a/src/machine.vala
+++ b/src/machine.vala
@@ -11,7 +11,7 @@
     public string? status { get; set; }
     public bool suspend_at_exit;
 
-    public bool can_save { get; protected set; default = false; }
+    public virtual bool can_save { get { return false; } }
     public bool can_delete { get; protected set; default = true; }
     public bool under_construction { get; protected set; default = false; }
 
diff --git a/src/properties-toolbar.vala b/src/properties-toolbar.vala
index 6e6a3bc..af75efe 100644
--- a/src/properties-toolbar.vala
+++ b/src/properties-toolbar.vala
@@ -25,7 +25,8 @@ public void setup_ui (AppWindow window) {
 
     [GtkCallback]
     private void on_back_clicked () {
-        if ((window.current_item as Machine).state != Machine.MachineState.RUNNING)
+        if ((window.current_item as Machine).state != Machine.MachineState.RUNNING &&
+             window.previous_ui_state == UIState.DISPLAY)
             window.set_state (UIState.COLLECTION);
         else
             window.set_state (window.previous_ui_state);
diff --git a/src/selectionbar.vala b/src/selectionbar.vala
index 0187ab9..583b84d 100644
--- a/src/selectionbar.vala
+++ b/src/selectionbar.vala
@@ -121,7 +121,7 @@ private void update_pause_btn () {
                 continue;
 
             var machine = item as Machine;
-            if (machine.can_save && machine.state != Machine.MachineState.SAVED) {
+            if (machine.can_save) {
                 sensitive = true;
 
                 break;
diff --git a/src/snapshot-list-row.vala b/src/snapshot-list-row.vala
index fa98d8a..e6fb5bf 100644
--- a/src/snapshot-list-row.vala
+++ b/src/snapshot-list-row.vala
@@ -6,8 +6,6 @@
     public string activity_message { get; set; default = ""; }
 
     [GtkChild]
-    private Gtk.Revealer delete_revealer;
-    [GtkChild]
     private Gtk.Label name_label;
     [GtkChild]
     private Gtk.Stack mode_stack;
@@ -63,14 +61,6 @@ public SnapshotListRow (GVir.DomainSnapshot snapshot,
         var action_group = new GLib.SimpleActionGroup ();
         action_group.add_action_entries (action_entries, this);
         this.insert_action_group ("snap", action_group);
-
-        delete_revealer.notify["child-revealed"].connect (() => {
-            if (!delete_revealer.child_revealed) {
-                parent_container = (Gtk.Container) this.get_parent ();
-                if (parent_container != null)
-                    parent_container.remove (this);
-            }
-        });
     }
 
     // Need to override this in order to connect the indicators without any gaps.
@@ -120,14 +110,16 @@ public override bool draw (Cairo.Context ct) {
 
     [GtkCallback]
     private void on_save_name_button_clicked () {
+        var name = name_entry.text;
+
         try {
             var config = snapshot.get_config (0);
-            config.set_description (name_entry.text);
+            config.set_description (name);
             snapshot.set_config (config);
-            name_label.label = name_entry.get_text ();
+            name_label.label = name;
             mode_stack.visible_child = show_name_box;
         } catch (GLib.Error e) {
-            warning (e.message);
+            warning ("Failed to change name of snapshot to %s: %s", name, e.message);
         }
     }
 
@@ -142,11 +134,11 @@ private void revert_to_activated (GLib.SimpleAction action, GLib.Variant? v) {
             snapshot_state = snapshot_config.get_state ();
         } catch (GLib.Error e) {}
 
-        var show_activity = (machine.state == Machine.MachineState.RUNNING);
-        if (show_activity)
-            activity_message = _("Reverting to %s…").printf (snapshot_name);
+        activity_message = _("Reverting to %s…").printf (snapshot_name);
 
-        if (snapshot_state == GVirConfig.DomainSnapshotDomainState.SHUTOFF) {
+        if (machine.window.previous_ui_state == UIState.DISPLAY &&
+            snapshot_state == GVirConfig.DomainSnapshotDomainState.SHUTOFF) {
+            // Previous UI state being DISPLAY implies that machine is running
             ulong restart_id = 0;
             restart_id = machine.domain.stopped.connect (() => {
                 machine.start.begin (Machine.ConnectFlags.NONE, null);
@@ -162,8 +154,7 @@ private void revert_to_activated (GLib.SimpleAction action, GLib.Variant? v) {
                 warning (e.message);
                 machine.window.notificationbar.display_error (_("Failed to apply snapshot"));
             }
-            if (show_activity)
-                activity_message = null;
+            activity_message = null;
         });
     }
 
@@ -179,12 +170,13 @@ private void delete_activated (GLib.SimpleAction action, GLib.Variant? v) {
                       e.message);
         }
         var message = _("Snapshot \"%s\" deleted.").printf (snapshot_identifier);
-        delete_revealer.reveal_child = false;
+        parent_container = (Gtk.Container) this.get_parent ();
+        var row = this;
+        parent_container.remove (this);
 
         Notification.OKFunc undo = () => {
             parent_container.add (this);
-            this.visible = true;
-            delete_revealer.reveal_child = true;
+            row = null;
         };
 
         Notification.CancelFunc really_remove = () => {
@@ -196,6 +188,7 @@ private void delete_activated (GLib.SimpleAction action, GLib.Variant? v) {
                     warning ("Error while deleting snapshot %s: %s", snapshot.get_name (), e.message);
                 }
             });
+            row = null;
         };
         machine.window.notificationbar.display_for_action (message,
                                                            _("_Undo"),
@@ -209,15 +202,6 @@ private void rename_activated (GLib.SimpleAction action, GLib.Variant? v) {
         name_entry.grab_focus ();
     }
 
-    public void unreveal () {
-        delete_revealer.reveal_child = false;
-    }
-
-    public void reveal () {
-        delete_revealer.reveal_child = true;
-    }
-
-
     private void update_index () {
         var parent = this.get_parent ();
 
diff --git a/src/snapshots-property.vala b/src/snapshots-property.vala
index 714f749..584d503 100644
--- a/src/snapshots-property.vala
+++ b/src/snapshots-property.vala
@@ -106,9 +106,7 @@ private async void create_snapshot () {
             var new_snapshot = yield machine.properties.create_snapshot ();
             var new_row = new SnapshotListRow (new_snapshot, machine);
             new_row.notify["activity-message"].connect (row_activity_changed);
-            new_row.unreveal ();
             snapshot_list.add (new_row);
-            new_row.reveal ();
         } catch (GLib.Error e) {
             var msg = _("Failed to create snapshot of %s").printf (machine.name);
             machine.window.notificationbar.display_error (msg);
diff --git a/src/topbar.vala b/src/topbar.vala
index 15808da..52cbc10 100644
--- a/src/topbar.vala
+++ b/src/topbar.vala
@@ -101,8 +101,7 @@ public void setup_ui (AppWindow window) {
         this.window = window;
 
         window.notify["selection-mode"].connect (() => {
-            // FIXME: Usage of 'this' is a work around for https://bugzilla.gnome.org/show_bug.cgi?id=734877
-            page = this.window.selection_mode ?
+            page = window.selection_mode ?
                 TopbarPage.SELECTION : page = TopbarPage.COLLECTION;
         });
 
diff --git a/src/unattended-installer.vala b/src/unattended-installer.vala
index 2f06e03..7e635b7 100644
--- a/src/unattended-installer.vala
+++ b/src/unattended-installer.vala
@@ -326,9 +326,9 @@ public string get_user_unattended (string? suffix = null) {
         return get_user_pkgcache (filename);
     }
 
-    public override async void prepare (ActivityProgress progress = new ActivityProgress (),
-                                        Cancellable? cancellable = null) {
-        yield setup_drivers (progress, cancellable);
+    public override async bool prepare (ActivityProgress progress = new ActivityProgress (),
+                                        Cancellable?     cancellable = null) {
+        return yield setup_drivers (progress, cancellable);
     }
 
     private DomainDisk? get_unattended_disk_config (PathFormat path_format = PathFormat.UNIX) {
@@ -450,7 +450,7 @@ private async void extract_boot_files (ISOExtractor extractor, Cancellable? canc
 
     private delegate void AddUnattendedFileFunc (UnattendedFile file);
 
-    private async void setup_drivers (ActivityProgress progress, Cancellable? cancellable = null) {
+    private async bool setup_drivers (ActivityProgress progress, Cancellable? cancellable = null) {
         progress.info = _("Downloading device drivers…");
 
         var scripts = get_pre_installer_scripts ();
@@ -458,7 +458,8 @@ private async void setup_drivers (ActivityProgress progress, Cancellable? cancel
 
         if (drivers.length () != 0 && scripts.length () != 0) {
             var drivers_progress = progress.add_child_activity (0.5);
-            yield setup_drivers_from_list (drivers, drivers_progress, add_unattended_file, cancellable);
+            if (!yield setup_drivers_from_list (drivers, drivers_progress, add_unattended_file, cancellable))
+                return false;
         } else
             progress.progress = 0.5;
 
@@ -467,12 +468,14 @@ private async void setup_drivers (ActivityProgress progress, Cancellable? cancel
 
         if (drivers.length () != 0 && scripts.length () != 0) {
             var drivers_progress = progress.add_child_activity (0.5);
-            yield setup_drivers_from_list (drivers, drivers_progress, add_secondary_unattended_file, cancellable);
+            return yield setup_drivers_from_list (drivers, drivers_progress, add_secondary_unattended_file, cancellable);
         } else
             progress.progress = 1.0;
+
+        return true;
     }
 
-    private async void setup_drivers_from_list (GLib.List<DeviceDriver> drivers,
+    private async bool setup_drivers_from_list (GLib.List<DeviceDriver> drivers,
                                                 ActivityProgress        progress,
                                                 AddUnattendedFileFunc   add_func,
                                                 Cancellable?            cancellable = null) {
@@ -483,12 +486,18 @@ private async void setup_drivers_from_list (GLib.List<DeviceDriver> drivers,
             try {
                 yield setup_driver (driver, driver_progress, add_func, cancellable);
                 additional_devices.add_all (driver.get_devices ());
+            } catch (IOError.CANCELLED e) {
+                debug ("Media preparation cancelled during driver setup.");
+
+                return false;
             } catch (GLib.Error e) {
                 debug ("Failed to make use of drivers at '%s': %s", driver.get_location (), e.message);
             } finally {
                 driver_progress.progress = 1.0; // Ensure progress reaches 100%
             }
         }
+
+        return true;
     }
 
     private async void setup_driver (DeviceDriver          driver,
@@ -516,7 +525,7 @@ private async void setup_driver (DeviceDriver          driver,
                 cached_paths += system_cached_path;
 
             var file_progress = progress.add_child_activity (file_progress_scale);
-            file = yield downloader.download (file, cached_paths, file_progress);
+            file = yield downloader.download (file, cached_paths, file_progress, cancellable);
             file_progress.progress = 1.0; // Ensure progress reaches 100%
 
             driver_files.append (new UnattendedRawFile (this, file.get_path (), filename));
diff --git a/src/vnc-display.vala b/src/vnc-display.vala
index 4bb505b..67213ff 100644
--- a/src/vnc-display.vala
+++ b/src/vnc-display.vala
@@ -45,9 +45,9 @@
             debug ("auth unsupported");
         });
 
-        display.vnc_auth_credential.connect ((vnc, creds) => {
+        display.vnc_auth_credential.connect ((creds) => {
             foreach (var cred in creds) {
-                var credential = cred as DisplayCredential;
+                var credential = (DisplayCredential) cred;
 
                 switch (credential) {
                 case DisplayCredential.USERNAME:
diff --git a/src/wizard-source.vala b/src/wizard-source.vala
index c30b041..cf8a8f5 100644
--- a/src/wizard-source.vala
+++ b/src/wizard-source.vala
@@ -200,6 +200,11 @@ private void on_enter_url_button_clicked () {
     }
 
     [GtkCallback]
+    private void on_url_entry_activated () {
+        activated ();
+    }
+
+    [GtkCallback]
     private void on_url_back_button_clicked () {
         selected = null;
         page = SourcePage.MAIN;
diff --git a/src/wizard.vala b/src/wizard.vala
index 00d5581..a452771 100644
--- a/src/wizard.vala
+++ b/src/wizard.vala
@@ -53,7 +53,7 @@
     protected Machine? machine { get; set; }
     private LibvirtMachine? libvirt_machine { get { return (machine as LibvirtMachine); } }
 
-    private Cancellable? prepare_cancellable;
+    private Cancellable prepare_cancellable = new Cancellable ();
     private Cancellable? review_cancellable;
     private bool skip_review_for_live;
 
@@ -209,8 +209,7 @@ private void wizard_source_update_next () {
     }
 
     public void cleanup () {
-        if (prepare_cancellable != null)
-            prepare_cancellable.cancel ();
+        prepare_cancellable.cancel ();
 
         destroy_machine ();
         vm_creator = null;
@@ -344,7 +343,8 @@ private async void prepare_media (InstallerMedia install_media, ActivityProgress
         else
             prepare_media_progress = progress;
         prepare_media_progress.bind_property ("info", prep_status_label, "label");
-        yield install_media.prepare (prepare_media_progress, prepare_cancellable);
+        if (!yield install_media.prepare (prepare_media_progress, prepare_cancellable))
+            return;
 
         vm_creator = install_media.get_vm_creator ();
         prep_progress.fraction = 1.0;
@@ -361,7 +361,8 @@ private bool prepare (ActivityProgress progress) {
             return false;
         }
 
-        prepare_cancellable = new Cancellable ();
+        prepare_cancellable.reset ();
+
         if (wizard_source.download_required) {
             continue_button.sensitive = false;
             download_media.begin (wizard_source.uri, progress);
@@ -588,8 +589,6 @@ private async void download_media (string uri, ActivityProgress progress) {
             warning ("Failed downloading media '%s'! %s", uri, e.message);
             window.notificationbar.display_error (_("Download failed."));
             page = WizardPage.SOURCE;
-        } finally {
-            prepare_cancellable = null;
         }
     }
 
@@ -612,8 +611,7 @@ public void setup_ui (AppWindow window) {
         });
         back_button = window.topbar.wizard_toolbar.back_btn;
         back_button.clicked.connect (() => {
-            if (prepare_cancellable != null)
-                prepare_cancellable.cancel ();
+            prepare_cancellable.cancel ();
 
             page = page - 1;
         });

--- End Message ---
--- Begin Message ---
On Fri, 2014-12-05 at 17:17 +0100, Josselin Mouette wrote:
> please unblock gnome-boxes for a new upstream bugfix release.
> 
> gnome-boxes (3.14.2-1) unstable; urgency=medium
> 
>   [ Jackson Doak ]

That's a rather noisy diff. :-(

Unblocked.

Regards,

Adam

--- End Message ---

Reply via email to