summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaouda Lo <daouda@mandriva.com>2002-08-25 21:53:54 +0000
committerDaouda Lo <daouda@mandriva.com>2002-08-25 21:53:54 +0000
commit90d357dd9b8aad873ecb842b258b9ddc15e1fdb1 (patch)
tree7b517a98d3d9e3b27b5d4ddf0de797ad200d0175
parent77c046ac456c2aadccd69242960bd177868c49fa (diff)
downloadcontrol-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-xcontrol-center28
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),