diff options
Diffstat (limited to 'perl-install/modules/interactive.pm')
| -rw-r--r-- | perl-install/modules/interactive.pm | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/perl-install/modules/interactive.pm b/perl-install/modules/interactive.pm index ead9e7b71..dae135889 100644 --- a/perl-install/modules/interactive.pm +++ b/perl-install/modules/interactive.pm @@ -1,4 +1,4 @@ -package modules::interactive; # $Id$ +package modules::interactive; use modules; use common; @@ -11,17 +11,18 @@ sub config_window { require modules::parameters; my @l; foreach (modules::parameters::parameters($data->{driver})) { - my ($name, $format, $description) = @$_; - push @l, { label => $name, help => join("\n", $description, if_(c::kernel_version() !~ /^\Q2.6/, "[$format]")), - val => \$conf{$name}, allow_empty_list => 1 }; + my ($name, $description) = @$_; + push @l, { label => $name, help => $description, + val => \$conf{$name}, allow_empty_list => 1 }; + } + if (!@l) { + $in->ask_warn(N("Error"), N("This driver has no configuration parameter!")); + return; } - # BUG: once we've released mdk9.2 and unfreeze cooker, morph this - # into a proper error dialog with a nice error message (but - # for now we cannot due to string freeze :-() - @l = { label => N("Parameters"), help => "", val => N("NONE"), allow_empty_list => 1 } if !@l; if ($in->ask_from(N("Module configuration"), N("You can configure each parameter of the module here."), \@l)) { - my $options = join(' ', map { if_($conf{$_}, "$_=$conf{$_}") } keys %conf); - if ($options) { + my $options = join(' ', map { if_($conf{$_} =~ /^\S+$/, "$_=$conf{$_}") } keys %conf); + my $old_options = $modules_conf->get_options($data->{driver}); + if ($options ne $old_options) { $modules_conf->set_options($data->{driver}, $options); $modules_conf->write; } @@ -80,13 +81,13 @@ sub load_category__prompt_for_more { my %category2text = ( 'bus/usb' => N_("Installing driver for USB controller"), - 'bus/firewire' => N_("Installing driver for firewire controller %s"), - 'disk/ide|scsi|hardware_raid|sata|firewire' => N_("Installing driver for hard drive controller %s"), - list_modules::ethernet_categories() => N_("Installing driver for ethernet controller %s"), + 'bus/firewire' => N_("Installing driver for firewire controller \"%s\""), + 'disk/card_reader|ide|scsi|hardware_raid|sata|firewire|virtual' => N_("Installing driver for hard disk drive controller \"%s\""), + list_modules::ethernet_categories() => N_("Installing driver for ethernet controller \"%s\""), ); sub wait_load_module { - my ($in, $category, $text, $module) = @_; + my ($in, $category, $text, $_module) = @_; my $msg = do { if (my $t = $category2text{$category}) { sprintf(translate($t), $text); @@ -96,20 +97,21 @@ sub wait_load_module { N("Installing driver for %s card %s", $category, $text); } }; - $in->wait_message('', [ $msg, if_($::expert, N("(module %s)", $module)) ]); + $in->wait_message(N("Configuring Hardware"), $msg); } sub load_module__ask_options { my ($in, $module_descr, $parameters) = @_; - my @parameters = map { [ @$_[0, 1, 2] ] } @$parameters; + #- deep copying + my @parameters = map { [ @$_[0, 1] ] } @$parameters; if (@parameters) { $in->ask_from('', N("You may now provide options to module %s.\nNote that any address should be entered with the prefix 0x like '0x123'", $module_descr), - [ map { { label => $_->[0] . ($_->[1] ? " ($_->[1])" : ''), help => $_->[2], val => \$_->[3] } } @parameters ], + [ map { { label => $_->[0], help => $_->[1], val => \$_->[2] } } @parameters ], ) or return; - join(' ', map { if_($_->[3], "$_->[0]=$_->[3]") } @parameters); + join(' ', map { if_($_->[2], "$_->[0]=$_->[2]") } @parameters); } else { my $s = $in->ask_from_entry('', N("You may now provide options to module %s. |
