author | ar <ar> | 2004-03-28 21:01:03 (UTC) |
---|---|---|
committer | ar <ar> | 2004-03-28 21:01:03 (UTC) |
commit | 05a5f3a0cfbb5f882d03bf1c7700cdc608b97a2f (patch) (side-by-side diff) | |
tree | 6c6a291b25cdf4bd265ab8da8c8c4058758d46c3 /noncore/settings | |
parent | b4c5da4a6cf51753e8d2da505197326e05323d73 (diff) | |
download | opie-05a5f3a0cfbb5f882d03bf1c7700cdc608b97a2f.zip opie-05a5f3a0cfbb5f882d03bf1c7700cdc608b97a2f.tar.gz opie-05a5f3a0cfbb5f882d03bf1c7700cdc608b97a2f.tar.bz2 |
- better parse of /proc/meminfo
- delete useless variable declaration
-rw-r--r-- | noncore/settings/sysinfo/memory.cpp | 70 | ||||
-rw-r--r-- | noncore/settings/sysinfo/memory.h | 1 |
2 files changed, 47 insertions, 24 deletions
diff --git a/noncore/settings/sysinfo/memory.cpp b/noncore/settings/sysinfo/memory.cpp index 23dd8bd..05349e4 100644 --- a/noncore/settings/sysinfo/memory.cpp +++ b/noncore/settings/sysinfo/memory.cpp @@ -81,21 +81,54 @@ void MemoryInfo::updateData() if ( file.open( IO_ReadOnly ) ) { + // local variables + QString line; + QString identifier; + QString value; + int position; QTextStream t( &file ); - QString dummy = t.readLine(); // title - t >> dummy; - t >> total; - total /= 1000; - t >> used; - used /= 1000; - t >> memfree; - memfree /= 1000; - t >> shared; - shared /= 1000; - t >> buffers; - buffers /= 1000; - t >> cached; - cached /= 1000; + + while ( !t.atEnd() ) + { + // read a line + line = t.readLine(); + + // extract identifier and value from line + position = line.find( ":" ); + identifier = line.left( position ); + value = line.mid( position + 1, line.length() - position - 3 ); + value = value.stripWhiteSpace(); + + // copy values in variables + if ( identifier == "MemTotal" ) + { + total = value.toULong(); + } else if ( identifier == "MemFree" ) + { + memfree = value.toULong(); + } else if ( identifier == "Buffers" ) + { + buffers = value.toULong(); + } else if ( identifier == "Cached" ) + { + cached = value.toULong(); + } else if ( identifier == "SwapCached" ) + { + } else if ( identifier == "SwapTotal" ) + { + swaptotal = value.toULong(); + } else if ( identifier == "SwapFree" ) + { + swapfree = value.toULong(); + } + } + + file.close(); + + // calculate values + used = total - memfree; + swapused = swaptotal - swapfree; realUsed = total - ( buffers + cached + memfree ); + // visualize values totalMem->setText( tr( "Total Memory: %1 kB" ).arg( total ) ); data->clear(); @@ -109,13 +142,4 @@ void MemoryInfo::updateData() legend->update(); - // swapfile - t >> dummy; - t >> swaptotal; - swaptotal /= 1000; - t >> swapused; - swapused /= 1000; - t >> swapfree; - swapfree /= 1000; - if (swaptotal > 0) { diff --git a/noncore/settings/sysinfo/memory.h b/noncore/settings/sysinfo/memory.h index c2af948..f655604 100644 --- a/noncore/settings/sysinfo/memory.h +++ b/noncore/settings/sysinfo/memory.h @@ -39,5 +39,4 @@ public: unsigned long used; unsigned long memfree; - unsigned long shared; unsigned long buffers; unsigned long cached; |