diff options
-rw-r--r-- | perl-install/NEWS | 1 | ||||
-rw-r--r-- | perl-install/install/steps_gtk.pm | 49 | ||||
-rw-r--r-- | perl-install/install/steps_interactive.pm | 29 |
3 files changed, 27 insertions, 52 deletions
diff --git a/perl-install/NEWS b/perl-install/NEWS index 20f81670a..78942b4c6 100644 --- a/perl-install/NEWS +++ b/perl-install/NEWS @@ -2,6 +2,7 @@ - fix drakauth ldap configuration (mga#10005) - ensure files are installed for nfs (mga#10301) - stage2: add Feature:Independently_install_desktop_environments +- add images for LXDE,E17,Razorqt,MATE for Feature:Independently_install_desktop_environments - detect wifi cards managed by ssb driver (mga#9378) Version 15.57 - 16 July 2013 diff --git a/perl-install/install/steps_gtk.pm b/perl-install/install/steps_gtk.pm index eeaa3b42f..1e715d0a8 100644 --- a/perl-install/install/steps_gtk.pm +++ b/perl-install/install/steps_gtk.pm @@ -243,37 +243,24 @@ sub setPackages { } sub reallyChooseDesktop { - my ($o, $title, $message, $choices, $default_choice) = @_; + my ($o, $title, $message, $choices, $choice) = @_; + my $w = ugtk2->new($title); - my %choice; - my $n; my %tips = ( KDE => N("Install %s KDE Desktop", N("Mageia")), GNOME => N("Install %s GNOME Desktop", N("Mageia")), - MATE => N("Install %s MATE Desktop", N("Mageia")), - XFCE => N("Install %s XFCE Desktop", N("Mageia")), - LXDE => N("Install %s LXDE Desktop", N("Mageia")), - RAZOR => N("Install %s RazorQT Desktop", N("Mageia")), - E17 => N("Install %s E17 Desktop", N("Mageia")), Custom => N("Custom install"), ); my $prev; - my $default_set = 0; my @l = map { my $val = $_; - my $sensitive = grep { $_->[0] =~ /$val->[0]/ or $val->[0] eq 'Custom' } map { $_->{flags} } grep { $_->{path} eq 'Graphical Environment' } map { @$_ } $o->{compssUsers}; - $default_set++ if $sensitive; - $choice{$val->[0]} = '0'; - $prev = gtknew('CheckButton', - text => $val->[1], + $prev = gtknew('RadioButton', child => + gtknew('Label', text => $val->[1]), tip => $tips{$val->[0]}, - sensitive => $sensitive ? '1' : '0', - toggled => sub { $choice{$val->[0]} = $_[0]->get_active }, - active => $default_set == 1 && $sensitive ? ($choice{$val->[0]} = '1') : '0', - ); - - + toggled => sub { $choice = $val if $_[0]->get_active }, + active => $choice == $val, + $prev ? (group => $prev->get_group) : ()); $prev->signal_connect(key_press_event => sub { my (undef, $event) = @_; if (!$event || ($event->keyval & 0x7f) == 0xd) { @@ -281,16 +268,11 @@ sub reallyChooseDesktop { } }); my $img = gtksignal_connect( - gtkadd(Gtk2::EventBox->new, gtknew('Image', sensitive => $sensitive ? '1' : '0', file => "desktop-$val->[0]")), + gtkadd(Gtk2::EventBox->new, gtknew('Image', file => "desktop-$val->[0]")), 'button-press-event' => sub { my %title = ( KDE => N("KDE Desktop"), GNOME => N("GNOME Desktop"), - MATE => N("MATE Desktop"), - XFCE => N("XFCE Desktop"), - LXDE => N("LXDE Desktop"), - RAZOR => N("RazorQT Desktop"), - E17 => N("E17 Desktop"), Custom => N("Custom Desktop"), ); @@ -313,26 +295,19 @@ sub reallyChooseDesktop { $wp->{real_window}->show_all; $wp->main; }); - gtknew('VBox', border_width => 5, spacing => 10, children_tight => [ + gtknew('VBox', border_width => 15, spacing => 10, children_tight => [ $img, $prev, ]); } @$choices; -my @l1 = grep { !($n++ % 2) } @l; -my @l2 = grep { !(++$n % 2) } @l; + ugtk2::gtkadd($w->{window}, gtknew('VBox', children => [ 0, gtknew('Title2', # workaround infamous 6 years old gnome bug #101968: width => mygtk2::get_label_width(), label => $message . ' ' . N("Click on images in order to see a bigger preview")), - 1, gtknew('ScrolledWindow', h_policy => 'never', child => - gtknew('VBox', children => [ - 1, gtknew('HButtonBox', spacing => 5, layout => 'edge', children_loose => \@l1), - 1, gtknew('HButtonBox', spacing => 5, layout => 'edge', children_loose => \@l2), - ] - ), - ), + 1, gtknew('HButtonBox', children_loose => \@l), 0, $w->create_okcancel(N("Next"), undef, '', [ gtknew('Install_Button', text => N("Help"), clicked => sub { @@ -341,7 +316,7 @@ my @l2 = grep { !(++$n % 2) } @l; ])); $w->main; - %choice; + $choice; } sub reallyChooseGroups { diff --git a/perl-install/install/steps_interactive.pm b/perl-install/install/steps_interactive.pm index e458c1648..1bfea5cd0 100644 --- a/perl-install/install/steps_interactive.pm +++ b/perl-install/install/steps_interactive.pm @@ -482,35 +482,34 @@ 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.\nSelect 'Custom' for multiple desktops or package selection."); + my $message = N("You can choose your workstation desktop profile."); my $default_choice = (find { $rpmsrate_flags_chosen->{"CAT_" . $_->[0]} } @l) || $l[0]; - my $choose = $default_choice; - my %choice; + my $choice = $default_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 => \$choose, list => \@l, type => 'list', format => sub { $_[0][1] } }, + { val => \$choice, list => \@l, type => 'list', format => sub { $_[0][1] } }, ]); } - - my @want = map { if ($_ eq 'Custom') { - $$chooseGroups = $choice{$_} } else { - $rpmsrate_flags_chosen->{"CAT_$_"} = $choice{$_} } } keys %choice; + 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 @flags = map_each { if_($::b, $::a) } %$rpmsrate_flags_chosen; log::l("flags ", join(' ', sort @flags)); install::any::unselectMostPackages($o); + } else { + $$chooseGroups = 1; + } } sub chooseGroups { |