Diffstat (limited to 'noncore/settings/sysinfo/processinfo.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/sysinfo/processinfo.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/noncore/settings/sysinfo/processinfo.cpp b/noncore/settings/sysinfo/processinfo.cpp index 769410f..2232771 100644 --- a/noncore/settings/sysinfo/processinfo.cpp +++ b/noncore/settings/sysinfo/processinfo.cpp | |||
@@ -98,14 +98,23 @@ void ProcessInfo::updateData() | |||
98 | signal, blocked, sigignore, sigcatch; | 98 | signal, blocked, sigignore, sigcatch; |
99 | uint flags, minflt, cminflt, majflt, cmajflt, timeout, itrealvalue, vsize, rss, rlim, startcode, | 99 | uint flags, minflt, cminflt, majflt, cmajflt, timeout, itrealvalue, vsize, rss, rlim, startcode, |
100 | endcode, startstack, kstkesp, kstkeip, wchan; | 100 | endcode, startstack, kstkesp, kstkeip, wchan; |
101 | char state; | 101 | char state; |
102 | char comm[64]; | 102 | char comm[64]; |
103 | 103 | ||
104 | QString selectedpid; | ||
105 | QListViewItem *curritem = ProcessView->currentItem(); | ||
106 | if ( curritem ) | ||
107 | { | ||
108 | selectedpid = curritem->text( 0 ); | ||
109 | } | ||
110 | |||
104 | ProcessView->clear(); | 111 | ProcessView->clear(); |
105 | 112 | ||
113 | QListViewItem *newitem; | ||
114 | QListViewItem *selecteditem = 0x0; | ||
106 | QDir *procdir = new QDir("/proc", 0, QDir::Name, QDir::Dirs); | 115 | QDir *procdir = new QDir("/proc", 0, QDir::Name, QDir::Dirs); |
107 | QFileInfoList *proclist = new QFileInfoList(*(procdir->entryInfoList())); | 116 | QFileInfoList *proclist = new QFileInfoList(*(procdir->entryInfoList())); |
108 | if ( proclist ) | 117 | if ( proclist ) |
109 | { | 118 | { |
110 | QFileInfoListIterator it(*proclist); | 119 | QFileInfoListIterator it(*proclist); |
111 | QFileInfo *f; | 120 | QFileInfo *f; |
@@ -129,16 +138,21 @@ void ProcessInfo::updateData() | |||
129 | QString processcmd = QString( comm ).replace( QRegExp( "[()]" ), "" ); | 138 | QString processcmd = QString( comm ).replace( QRegExp( "[()]" ), "" ); |
130 | QString processstatus = QChar(state); | 139 | QString processstatus = QChar(state); |
131 | QString processtime = QString::number( ( utime + stime ) / 100 ); | 140 | QString processtime = QString::number( ( utime + stime ) / 100 ); |
132 | processtime = processtime.rightJustify( 9, ' ' ); | 141 | processtime = processtime.rightJustify( 9, ' ' ); |
133 | fclose( procfile ); | 142 | fclose( procfile ); |
134 | 143 | ||
135 | ( void ) new QListViewItem( ProcessView, processnum, processcmd, processstatus, processtime ); | 144 | newitem = new QListViewItem( ProcessView, processnum, processcmd, processstatus, processtime ); |
145 | if ( processnum == selectedpid ) | ||
146 | { | ||
147 | selecteditem = newitem; | ||
148 | } | ||
136 | } | 149 | } |
137 | } | 150 | } |
138 | } | 151 | } |
152 | ProcessView->setCurrentItem( selecteditem ); | ||
139 | } | 153 | } |
140 | 154 | ||
141 | delete proclist; | 155 | delete proclist; |
142 | delete procdir; | 156 | delete procdir; |
143 | } | 157 | } |
144 | 158 | ||