-rw-r--r-- | noncore/settings/sysinfo/memory.cpp | 71 | ||||
-rw-r--r-- | noncore/settings/sysinfo/memory.h | 16 |
2 files changed, 73 insertions, 14 deletions
diff --git a/noncore/settings/sysinfo/memory.cpp b/noncore/settings/sysinfo/memory.cpp index 4f612d8..23dd8bd 100644 --- a/noncore/settings/sysinfo/memory.cpp +++ b/noncore/settings/sysinfo/memory.cpp @@ -19,17 +19,16 @@ **********************************************************************/ #include <qlabel.h> +#include <qtimer.h> #include <qfile.h> -#include <qlayout.h> #include <qtextstream.h> -#include <qtimer.h> +#include <qlayout.h> #include <qwhatsthis.h> - #include "graph.h" #include "memory.h" -MemoryInfo::MemoryInfo( QWidget *parent, const char *name, WFlags ) - : QWidget( parent, name, WStyle_ContextHelp ) +MemoryInfo::MemoryInfo( QWidget *parent, const char *name, WFlags f ) + : QWidget( parent, name, f ) { QVBoxLayout *vb = new QVBoxLayout( this, 5 ); @@ -37,7 +36,6 @@ MemoryInfo::MemoryInfo( QWidget *parent, const char *name, WFlags ) vb->addWidget( totalMem ); data = new GraphData(); -// graph = new PieGraph( this ); graph = new BarGraph( this ); graph->setFrameStyle( QFrame::Panel | QFrame::Sunken ); vb->addWidget( graph, 1 ); @@ -47,6 +45,19 @@ MemoryInfo::MemoryInfo( QWidget *parent, const char *name, WFlags ) vb->addWidget( legend ); legend->setData( data ); + swapMem = new QLabel( this ); + vb->addWidget( swapMem ); + + swapdata = new GraphData(); + swapgraph = new BarGraph( this ); + swapgraph->setFrameStyle( QFrame::Panel | QFrame::Sunken ); + vb->addWidget( swapgraph, 1 ); + swapgraph->setData( swapdata ); + + swaplegend = new GraphLegend( this ); + vb->addWidget( swaplegend ); + swaplegend->setData( swapdata ); + vb->addStretch( 1 ); updateData(); @@ -54,7 +65,8 @@ MemoryInfo::MemoryInfo( QWidget *parent, const char *name, WFlags ) connect( t, SIGNAL( timeout() ), this, SLOT( updateData() ) ); t->start( 5000 ); - QWhatsThis::add( this, tr( "This page shows how memory (i.e. RAM) is being allocated on your handheld device.\nMemory is categorized as follows:\n\n1. Used - memory used to by Opie and any running applications.\n2. Buffers - temporary storage used to improve performance\n3. Cached - information that has recently been used, but has not been freed yet.\n4. Free - memory not currently used by Opie or any running applications." ) ); + QWhatsThis::add( this, tr( "This page shows how memory (i.e. RAM) is being allocated on your device.\nMemory is categorized as follows:\n\n1. Used - memory used to by Opie and any running applications.\n2. Buffers - temporary storage used to improve performance\n3. Cached - information that has recently been used, but has not been freed yet.\n4. Free - memory not currently used by Opie or any running applications." ) ); + } MemoryInfo::~MemoryInfo() @@ -66,11 +78,11 @@ void MemoryInfo::updateData() { QFile file( "/proc/meminfo" ); - if ( file.open( IO_ReadOnly ) ) { + if ( file.open( IO_ReadOnly ) ) + { QTextStream t( &file ); QString dummy = t.readLine(); // title t >> dummy; - int total, used, memfree, shared, buffers, cached; t >> total; total /= 1000; t >> used; @@ -83,16 +95,47 @@ void MemoryInfo::updateData() buffers /= 1000; t >> cached; cached /= 1000; - int realUsed = total - ( buffers + cached + memfree ); + realUsed = total - ( buffers + cached + memfree ); + + totalMem->setText( tr( "Total Memory: %1 kB" ).arg( total ) ); data->clear(); data->addItem( tr("Used (%1 kB)").arg(realUsed), realUsed ); data->addItem( tr("Buffers (%1 kB)").arg(buffers), buffers ); data->addItem( tr("Cached (%1 kB)").arg(cached), cached ); data->addItem( tr("Free (%1 kB)").arg(memfree), memfree ); - totalMem->setText( tr( "Total Memory: %1 kB" ).arg( total ) ); - graph->repaint( FALSE ); + + graph->hide(); + graph->show(); legend->update(); - } -} + // swapfile + t >> dummy; + t >> swaptotal; + swaptotal /= 1000; + t >> swapused; + swapused /= 1000; + t >> swapfree; + swapfree /= 1000; + + if (swaptotal > 0) + { + swapMem->setText( tr( "Total Swap: %1 kB" ).arg( swaptotal ) ); + swapdata->clear(); + swapdata->addItem( tr("Used (%1 kB)").arg(swapused), swapused ); + swapdata->addItem( tr("Free (%1 kB)").arg(swapfree), swapfree ); + + swapMem->show(); + swapgraph->show(); + swaplegend->show(); + swapgraph->repaint( FALSE ); + swaplegend->update(); + } + else + { + swapMem->hide(); + swapgraph->hide(); + swaplegend->hide(); + } + } +} diff --git a/noncore/settings/sysinfo/memory.h b/noncore/settings/sysinfo/memory.h index 696f97c..c2af948 100644 --- a/noncore/settings/sysinfo/memory.h +++ b/noncore/settings/sysinfo/memory.h @@ -35,6 +35,17 @@ public: MemoryInfo( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); ~MemoryInfo(); + unsigned long total; + unsigned long used; + unsigned long memfree; + unsigned long shared; + unsigned long buffers; + unsigned long cached; + unsigned long realUsed; + unsigned long swaptotal; + unsigned long swapused; + unsigned long swapfree; + private slots: void updateData(); @@ -43,6 +54,11 @@ private: GraphData *data; Graph *graph; GraphLegend *legend; + + QLabel* swapMem; + GraphData *swapdata; + Graph *swapgraph; + GraphLegend *swaplegend; }; #endif |