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.pm365
1 files changed, 195 insertions, 170 deletions
diff --git a/perl-install/install/steps_gtk.pm b/perl-install/install/steps_gtk.pm
index 75f76421f..fa34c947c 100644
--- a/perl-install/install/steps_gtk.pm
+++ b/perl-install/install/steps_gtk.pm
@@ -1,4 +1,4 @@
-package install::steps_gtk; # $Id: steps_gtk.pm 266069 2010-02-09 19:47:35Z pterjan $
+package install::steps_gtk;
use diagnostics;
use strict;
@@ -15,8 +15,8 @@ use install::steps_interactive;
use interactive::gtk;
use xf86misc::main;
use common;
-use mygtk2;
-use ugtk2 qw(:helpers :wrappers :create);
+use mygtk3;
+use ugtk3 qw(:helpers :wrappers :create);
use devices;
use modules;
use install::gtk;
@@ -36,116 +36,126 @@ sub new($$) {
if (!$::local_install &&
($::testing ? $ENV{DISPLAY} ne $wanted_DISPLAY : $ENV{DISPLAY} =~ /^:\d/)) { #- is the display local or distant?
- my $f = "/tmp/Xconf";
- if (!$::testing) {
- devices::make("/dev/kbd");
- }
-
- #- /tmp is mostly tmpfs, but not fully, since it doesn't allow: mount --bind /tmp/.X11-unix /mnt/tmp/.X11-unix
- mkdir '/tmp/.X11-unix';
- run_program::run('mount', '-t', 'tmpfs', 'none', '/tmp/.X11-unix');
-
- my $launchX = sub {
- my ($server, $Driver) = @_;
-
- mkdir '/var/log' if !-d '/var/log';
-
- my @options = $wanted_DISPLAY;
- if ($server eq 'Xnest') {
- push @options, '-ac', '-geometry', $o->{vga} || ($o->{vga16} ? '640x480' : '800x600');
- } else {
- install::gtk::createXconf($f, @{$o->{mouse}}{'Protocol', 'device'}, $o->{mouse}{wacom}[0], $Driver);
-
- push @options, '-allowMouseOpenFail', '-xf86config', $f if arch() !~ /^sparc/;
- push @options, 'vt7', '-dpi', '75';
- push @options, '-nolisten', 'tcp';
-
- #- old weird servers: Xsun
- push @options, '-fp', '/usr/share/fonts:unscaled' if $server =~ /Xsun/;
- }
-
- if (!fork()) {
- c::setsid();
- exec $server, @options or c::_exit(1);
- }
-
- #- wait for the server to start
- foreach (1..5) {
- sleep 1;
- last if fuzzy_pidofs(qr/\b$server\b/);
- log::l("$server still not running, trying again");
- }
- my $nb;
- my $start_time = time();
- foreach (1..60) {
- log::l("waiting for the server to start ($_ $nb)");
- log::l("Server died"), return 0 if !fuzzy_pidofs(qr/\b$server\b/);
- $nb++ if xf86misc::main::Xtest($wanted_DISPLAY);
- if ($nb > 2) { #- one succeeded test is not enough :-(
- log::l("AFAIK X server is up");
- return 1;
- }
- time() - $start_time < 60 or last;
- time() - $start_time > 8 and print N("Xorg server is slow to start. Please wait..."), "\n";
- sleep 1;
- }
- log::l("Timeout!!");
- 0;
- };
- my @servers = qw(Driver:fbdev Driver:vesa); #-)
- if ($::testing) {
- @servers = 'Xnest';
- } elsif (arch() =~ /ia64/) {
- require Xconfig::card;
- my ($card) = Xconfig::card::probe();
- @servers = map { if_($_, "Driver:$_") } $card && $card->{Driver}, 'fbdev';
- } elsif (arch() =~ /i.86/) {
- require Xconfig::card;
- my ($card) = Xconfig::card::probe();
- if ($card && $card->{card_name} eq 'i810') {
- # early i810 do not support VESA:
- log::l("graphical installer not supported on early i810");
- undef @servers;
- }
- }
-
- foreach (@servers) {
- log::l("Trying with server $_");
- my ($prog, $Driver) = /Driver:(.*)/ ? ('Xorg', $1) : /Xsun|Xnest|^X_move$/ ? $_ : "XF86_$_";
- if (/FB/i) {
- !$o->{vga16} && $o->{allowFB} or next;
-
- $o->{allowFB} = &$launchX($prog, $Driver) #- keep in mind FB is used.
- and goto OK;
- } else {
- $o->{vga16} = 1 if /VGA16/;
- &$launchX($prog, $Driver) and goto OK;
- }
- }
- return undef;
+ _setup_and_start_X($o, $wanted_DISPLAY) or return;
}
- OK:
+
$ENV{DISPLAY} = $wanted_DISPLAY;
require detect_devices;
if (detect_devices::is_xbox()) {
modules::load('xpad');
run_program::run('xset', 'm', '1/8', '1');
}
+ if (detect_devices::is_qemu()) {
+ mkdir_p('/run/spice-vdagentd');
+ run_program::raw({ detach => 1 }, 'spice-vdagentd', '>', '/dev/null', '2>', '/dev/null', '-X');
+ run_program::raw({ detach => 1 }, 'spice-vdagent', '>', '/dev/null', '2>', '/dev/null');
+ }
any::disable_x_screensaver();
- run_program::raw({ detach => 1 }, 'drakx-matchbox-window-manager');
+ run_program::raw({ detach => 1 }, 'mutter', '--x11');
install::gtk::init_gtk($o);
install::gtk::init_sizes($o);
install::gtk::install_theme($o);
install::gtk::create_steps_window($o);
_may_configure_framebuffer_640x480($o);
- $ugtk2::grab = 1;
+ $ugtk3::grab = 1;
$o = (bless {}, ref($type) || $type)->SUPER::new($o);
$o->interactive::gtk::new;
+ gtkset_mousecursor_normal();
$o;
}
+sub _setup_and_start_X {
+ my ($o, $wanted_DISPLAY) = @_;
+ my $f = "/tmp/Xconf";
+
+ #- /tmp is mostly tmpfs, but not fully, since it doesn't allow: mount --bind /tmp/.X11-unix /mnt/tmp/.X11-unix
+ mkdir '/tmp/.X11-unix';
+ run_program::run('mount', '-t', 'tmpfs', 'none', '/tmp/.X11-unix');
+
+
+ my @servers = qw(Driver:fbdev Driver:vesa); #-)
+ if ($::testing) {
+ @servers = 'Xnest';
+ } elsif (is_uefi()) {
+ @servers = 'Driver:fbdev';
+ } elsif (arch() =~ /i.86/) {
+ require Xconfig::card;
+ my ($card) = Xconfig::card::probe();
+ if ($card && $card->{card_name} eq 'i810') {
+ # early i810 do not support VESA:
+ log::l("graphical installer not supported on early i810");
+ undef @servers;
+ }
+ }
+
+ foreach (@servers) {
+ log::l("Trying with server $_");
+ my ($prog, $Driver) = /Driver:(.*)/ ? ('Xorg', $1) : $_;
+ if (/FB/i) {
+ !$o->{vga16} && $o->{allowFB} or next;
+
+ $o->{allowFB} = _launchX($o, $f, $prog, $Driver, $wanted_DISPLAY) #- keep in mind FB is used.
+ and return 1;
+ } else {
+ $o->{vga16} = 1 if /VGA16/;
+ _launchX($o, $f, $prog, $Driver, $wanted_DISPLAY) and return 1;
+ }
+ }
+ return undef;
+}
+
+sub _launchX {
+ my ($o, $f, $server, $Driver, $wanted_DISPLAY) = @_;
+
+ mkdir '/var/log' if !-d '/var/log';
+
+ my @options = $wanted_DISPLAY;
+ if ($server eq 'Xnest') {
+ push @options, '-ac', '-geometry', $o->{vga} || ($o->{vga16} ? '640x480' : '1024x768');
+ } else {
+ install::gtk::createXconf($f, $Driver);
+
+ push @options, '-allowMouseOpenFail', '-xf86config', $f;
+ push @options, 'vt7', '-dpi', '75';
+ push @options, '-nolisten', 'tcp';
+ }
+
+ if (!fork()) {
+ c::setsid();
+ exec $server, @options or c::_exit(1);
+ }
+
+ #- wait for the server to start
+ foreach (1..5) {
+ sleep 1;
+ last if fuzzy_pidofs(qr/\b$server\b/);
+ log::l("$server still not running, trying again");
+ }
+ my $nb;
+ my $start_time = time();
+ foreach (1..60) {
+ log::l("waiting for the server to start ($_ $nb)");
+ if (!fuzzy_pidofs(qr/\b$server\b/)) {
+ log::l("Server died");
+ log::l(any::header("Xorg.log"), cat_("/var/log/Xorg.0.log"));
+ return 0 if !fuzzy_pidofs(qr/\b$server\b/);
+ }
+ $nb++ if xf86misc::main::Xtest($wanted_DISPLAY);
+ if ($nb > 2) { #- one succeeded test is not enough :-(
+ log::l("AFAIK X server is up");
+ return 1;
+ }
+ time() - $start_time < 60 or last;
+ time() - $start_time > 8 and print N("Xorg server is slow to start. Please wait..."), "\n";
+ sleep 1;
+ }
+ log::l("Timeout!!");
+ log::l(any::header("Xorg.log"), cat_("/var/log/Xorg.0.log"));
+ 0;
+}
+
#- if we success to start X in 640x480 using driver "vesa",
#- we configure to use fb on installed system (to ensure splashy works)
#- (useful on 800x480 netbooks)
@@ -176,7 +186,7 @@ sub leavingStep {
sub charsetChanged {
my ($o) = @_;
- Gtk2->set_locale;
+ c::init_setlocale();
install::gtk::load_font($o);
install::gtk::create_steps_window($o);
}
@@ -205,7 +215,7 @@ sub selectLanguage {
$o->ask_warn('',
formatAlaTeX(N("Your system is low on resources. You may have some problem installing
%s. If that occurs, you can try a text install instead. For this,
-press `F1' when booting on CDROM, then enter `text'."))) if availableRamMB() < 70; # 70MB
+press `F1' when booting on CDROM, then enter `text'.", N("Mageia")))) if availableRamMB() < 70; # 70MB
}
@@ -230,14 +240,22 @@ sub selectMouse {
}
}
+sub setPackages {
+ my ($o) = @_;
+ my (undef, $old_title) = get_default_step_items();
+ set_default_step_items(N("Media Selection") || $old_title);
+ install::any::setPackages($o);
+ set_default_step_items($old_title);
+}
+
sub reallyChooseDesktop {
my ($o, $title, $message, $choices, $choice) = @_;
- my $w = ugtk2->new($title);
+ my $w = ugtk3->new($title);
my %tips = (
- KDE => N("Install %s KDE Desktop"),
- GNOME => N("Install %s GNOME Desktop"),
+ KDE => N("Install %s Plasma Desktop", N("Mageia")),
+ GNOME => N("Install %s GNOME Desktop", N("Mageia")),
Custom => N("Custom install"),
);
my $prev;
@@ -248,39 +266,38 @@ sub reallyChooseDesktop {
tip => $tips{$val->[0]},
toggled => sub { $choice = $val if $_[0]->get_active },
active => $choice == $val,
- $prev ? (group => $prev->get_group) : ());
+ if_($prev, join => $prev));
$prev->signal_connect(key_press_event => sub {
my (undef, $event) = @_;
if (!$event || ($event->keyval & 0x7f) == 0xd) {
- Gtk2->main_quit;
+ Gtk3->main_quit;
}
});
my $img = gtksignal_connect(
- gtkadd(Gtk2::EventBox->new, gtknew('Image', file => "desktop-$val->[0]")),
+ gtkadd(Gtk3::EventBox->new, gtknew('Image', file => "desktop-$val->[0]")),
'button-press-event' => sub {
my %title = (
- KDE => N("KDE Desktop"),
+ KDE => N("Plasma Desktop"),
GNOME => N("GNOME Desktop"),
Custom => N("Custom Desktop"),
);
- my $wp = ugtk2->new($title{$val->[0]}, transient => $w->{real_window}, modal => 1);
+ my $wp = ugtk3->new($title{$val->[0]}, transient => $w->{real_window}, modal => 1);
gtkadd($wp->{rwindow},
- gtkpack_(Gtk2::VBox->new,
+ gtknew('VBox', children => [
0, gtknew('Title2', label => N("Here's a preview of the '%s' desktop.", $val->[1]),
# workaround infamous 6 years old gnome bug #101968:
- width => mygtk2::get_label_width(),
+ width => mygtk3::get_label_width(),
),
1, gtknew('Image', file => "desktop-$val->[0]-big"),
- 0, Gtk2::HSeparator->new,
- 0, gtkpack(create_hbox('end'),
- gtknew('Button', text => N("Close"), clicked => sub { Gtk2->main_quit })
- ),
- ),
+ 0, gtknew('HSeparator'),
+ 0, gtknew('HButtonBox', layout => 'end', children_loose => [
+ gtknew('Button', text => N("Close"), clicked => sub { Gtk3->main_quit })
+ ]),
+ ]),
);
$wp->{real_window}->set_size_request(-1, -1);
$wp->{real_window}->grab_focus;
- $wp->{real_window}->grab_focus;
$wp->{real_window}->show_all;
$wp->main;
});
@@ -290,19 +307,17 @@ sub reallyChooseDesktop {
]);
} @$choices;
- ugtk2::gtkadd($w->{window},
+ ugtk3::gtkadd($w->{window},
gtknew('VBox', children => [
0, gtknew('Title2',
# workaround infamous 6 years old gnome bug #101968:
- width => mygtk2::get_label_width(), label => $message . ' ' .
+ width => mygtk3::get_label_width(), label => $message . ' ' .
N("Click on images in order to see a bigger preview")),
1, gtknew('HButtonBox', children_loose => \@l),
0, $w->create_okcancel(N("Next"), undef, '',
[ gtknew('Install_Button', text => N("Help"),
clicked => sub {
- interactive::gtk::display_help(
- $o,
- { interactive_help_id => 'choosePackages#choose-graphical-env' }, $w);
+ interactive::gtk::display_help($o, { interactive_help_id => 'chooseDesktop' });
}), undef, 1 ])
]));
$w->main;
@@ -313,37 +328,41 @@ sub reallyChooseDesktop {
sub reallyChooseGroups {
my ($o, $size_to_display, $individual, $_compssUsers) = @_;
- my $w = ugtk2->new(N("Package Group Selection"));
+ my $w = ugtk3->new(N("Package Group Selection"));
my $w_size = gtknew('Label_Left', text => &$size_to_display, padding => [ 0, 0 ]);
+ my @entries;
my $entry = sub {
my ($e) = @_;
- gtknew('CheckButton',
+ my $w = gtknew('CheckButton',
text => translate($e->{label}),
tip => translate($e->{descr}),
active_ref => \$e->{selected},
toggled => sub {
gtkset($w_size, text => &$size_to_display);
});
+ push @entries, $w;
+ $w;
};
#- when restarting this step, it might be necessary to reload the compssUsers.pl (bug 11558). kludgy.
if (!ref $o->{gtk_display_compssUsers}) { install::any::load_rate_files($o) }
- ugtk2::gtkadd($w->{window},
- gtknew('VBox', children => [
- 1, $o->{gtk_display_compssUsers}->($entry),
- 1, '',
- 0, if_($individual,
- gtknew('CheckButton', text => N("Individual package selection"), active_ref => $individual),
- ),
- 0, $w_size,
- 0, Gtk2::HSeparator->new,
- 0, gtknew('HButtonBox', layout => 'edge', children_tight => [
- gtknew('Install_Button', text => N("Help"), clicked => sub {
- interactive::gtk::display_help($o, { interactive_help_id => 'choosePackages#choosePackagesGroups' }, $w) }),
- gtknew('Button', text => N("Next"), clicked => sub { Gtk2->main_quit }),
- ]),
- ]),
+ ugtk3::gtkadd($w->{window},
+ gtknew('VBox', children => [
+ 1, gtknew('ScrolledWindow', child => $o->{gtk_display_compssUsers}->($entry)),
+ if_($individual,
+ 0, gtknew('CheckButton', text => N("Individual package selection"), active_ref => $individual),
+ ),
+ 0, $w_size,
+ 0, gtknew('HSeparator'),
+ 0, gtknew('HButtonBox', layout => 'edge', children_tight => [
+ gtknew('Install_Button', text => N("Help"), clicked => sub {
+ interactive::gtk::display_help($o, { interactive_help_id => 'choosePackageGroups' }) }),
+ gtknew('Button', text => N("Unselect All"), clicked => sub { $_->set_active(0) foreach @entries }),
+ gtknew('Button', text => N("Next"), clicked => sub { Gtk3->main_quit }),
+ ]),
+ ],
+ )
);
$w->main;
1;
@@ -396,16 +415,17 @@ sub choosePackagesTree {
},
get_info => sub {
my $p = install::pkgs::packageByName($packages, $_[0]) or return '';
+ my $description = install::pkgs::get_pkg_info($p);
my $imp = translate($install::pkgs::compssListDesc{$p->flag_base ? 5 : $p->rate});
my $tag = { 'foreground' => 'royalblue3' };
- $@ ? N("Bad package") :
+
[ [ N("Name: "), $tag ], [ $p->name . "\n" ],
[ N("Version: "), $tag ], [ $p->version . '-' . $p->release . "\n" ],
[ N("Size: "), $tag ], [ N("%d KB\n", $p->size / 1024) ],
if_($imp, [ N("Importance: "), $tag ], [ "$imp\n" ]),
- [ "\n" ], [ formatLines($p->description) ] ];
+ [ "\n" ], [ formatLines($description) ] ];
},
toggle_nodes => sub {
my $set_state = shift @_;
@@ -416,6 +436,7 @@ sub choosePackagesTree {
my $state = $packages->{state} ||= {};
$packages->{rpmdb} ||= install::pkgs::rpmDbOpen(); #- WORKAROUND
my @l = $isSelection ? $packages->resolve_requested($packages->{rpmdb}, $state, \%l,
+ no_recommends => $::o->{no_recommends},
callback_choices => \&install::pkgs::packageCallbackChoices) :
$packages->disable_selected($packages->{rpmdb}, $state,
map { $packages->{depslist}[$_] } keys %l);
@@ -462,7 +483,8 @@ sub choosePackagesTree {
#- disable selection (or unselection).
$packages->{rpmdb} ||= install::pkgs::rpmDbOpen(); #- WORKAROUND
$isSelection ? $packages->disable_selected($packages->{rpmdb}, $state, @l) :
- $packages->resolve_requested($packages->{rpmdb}, $state, { map { $_->id => 1 } @l });
+ $packages->resolve_requested($packages->{rpmdb}, $state, { map { $_->id => 1 } @l },
+ no_recommends => $::o->{no_recommends});
} else {
#- keep the changes, update visible state.
foreach (@l) {
@@ -489,9 +511,7 @@ sub choosePackagesTree {
},
auto_deps => N("Show automatically selected packages"),
interactive_help => sub {
- interactive::gtk::display_help($o,
- { interactive_help_id =>
- 'choosePackages#choosePackagesTree' }, my $w) },
+ interactive::gtk::display_help($o, { interactive_help_id => 'choosePackagesTree' }) },
ok => N("Install"),
cancel => N("Previous"),
@@ -500,6 +520,11 @@ sub choosePackagesTree {
wait_message => N("Updating package selection"),
code => sub { $o->loadSavePackagesOnFloppy($packages); 1 },
},
+ { icon => 'reload',
+ help => N("Toggle between hierarchical and flat package list"),
+ wait_message => N("Updating package selection"),
+ code => sub { $common->{state}{flat} = !$common->{state}{flat}; 1 },
+ },
if_(0,
{ icon => 'feather',
help => N("Minimal install"),
@@ -532,7 +557,7 @@ sub installPackages {
my ($current_total_size, $last_size, $nb, $total_size, $last_dtime, $_trans_progress_total);
local $::noborderWhenEmbedded = 1;
- my $w = ugtk2->new(N("Installing"));
+ my $w = ugtk3->new(N("Installing"));
state $show_advertising;
my $show_release_notes;
@@ -555,8 +580,8 @@ sub installPackages {
my ($title);
my $pl = $f; $pl =~ s/\.png$/.pl/;
eval(cat_($pl)) if -e $pl;
- $banner->{text} = $title;
- Gtk2::Banner::update_text($banner);
+ # FIXME: This hasn't actually worked for years:
+ #Gtk3::Banner::update_text($banner, $title);
}
};
@@ -568,23 +593,24 @@ sub installPackages {
$pkg_log_widget->{to_bottom}->('force');
});
- my $release_notes = any::get_release_notes($o);
+ state $release_notes ||= any::get_release_notes($o);
my $rel_notes = gtknew('Button', text => N("Release Notes"),
clicked => sub { $show_release_notes = 1 });
- ugtk2::gtkadd($w->{window}, my $box = gtknew('VBox', children_tight => [
- gtknew('Image_using_pixmap', file_ref => \$advertising_image, show_ref => \$show_advertising),
+ ugtk3::gtkadd($w->{window}, my $box = gtknew('VBox', children_centered => [
+ gtknew('Image', file_ref => \$advertising_image, show_ref => \$show_advertising),
]));
+ my $progress_total = 0;
$box->pack_end(gtkshow(gtknew('VBox', border_width => 7, spacing => 3, children_loose => [
gtknew('ScrolledWindow', child => $pkg_log_widget,
- hide_ref => \$show_advertising, height => 250, to_bottom => 1),
+ hide_ref => \$show_advertising, height => $::real_windowheight - 215, to_bottom => 1),
gtknew('ProgressBar', fraction_ref => \ (my $pkg_progress), hide_ref => \$show_advertising),
gtknew('HButtonBox', layout => 'start', children_loose => [
N("Time remaining:"),
gtknew('Label', text_ref => \ (my $msg_time_remaining = N("(estimating...)"))),
]),
- gtknew('VBox', children_centered => [ gtknew('ProgressBar', fraction_ref => \ (my $progress_total), height => 25) ]),
+ gtknew('VBox', children_centered => [ gtknew('ProgressBar', fraction_ref => \$progress_total, height => 25) ]),
gtknew('HSeparator'),
gtknew('HButtonBox', spacing => 0, layout => 'edge', children_loose => [
if_($release_notes, $rel_notes),
@@ -599,10 +625,6 @@ sub installPackages {
$details->hide if !@install::any::advertising_images;
$w->sync;
- foreach ($cancel, $details) {
- gtkset_mousecursor_normal($_->window);
- }
-
$advertize->(0);
local *install::steps::installCallback = sub {
@@ -612,14 +634,9 @@ sub installPackages {
$nb = $amount;
$total_size = $total; $current_total_size = 0;
$o->{install_start_time} = 0;
- mygtk2::gtkadd($pkg_log_widget, text => P("%d package", "%d packages", $nb, $nb));
+ mygtk3::gtkadd($pkg_log_widget, text => P("%d package", "%d packages", $nb, $nb));
$w->flush;
} elsif ($type eq 'open') {
- gtkval_modify(\$pkg_progress, 0);
- my $p = $packages->{depslist}[$id];
- mygtk2::gtkadd($pkg_log_widget, text => sprintf("\n%s: %s", $p->name, translate($p->summary)));
- $current_total_size += $last_size;
- $last_size = $p->size;
$advertize->(1) if $show_advertising && $total_size > 20_000_000 && time() - $change_time > 20;
# display release notes if requested, when not chrooted:
@@ -628,10 +645,17 @@ sub installPackages {
any::run_display_release_notes($release_notes);
$w->flush;
}
+ } elsif ($type eq 'inst' && $subtype eq 'start') {
+ gtkval_modify(\$pkg_progress, 0);
+ my $p = $packages->{depslist}[$id];
+ mygtk3::gtkadd($pkg_log_widget, text => sprintf("\n%s: %s", $p->name, translate($p->summary)));
+ $pkg_log_widget->{to_bottom}->('force');
+ $current_total_size += $last_size;
+ $last_size = $p->size;
$w->flush;
} elsif ($type eq 'inst' && $subtype eq 'progress') {
- $o->{install_start_time} = time() unless $o->{install_start_time};
+ $o->{install_start_time} ||= time();
gtkval_modify(\$pkg_progress, $total ? $amount / $total : 0);
my $dtime = time() - $o->{install_start_time};
@@ -667,7 +691,7 @@ sub installPackages {
sub summary_prompt {
my ($o, $l, $check_complete) = @_;
- my $w = ugtk2->new(N("Summary"));
+ my $w = ugtk3->new(N("Summary"));
my $set_entry_labels;
my (@table, @widget_list);
@@ -681,14 +705,14 @@ sub summary_prompt {
$group = $e->{group};
push @table, [ gtknew('HBox', children_tight => [
gtknew('Title1',
- label => mygtk2::asteriskize(escape_text_for_TextView_markup_format($group))) ]), '' ];
+ label => mygtk3::asteriskize(escape_text_for_TextView_markup_format($group))) ]), '' ];
}
- $e->{widget} = gtknew('Label_Right', width => $::real_windowwidth * 0.72, alignment => [ 1, 1 ]);
+ $e->{widget} = gtknew('Label_Right', width => $::real_windowwidth * 0.72, alignment => [ 1, 1 ], line_wrap => 1, tip => $e->{tip});
push @table, [], [ gtknew('HBox', children_tight => [ $e->{widget}, gtknew('Alignment', width => 10) ]),
gtknew('Button', text => N("Configure"), clicked => sub {
$w->{rwindow}->hide;
- my ($old_icon, $old_title) = get_default_step_items();
+ my ($_old_icon, $old_title) = get_default_step_items();
set_default_step_items($e->{banner_title} || $old_title);
$e->{clicked}();
set_default_step_items($old_title);
@@ -711,9 +735,9 @@ sub summary_prompt {
};
$set_entry_labels->();
- my $help_sub = sub { interactive::gtk::display_help($o, { interactive_help_id => 'misc-params' }, $w) };
+ my $help_sub = sub { interactive::gtk::display_help($o, { interactive_help_id => 'misc-params' }) };
- ugtk2::gtkadd($w->{window},
+ ugtk3::gtkadd($w->{window},
gtknew('VBox', spacing => 5, children => [
1, gtknew('ScrolledWindow', h_policy => 'never',
child => gtknew('TextView',
@@ -737,15 +761,15 @@ sub ask_deselect_media__copy_on_disk {
my %selection = map { $_->{name} => !$_->{ignore} } @$hdlists;
if (@names > 1 || $o_copy_rpms_on_disk) {
- my $w = ugtk2->new(N("Media Selection"));
+ my $w = ugtk3->new(N("Media Selection"));
$w->sync;
- ugtk2::gtkadd(
+ ugtk3::gtkadd(
$w->{window},
gtknew('VBox', children => [
@names > 1 ? (
0, gtknew('Label_Left', padding => [ 0, 0 ],
# workaround infamous 6 years old gnome bug #101968:
- width => mygtk2::get_label_width(),
+ width => mygtk3::get_label_width(),
text => formatAlaTeX(N("The following installation media have been found.
If you want to skip some of them, you can unselect them now."))),
1, gtknew('ScrolledWindow', child => gtknew('VBox', children => [
@@ -761,7 +785,7 @@ If you want to skip some of them, you can unselect them now."))),
if_($o_copy_rpms_on_disk,
0, gtknew('Label_Left', padding => [ 0, 0 ],
# workaround infamous 6 years old gnome bug #101968:
- width => mygtk2::get_label_width(),
+ width => mygtk3::get_label_width(),
text => N("You have the option to copy the contents of the CDs onto the hard disk drive before installation.
It will then continue from the hard disk drive and the packages will remain available once the system is fully installed.")),
0, gtknew('CheckButton', text => N("Copy whole CDs"), active_ref => $o_copy_rpms_on_disk),
@@ -770,8 +794,8 @@ It will then continue from the hard disk drive and the packages will remain avai
),
0, gtknew('HButtonBox', layout => 'edge', children_tight => [
gtknew('Install_Button', text => N("Help"), clicked => sub {
- interactive::gtk::display_help($o, { interactive_help_id => 'choosePackages' }, $w) }),
- gtknew('Button', text => N("Next"), clicked => sub { Gtk2->main_quit }),
+ interactive::gtk::display_help($o, { interactive_help_id => 'choosePackagesTree' }) }),
+ gtknew('Button', text => N("Next"), clicked => sub { Gtk3->main_quit }),
]),
]),
);
@@ -781,4 +805,5 @@ It will then continue from the hard disk drive and the packages will remain avai
log::l("keeping media " . join ',', map { $_->{rpmsdir} } grep { !$_->{ignore} } @$hdlists);
}
+
1;