author | drw <drw> | 2002-11-17 02:14:03 (UTC) |
---|---|---|
committer | drw <drw> | 2002-11-17 02:14:03 (UTC) |
commit | 9ed0a6022d4c3bcd8428096cdf28cad1e0355ab2 (patch) (side-by-side diff) | |
tree | f84b36548fa91496c0c100c96a3fa1512ec8b108 | |
parent | 5a1f5ba99dfb754f1be4500dd55dca42b36413b8 (diff) | |
download | opie-9ed0a6022d4c3bcd8428096cdf28cad1e0355ab2.zip opie-9ed0a6022d4c3bcd8428096cdf28cad1e0355ab2.tar.gz opie-9ed0a6022d4c3bcd8428096cdf28cad1e0355ab2.tar.bz2 |
Start of What's This for Sysinfo, plus some code tweaks
-rw-r--r-- | noncore/settings/sysinfo/load.cpp | 9 | ||||
-rw-r--r-- | noncore/settings/sysinfo/memory.cpp | 10 | ||||
-rw-r--r-- | noncore/settings/sysinfo/opie-sysinfo.control | 2 | ||||
-rw-r--r-- | noncore/settings/sysinfo/storage.cpp | 39 | ||||
-rw-r--r-- | noncore/settings/sysinfo/sysinfo.cpp | 2 | ||||
-rw-r--r-- | noncore/settings/sysinfo/versioninfo.cpp | 15 |
6 files changed, 53 insertions, 24 deletions
diff --git a/noncore/settings/sysinfo/load.cpp b/noncore/settings/sysinfo/load.cpp index 0fcfa6b..900b3d3 100644 --- a/noncore/settings/sysinfo/load.cpp +++ b/noncore/settings/sysinfo/load.cpp @@ -1,70 +1,75 @@ /********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #include <stdio.h> + +#include <qfile.h> #include <qlayout.h> #include <qlabel.h> #include <qpainter.h> #include <qpixmap.h> -#include <qtimer.h> -#include <qfile.h> #include <qtextstream.h> +#include <qtimer.h> +#include <qwhatsthis.h> + #include "load.h" LoadInfo::LoadInfo( QWidget *parent, const char *name, WFlags f ) : QWidget( parent, name, f ) { QVBoxLayout *vb = new QVBoxLayout( this, 6 ); QString cpuInfo = getCpuInfo(); if ( !cpuInfo.isNull() ) vb->addWidget( new QLabel( cpuInfo, this ) ); vb->addWidget( new Load( this ), 100 ); QLabel *l = new QLabel( this ); l->setPixmap( makeLabel( red, tr("Application CPU usage (%)") ) ); vb->addWidget( l, 1 ); l = new QLabel( this ); l->setPixmap( makeLabel( green, tr("System CPU usage (%)") ) ); vb->addWidget( l, 1 ); vb->addStretch(50); + + QWhatsThis::add( this, tr( "This page shows how much this device's processor is being used." ) ); } QPixmap LoadInfo::makeLabel( const QColor &col, const QString &text ) { int h = fontMetrics().height(); QPixmap pm( 20 + fontMetrics().width( text ), h ); QPainter p( &pm ); p.fillRect( pm.rect(), colorGroup().background() ); p.fillRect( 0, h/2-4, 18, h/2+3, black ); p.setPen( col ); p.drawLine( 2, h/2, 15, h/2 ); p.setPen( colorGroup().text() ); p.drawText( 20, fontMetrics().ascent(), text ); return pm; } QString LoadInfo::getCpuInfo() { bool haveInfo = FALSE; QString info = tr("Type: "); QFile f( "/proc/cpuinfo" ); if ( f.open( IO_ReadOnly ) ) { QTextStream ts( &f ); diff --git a/noncore/settings/sysinfo/memory.cpp b/noncore/settings/sysinfo/memory.cpp index 781f0df..30d42d5 100644 --- a/noncore/settings/sysinfo/memory.cpp +++ b/noncore/settings/sysinfo/memory.cpp @@ -1,77 +1,81 @@ /********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #include <qlabel.h> -#include <qtimer.h> #include <qfile.h> -#include <qtextstream.h> #include <qlayout.h> +#include <qtextstream.h> +#include <qtimer.h> +#include <qwhatsthis.h> + #include "graph.h" #include "memory.h" MemoryInfo::MemoryInfo( QWidget *parent, const char *name, WFlags f ) - : QWidget( parent, name, f ) + : QWidget( parent, name, WStyle_ContextHelp ) { QVBoxLayout *vb = new QVBoxLayout( this, 5 ); totalMem = new QLabel( this ); vb->addWidget( totalMem ); data = new GraphData(); // graph = new PieGraph( this ); graph = new BarGraph( this ); graph->setFrameStyle( QFrame::Panel | QFrame::Sunken ); vb->addWidget( graph, 1 ); graph->setData( data ); legend = new GraphLegend( this ); vb->addWidget( legend ); legend->setData( data ); vb->addStretch( 1 ); updateData(); QTimer *t = new QTimer( this ); 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." ) ); } MemoryInfo::~MemoryInfo() { delete data; } void MemoryInfo::updateData() { QFile file( "/proc/meminfo" ); 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; used /= 1000; t >> memfree; memfree /= 1000; t >> shared; shared /= 1000; diff --git a/noncore/settings/sysinfo/opie-sysinfo.control b/noncore/settings/sysinfo/opie-sysinfo.control index 796f734..4a6855d 100644 --- a/noncore/settings/sysinfo/opie-sysinfo.control +++ b/noncore/settings/sysinfo/opie-sysinfo.control @@ -1,9 +1,9 @@ Files: bin/sysinfo apps/Applications/sysinfo.desktop pics/sysinfo Priority: optional Section: opie/applications -Maintainer: Dan Williams <wiliamsdr@acm.org> +Maintainer: Dan Williams <williamsdr@acm.org> Architecture: arm Version: $QPE_VERSION-$SUB_VERSION Depends: opie-base ($QPE_VERSION), libopie ($QPE_VERSION) Description: System Information dialog For the Opie environment. diff --git a/noncore/settings/sysinfo/storage.cpp b/noncore/settings/sysinfo/storage.cpp index b369ff1..c33663e 100644 --- a/noncore/settings/sysinfo/storage.cpp +++ b/noncore/settings/sysinfo/storage.cpp @@ -1,48 +1,49 @@ /********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ // additions copyright 2002 by L.J. Potter #include <qlabel.h> #include <qlayout.h> #include <qtimer.h> -#include <qlayout.h> +#include <qwhatsthis.h> + #include "graph.h" #include "storage.h" #include <stdio.h> #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) #include <sys/vfs.h> #include <mntent.h> #endif StorageInfo::StorageInfo( QWidget *parent, const char *name ) : QWidget( parent, name ) { vb = 0; disks.setAutoDelete(TRUE); lines.setAutoDelete(TRUE); updateMounts(); startTimer( 5000 ); } void StorageInfo::timerEvent(QTimerEvent*) { updateMounts(); } @@ -102,71 +103,87 @@ void StorageInfo::updateMounts() endmntent( mntfp ); } if ( rebuild || n != (int)disks.count() ) { disks.clear(); lines.clear(); delete vb; vb = new QVBoxLayout( this, n > 3 ? 1 : 5 ); bool frst=TRUE; QStringList::ConstIterator it=curdisks.begin(); QStringList::ConstIterator fsit=curfs.begin(); QStringList::ConstIterator fsmount=mountList.begin(); QStringList::ConstIterator fsTit=fsT.begin(); for (; it!=curdisks.end(); ++it, ++fsit) { if ( !frst ) { QFrame *f = new QFrame( this ); vb->addWidget(f); f->setFrameStyle( QFrame::HLine | QFrame::Sunken ); lines.append(f); f->show(); } frst=FALSE; QString humanname=*it; // qDebug(humanname); if ( isCF(humanname) ) - humanname = tr("CF Card: "+*fsmount+" "+*fsTit+" "); + humanname = tr( "CF Card: " ); else if ( humanname == "/dev/hda1" ) - humanname = tr("Hard Disk "+*fsmount+" "+*fsTit+" "); + humanname = tr( "Hard Disk " ); else if ( humanname.left(9) == "/dev/mmcd" ) - humanname = tr("SD Card "+*fsmount+" "+*fsTit+" "); + humanname = tr( "SD Card " ); else if ( humanname.left(7) == "/dev/hd" ) - humanname = tr("Hard Disk") + " " + humanname.mid(7)+" "+*fsmount+" "+*fsTit+" "; + humanname = tr( "Hard Disk /dev/hd " ); else if ( humanname.left(7) == "/dev/sd" ) - humanname = tr("SCSI Hard Disk") + " " + humanname.mid(7)+" "+*fsmount+" "+*fsTit+" "; + humanname = tr( "SCSI Hard Disk /dev/sd " ); else if ( humanname == "/dev/mtdblock1" || humanname == "/dev/mtdblock/1" ) - humanname = tr("Int. Storage "+*fsmount+" "+*fsTit+"\n"); + humanname = tr( "Int. Storage " ); else if ( humanname.left(14) == "/dev/mtdblock/" ) - humanname = tr("Int. Storage") + " " + humanname.mid(14)+" "+*fsmount+" "+*fsTit+" "; + humanname = tr( "Int. Storage /dev/mtdblock/ " ); else if ( humanname.left(13) == "/dev/mtdblock" ) - humanname = tr("Int. Storage") + " " + humanname.mid(13)+" "+*fsmount+" "+*fsTit+" "; - else if ( humanname.left(9) == "/dev/root" ) - humanname = tr("Int. Storage "+*fsmount+" "+*fsTit+" "); + humanname = tr( "Int. Storage /dev/mtdblock " ); + else if ( humanname.left(9) == "/dev/root" ) + humanname = tr( "Int. Storage " ); // etc. + humanname.append( *fsmount ); + humanname.append( " " ); + humanname.append( *fsTit ); + humanname.append( " " ); + MountInfo* mi = new MountInfo( *fsit, humanname, this ); vb->addWidget(mi); disks.insert(*fsit,mi); mi->show(); fsmount++;fsTit++; + QString tempstr = humanname.left( 2 ); + if ( tempstr == tr( "CF" ) ) + QWhatsThis::add( mi, tr( "This graph represents how much memory is currently used on this Compact Flash memory card." ) ); + else if ( tempstr == tr( "Ha" ) ) + QWhatsThis::add( mi, tr( "This graph represents how much storage is currently used on this hard drive." ) ); + else if ( tempstr == tr( "SD" ) ) + QWhatsThis::add( mi, tr( "This graph represents how much memory is currently used on this Secure Digital memory card." ) ); + else if ( tempstr == tr( "SC" ) ) + QWhatsThis::add( mi, tr( "This graph represents how much storage is currently used on this hard drive." ) ); + else if ( tempstr == tr( "In" ) ) + QWhatsThis::add( mi, tr( "This graph represents how much memory is currently used of the built-in memory (i.e. Flash memory) on this handheld device." ) ); } vb->addStretch(); } else { // just update them for (QDictIterator<MountInfo> i(disks); i.current(); ++i) i.current()->updateData(); } #endif } MountInfo::MountInfo( const QString &path, const QString &ttl, QWidget *parent, const char *name ) : QWidget( parent, name ), title(ttl) { qDebug("new path is "+path); fs = new FileSystem( path ); QVBoxLayout *vb = new QVBoxLayout( this, 3 ); totalSize = new QLabel( this ); vb->addWidget( totalSize ); data = new GraphData(); graph = new BarGraph( this ); graph->setFrameStyle( QFrame::Panel | QFrame::Sunken ); diff --git a/noncore/settings/sysinfo/sysinfo.cpp b/noncore/settings/sysinfo/sysinfo.cpp index f727443..6d2a64f 100644 --- a/noncore/settings/sysinfo/sysinfo.cpp +++ b/noncore/settings/sysinfo/sysinfo.cpp @@ -17,49 +17,49 @@ ** not clear to you. ** ********************************************************************** ** ** Enhancements by: Dan Williams, <williamsdr@acm.org> ** **********************************************************************/ #include "memory.h" #include "load.h" #include "storage.h" #include "processinfo.h" #include "modulesinfo.h" #include "versioninfo.h" #include "sysinfo.h" #include <opie/otabwidget.h> #include <qpe/config.h> #include <qpe/resource.h> #include <qlayout.h> SystemInfo::SystemInfo( QWidget *parent, const char *name, WFlags f ) - : QWidget( parent, name, f ) + : QWidget( parent, name, WStyle_ContextHelp ) { setIcon( Resource::loadPixmap( "system_icon" ) ); setCaption( tr("System Info") ); resize( 220, 180 ); Config config( "qpe" ); config.setGroup( "Appearance" ); bool advanced = config.readBoolEntry( "Advanced", TRUE ); QVBoxLayout *lay = new QVBoxLayout( this ); OTabWidget *tab = new OTabWidget( this, "tabwidget", OTabWidget::Global ); lay->addWidget( tab ); tab->addTab( new MemoryInfo( tab ), "sysinfo/memorytabicon.png", tr("Memory") ); #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) tab->addTab( new StorageInfo( tab ), "sysinfo/storagetabicon.png", tr("Storage") ); #endif tab->addTab( new LoadInfo( tab ), "sysinfo/cputabicon.png", tr("CPU") ); if ( advanced ) { tab->addTab( new ProcessInfo( tab ), "sysinfo/processtabicon.png", tr("Process") ); tab->addTab( new ModulesInfo( tab ), "sysinfo/moduletabicon.png", tr("Modules") ); } tab->addTab( new VersionInfo( tab ), "sysinfo/versiontabicon.png", tr("Version") ); diff --git a/noncore/settings/sysinfo/versioninfo.cpp b/noncore/settings/sysinfo/versioninfo.cpp index a8db207..79e7fea 100644 --- a/noncore/settings/sysinfo/versioninfo.cpp +++ b/noncore/settings/sysinfo/versioninfo.cpp @@ -1,59 +1,61 @@ /********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #include <qpe/resource.h> #include <qpe/version.h> - +#include <qfile.h> +#include <qimage.h> #include <qlabel.h> +#include <qlayout.h> #include <qpixmap.h> #include <qpainter.h> -#include <qimage.h> -#include <qtimer.h> -#include <qfile.h> #include <qtextstream.h> -#include <qlayout.h> +#include <qtimer.h> +#include <qwhatsthis.h> + #include "versioninfo.h" #include <opie/odevice.h> + using namespace Opie; VersionInfo::VersionInfo( QWidget *parent, const char *name, WFlags f ) : QWidget( parent, name, f ) { setMinimumSize( 200, 150 ); QVBoxLayout *vb = new QVBoxLayout( this, 4 ); QString kernelVersionString; QFile file( "/proc/version" ); if ( file.open( IO_ReadOnly ) ) { QTextStream t( &file ); QString v; t >> v; t >> v; t >> v; v = v.left( 20 ); kernelVersionString = tr( "<b>Linux Kernel</b><p>Version: " ) + v + "<p>"; t >> v; kernelVersionString += tr( "Compiled by: " ) + v; file.close(); } QString palmtopVersionString; palmtopVersionString = tr( "<b>Opie</b><p>Version: " ) + QPE_VERSION + "<p>"; @@ -100,31 +102,32 @@ VersionInfo::VersionInfo( QWidget *parent, const char *name, WFlags f ) hb2->addWidget( kernelVersion, 1, Qt::AlignTop + Qt::AlignLeft ); QHBoxLayout *hb3 = new QHBoxLayout( vb ); hb3->setSpacing( 2 ); QLabel *palmtopLogo3 = new QLabel( this ); QImage logo3 = Resource::loadImage( "SystemInfo" ); logo3 = logo3.smoothScale( 50, 55 ); QPixmap logo3Pixmap; logo3Pixmap.convertFromImage( logo3 ); palmtopLogo3->setPixmap( logo3Pixmap ); palmtopLogo3->setFixedSize( 60, 60 ); hb3->addWidget( palmtopLogo3, 0, Qt::AlignTop + Qt::AlignLeft ); // QString systemString = tr( "<b>System</b><p>System: ") + ODevice::inst()->systemString() QString systemString = "<b>"+ ODevice::inst()->systemString()+"</b>" +tr("<p>Version: " ) + ODevice::inst()->systemVersionString() +tr("<p>Model: ") + ODevice::inst()->modelString() +tr("<p>Vendor: ") + ODevice::inst()->vendorString(); QLabel *systemVersion = new QLabel( this ); systemVersion->setText( systemString ); hb3->addWidget( systemVersion, 1, Qt::AlignTop + Qt::AlignLeft ); - + + QWhatsThis::add( this, tr( "This page shows the current versions of Opie, the Linux kernel and distribution running on this handheld device." ) ); } VersionInfo::~VersionInfo() { } |