summaryrefslogtreecommitdiff
path: root/noncore/settings/sysinfo/processinfo.cpp
Unidiff
Diffstat (limited to 'noncore/settings/sysinfo/processinfo.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/sysinfo/processinfo.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/noncore/settings/sysinfo/processinfo.cpp b/noncore/settings/sysinfo/processinfo.cpp
index 69b4ab5..dd9a05d 100644
--- a/noncore/settings/sysinfo/processinfo.cpp
+++ b/noncore/settings/sysinfo/processinfo.cpp
@@ -18,18 +18,22 @@
18**********************************************************************/ 18**********************************************************************/
19 19
20#include "processinfo.h" 20#include "processinfo.h"
21#include "detail.h" 21#include "detail.h"
22 22
23/* OPIE */ 23/* OPIE */
24#include <opie2/olistview.h>
24#include <qpe/qpeapplication.h> 25#include <qpe/qpeapplication.h>
25 26
26/* QT */ 27/* QT */
28#include <qcombobox.h>
27#include <qdir.h> 29#include <qdir.h>
28#include <qlayout.h> 30#include <qlayout.h>
29#include <qmessagebox.h> 31#include <qmessagebox.h>
32#include <qpushbutton.h>
33#include <qtextview.h>
30#include <qtimer.h> 34#include <qtimer.h>
31#include <qwhatsthis.h> 35#include <qwhatsthis.h>
32 36
33/* STD */ 37/* STD */
34#include <sys/types.h> 38#include <sys/types.h>
35#include <signal.h> 39#include <signal.h>
@@ -39,23 +43,23 @@ ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl )
39{ 43{
40 QGridLayout *layout = new QGridLayout( this ); 44 QGridLayout *layout = new QGridLayout( this );
41 layout->setSpacing( 4 ); 45 layout->setSpacing( 4 );
42 layout->setMargin( 4 ); 46 layout->setMargin( 4 );
43 47
44 48
45 ProcessView = new QListView( this, "ProcessView" ); 49 ProcessView = new OListView( this, "ProcessView" );
46 int colnum = ProcessView->addColumn( tr( "PID" ) ); 50 int colnum = ProcessView->addColumn( tr( "PID" ) );
47 ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); 51 ProcessView->setColumnAlignment( colnum, Qt::AlignRight );
48 colnum = ProcessView->addColumn( tr( "Command" ),96 ); 52 colnum = ProcessView->addColumn( tr( "Command" ),96 );
49 colnum = ProcessView->addColumn( tr( "Status" ) ); 53 colnum = ProcessView->addColumn( tr( "Status" ) );
50 colnum = ProcessView->addColumn( tr( "Time" ) ); 54 colnum = ProcessView->addColumn( tr( "Time" ) );
51 ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); 55 ProcessView->setColumnAlignment( colnum, Qt::AlignRight );
52 ProcessView->setAllColumnsShowFocus( TRUE ); 56 ProcessView->setAllColumnsShowFocus( TRUE );
53 QPEApplication::setStylusOperation( ProcessView->viewport(), QPEApplication::RightOnHold ); 57 QPEApplication::setStylusOperation( ProcessView->viewport(), QPEApplication::RightOnHold );
54 connect( ProcessView, SIGNAL( rightButtonPressed(QListViewItem*,const QPoint&,int) ), 58 connect( ProcessView, SIGNAL( rightButtonPressed(OListViewItem*,const QPoint&,int) ),
55 this, SLOT( viewProcess(QListViewItem*) ) ); 59 this, SLOT( viewProcess(OListViewItem*) ) );
56 layout->addMultiCellWidget( ProcessView, 0, 0, 0, 1 ); 60 layout->addMultiCellWidget( ProcessView, 0, 0, 0, 1 );
57 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." ) ); 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." ) );
58 62
59 SignalCB = new QComboBox( FALSE, this, "SignalCB" ); 63 SignalCB = new QComboBox( FALSE, this, "SignalCB" );
60 SignalCB->insertItem( " 1: SIGHUP" ); 64 SignalCB->insertItem( " 1: SIGHUP" );
61 SignalCB->insertItem( " 2: SIGINT" ); 65 SignalCB->insertItem( " 2: SIGINT" );
@@ -98,22 +102,22 @@ void ProcessInfo::updateData()
98 uint flags, minflt, cminflt, majflt, cmajflt, timeout, itrealvalue, vsize, rss, rlim, startcode, 102 uint flags, minflt, cminflt, majflt, cmajflt, timeout, itrealvalue, vsize, rss, rlim, startcode,
99 endcode, startstack, kstkesp, kstkeip, wchan; 103 endcode, startstack, kstkesp, kstkeip, wchan;
100 char state; 104 char state;
101 char comm[64]; 105 char comm[64];
102 106
103 QString selectedpid; 107 QString selectedpid;
104 QListViewItem *curritem = ProcessView->currentItem(); 108 OListViewItem *curritem = static_cast<OListViewItem*>( ProcessView->currentItem() );
105 if ( curritem ) 109 if ( curritem )
106 { 110 {
107 selectedpid = curritem->text( 0 ); 111 selectedpid = curritem->text( 0 );
108 } 112 }
109 113
110 ProcessView->clear(); 114 ProcessView->clear();
111 115
112 QListViewItem *newitem; 116 OListViewItem *newitem;
113 QListViewItem *selecteditem = 0x0; 117 OListViewItem *selecteditem = 0x0;
114 QDir *procdir = new QDir("/proc", 0, QDir::Name, QDir::Dirs); 118 QDir *procdir = new QDir("/proc", 0, QDir::Name, QDir::Dirs);
115 QFileInfoList *proclist = new QFileInfoList(*(procdir->entryInfoList())); 119 QFileInfoList *proclist = new QFileInfoList(*(procdir->entryInfoList()));
116 if ( proclist ) 120 if ( proclist )
117 { 121 {
118 QFileInfoListIterator it(*proclist); 122 QFileInfoListIterator it(*proclist);
119 QFileInfo *f; 123 QFileInfo *f;
@@ -137,13 +141,13 @@ void ProcessInfo::updateData()
137 QString processcmd = QString( comm ).replace( QRegExp( "[()]" ), "" ); 141 QString processcmd = QString( comm ).replace( QRegExp( "[()]" ), "" );
138 QString processstatus = QChar(state); 142 QString processstatus = QChar(state);
139 QString processtime = QString::number( ( utime + stime ) / 100 ); 143 QString processtime = QString::number( ( utime + stime ) / 100 );
140 processtime = processtime.rightJustify( 9, ' ' ); 144 processtime = processtime.rightJustify( 9, ' ' );
141 fclose( procfile ); 145 fclose( procfile );
142 146
143 newitem = new QListViewItem( ProcessView, processnum, processcmd, processstatus, processtime ); 147 newitem = new OListViewItem( ProcessView, processnum, processcmd, processstatus, processtime );
144 if ( processnum == selectedpid ) 148 if ( processnum == selectedpid )
145 { 149 {
146 selecteditem = newitem; 150 selecteditem = newitem;
147 } 151 }
148 } 152 }
149 } 153 }
@@ -154,37 +158,37 @@ void ProcessInfo::updateData()
154 delete proclist; 158 delete proclist;
155 delete procdir; 159 delete procdir;
156} 160}
157 161
158void ProcessInfo::slotSendClicked() 162void ProcessInfo::slotSendClicked()
159{ 163{
160 QListViewItem *currprocess = ProcessView->currentItem(); 164 OListViewItem *currprocess = static_cast<OListViewItem*>( ProcessView->currentItem() );
161 if ( !currprocess ) 165 if ( !currprocess )
162 { 166 {
163 return; 167 return;
164 } 168 }
165 169
166 QString capstr = tr( "Really want to send %1\nto this process?" ).arg( SignalCB->currentText() ); 170 QString capstr = tr( "Really want to send %1\nto this process?" ).arg( SignalCB->currentText() );
167 171
168 172
169 if ( QMessageBox::warning( this, currprocess->text( 1 ), capstr, 173 if ( QMessageBox::warning( this, currprocess->text( 1 ), capstr,
170 QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape ) == QMessageBox::Yes ) 174 QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape ) == QMessageBox::Yes )
171 { 175 {
172 currprocess = ProcessView->currentItem(); 176 currprocess = static_cast<OListViewItem*>( ProcessView->currentItem() );
173 if ( currprocess ) 177 if ( currprocess )
174 { 178 {
175 QString sigstr = SignalCB->currentText(); 179 QString sigstr = SignalCB->currentText();
176 sigstr.truncate(2); 180 sigstr.truncate(2);
177 int sigid = sigstr.toUInt(); 181 int sigid = sigstr.toUInt();
178 kill( currprocess->text( 0 ).stripWhiteSpace().toUInt(), sigid ); 182 kill( currprocess->text( 0 ).stripWhiteSpace().toUInt(), sigid );
179 } 183 }
180 } 184 }
181 185
182} 186}
183 187
184void ProcessInfo::viewProcess( QListViewItem *process ) 188void ProcessInfo::viewProcess( OListViewItem *process )
185{ 189{
186 QString pid= process->text( 0 ).stripWhiteSpace(); 190 QString pid= process->text( 0 ).stripWhiteSpace();
187 QString command = process->text( 1 ); 191 QString command = process->text( 1 );
188 ProcessDtl->setCaption( pid + " - " + command ); 192 ProcessDtl->setCaption( pid + " - " + command );
189 FILE *statfile = fopen( ( QString ) ( "/proc/" + pid + "/status"), "r"); 193 FILE *statfile = fopen( ( QString ) ( "/proc/" + pid + "/status"), "r");
190 if ( statfile ) 194 if ( statfile )