[gnome-boxes] wizard: Go to next page if a setup entry activates
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-boxes] wizard: Go to next page if a setup entry activates
- Date: Mon, 13 May 2013 22:54:52 +0000 (UTC)
commit 0461f032749515ceffef408293822be58f970832
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date: Wed Apr 10 22:05:12 2013 +0300
wizard: Go to next page if a setup entry activates
But before we do, ensure user has provided all required info. If all
required info is not yet provided, take user to next required entry that
is still awaiting input.
https://bugzilla.gnome.org/show_bug.cgi?id=664218
src/installer-media.vala | 2 ++
src/unattended-installer.vala | 23 ++++++++++++++++++++++-
src/wizard.vala | 4 ++++
3 files changed, 28 insertions(+), 1 deletions(-)
---
diff --git a/src/installer-media.vala b/src/installer-media.vala
index f94feee..0bf3eb2 100644
--- a/src/installer-media.vala
+++ b/src/installer-media.vala
@@ -15,6 +15,8 @@ private class Boxes.InstallerMedia : GLib.Object {
public Osinfo.DeviceList supported_devices;
+ public signal void user_wants_to_create (); // User wants to already create the VM
+
// FIXME: Currently this information is always unknown so practically we never show any progress for
installations.
public virtual uint64 installed_size { get { return 0; } }
public virtual bool need_user_input_for_vm_creation { get { return false; } }
diff --git a/src/unattended-installer.vala b/src/unattended-installer.vala
index 1ecd4ed..bbc2436 100644
--- a/src/unattended-installer.vala
+++ b/src/unattended-installer.vala
@@ -373,7 +373,7 @@ private class Boxes.UnattendedInstaller: InstallerMedia {
express_toggle.margin_bottom = 15;
express_toggle.halign = Gtk.Align.START;
express_toggle.valign = Gtk.Align.CENTER;
- express_toggle.notify["active"].connect (() => { notify_property ("ready-to-create"); });
+ express_toggle.notify["active"].connect (() => { user_wants_to_create (); });
setup_grid.attach (express_toggle, 2, 0, 1, 1);
setup_grid_n_rows++;
@@ -397,6 +397,13 @@ private class Boxes.UnattendedInstaller: InstallerMedia {
username_entry.margin_bottom = 10;
username_entry.halign = Gtk.Align.FILL;
username_entry.valign = Gtk.Align.END;
+ username_entry.activate.connect (() => {
+ if (ready_for_express)
+ user_wants_to_create ();
+ else if (username != "" && product_key_format != null)
+ key_entry.grab_focus (); // If username is provided, must be product key thats still not
provided
+ });
+
setup_grid.attach (username_entry, 2, 1, 1, 1);
setup_grid_n_rows++;
@@ -426,6 +433,14 @@ private class Boxes.UnattendedInstaller: InstallerMedia {
notebook.prev_page ();
return false;
});
+ password_entry.activate.connect (() => {
+ if (ready_for_express)
+ user_wants_to_create ();
+ else if (username == "")
+ username_entry.grab_focus ();
+ else if (product_key_format != null)
+ key_entry.grab_focus ();
+ });
setup_grid.attach (notebook, 2, 2, 1, 1);
setup_grid_n_rows++;
@@ -453,6 +468,12 @@ private class Boxes.UnattendedInstaller: InstallerMedia {
key_entry.get_style_context ().add_class ("boxes-product-key-entry");
setup_grid.attach (key_entry, 2, setup_grid_n_rows, 1, 1);
express_toggle.bind_property ("active", key_entry, "sensitive", 0);
+ key_entry.activate.connect (() => {
+ if (ready_for_express)
+ user_wants_to_create ();
+ else if (key_entry.text_length == product_key_format.length)
+ username_entry.grab_focus (); // If product key is provided, must be username thats still
not provided.
+ });
setup_grid_n_rows++;
key_inserted_id = key_entry.insert_text.connect (on_key_text_inserted);
diff --git a/src/wizard.vala b/src/wizard.vala
index f9fbbd8..1ecd6d0 100644
--- a/src/wizard.vala
+++ b/src/wizard.vala
@@ -338,6 +338,10 @@ private class Boxes.Wizard: Boxes.UI {
continue_button, "sensitive",
BindingFlags.SYNC_CREATE);
vm_creator.install_media.populate_setup_vbox (setup_vbox);
+ vm_creator.install_media.user_wants_to_create.connect (() => {
+ if (vm_creator.install_media.ready_to_create)
+ page = page + 1;
+ });
return true;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]