diff options
Diffstat (limited to 'perl-install/install/steps_interactive.pm')
-rw-r--r-- | perl-install/install/steps_interactive.pm | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/perl-install/install/steps_interactive.pm b/perl-install/install/steps_interactive.pm index 1bfea5cd0..e458c1648 100644 --- a/perl-install/install/steps_interactive.pm +++ b/perl-install/install/steps_interactive.pm @@ -482,34 +482,35 @@ sub _chooseDesktop { my @l = group_by2( KDE => N("KDE"), GNOME => N("GNOME"), + MATE => N("MATE"), + XFCE => N("XFCE"), + LXDE => N("LXDE"), + RAZOR => N("RAZOR"), + E17 => N("E17"), Custom => N("Custom"), ); + my $title = N("Desktop Selection"); - my $message = N("You can choose your workstation desktop profile."); + my $message = N("You can choose your workstation desktop profile.\nSelect 'Custom' for multiple desktops or package selection."); my $default_choice = (find { $rpmsrate_flags_chosen->{"CAT_" . $_->[0]} } @l) || $l[0]; - my $choice = $default_choice; + my $choose = $default_choice; + my %choice; if ($o->isa('interactive::gtk')) { # perl_checker: require install::steps_gtk - $choice = install::steps_gtk::reallyChooseDesktop($o, $title, $message, \@l, $default_choice); + %choice = install::steps_gtk::reallyChooseDesktop($o, $title, $message, \@l, $default_choice); } else { $o->ask_from_({ title => $title, message => $message }, [ - { val => \$choice, list => \@l, type => 'list', format => sub { $_[0][1] } }, + { val => \$choose, list => \@l, type => 'list', format => sub { $_[0][1] } }, ]); } - my $desktop = $choice->[0]; - log::l("chosen Desktop: $desktop"); - my @desktops = ('KDE', 'GNOME'); - if (member($desktop, @desktops)) { - my ($want, $dontwant) = ($desktop, grep { $desktop ne $_ } @desktops); - $rpmsrate_flags_chosen->{"CAT_$want"} = 1; - $rpmsrate_flags_chosen->{"CAT_$dontwant"} = 0; + + my @want = map { if ($_ eq 'Custom') { + $$chooseGroups = $choice{$_} } else { + $rpmsrate_flags_chosen->{"CAT_$_"} = $choice{$_} } } keys %choice; my @flags = map_each { if_($::b, $::a) } %$rpmsrate_flags_chosen; log::l("flags ", join(' ', sort @flags)); install::any::unselectMostPackages($o); - } else { - $$chooseGroups = 1; - } } sub chooseGroups { |