summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/sysinfo/modulesinfo.cpp16
-rw-r--r--noncore/settings/sysinfo/processinfo.cpp16
2 files changed, 30 insertions, 2 deletions
diff --git a/noncore/settings/sysinfo/modulesinfo.cpp b/noncore/settings/sysinfo/modulesinfo.cpp
index 7abad69..3d127a8 100644
--- a/noncore/settings/sysinfo/modulesinfo.cpp
+++ b/noncore/settings/sysinfo/modulesinfo.cpp
@@ -93,31 +93,45 @@ ModulesInfo::~ModulesInfo()
93void ModulesInfo::updateData() 93void ModulesInfo::updateData()
94{ 94{
95 char modname[64]; 95 char modname[64];
96 char usage[200]; 96 char usage[200];
97 int modsize, usecount; 97 int modsize, usecount;
98 98
99 QString selectedmod;
100 QListViewItem *curritem = ModulesView->currentItem();
101 if ( curritem )
102 {
103 selectedmod = curritem->text( 0 );
104 }
105
99 ModulesView->clear(); 106 ModulesView->clear();
100 107
101 FILE *procfile = fopen( ( QString ) ( "/proc/modules"), "r"); 108 FILE *procfile = fopen( ( QString ) ( "/proc/modules"), "r");
102 109
103 if ( procfile ) 110 if ( procfile )
104 { 111 {
112 QListViewItem *newitem;
113 QListViewItem *selecteditem = 0x0;
105 while ( true ) { 114 while ( true ) {
106 int success = fscanf( procfile, "%s%d%d%[^\n]", modname, &modsize, &usecount, usage ); 115 int success = fscanf( procfile, "%s%d%d%[^\n]", modname, &modsize, &usecount, usage );
107 116
108 if ( success == EOF ) 117 if ( success == EOF )
109 break; 118 break;
110 119
111 QString qmodname = QString( modname ); 120 QString qmodname = QString( modname );
112 QString qmodsize = QString::number( modsize ).rightJustify( 6, ' ' ); 121 QString qmodsize = QString::number( modsize ).rightJustify( 6, ' ' );
113 QString qusecount = QString::number( usecount ).rightJustify( 2, ' ' ); 122 QString qusecount = QString::number( usecount ).rightJustify( 2, ' ' );
114 QString qusage = QString( usage ); 123 QString qusage = QString( usage );
115 124
116 ( void ) new QListViewItem( ModulesView, qmodname, qmodsize, qusecount, qusage ); 125 newitem = new QListViewItem( ModulesView, qmodname, qmodsize, qusecount, qusage );
126 if ( qmodname == selectedmod )
127 {
128 selecteditem = newitem;
129 }
117 } 130 }
131 ModulesView->setCurrentItem( selecteditem );
118 132
119 fclose( procfile ); 133 fclose( procfile );
120 } 134 }
121} 135}
122 136
123void ModulesInfo::slotSendClicked() 137void ModulesInfo::slotSendClicked()
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