summaryrefslogtreecommitdiffstats
path: root/perl-install/install_steps_gtk.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/install_steps_gtk.pm')
-rw-r--r--perl-install/install_steps_gtk.pm61
1 files changed, 55 insertions, 6 deletions
diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm
index 933ac8368..72f9a3fef 100644
--- a/perl-install/install_steps_gtk.pm
+++ b/perl-install/install_steps_gtk.pm
@@ -92,10 +92,7 @@ sub new($$) {
my $prog = /Xsun/ ? $_ : "XF86_$_";
unless (-x "$dir/XF86_$_") {
unlink $_ foreach glob_("$dir/X*");
- local *F; open F, ">$dir/$prog" or die "failed to write server: $!";
- local $/ = \ (16 * 1024);
- my $f = install_any::getFile("$dir/$prog") or next;
- syswrite F, $_ foreach <$f>;
+ install_any::getAndSaveFile("$dir/$prog", "$dir/$prog") or die "failed to get server: $!";
chmod 0755, "$dir/$prog";
}
if (/FB/) {
@@ -187,9 +184,16 @@ sub selectMouse {
}
#------------------------------------------------------------------------------
-sub doPartitionDisks($$) {
+sub doPartitionDisks {
my ($o, $hds, $raid) = @_;
+ if ($o->{lnx4win}) {
+ eval { install_steps::doPartitionDisks(@_) };
+ $@ =~ /no fat/ or return;
+
+ $o->ask_warn('', _("You don't have any windows partitions!"));
+ delete $o->{lnx4win};
+ }
if ($::beginner && fsedit::is_one_big_fat($hds)) {
#- wizard
my $min_linux = 600 << 11;
@@ -246,9 +250,54 @@ When sure, press Ok."))) {
}
}
+sub doPartitionDisksLnx4winDev {
+ my ($o, $l) = @_;
+ return if $::beginner;
+
+ my ($dev) = $o->ask_from_list('', _("Which partition do you want to use to put Linux4Win?"),
+ [ map { sprintf "%s (%s) [%dMB]", $_->{device_windobe}, $_->{device}, $_->{size} >> 11 } @$l ]
+ ) =~ /\((\S+)\)/;
+ $_->{device} eq $dev and return $_ foreach @$l;
+}
+
+sub doPartitionDisksLnx4winSize {
+ my ($o, $root_size, $swap_size, $max_root_size, $max_swap_size) = @_;
+ return if $::beginner;
+
+ my $w = my_gtk->new('');
+
+ my $root_adj = create_adjustment($max_root_size >> 11, 1, $$root_size >> 11);
+ my $swap_adj = create_adjustment($max_swap_size >> 11, 1, $$swap_size >> 11);
+ my $root_spin = new Gtk::SpinButton($root_adj, 0, 0);
+ my $swap_spin = new Gtk::SpinButton($swap_adj, 0, 0);
+
+ gtkadd($w->{window},
+ gtkpack(new Gtk::VBox(0,20),
+_("Choose the sizes"),
+ create_packtable({},
+ [ _("Root partition size in MB: "), $root_spin ],
+ [ undef, new Gtk::HScrollbar($root_adj) ],
+ [ _("Swap partition size in MB: "), $swap_spin ],
+ [ undef, new Gtk::HScrollbar($swap_adj) ],
+ ),
+ create_okcancel($w)
+ ),
+ );
+ $w->{ok}->grab_focus;
+ $w->main(sub {
+ $$root_size = $root_spin->get_value_as_int << 11;
+ $$swap_size = $swap_spin->get_value_as_int << 11;
+ });
+
+}
+
#------------------------------------------------------------------------------
sub chooseSizeToInstall {
my ($o, $packages, $min_size, $max_size) = @_;
+
+ #- don't ask anything if the difference between min and max is too small
+ return $max_size if $min_size && $max_size / $min_size < 1.01;
+
my ($min, $max) = map { pkgs::correctSize($_ / sqr(1024)) } $min_size, $max_size;
log::l("choosing size to install between $min and $max (really between $min_size and $max_size)");
my $w = my_gtk->new('');
@@ -260,7 +309,7 @@ sub chooseSizeToInstall {
_("Now that you've selected desired groups, please choose
how many packages you want, ranging from minimal to full
installation of each selected groups.") .
- ($::expert ? "\n" . _("You will be able to choose more precisely in next step") : ''),
+ ($o->{compssUsersChoice}{Individual} ? "\n" . _("You will be able to choose more precisely in next step") : ''),
create_packtable({ col_spacings => 10 },
[ _("Choose the size you want to install"), $spin, _("MB"), ],
[ undef, new Gtk::HScrollbar($adj) ],