author | drw <drw> | 2002-12-16 01:55:56 (UTC) |
---|---|---|
committer | drw <drw> | 2002-12-16 01:55:56 (UTC) |
commit | 64bc40080abc56e6bd804dadb44d2510f25f2efa (patch) (side-by-side diff) | |
tree | 20d1840b63dc76608aee6f80bf011811d392fbac | |
parent | e4057ee7fe74c83e2dc44f8b9870f65da60fc4fa (diff) | |
download | opie-64bc40080abc56e6bd804dadb44d2510f25f2efa.zip opie-64bc40080abc56e6bd804dadb44d2510f25f2efa.tar.gz opie-64bc40080abc56e6bd804dadb44d2510f25f2efa.tar.bz2 |
1. Added RAM disk to storage tab (could someone verify works on Z?) 2. QScrollView for storage tab 3. Removed module detail dialog since it did not provide any useful information 4. Fix compiler warnings 5. Removed unneeded qDebugs
-rw-r--r-- | noncore/settings/sysinfo/load.cpp | 2 | ||||
-rw-r--r-- | noncore/settings/sysinfo/memory.cpp | 2 | ||||
-rw-r--r-- | noncore/settings/sysinfo/modulesdetail.cpp | 2 | ||||
-rw-r--r-- | noncore/settings/sysinfo/modulesinfo.cpp | 83 | ||||
-rw-r--r-- | noncore/settings/sysinfo/modulesinfo.h | 14 | ||||
-rw-r--r-- | noncore/settings/sysinfo/processdetail.cpp | 2 | ||||
-rw-r--r-- | noncore/settings/sysinfo/storage.cpp | 28 | ||||
-rw-r--r-- | noncore/settings/sysinfo/storage.h | 2 | ||||
-rw-r--r-- | noncore/settings/sysinfo/sysinfo.cpp | 2 | ||||
-rw-r--r-- | noncore/settings/sysinfo/sysinfo.pro | 2 |
10 files changed, 80 insertions, 59 deletions
diff --git a/noncore/settings/sysinfo/load.cpp b/noncore/settings/sysinfo/load.cpp index 900b3d3..d9d7a66 100644 --- a/noncore/settings/sysinfo/load.cpp +++ b/noncore/settings/sysinfo/load.cpp @@ -107,49 +107,49 @@ QString LoadInfo::getCpuInfo() } Load::Load( QWidget *parent, const char *name, WFlags f ) : QWidget( parent, name, f ) { setMinimumHeight( 30 ); setBackgroundColor( black ); points = 100; setMinimumWidth( points ); userLoad = new double [points]; systemLoad = new double [points]; for ( int i = 0; i < points; i++ ) { userLoad[i] = 0.0; systemLoad[i] = 0.0; } maxLoad = 1.3; QTimer *timer = new QTimer( this ); connect( timer, SIGNAL(timeout()), SLOT(timeout()) ); timer->start( 2000 ); gettimeofday( &last, 0 ); first = TRUE; timeout(); } -void Load::paintEvent( QPaintEvent *ev ) +void Load::paintEvent( QPaintEvent * ) { QPainter p( this ); int h = height() - 5; int mult = (int)(h / maxLoad); p.setPen( gray ); p.drawLine( 0, h - mult, width(), h - mult ); p.drawText( 0, h - mult, "100" ); p.drawText( 0, h, "0" ); p.setPen( green ); for ( int i = 1; i < points; i++ ) { int x1 = (i - 1) * width() / points; int x2 = i * width() / points; p.drawLine( x1, h - systemLoad[i-1] * mult, x2, h - systemLoad[i] * mult ); } p.setPen( red ); for ( int i = 1; i < points; i++ ) { int x1 = (i - 1) * width() / points; int x2 = i * width() / points; diff --git a/noncore/settings/sysinfo/memory.cpp b/noncore/settings/sysinfo/memory.cpp index 30d42d5..4f612d8 100644 --- a/noncore/settings/sysinfo/memory.cpp +++ b/noncore/settings/sysinfo/memory.cpp @@ -7,49 +7,49 @@ ** 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 <qfile.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 ) +MemoryInfo::MemoryInfo( QWidget *parent, const char *name, WFlags ) : 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 ); diff --git a/noncore/settings/sysinfo/modulesdetail.cpp b/noncore/settings/sysinfo/modulesdetail.cpp index ea5f352..ea9cdfa 100644 --- a/noncore/settings/sysinfo/modulesdetail.cpp +++ b/noncore/settings/sysinfo/modulesdetail.cpp @@ -11,49 +11,49 @@ ** ** 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. ** **********************************************************************/ #include "modulesdetail.h" #include <sys/types.h> #include <stdio.h> #include <qcombobox.h> #include <qlayout.h> #include <qlistview.h> #include <qmessagebox.h> #include <qpushbutton.h> #include <qtextview.h> #include <qwhatsthis.h> -ModulesDetail::ModulesDetail( QWidget* parent, const char* name, WFlags fl ) +ModulesDetail::ModulesDetail( QWidget* parent, const char* name, WFlags ) : QWidget( parent, name, WStyle_ContextHelp ) { modname = ""; QGridLayout *layout = new QGridLayout( this ); layout->setSpacing( 4 ); layout->setMargin( 4 ); CommandCB = new QComboBox( FALSE, this, "CommandCB" ); CommandCB->insertItem( "modprobe -r" ); CommandCB->insertItem( "rmmod" ); // I can't think of other useful commands yet. Anyone? layout->addWidget( CommandCB, 1, 0 ); QWhatsThis::add( CommandCB, tr( "Select a command here and then click the Send button to the right to send the command." ) ); ModulesView = new QTextView( this, "ModulesView" ); layout->addMultiCellWidget( ModulesView, 0, 0, 0, 1 ); QWhatsThis::add( ModulesView, tr( "This area shows detailed information about this module." ) ); SendButton = new QPushButton( this, "SendButton" ); SendButton->setMinimumSize( QSize( 50, 24 ) ); SendButton->setMaximumSize( QSize( 50, 24 ) ); SendButton->setText( tr( "Send" ) ); connect( SendButton, SIGNAL( clicked() ), this, SLOT( slotSendClicked() ) ); diff --git a/noncore/settings/sysinfo/modulesinfo.cpp b/noncore/settings/sysinfo/modulesinfo.cpp index a0d26c7..c558fad 100644 --- a/noncore/settings/sysinfo/modulesinfo.cpp +++ b/noncore/settings/sysinfo/modulesinfo.cpp @@ -1,122 +1,133 @@ /********************************************************************** ** ModulesInfo ** ** Display Modules information ** ** Copyright (C) 2002, Michael Lauer ** mickey@tm.informatik.uni-frankfurt.de ** http://www.Vanille.de ** ** Based on ProcessInfo by Dan Williams <williamsdr@acm.org> ** ** 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. ** **********************************************************************/ #include <qpe/qpeapplication.h> +#include <qcombobox.h> #include <qfile.h> #include <qheader.h> #include <qlayout.h> #include <qlistview.h> +#include <qmessagebox.h> +#include <qpushbutton.h> +#include <qstring.h> #include <qtimer.h> #include <qwhatsthis.h> #include "modulesinfo.h" ModulesInfo::ModulesInfo( QWidget* parent, const char* name, WFlags fl ) : QWidget( parent, name, fl ) { - QVBoxLayout *layout = new QVBoxLayout( this, 5 ); + QGridLayout *layout = new QGridLayout( this ); + layout->setSpacing( 4 ); + layout->setMargin( 4 ); - ModulesView = new QListView( this, "ModulesView" ); + ModulesView = new QListView( this ); int colnum = ModulesView->addColumn( tr( "Module" ) ); colnum = ModulesView->addColumn( tr( "Size" ) ); ModulesView->setColumnAlignment( colnum, Qt::AlignRight ); colnum = ModulesView->addColumn( tr( "Use#" ) ); ModulesView->setColumnAlignment( colnum, Qt::AlignRight ); colnum = ModulesView->addColumn( tr( "Used By" ) ); ModulesView->setAllColumnsShowFocus( TRUE ); - QPEApplication::setStylusOperation( ModulesView->viewport(), QPEApplication::RightOnHold ); - connect( ModulesView, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint &, int ) ), - this, SLOT( viewModules( QListViewItem * ) ) ); - layout->addWidget( ModulesView ); + layout->addMultiCellWidget( ModulesView, 0, 0, 0, 1 ); QWhatsThis::add( ModulesView, tr( "This is a list of all the kernel modules currently loaded on this handheld device.\n\nClick and hold on a module to see additional information about the module, or to unload it." ) ); + CommandCB = new QComboBox( FALSE, this ); + CommandCB->insertItem( "modprobe -r" ); + CommandCB->insertItem( "rmmod" ); + // I can't think of other useful commands yet. Anyone? + layout->addWidget( CommandCB, 1, 0 ); + QWhatsThis::add( CommandCB, tr( "Select a command here and then click the Send button to the right to send the command to module selected above." ) ); + + QPushButton *btn = new QPushButton( this ); + btn->setMinimumSize( QSize( 50, 24 ) ); + btn->setMaximumSize( QSize( 50, 24 ) ); + btn->setText( tr( "Send" ) ); + connect( btn, SIGNAL( clicked() ), this, SLOT( slotSendClicked() ) ); + layout->addWidget( btn, 1, 1 ); + QWhatsThis::add( btn, tr( "Click here to send the selected command to the module selected above." ) ); + QTimer *t = new QTimer( this ); connect( t, SIGNAL( timeout() ), this, SLOT( updateData() ) ); t->start( 5000 ); updateData(); - - ModulesDtl = new ModulesDetail( 0, 0, 0 ); - ModulesDtl->ModulesView->setTextFormat( PlainText ); } ModulesInfo::~ModulesInfo() { } void ModulesInfo::updateData() { char modname[64]; char usage[200]; int modsize, usecount; - + ModulesView->clear(); FILE *procfile = fopen( ( QString ) ( "/proc/modules"), "r"); if ( procfile ) { - while ( true ) { + while ( true ) { int success = fscanf( procfile, "%s%d%d%[^\n]", modname, &modsize, &usecount, usage ); - + if ( success == EOF ) break; QString qmodname = QString( modname ); QString qmodsize = QString::number( modsize ).rightJustify( 6, ' ' ); QString qusecount = QString::number( usecount ).rightJustify( 2, ' ' ); QString qusage = QString( usage ); - + ( void ) new QListViewItem( ModulesView, qmodname, qmodsize, qusecount, qusage ); } - + fclose( procfile ); } } -void ModulesInfo::viewModules( QListViewItem *modules ) +void ModulesInfo::slotSendClicked() { - QString modname = modules->text( 0 ); - ModulesDtl->setCaption( QString( "Module: " ) + modname ); - ModulesDtl->modname = modname; - QString command = QString( "/sbin/modinfo " ) + modules->text( 0 ); - - FILE* modinfo = popen( command, "r" ); - - if ( modinfo ) + QString capstr = tr( "You really want to execute\n" ); + capstr.append( CommandCB->currentText() ); + capstr.append( "\nfor this module?" ); + + if ( QMessageBox::warning( this, caption(), capstr, + QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape ) == QMessageBox::Yes ) { - char line[200]; - ModulesDtl->ModulesView->setText( " Details:\n------------\n" ); - - while( true ) - { - int success = fscanf( modinfo, "%[^\n]\n", line ); - if ( success == EOF ) - break; - ModulesDtl->ModulesView->append( line ); - } - - pclose( modinfo ); + QString command = "/sbin/"; + command.append( CommandCB->currentText() ); + command.append( " " ); + command.append( ModulesView->currentItem()->text( 0 ) ); + + FILE* stream = popen( command, "r" ); + if ( stream ) + pclose( stream ); + //{ + // hide(); + //} } - ModulesDtl->showMaximized(); } diff --git a/noncore/settings/sysinfo/modulesinfo.h b/noncore/settings/sysinfo/modulesinfo.h index c702f24..ef1f805 100644 --- a/noncore/settings/sysinfo/modulesinfo.h +++ b/noncore/settings/sysinfo/modulesinfo.h @@ -2,45 +2,45 @@ ** ModulesInfo ** ** Display modules information ** ** Copyright (C) 2002, Michael Lauer ** mickey@tm.informatik.uni-frankfurt.de ** http://www.Vanille.de ** ** Based on ProcessInfo by Dan Williams <williamsdr@acm.org> ** ** 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. ** **********************************************************************/ #ifndef MODULESINFO_H #define MODULESINFO_H #include <qwidget.h> -#include <qlistview.h> -#include "modulesdetail.h" +class QComboBox; +class QListView; class ModulesInfo : public QWidget { Q_OBJECT public: ModulesInfo( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); ~ModulesInfo(); -private slots: - void updateData(); - void viewModules( QListViewItem * ); - private: QListView* ModulesView; - ModulesDetail *ModulesDtl; + QComboBox* CommandCB; + +private slots: + void updateData(); + void slotSendClicked(); }; #endif diff --git a/noncore/settings/sysinfo/processdetail.cpp b/noncore/settings/sysinfo/processdetail.cpp index 661e32c..fcb871f 100644 --- a/noncore/settings/sysinfo/processdetail.cpp +++ b/noncore/settings/sysinfo/processdetail.cpp @@ -9,49 +9,49 @@ ** ** 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. ** **********************************************************************/ #include "processdetail.h" #include <sys/types.h> #include <signal.h> #include <qcombobox.h> #include <qlayout.h> #include <qlistview.h> #include <qmessagebox.h> #include <qpushbutton.h> #include <qtextview.h> #include <qwhatsthis.h> -ProcessDetail::ProcessDetail( QWidget* parent, const char* name, WFlags fl ) +ProcessDetail::ProcessDetail( QWidget* parent, const char* name, WFlags ) : QWidget( parent, name, WStyle_ContextHelp ) { pid = 0; QGridLayout *layout = new QGridLayout( this ); layout->setSpacing( 4 ); layout->setMargin( 4 ); SignalCB = new QComboBox( FALSE, this, "SignalCB" ); SignalCB->insertItem( " 1: SIGHUP" ); SignalCB->insertItem( " 2: SIGINT" ); SignalCB->insertItem( " 3: SIGQUIT" ); SignalCB->insertItem( " 5: SIGTRAP" ); SignalCB->insertItem( " 6: SIGABRT" ); SignalCB->insertItem( " 9: SIGKILL" ); SignalCB->insertItem( "14: SIGALRM" ); SignalCB->insertItem( "15: SIGTERM" ); SignalCB->insertItem( "18: SIGCONT" ); SignalCB->insertItem( "19: SIGSTOP" ); layout->addWidget( SignalCB, 1, 0 ); QWhatsThis::add( SignalCB, tr( "Select a signal here and then click the Send button to the right to send to this process." ) ); ProcessView = new QTextView( this, "ProcessView" ); layout->addMultiCellWidget( ProcessView, 0, 0, 0, 1 ); diff --git a/noncore/settings/sysinfo/storage.cpp b/noncore/settings/sysinfo/storage.cpp index c33663e..5d6cd1b 100644 --- a/noncore/settings/sysinfo/storage.cpp +++ b/noncore/settings/sysinfo/storage.cpp @@ -1,204 +1,214 @@ /********************************************************************** ** 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 <qscrollview.h> #include <qtimer.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); + QVBoxLayout *tmpvb = new QVBoxLayout( this ); + QScrollView *sv = new QScrollView( this ); + tmpvb->addWidget( sv, 0, 0 ); + sv->setResizePolicy( QScrollView::AutoOneFit ); + sv->setFrameStyle( QFrame::NoFrame ); + container = new QWidget( sv->viewport() ); + sv->addChild( container ); + vb = 0x0; + + disks.setAutoDelete(TRUE); lines.setAutoDelete(TRUE); updateMounts(); startTimer( 5000 ); } void StorageInfo::timerEvent(QTimerEvent*) { updateMounts(); } static bool isCF(const QString& m) { FILE* f = fopen("/var/run/stab", "r"); if (!f) f = fopen("/var/state/pcmcia/stab", "r"); if (!f) f = fopen("/var/lib/pcmcia/stab", "r"); if ( f ) { char line[1024]; char devtype[80]; char devname[80]; while ( fgets( line, 1024, f ) ) { // 0 ide ide-cs 0 hda 3 0 if ( sscanf(line,"%*d %s %*s %*s %s", devtype, devname )==2 ) { if ( QString(devtype) == "ide" && m.find(devname)>0 ) { fclose(f); return TRUE; } } } fclose(f); } return FALSE; } void StorageInfo::updateMounts() { #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) struct mntent *me; FILE *mntfp = setmntent( "/etc/mtab", "r" ); QStringList curdisks; QStringList curfs; QStringList mountList; QStringList fsT; bool rebuild = FALSE; int n=0; if ( mntfp ) { while ( (me = getmntent( mntfp )) != 0 ) { QString fs = me->mnt_fsname; - qDebug(fs+" "+(QString)me->mnt_type); if ( fs.left(7)=="/dev/hd" || fs.left(7)=="/dev/sd" || fs.left(8)=="/dev/mtd" || fs.left(9) == "/dev/mmcd" - || fs.left(9) == "/dev/root" || fs.left(5) == "/ramfs") { + || fs.left(9) == "/dev/root" || fs.left(5) == "/ramfs" || fs.left(5) == "tmpfs" ) { n++; curdisks.append(fs); QString d = me->mnt_dir; curfs.append(d); QString mount = me->mnt_dir; mountList.append(mount); QString t = me->mnt_type; fsT.append(t); if ( !disks.find(d) ) rebuild = TRUE; } } endmntent( mntfp ); } if ( rebuild || n != (int)disks.count() ) { disks.clear(); lines.clear(); delete vb; - vb = new QVBoxLayout( this, n > 3 ? 1 : 5 ); + vb = new QVBoxLayout( container/*, 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 ); + QFrame *f = new QFrame( container ); 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: " ); else if ( humanname == "/dev/hda1" ) humanname = tr( "Hard Disk " ); else if ( humanname.left(9) == "/dev/mmcd" ) humanname = tr( "SD Card " ); else if ( humanname.left(7) == "/dev/hd" ) humanname = tr( "Hard Disk /dev/hd " ); else if ( humanname.left(7) == "/dev/sd" ) humanname = tr( "SCSI Hard Disk /dev/sd " ); else if ( humanname == "/dev/mtdblock1" || humanname == "/dev/mtdblock/1" ) humanname = tr( "Int. Storage " ); else if ( humanname.left(14) == "/dev/mtdblock/" ) humanname = tr( "Int. Storage /dev/mtdblock/ " ); else if ( humanname.left(13) == "/dev/mtdblock" ) humanname = tr( "Int. Storage /dev/mtdblock " ); else if ( humanname.left(9) == "/dev/root" ) humanname = tr( "Int. Storage " ); + else if ( humanname.left(5) == "tmpfs" ) + humanname = tr( "RAM disk" ); // etc. humanname.append( *fsmount ); humanname.append( " " ); humanname.append( *fsTit ); humanname.append( " " ); - MountInfo* mi = new MountInfo( *fsit, humanname, this ); + MountInfo* mi = new MountInfo( *fsit, humanname, container ); 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." ) ); + else if ( tempstr == tr( "RA" ) ) + QWhatsThis::add( mi, tr( "This graph represents how much memory is currently used of the temporary RAM disk." ) ); } 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 ); vb->addWidget( graph, 1 ); graph->setData( data ); legend = new GraphLegend( this ); legend->setOrientation(Horizontal); vb->addWidget( legend ); legend->setData( data ); updateData(); } MountInfo::~MountInfo() { delete data; delete fs; diff --git a/noncore/settings/sysinfo/storage.h b/noncore/settings/sysinfo/storage.h index 3fa5b79..7e8b4e0 100644 --- a/noncore/settings/sysinfo/storage.h +++ b/noncore/settings/sysinfo/storage.h @@ -8,64 +8,66 @@ ** 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 <qwidget.h> #include <qframe.h> #include <qlist.h> #include <qdict.h> class QLabel; class GraphData; class Graph; class GraphLegend; class FileSystem; class MountInfo; class QVBoxLayout; +class QWidget; class StorageInfo : public QWidget { Q_OBJECT public: StorageInfo( QWidget *parent=0, const char *name=0 ); protected: void timerEvent(QTimerEvent*); private: void updateMounts(); QDict<MountInfo> disks; QList<QFrame> lines; QVBoxLayout *vb; + QWidget *container; }; class MountInfo : public QWidget { Q_OBJECT public: MountInfo( const QString &path, const QString &ttl, QWidget *parent=0, const char *name=0 ); ~MountInfo(); void updateData(); private: QString title; FileSystem *fs; QLabel *totalSize; GraphData *data; Graph *graph; GraphLegend *legend; }; class FileSystem { public: FileSystem( const QString &p ); diff --git a/noncore/settings/sysinfo/sysinfo.cpp b/noncore/settings/sysinfo/sysinfo.cpp index 6d2a64f..872492e 100644 --- a/noncore/settings/sysinfo/sysinfo.cpp +++ b/noncore/settings/sysinfo/sysinfo.cpp @@ -16,49 +16,49 @@ ** Contact info@trolltech.com if any conditions of this licensing are ** 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 ) +SystemInfo::SystemInfo( QWidget *parent, const char *name, WFlags ) : 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") ); } diff --git a/noncore/settings/sysinfo/sysinfo.pro b/noncore/settings/sysinfo/sysinfo.pro index 236fc02..7e66451 100644 --- a/noncore/settings/sysinfo/sysinfo.pro +++ b/noncore/settings/sysinfo/sysinfo.pro @@ -1,46 +1,44 @@ TEMPLATE = app CONFIG = qt warn_on release DESTDIR = $(OPIEDIR)/bin HEADERS = memory.h \ graph.h \ load.h \ storage.h \ processinfo.h \ processdetail.h \ modulesinfo.h \ - modulesdetail.h \ versioninfo.h \ sysinfo.h SOURCES = main.cpp \ memory.cpp \ graph.cpp \ load.cpp \ storage.cpp \ processinfo.cpp \ modulesinfo.cpp \ processdetail.cpp \ - modulesdetail.cpp \ versioninfo.cpp \ sysinfo.cpp INTERFACES = INCLUDEPATH += $(OPIEDIR)/include DEPENDPATH += $(OPIEDIR)/include LIBS += -lqpe -lopie TARGET = sysinfo TRANSLATIONS = ../../../i18n/de/sysinfo.ts \ ../../../i18n/xx/sysinfo.ts \ ../../../i18n/en/sysinfo.ts \ ../../../i18n/es/sysinfo.ts \ ../../../i18n/fr/sysinfo.ts \ ../../../i18n/hu/sysinfo.ts \ ../../../i18n/ja/sysinfo.ts \ ../../../i18n/ko/sysinfo.ts \ ../../../i18n/no/sysinfo.ts \ ../../../i18n/pl/sysinfo.ts \ ../../../i18n/pt/sysinfo.ts \ ../../../i18n/pt_BR/sysinfo.ts \ ../../../i18n/sl/sysinfo.ts \ ../../../i18n/zh_CN/sysinfo.ts \ ../../../i18n/zh_TW/sysinfo.ts \ ../../../i18n/da/sysinfo.ts |