author | drw <drw> | 2003-02-06 02:15:59 (UTC) |
---|---|---|
committer | drw <drw> | 2003-02-06 02:15:59 (UTC) |
commit | 51f39143a14b10b971670ad3a204af35be2564bb (patch) (unidiff) | |
tree | 72b9e104f25449f014d877f467f34fd3dba12443 /noncore/settings | |
parent | 79588befde53765db0a92977c6890a4d226096e7 (diff) | |
download | opie-51f39143a14b10b971670ad3a204af35be2564bb.zip opie-51f39143a14b10b971670ad3a204af35be2564bb.tar.gz opie-51f39143a14b10b971670ad3a204af35be2564bb.tar.bz2 |
Fix to keep current selection for modules & processes. Would lose selection when lists were updated.
-rw-r--r-- | noncore/settings/sysinfo/modulesinfo.cpp | 16 | ||||
-rw-r--r-- | noncore/settings/sysinfo/processinfo.cpp | 16 |
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 | |||
@@ -96,12 +96,21 @@ void ModulesInfo::updateData() | |||
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 | ||
@@ -113,8 +122,13 @@ void ModulesInfo::updateData() | |||
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 | } |
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 | |||
@@ -101,8 +101,17 @@ void ProcessInfo::updateData() | |||
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 ) |
@@ -132,10 +141,15 @@ void ProcessInfo::updateData() | |||
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; |