[gnome-boxes] installer: Refactor setup_pre_install_drivers()
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-boxes] installer: Refactor setup_pre_install_drivers()
- Date: Fri, 21 Dec 2012 19:19:22 +0000 (UTC)
commit 86218631a683836c3645496c3335304ccac90e54
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date: Mon Dec 17 04:49:08 2012 +0200
installer: Refactor setup_pre_install_drivers()
Separate methods to search all pre-installable drivers and scripts that
accept them.
https://bugzilla.gnome.org/show_bug.cgi?id=690321
src/media-manager.vala | 2 +-
src/unattended-installer.vala | 41 +++++++++++++++++++++++++++++++++--------
2 files changed, 34 insertions(+), 9 deletions(-)
---
diff --git a/src/media-manager.vala b/src/media-manager.vala
index 877b6e5..81baccc 100644
--- a/src/media-manager.vala
+++ b/src/media-manager.vala
@@ -29,7 +29,7 @@ private class Boxes.MediaManager : Object {
Cancellable? cancellable = null) throws GLib.Error {
var media = yield InstallerMedia.create_for_path (path, this, cancellable);
- return yield create_installer_media_from_media (media, on_installer_recognized, progress);
+ return yield create_installer_media_from_media (media, on_installer_recognized);
}
public async InstallerMedia create_installer_media_from_config (GVirConfig.Domain config) {
diff --git a/src/unattended-installer.vala b/src/unattended-installer.vala
index c895398..e1b065f 100644
--- a/src/unattended-installer.vala
+++ b/src/unattended-installer.vala
@@ -604,16 +604,14 @@ private class Boxes.UnattendedInstaller: InstallerMedia {
}
private async void setup_pre_install_drivers (Cancellable? cancellable = null) {
- foreach (var d in os.get_device_drivers ().get_elements ()) {
- var driver = d as DeviceDriver;
- if (driver.get_architecture () != os_media.architecture || !driver.get_pre_installable ())
- continue;
+ var drivers = get_pre_installable_drivers ();
+ var scripts = get_pre_installer_scripts ();
- foreach (var s in scripts.get_elements ()) {
- var script = s as InstallScript;
- if (!script.get_can_pre_install_drivers ())
- continue;
+ if (drivers.length () == 0 || scripts.length () == 0)
+ return;
+ foreach (var driver in drivers) {
+ foreach (var script in scripts) {
try {
yield setup_pre_install_driver_for_script (driver, script, cancellable);
} catch (GLib.Error e) {
@@ -657,6 +655,33 @@ private class Boxes.UnattendedInstaller: InstallerMedia {
}
}
+ private GLib.List<DeviceDriver> get_pre_installable_drivers () {
+ var drivers = new GLib.List<DeviceDriver> ();
+
+ foreach (var d in os.get_device_drivers ().get_elements ()) {
+ var driver = d as DeviceDriver;
+
+ if (driver.get_architecture () == os_media.architecture && driver.get_pre_installable ())
+ drivers.append (driver);
+ }
+
+ return drivers;
+ }
+
+ private GLib.List<InstallScript> get_pre_installer_scripts () {
+ var scripts = new GLib.List<InstallScript> ();
+
+ foreach (var s in this.scripts.get_elements ()) {
+ var script = s as InstallScript;
+
+ if (script.get_can_pre_install_drivers ())
+ scripts.append (script);
+ }
+
+ return scripts;
+ }
+
+
private string get_preferred_language () {
var system_langs = Intl.get_language_names ();
var media_langs = new HashTable<string, unowned string> (str_hash, str_equal);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]