From 854ecdeb3915800d6cd8f4a3084e7a50b1bc8b73 Mon Sep 17 00:00:00 2001 From: Florent Villard Date: Fri, 6 Feb 2004 13:16:35 +0000 Subject: Warn if the user is not in framebuffer mode, but allow to see the installed theme. Do not perform autologin config in splash mode Better parsing of current resolution from detect-resolution --- perl-install/standalone/drakboot | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) (limited to 'perl-install') diff --git a/perl-install/standalone/drakboot b/perl-install/standalone/drakboot index c065eb634..59de979b3 100755 --- a/perl-install/standalone/drakboot +++ b/perl-install/standalone/drakboot @@ -50,7 +50,6 @@ ugtk2->import(qw(:helpers :wrappers :create)); my $no_bootsplash; my $x_mode = Xconfig::various::runlevel() == 5; -my $splash_mode = 1; my $auto_mode = any::get_autologin(); my $switch_theme = '/usr/share/bootsplash/scripts/switch-themes'; @@ -88,33 +87,30 @@ my %themes = ('path' => '/usr/share/bootsplash/themes/', }, ); my $cur_res = `/usr/share/bootsplash/scripts/detect-resolution`; +$cur_res =~ m/(\d+x\d+)x\d+/ and $cur_res = $1; #- verify that current resolution is ok -if (member($cur_res, qw( 785 788 791 794))) { - ($cur_res) = $bootloader::vga_modes{$cur_res} =~ /^([0-9x]+).*?$/; -} else { +if (!$cur_res) { $no_bootsplash = 1; #- we can't select any theme we're not in Framebuffer mode :-/ + $cur_res = '800x600' } -do { $no_bootsplash = 0; $cur_res = '800x600' } if $::testing; +$no_bootsplash = 0 if $::testing; my @thms; my @boot_thms = if_(!$themes{default}, qw(default)); chdir($themes{path}); #- we must change directory for correct @thms assignement foreach (all('.')) { - if (-d $themes{path} . $_ && m/^[^.]/) { + if (-d "$themes{path}$_" && m/^[^.]/) { push @thms, $_; - -f $themes{path} . $_ . $themes{boot}{path} . "bootsplash-$cur_res.jpg" and push @boot_thms, $_; + -f "$themes{path}$_$themes{boot}{path}bootsplash-$cur_res.jpg" and push @boot_thms, $_; } - # $_ eq $themes{'defaut'} and $default = $themes{'defaut'}; } my %combo = ('thms' => '', 'lilo' => '', 'boot' => ''); foreach (keys(%combo)) { $combo{$_} = gtkset_size_request(Gtk2::OptionMenu->new, 10, -1); } -if (!$no_bootsplash) { - $combo{boot}->set_popdown_strings(@boot_thms); - $combo{boot}->entry->set_text($themes{default}); -} +$combo{boot}->set_popdown_strings(@boot_thms); +$combo{boot}->entry->set_text($themes{default}); my $boot_pic = gtkcreate_img($themes{def_thmb}); change_image($boot_pic, $themes{default}); @@ -125,18 +121,24 @@ my $keep_logo = 1; #- ******** action to take on changing combos values -$no_bootsplash == 0 - and $combo{boot}->entry->signal_connect(changed => sub { change_image($boot_pic, $combo{boot}->entry->get_text) }); -my ($x_box, $splash_box); +$combo{boot}->entry->signal_connect(changed => sub { change_image($boot_pic, $combo{boot}->entry->get_text) }); +my ($x_box, $splash_box); +my $boot_warn = 1; +my $splash_mode &= !$no_bootsplash; gtkadd($window, gtkpack_(Gtk2::VBox->new(0,0), ($splash_working ? (1, gtkpack_(gtkset_border_width(Gtk2::VBox->new(0, 5), 5), 0, gtksignal_connect(gtkset_active(Gtk2::CheckButton->new(N("Use graphical boot")), $splash_mode), clicked => sub { - $splash_box->set_sensitive(!$splash_mode); $splash_mode = !$splash_mode; + if ($boot_warn && $no_bootsplash && $splash_mode) { + $in->ask_warn(N("Warning"), + [ N("Your system bootloader is not in framebuffer mode. To activate graphical boot, select a graphic video mode into the bootloader configuration tool.") ]); + $boot_warn = 0 + } + $splash_box->set_sensitive($splash_mode); }), 1, gtkpack(gtkset_sensitive($splash_box = Gtk2::HBox->new(0, 0), $splash_mode), gtkpack__(Gtk2::VBox->new(0, 5), @@ -182,7 +184,7 @@ gtkadd($window, cancel_clicked => sub { ugtk2->exit(0) }, ok_clicked => sub { Xconfig::various::runlevel($x_mode ? 5 : 3); - updateAutologin(); + $splash_working or updateAutologin(); $no_bootsplash or update_bootsplash($combo{boot}->entry->get_text, $keep_logo); ugtk2->exit(0); } -- cgit v1.2.1