diff options
author | Daouda Lo <daouda@mandriva.com> | 2002-08-25 21:53:54 +0000 |
---|---|---|
committer | Daouda Lo <daouda@mandriva.com> | 2002-08-25 21:53:54 +0000 |
commit | 90d357dd9b8aad873ecb842b258b9ddc15e1fdb1 (patch) | |
tree | 7b517a98d3d9e3b27b5d4ddf0de797ad200d0175 | |
parent | 77c046ac456c2aadccd69242960bd177868c49fa (diff) | |
download | control-center-90d357dd9b8aad873ecb842b258b9ddc15e1fdb1.tar control-center-90d357dd9b8aad873ecb842b258b9ddc15e1fdb1.tar.gz control-center-90d357dd9b8aad873ecb842b258b9ddc15e1fdb1.tar.bz2 control-center-90d357dd9b8aad873ecb842b258b9ddc15e1fdb1.tar.xz control-center-90d357dd9b8aad873ecb842b258b9ddc15e1fdb1.zip |
- nice log display.
-rwxr-xr-x | control-center | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/control-center b/control-center index 6930559f..3806e998 100755 --- a/control-center +++ b/control-center @@ -43,6 +43,10 @@ use POSIX qw(uname); my $in = 'interactive'->vnew('su', 'default'); my ($_version, $conffile, $class_install) = ("9.0", "/etc/mcc.conf","/etc/sysconfig/system"); + +#we'll show log only once and don't restart it with new embedded process +my $show_log = 1; + my %h = getVarsFromSh($conffile); my %class = getVarsFromSh($class_install); defined $h{THEME} or $h{THEME} = 'default'; @@ -337,14 +341,18 @@ foreach (@tree) { } my $exp_frame; -my $exp_socket; +#my $exp_socket; my $emb_box; my $emb_wait; my $emb_socket; +# embedded processes pid will be stocked there my @pid_launched; +# logdrake pid are stocked here +my @pid_exp; + my ($rootheight, undef) = my_gtk::gtkroot()->get_size; $window_global->add( @@ -384,7 +392,7 @@ sub update_exp { if($logs && !$exp_frame) { gtkpack__($right_box, gtkadd($exp_frame = gtkset_shadow_type(gtkset_usize(gtkset_border_width(new Gtk::Frame(_("Logs")), 5), 0, 120), 'etched_out'), - $exp_socket = new Gtk::Socket, + # $exp_socket = new Gtk::Socket, ) ); $rootheight <= 600 and $fixed_title->hide; @@ -393,7 +401,7 @@ sub update_exp { if (!$logs && $exp_frame) { $exp_frame->destroy(); undef $exp_frame; - defined($exp_socket) and $exp_socket->destroy(); +# defined($exp_socket) and $exp_socket->destroy(); $fixed_title->show; } } @@ -599,16 +607,18 @@ sub compute_exec_string { } } } - if ($logs) { + if ($logs && $show_log) { my $pid; + gtkadd($exp_frame, my $exp_socket = new Gtk::Socket); $exp_socket->realize; - $exec_log = "logdrake --explain=$dra --embedded " . $exp_socket->window->XWINDOW . " " . $$; + $exec_log = "logdrake --explain=$log_exp --embedded " . $exp_socket->window->XWINDOW . " " . $$; + $show_log = 0; unless ($pid = fork) { splash_warning(_("cannot fork: %s", $~)) unless defined $pid; print "explain : $log_exp \n "; exec("$exec_log"); } - push @pid_launched, $pid; + push @pid_exp, $pid; } } @@ -648,7 +658,7 @@ sub clean_socket { } @pid_launched = (); $emb_socket and $emb_socket->destroy(); - $exp_socket and $exp_socket->destroy(); +# $exp_socket and $exp_socket->destroy(); $logs and $exp_frame->show; $pending_app = 0; } @@ -658,11 +668,11 @@ sub res_socket { gtkpack($emb_box, $emb_socket = new Gtk::Socket); $emb_socket->hide; $emb_wait->hide; - $logs and gtkadd($exp_frame, $exp_socket = new Gtk::Socket); +# $logs and gtkadd($exp_frame, $exp_socket = new Gtk::Socket); } sub quit_global { - foreach(@pid_launched) { kill 'TERM', $_ if (defined $_) } + foreach((@pid_launched,@pid_exp)) { kill 'TERM', $_ if (defined $_) } setVarsInSh($conffile, { EMBEDDED => bool2text($embedded), LOGS => bool2text($logs), |