-rw-r--r-- | noncore/settings/sysinfo/processinfo.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/noncore/settings/sysinfo/processinfo.cpp b/noncore/settings/sysinfo/processinfo.cpp index f95d9cc..8e992d5 100644 --- a/noncore/settings/sysinfo/processinfo.cpp +++ b/noncore/settings/sysinfo/processinfo.cpp @@ -10,32 +10,36 @@ ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** **********************************************************************/ #include <qheader.h> #include <qlistview.h> #include <qlayout.h> #include <qtimer.h> #include <qfile.h> #include <qdir.h> +#include <qmessagebox.h> + +#include <sys/types.h> +#include <signal.h> #include "processinfo.h" ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl ) : QWidget( parent, name, fl ) { QVBoxLayout *vb = new QVBoxLayout( this, 5 ); ProcessView = new QListView( this, "ProcessView" ); int colnum = ProcessView->addColumn( tr( "PID" ) ); ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); colnum = ProcessView->addColumn( tr( "Command" ),96 ); ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); colnum = ProcessView->addColumn( tr( "Status" ) ); ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); colnum = ProcessView->addColumn( tr( "Time" ) ); @@ -102,18 +106,34 @@ void ProcessInfo::updateData() processtime.setNum( ( utime + stime ) / 100 ); processtime = processtime.rightJustify( 9, ' ' ); fclose( procfile ); ( void ) new QListViewItem( ProcessView, processnum, processcmd, processstatus, processtime ); } } } } delete proclist; delete procdir; } void ProcessInfo::viewProcess(QListViewItem *process) { + QString pid= process->text(0); + QString command = process->text(1); + switch( QMessageBox::information( this, (tr("Kill Process?")), + (tr("You really want to kill\n"+command+" PID: "+pid+"?")), + (tr("Yes")), (tr("No")), 0 )){ + case 0: // Yes clicked, + { + bool ok; + pid_t child=pid.toInt(&ok,10); + if((kill(child,SIGTERM)) < 0) + perror("kill:SIGTERM"); + } + break; + case 1: // Cancel + break; + }; //printf("Double click for PID: %s\n", process->text(0).stripWhiteSpace().latin1()); } |