From 3a1d0db1f30133bae568341428d427cf5a5d0495 Mon Sep 17 00:00:00 2001 From: necoro <> Date: Wed, 24 Jan 2007 22:15:27 +0000 Subject: - Added icons - Added support for killing the process - Reorganised setup and starting-script --- portato/gui/gui_helper.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'portato/gui/gui_helper.py') diff --git a/portato/gui/gui_helper.py b/portato/gui/gui_helper.py index 7d8ead8..759752e 100644 --- a/portato/gui/gui_helper.py +++ b/portato/gui/gui_helper.py @@ -3,7 +3,7 @@ # File: portato/gui/gui_helper.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2006 René 'Necoro' Neumann +# Copyright (C) 2006-2007 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. @@ -26,6 +26,8 @@ from subprocess import Popen, PIPE, STDOUT from threading import Thread import pty import time +import os +import signal class Config: """Wrapper around a ConfigParser and for additional local configurations.""" @@ -469,10 +471,10 @@ class EmergeQueue: self.console.set_pty(master) # start emerge - process = Popen(command+options+packages, stdout = slave, stderr = STDOUT, shell = False) + self.process = Popen(command+options+packages, stdout = slave, stderr = STDOUT, shell = False) # start thread waiting for the stop of emerge - Thread(name="Emerge-Thread", target=self._update_packages, args=(packages+self.deps.keys(), process)).start() + Thread(name="Emerge-Thread", target=self._update_packages, args=(packages+self.deps.keys(), self.process)).start() # remove for i in it: @@ -555,6 +557,16 @@ class EmergeQueue: else: self._emerge([],[],[], command = command) + def kill_emerge (self): + """Kills the emerge process.""" + try: + os.kill(self.process.pid, signal.SIGTERM) + debug("Process should be killed") + except AttributeError: + debug("AttributeError occured ==> process not exisiting - ignore") + except OSError: + debug("OSError occured ==> process already stopped - ignore") + def remove_with_children (self, it, removeNewFlags = True): """Convenience function which removes all children of an iterator and than the iterator itself. -- cgit v1.2.3-70-g09d2