Diffstat (limited to 'noncore/settings/sysinfo/processinfo.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/settings/sysinfo/processinfo.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/noncore/settings/sysinfo/processinfo.cpp b/noncore/settings/sysinfo/processinfo.cpp index dd9a05d..e887267 100644 --- a/noncore/settings/sysinfo/processinfo.cpp +++ b/noncore/settings/sysinfo/processinfo.cpp | |||
@@ -29,43 +29,44 @@ | |||
29 | #include <qdir.h> | 29 | #include <qdir.h> |
30 | #include <qlayout.h> | 30 | #include <qlayout.h> |
31 | #include <qmessagebox.h> | 31 | #include <qmessagebox.h> |
32 | #include <qpushbutton.h> | 32 | #include <qpushbutton.h> |
33 | #include <qtextview.h> | 33 | #include <qtextview.h> |
34 | #include <qtimer.h> | 34 | #include <qtimer.h> |
35 | #include <qwhatsthis.h> | 35 | #include <qwhatsthis.h> |
36 | 36 | ||
37 | /* STD */ | 37 | /* STD */ |
38 | #include <sys/types.h> | 38 | #include <sys/types.h> |
39 | #include <signal.h> | 39 | #include <signal.h> |
40 | 40 | ||
41 | using namespace Opie::Ui; | ||
41 | ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl ) | 42 | ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl ) |
42 | : QWidget( parent, name, fl ) | 43 | : QWidget( parent, name, fl ) |
43 | { | 44 | { |
44 | QGridLayout *layout = new QGridLayout( this ); | 45 | QGridLayout *layout = new QGridLayout( this ); |
45 | layout->setSpacing( 4 ); | 46 | layout->setSpacing( 4 ); |
46 | layout->setMargin( 4 ); | 47 | layout->setMargin( 4 ); |
47 | 48 | ||
48 | 49 | ||
49 | ProcessView = new OListView( this, "ProcessView" ); | 50 | ProcessView = new OListView( this, "ProcessView" ); |
50 | int colnum = ProcessView->addColumn( tr( "PID" ) ); | 51 | int colnum = ProcessView->addColumn( tr( "PID" ) ); |
51 | ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); | 52 | ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); |
52 | colnum = ProcessView->addColumn( tr( "Command" ),96 ); | 53 | colnum = ProcessView->addColumn( tr( "Command" ),96 ); |
53 | colnum = ProcessView->addColumn( tr( "Status" ) ); | 54 | colnum = ProcessView->addColumn( tr( "Status" ) ); |
54 | colnum = ProcessView->addColumn( tr( "Time" ) ); | 55 | colnum = ProcessView->addColumn( tr( "Time" ) ); |
55 | ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); | 56 | ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); |
56 | ProcessView->setAllColumnsShowFocus( TRUE ); | 57 | ProcessView->setAllColumnsShowFocus( TRUE ); |
57 | QPEApplication::setStylusOperation( ProcessView->viewport(), QPEApplication::RightOnHold ); | 58 | QPEApplication::setStylusOperation( ProcessView->viewport(), QPEApplication::RightOnHold ); |
58 | connect( ProcessView, SIGNAL( rightButtonPressed(OListViewItem*,const QPoint&,int) ), | 59 | connect( ProcessView, SIGNAL( rightButtonPressed(QListViewItem*,const QPoint&,int) ), |
59 | this, SLOT( viewProcess(OListViewItem*) ) ); | 60 | this, SLOT( viewProcess(QListViewItem*) ) ); |
60 | layout->addMultiCellWidget( ProcessView, 0, 0, 0, 1 ); | 61 | layout->addMultiCellWidget( ProcessView, 0, 0, 0, 1 ); |
61 | QWhatsThis::add( ProcessView, tr( "This is a list of all the processes on this handheld device.\n\nClick and hold on a process to see additional information about the process, or to send a signal to it." ) ); | 62 | QWhatsThis::add( ProcessView, tr( "This is a list of all the processes on this handheld device.\n\nClick and hold on a process to see additional information about the process, or to send a signal to it." ) ); |
62 | 63 | ||
63 | SignalCB = new QComboBox( FALSE, this, "SignalCB" ); | 64 | SignalCB = new QComboBox( FALSE, this, "SignalCB" ); |
64 | SignalCB->insertItem( " 1: SIGHUP" ); | 65 | SignalCB->insertItem( " 1: SIGHUP" ); |
65 | SignalCB->insertItem( " 2: SIGINT" ); | 66 | SignalCB->insertItem( " 2: SIGINT" ); |
66 | SignalCB->insertItem( " 3: SIGQUIT" ); | 67 | SignalCB->insertItem( " 3: SIGQUIT" ); |
67 | SignalCB->insertItem( " 5: SIGTRAP" ); | 68 | SignalCB->insertItem( " 5: SIGTRAP" ); |
68 | SignalCB->insertItem( " 6: SIGABRT" ); | 69 | SignalCB->insertItem( " 6: SIGABRT" ); |
69 | SignalCB->insertItem( " 9: SIGKILL" ); | 70 | SignalCB->insertItem( " 9: SIGKILL" ); |
70 | SignalCB->insertItem( "14: SIGALRM" ); | 71 | SignalCB->insertItem( "14: SIGALRM" ); |
71 | SignalCB->insertItem( "15: SIGTERM" ); | 72 | SignalCB->insertItem( "15: SIGTERM" ); |
@@ -176,24 +177,30 @@ void ProcessInfo::slotSendClicked() | |||
176 | currprocess = static_cast<OListViewItem*>( ProcessView->currentItem() ); | 177 | currprocess = static_cast<OListViewItem*>( ProcessView->currentItem() ); |
177 | if ( currprocess ) | 178 | if ( currprocess ) |
178 | { | 179 | { |
179 | QString sigstr = SignalCB->currentText(); | 180 | QString sigstr = SignalCB->currentText(); |
180 | sigstr.truncate(2); | 181 | sigstr.truncate(2); |
181 | int sigid = sigstr.toUInt(); | 182 | int sigid = sigstr.toUInt(); |
182 | kill( currprocess->text( 0 ).stripWhiteSpace().toUInt(), sigid ); | 183 | kill( currprocess->text( 0 ).stripWhiteSpace().toUInt(), sigid ); |
183 | } | 184 | } |
184 | } | 185 | } |
185 | 186 | ||
186 | } | 187 | } |
187 | 188 | ||
189 | void ProcessInfo::viewProcess( QListViewItem* process ) { | ||
190 | if ( !process ) | ||
191 | return; | ||
192 | viewProcess( static_cast<OListViewItem*>( process ) ); | ||
193 | } | ||
194 | |||
188 | void ProcessInfo::viewProcess( OListViewItem *process ) | 195 | void ProcessInfo::viewProcess( OListViewItem *process ) |
189 | { | 196 | { |
190 | QString pid= process->text( 0 ).stripWhiteSpace(); | 197 | QString pid= process->text( 0 ).stripWhiteSpace(); |
191 | QString command = process->text( 1 ); | 198 | QString command = process->text( 1 ); |
192 | ProcessDtl->setCaption( pid + " - " + command ); | 199 | ProcessDtl->setCaption( pid + " - " + command ); |
193 | FILE *statfile = fopen( ( QString ) ( "/proc/" + pid + "/status"), "r"); | 200 | FILE *statfile = fopen( ( QString ) ( "/proc/" + pid + "/status"), "r"); |
194 | if ( statfile ) | 201 | if ( statfile ) |
195 | { | 202 | { |
196 | char line[81]; | 203 | char line[81]; |
197 | fgets( line, 81, statfile ); | 204 | fgets( line, 81, statfile ); |
198 | ProcessDtl->detailView->setText( line ); | 205 | ProcessDtl->detailView->setText( line ); |
199 | while ( fgets( line, 81, statfile ) ) | 206 | while ( fgets( line, 81, statfile ) ) |