summaryrefslogtreecommitdiff
authordrw <drw>2002-12-16 01:55:56 (UTC)
committer drw <drw>2002-12-16 01:55:56 (UTC)
commit64bc40080abc56e6bd804dadb44d2510f25f2efa (patch) (unidiff)
tree20d1840b63dc76608aee6f80bf011811d392fbac
parente4057ee7fe74c83e2dc44f8b9870f65da60fc4fa (diff)
downloadopie-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
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/sysinfo/load.cpp2
-rw-r--r--noncore/settings/sysinfo/memory.cpp2
-rw-r--r--noncore/settings/sysinfo/modulesdetail.cpp2
-rw-r--r--noncore/settings/sysinfo/modulesinfo.cpp83
-rw-r--r--noncore/settings/sysinfo/modulesinfo.h14
-rw-r--r--noncore/settings/sysinfo/processdetail.cpp2
-rw-r--r--noncore/settings/sysinfo/storage.cpp28
-rw-r--r--noncore/settings/sysinfo/storage.h2
-rw-r--r--noncore/settings/sysinfo/sysinfo.cpp2
-rw-r--r--noncore/settings/sysinfo/sysinfo.pro2
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
@@ -119,25 +119,25 @@ Load::Load( QWidget *parent, const char *name, WFlags f )
119 userLoad[i] = 0.0; 119 userLoad[i] = 0.0;
120 systemLoad[i] = 0.0; 120 systemLoad[i] = 0.0;
121 } 121 }
122 maxLoad = 1.3; 122 maxLoad = 1.3;
123 QTimer *timer = new QTimer( this ); 123 QTimer *timer = new QTimer( this );
124 connect( timer, SIGNAL(timeout()), SLOT(timeout()) ); 124 connect( timer, SIGNAL(timeout()), SLOT(timeout()) );
125 timer->start( 2000 ); 125 timer->start( 2000 );
126 gettimeofday( &last, 0 ); 126 gettimeofday( &last, 0 );
127 first = TRUE; 127 first = TRUE;
128 timeout(); 128 timeout();
129} 129}
130 130
131void Load::paintEvent( QPaintEvent *ev ) 131void Load::paintEvent( QPaintEvent * )
132{ 132{
133 QPainter p( this ); 133 QPainter p( this );
134 134
135 int h = height() - 5; 135 int h = height() - 5;
136 136
137 int mult = (int)(h / maxLoad); 137 int mult = (int)(h / maxLoad);
138 138
139 p.setPen( gray ); 139 p.setPen( gray );
140 p.drawLine( 0, h - mult, width(), h - mult ); 140 p.drawLine( 0, h - mult, width(), h - mult );
141 p.drawText( 0, h - mult, "100" ); 141 p.drawText( 0, h - mult, "100" );
142 p.drawText( 0, h, "0" ); 142 p.drawText( 0, h, "0" );
143 143
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
@@ -19,25 +19,25 @@
19**********************************************************************/ 19**********************************************************************/
20 20
21#include <qlabel.h> 21#include <qlabel.h>
22#include <qfile.h> 22#include <qfile.h>
23#include <qlayout.h> 23#include <qlayout.h>
24#include <qtextstream.h> 24#include <qtextstream.h>
25#include <qtimer.h> 25#include <qtimer.h>
26#include <qwhatsthis.h> 26#include <qwhatsthis.h>
27 27
28#include "graph.h" 28#include "graph.h"
29#include "memory.h" 29#include "memory.h"
30 30
31MemoryInfo::MemoryInfo( QWidget *parent, const char *name, WFlags f ) 31MemoryInfo::MemoryInfo( QWidget *parent, const char *name, WFlags )
32 : QWidget( parent, name, WStyle_ContextHelp ) 32 : QWidget( parent, name, WStyle_ContextHelp )
33{ 33{
34 QVBoxLayout *vb = new QVBoxLayout( this, 5 ); 34 QVBoxLayout *vb = new QVBoxLayout( this, 5 );
35 35
36 totalMem = new QLabel( this ); 36 totalMem = new QLabel( this );
37 vb->addWidget( totalMem ); 37 vb->addWidget( totalMem );
38 38
39 data = new GraphData(); 39 data = new GraphData();
40// graph = new PieGraph( this ); 40// graph = new PieGraph( this );
41 graph = new BarGraph( this ); 41 graph = new BarGraph( this );
42 graph->setFrameStyle( QFrame::Panel | QFrame::Sunken ); 42 graph->setFrameStyle( QFrame::Panel | QFrame::Sunken );
43 vb->addWidget( graph, 1 ); 43 vb->addWidget( graph, 1 );
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
@@ -23,25 +23,25 @@
23 23
24#include <sys/types.h> 24#include <sys/types.h>
25#include <stdio.h> 25#include <stdio.h>
26 26
27#include <qcombobox.h> 27#include <qcombobox.h>
28#include <qlayout.h> 28#include <qlayout.h>
29#include <qlistview.h> 29#include <qlistview.h>
30#include <qmessagebox.h> 30#include <qmessagebox.h>
31#include <qpushbutton.h> 31#include <qpushbutton.h>
32#include <qtextview.h> 32#include <qtextview.h>
33#include <qwhatsthis.h> 33#include <qwhatsthis.h>
34 34
35ModulesDetail::ModulesDetail( QWidget* parent, const char* name, WFlags fl ) 35ModulesDetail::ModulesDetail( QWidget* parent, const char* name, WFlags )
36 : QWidget( parent, name, WStyle_ContextHelp ) 36 : QWidget( parent, name, WStyle_ContextHelp )
37{ 37{
38 modname = ""; 38 modname = "";
39 39
40 QGridLayout *layout = new QGridLayout( this ); 40 QGridLayout *layout = new QGridLayout( this );
41 layout->setSpacing( 4 ); 41 layout->setSpacing( 4 );
42 layout->setMargin( 4 ); 42 layout->setMargin( 4 );
43 43
44 CommandCB = new QComboBox( FALSE, this, "CommandCB" ); 44 CommandCB = new QComboBox( FALSE, this, "CommandCB" );
45 CommandCB->insertItem( "modprobe -r" ); 45 CommandCB->insertItem( "modprobe -r" );
46 CommandCB->insertItem( "rmmod" ); 46 CommandCB->insertItem( "rmmod" );
47 // I can't think of other useful commands yet. Anyone? 47 // I can't think of other useful commands yet. Anyone?
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
@@ -12,111 +12,122 @@
12** This file may be distributed and/or modified under the terms of the 12** This file may be distributed and/or modified under the terms of the
13** GNU General Public License version 2 as published by the Free Software 13** GNU General Public License version 2 as published by the Free Software
14** Foundation and appearing in the file LICENSE.GPL included in the 14** Foundation and appearing in the file LICENSE.GPL included in the
15** packaging of this file. 15** packaging of this file.
16** 16**
17** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 17** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
18** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 18** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19** 19**
20**********************************************************************/ 20**********************************************************************/
21 21
22#include <qpe/qpeapplication.h> 22#include <qpe/qpeapplication.h>
23 23
24#include <qcombobox.h>
24#include <qfile.h> 25#include <qfile.h>
25#include <qheader.h> 26#include <qheader.h>
26#include <qlayout.h> 27#include <qlayout.h>
27#include <qlistview.h> 28#include <qlistview.h>
29#include <qmessagebox.h>
30#include <qpushbutton.h>
31#include <qstring.h>
28#include <qtimer.h> 32#include <qtimer.h>
29#include <qwhatsthis.h> 33#include <qwhatsthis.h>
30 34
31#include "modulesinfo.h" 35#include "modulesinfo.h"
32 36
33ModulesInfo::ModulesInfo( QWidget* parent, const char* name, WFlags fl ) 37ModulesInfo::ModulesInfo( QWidget* parent, const char* name, WFlags fl )
34 : QWidget( parent, name, fl ) 38 : QWidget( parent, name, fl )
35{ 39{
36 QVBoxLayout *layout = new QVBoxLayout( this, 5 ); 40 QGridLayout *layout = new QGridLayout( this );
41 layout->setSpacing( 4 );
42 layout->setMargin( 4 );
37 43
38 ModulesView = new QListView( this, "ModulesView" ); 44 ModulesView = new QListView( this );
39 int colnum = ModulesView->addColumn( tr( "Module" ) ); 45 int colnum = ModulesView->addColumn( tr( "Module" ) );
40 colnum = ModulesView->addColumn( tr( "Size" ) ); 46 colnum = ModulesView->addColumn( tr( "Size" ) );
41 ModulesView->setColumnAlignment( colnum, Qt::AlignRight ); 47 ModulesView->setColumnAlignment( colnum, Qt::AlignRight );
42 colnum = ModulesView->addColumn( tr( "Use#" ) ); 48 colnum = ModulesView->addColumn( tr( "Use#" ) );
43 ModulesView->setColumnAlignment( colnum, Qt::AlignRight ); 49 ModulesView->setColumnAlignment( colnum, Qt::AlignRight );
44 colnum = ModulesView->addColumn( tr( "Used By" ) ); 50 colnum = ModulesView->addColumn( tr( "Used By" ) );
45 ModulesView->setAllColumnsShowFocus( TRUE ); 51 ModulesView->setAllColumnsShowFocus( TRUE );
46 QPEApplication::setStylusOperation( ModulesView->viewport(), QPEApplication::RightOnHold ); 52 layout->addMultiCellWidget( ModulesView, 0, 0, 0, 1 );
47 connect( ModulesView, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint &, int ) ),
48 this, SLOT( viewModules( QListViewItem * ) ) );
49 layout->addWidget( ModulesView );
50 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." ) ); 53 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." ) );
51 54
55 CommandCB = new QComboBox( FALSE, this );
56 CommandCB->insertItem( "modprobe -r" );
57 CommandCB->insertItem( "rmmod" );
58 // I can't think of other useful commands yet. Anyone?
59 layout->addWidget( CommandCB, 1, 0 );
60 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." ) );
61
62 QPushButton *btn = new QPushButton( this );
63 btn->setMinimumSize( QSize( 50, 24 ) );
64 btn->setMaximumSize( QSize( 50, 24 ) );
65 btn->setText( tr( "Send" ) );
66 connect( btn, SIGNAL( clicked() ), this, SLOT( slotSendClicked() ) );
67 layout->addWidget( btn, 1, 1 );
68 QWhatsThis::add( btn, tr( "Click here to send the selected command to the module selected above." ) );
69
52 QTimer *t = new QTimer( this ); 70 QTimer *t = new QTimer( this );
53 connect( t, SIGNAL( timeout() ), this, SLOT( updateData() ) ); 71 connect( t, SIGNAL( timeout() ), this, SLOT( updateData() ) );
54 t->start( 5000 ); 72 t->start( 5000 );
55 73
56 updateData(); 74 updateData();
57
58 ModulesDtl = new ModulesDetail( 0, 0, 0 );
59 ModulesDtl->ModulesView->setTextFormat( PlainText );
60} 75}
61 76
62ModulesInfo::~ModulesInfo() 77ModulesInfo::~ModulesInfo()
63{ 78{
64} 79}
65 80
66void ModulesInfo::updateData() 81void ModulesInfo::updateData()
67{ 82{
68 char modname[64]; 83 char modname[64];
69 char usage[200]; 84 char usage[200];
70 int modsize, usecount; 85 int modsize, usecount;
71 86
72 ModulesView->clear(); 87 ModulesView->clear();
73 88
74 FILE *procfile = fopen( ( QString ) ( "/proc/modules"), "r"); 89 FILE *procfile = fopen( ( QString ) ( "/proc/modules"), "r");
75 90
76 if ( procfile ) 91 if ( procfile )
77 { 92 {
78 while ( true ) { 93 while ( true ) {
79 int success = fscanf( procfile, "%s%d%d%[^\n]", modname, &modsize, &usecount, usage ); 94 int success = fscanf( procfile, "%s%d%d%[^\n]", modname, &modsize, &usecount, usage );
80 95
81 if ( success == EOF ) 96 if ( success == EOF )
82 break; 97 break;
83 98
84 QString qmodname = QString( modname ); 99 QString qmodname = QString( modname );
85 QString qmodsize = QString::number( modsize ).rightJustify( 6, ' ' ); 100 QString qmodsize = QString::number( modsize ).rightJustify( 6, ' ' );
86 QString qusecount = QString::number( usecount ).rightJustify( 2, ' ' ); 101 QString qusecount = QString::number( usecount ).rightJustify( 2, ' ' );
87 QString qusage = QString( usage ); 102 QString qusage = QString( usage );
88 103
89 ( void ) new QListViewItem( ModulesView, qmodname, qmodsize, qusecount, qusage ); 104 ( void ) new QListViewItem( ModulesView, qmodname, qmodsize, qusecount, qusage );
90 } 105 }
91 106
92 fclose( procfile ); 107 fclose( procfile );
93 } 108 }
94} 109}
95 110
96void ModulesInfo::viewModules( QListViewItem *modules ) 111void ModulesInfo::slotSendClicked()
97{ 112{
98 QString modname = modules->text( 0 ); 113 QString capstr = tr( "You really want to execute\n" );
99 ModulesDtl->setCaption( QString( "Module: " ) + modname ); 114 capstr.append( CommandCB->currentText() );
100 ModulesDtl->modname = modname; 115 capstr.append( "\nfor this module?" );
101 QString command = QString( "/sbin/modinfo " ) + modules->text( 0 ); 116
102 117 if ( QMessageBox::warning( this, caption(), capstr,
103 FILE* modinfo = popen( command, "r" ); 118 QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape ) == QMessageBox::Yes )
104
105 if ( modinfo )
106 { 119 {
107 char line[200]; 120 QString command = "/sbin/";
108 ModulesDtl->ModulesView->setText( " Details:\n------------\n" ); 121 command.append( CommandCB->currentText() );
109 122 command.append( " " );
110 while( true ) 123 command.append( ModulesView->currentItem()->text( 0 ) );
111 { 124
112 int success = fscanf( modinfo, "%[^\n]\n", line ); 125 FILE* stream = popen( command, "r" );
113 if ( success == EOF ) 126 if ( stream )
114 break; 127 pclose( stream );
115 ModulesDtl->ModulesView->append( line ); 128 //{
116 } 129 // hide();
117 130 //}
118 pclose( modinfo );
119 } 131 }
120 132
121 ModulesDtl->showMaximized();
122} 133}
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
@@ -14,33 +14,33 @@
14** Foundation and appearing in the file LICENSE.GPL included in the 14** Foundation and appearing in the file LICENSE.GPL included in the
15** packaging of this file. 15** packaging of this file.
16** 16**
17** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 17** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
18** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 18** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19** 19**
20**********************************************************************/ 20**********************************************************************/
21 21
22#ifndef MODULESINFO_H 22#ifndef MODULESINFO_H
23#define MODULESINFO_H 23#define MODULESINFO_H
24 24
25#include <qwidget.h> 25#include <qwidget.h>
26#include <qlistview.h>
27 26
28#include "modulesdetail.h" 27class QComboBox;
28class QListView;
29 29
30class ModulesInfo : public QWidget 30class ModulesInfo : public QWidget
31{ 31{
32 Q_OBJECT 32 Q_OBJECT
33public: 33public:
34 ModulesInfo( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); 34 ModulesInfo( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
35 ~ModulesInfo(); 35 ~ModulesInfo();
36 36
37private slots:
38 void updateData();
39 void viewModules( QListViewItem * );
40
41private: 37private:
42 QListView* ModulesView; 38 QListView* ModulesView;
43 ModulesDetail *ModulesDtl; 39 QComboBox* CommandCB;
40
41private slots:
42 void updateData();
43 void slotSendClicked();
44}; 44};
45 45
46#endif 46#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
@@ -21,25 +21,25 @@
21 21
22#include <sys/types.h> 22#include <sys/types.h>
23#include <signal.h> 23#include <signal.h>
24 24
25#include <qcombobox.h> 25#include <qcombobox.h>
26#include <qlayout.h> 26#include <qlayout.h>
27#include <qlistview.h> 27#include <qlistview.h>
28#include <qmessagebox.h> 28#include <qmessagebox.h>
29#include <qpushbutton.h> 29#include <qpushbutton.h>
30#include <qtextview.h> 30#include <qtextview.h>
31#include <qwhatsthis.h> 31#include <qwhatsthis.h>
32 32
33ProcessDetail::ProcessDetail( QWidget* parent, const char* name, WFlags fl ) 33ProcessDetail::ProcessDetail( QWidget* parent, const char* name, WFlags )
34 : QWidget( parent, name, WStyle_ContextHelp ) 34 : QWidget( parent, name, WStyle_ContextHelp )
35{ 35{
36 pid = 0; 36 pid = 0;
37 37
38 QGridLayout *layout = new QGridLayout( this ); 38 QGridLayout *layout = new QGridLayout( this );
39 layout->setSpacing( 4 ); 39 layout->setSpacing( 4 );
40 layout->setMargin( 4 ); 40 layout->setMargin( 4 );
41 41
42 SignalCB = new QComboBox( FALSE, this, "SignalCB" ); 42 SignalCB = new QComboBox( FALSE, this, "SignalCB" );
43 SignalCB->insertItem( " 1: SIGHUP" ); 43 SignalCB->insertItem( " 1: SIGHUP" );
44 SignalCB->insertItem( " 2: SIGINT" ); 44 SignalCB->insertItem( " 2: SIGINT" );
45 SignalCB->insertItem( " 3: SIGQUIT" ); 45 SignalCB->insertItem( " 3: SIGQUIT" );
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
@@ -11,41 +11,50 @@
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20// additions copyright 2002 by L.J. Potter 20// additions copyright 2002 by L.J. Potter
21#include <qlabel.h> 21#include <qlabel.h>
22#include <qlayout.h> 22#include <qlayout.h>
23#include <qscrollview.h>
23#include <qtimer.h> 24#include <qtimer.h>
24#include <qwhatsthis.h> 25#include <qwhatsthis.h>
25 26
26#include "graph.h" 27#include "graph.h"
27#include "storage.h" 28#include "storage.h"
28 29
29#include <stdio.h> 30#include <stdio.h>
30 #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) 31 #if defined(_OS_LINUX_) || defined(Q_OS_LINUX)
31#include <sys/vfs.h> 32#include <sys/vfs.h>
32#include <mntent.h> 33#include <mntent.h>
33 #endif 34 #endif
34 35
35StorageInfo::StorageInfo( QWidget *parent, const char *name ) 36StorageInfo::StorageInfo( QWidget *parent, const char *name )
36 : QWidget( parent, name ) 37 : QWidget( parent, name )
37{ 38{
38 vb = 0; 39 QVBoxLayout *tmpvb = new QVBoxLayout( this );
39 disks.setAutoDelete(TRUE); 40 QScrollView *sv = new QScrollView( this );
41 tmpvb->addWidget( sv, 0, 0 );
42 sv->setResizePolicy( QScrollView::AutoOneFit );
43 sv->setFrameStyle( QFrame::NoFrame );
44 container = new QWidget( sv->viewport() );
45 sv->addChild( container );
46 vb = 0x0;
47
48 disks.setAutoDelete(TRUE);
40 lines.setAutoDelete(TRUE); 49 lines.setAutoDelete(TRUE);
41 updateMounts(); 50 updateMounts();
42 startTimer( 5000 ); 51 startTimer( 5000 );
43} 52}
44 53
45void StorageInfo::timerEvent(QTimerEvent*) 54void StorageInfo::timerEvent(QTimerEvent*)
46{ 55{
47 updateMounts(); 56 updateMounts();
48} 57}
49 58
50static bool isCF(const QString& m) 59static bool isCF(const QString& m)
51{ 60{
@@ -75,118 +84,119 @@ void StorageInfo::updateMounts()
75#if defined(_OS_LINUX_) || defined(Q_OS_LINUX) 84#if defined(_OS_LINUX_) || defined(Q_OS_LINUX)
76 struct mntent *me; 85 struct mntent *me;
77 FILE *mntfp = setmntent( "/etc/mtab", "r" ); 86 FILE *mntfp = setmntent( "/etc/mtab", "r" );
78 QStringList curdisks; 87 QStringList curdisks;
79 QStringList curfs; 88 QStringList curfs;
80 QStringList mountList; 89 QStringList mountList;
81 QStringList fsT; 90 QStringList fsT;
82 bool rebuild = FALSE; 91 bool rebuild = FALSE;
83 int n=0; 92 int n=0;
84 if ( mntfp ) { 93 if ( mntfp ) {
85 while ( (me = getmntent( mntfp )) != 0 ) { 94 while ( (me = getmntent( mntfp )) != 0 ) {
86 QString fs = me->mnt_fsname; 95 QString fs = me->mnt_fsname;
87 qDebug(fs+" "+(QString)me->mnt_type);
88 if ( fs.left(7)=="/dev/hd" || fs.left(7)=="/dev/sd" 96 if ( fs.left(7)=="/dev/hd" || fs.left(7)=="/dev/sd"
89 || fs.left(8)=="/dev/mtd" || fs.left(9) == "/dev/mmcd" 97 || fs.left(8)=="/dev/mtd" || fs.left(9) == "/dev/mmcd"
90 || fs.left(9) == "/dev/root" || fs.left(5) == "/ramfs") { 98 || fs.left(9) == "/dev/root" || fs.left(5) == "/ramfs" || fs.left(5) == "tmpfs" ) {
91 n++; 99 n++;
92 curdisks.append(fs); 100 curdisks.append(fs);
93 QString d = me->mnt_dir; 101 QString d = me->mnt_dir;
94 curfs.append(d); 102 curfs.append(d);
95 QString mount = me->mnt_dir; 103 QString mount = me->mnt_dir;
96 mountList.append(mount); 104 mountList.append(mount);
97 QString t = me->mnt_type; 105 QString t = me->mnt_type;
98 fsT.append(t); 106 fsT.append(t);
99 if ( !disks.find(d) ) 107 if ( !disks.find(d) )
100 rebuild = TRUE; 108 rebuild = TRUE;
101 } 109 }
102 } 110 }
103 endmntent( mntfp ); 111 endmntent( mntfp );
104 } 112 }
105 if ( rebuild || n != (int)disks.count() ) { 113 if ( rebuild || n != (int)disks.count() ) {
106 disks.clear(); 114 disks.clear();
107 lines.clear(); 115 lines.clear();
108 delete vb; 116 delete vb;
109 vb = new QVBoxLayout( this, n > 3 ? 1 : 5 ); 117 vb = new QVBoxLayout( container/*, n > 3 ? 1 : 5*/ );
110 bool frst=TRUE; 118 bool frst=TRUE;
111 QStringList::ConstIterator it=curdisks.begin(); 119 QStringList::ConstIterator it=curdisks.begin();
112 QStringList::ConstIterator fsit=curfs.begin(); 120 QStringList::ConstIterator fsit=curfs.begin();
113 QStringList::ConstIterator fsmount=mountList.begin(); 121 QStringList::ConstIterator fsmount=mountList.begin();
114 QStringList::ConstIterator fsTit=fsT.begin(); 122 QStringList::ConstIterator fsTit=fsT.begin();
115 123
116 for (; it!=curdisks.end(); ++it, ++fsit) { 124 for (; it!=curdisks.end(); ++it, ++fsit) {
117 if ( !frst ) { 125 if ( !frst ) {
118 QFrame *f = new QFrame( this ); 126 QFrame *f = new QFrame( container );
119 vb->addWidget(f); 127 vb->addWidget(f);
120 f->setFrameStyle( QFrame::HLine | QFrame::Sunken ); 128 f->setFrameStyle( QFrame::HLine | QFrame::Sunken );
121 lines.append(f); 129 lines.append(f);
122 f->show(); 130 f->show();
123 } frst=FALSE; 131 } frst=FALSE;
124 QString humanname=*it; 132 QString humanname=*it;
125// qDebug(humanname);
126 if ( isCF(humanname) ) 133 if ( isCF(humanname) )
127 humanname = tr( "CF Card: " ); 134 humanname = tr( "CF Card: " );
128 else if ( humanname == "/dev/hda1" ) 135 else if ( humanname == "/dev/hda1" )
129 humanname = tr( "Hard Disk " ); 136 humanname = tr( "Hard Disk " );
130 else if ( humanname.left(9) == "/dev/mmcd" ) 137 else if ( humanname.left(9) == "/dev/mmcd" )
131 humanname = tr( "SD Card " ); 138 humanname = tr( "SD Card " );
132 else if ( humanname.left(7) == "/dev/hd" ) 139 else if ( humanname.left(7) == "/dev/hd" )
133 humanname = tr( "Hard Disk /dev/hd " ); 140 humanname = tr( "Hard Disk /dev/hd " );
134 else if ( humanname.left(7) == "/dev/sd" ) 141 else if ( humanname.left(7) == "/dev/sd" )
135 humanname = tr( "SCSI Hard Disk /dev/sd " ); 142 humanname = tr( "SCSI Hard Disk /dev/sd " );
136 else if ( humanname == "/dev/mtdblock1" || humanname == "/dev/mtdblock/1" ) 143 else if ( humanname == "/dev/mtdblock1" || humanname == "/dev/mtdblock/1" )
137 humanname = tr( "Int. Storage " ); 144 humanname = tr( "Int. Storage " );
138 else if ( humanname.left(14) == "/dev/mtdblock/" ) 145 else if ( humanname.left(14) == "/dev/mtdblock/" )
139 humanname = tr( "Int. Storage /dev/mtdblock/ " ); 146 humanname = tr( "Int. Storage /dev/mtdblock/ " );
140 else if ( humanname.left(13) == "/dev/mtdblock" ) 147 else if ( humanname.left(13) == "/dev/mtdblock" )
141 humanname = tr( "Int. Storage /dev/mtdblock " ); 148 humanname = tr( "Int. Storage /dev/mtdblock " );
142 else if ( humanname.left(9) == "/dev/root" ) 149 else if ( humanname.left(9) == "/dev/root" )
143 humanname = tr( "Int. Storage " ); 150 humanname = tr( "Int. Storage " );
151 else if ( humanname.left(5) == "tmpfs" )
152 humanname = tr( "RAM disk" );
144 // etc. 153 // etc.
145 humanname.append( *fsmount ); 154 humanname.append( *fsmount );
146 humanname.append( " " ); 155 humanname.append( " " );
147 humanname.append( *fsTit ); 156 humanname.append( *fsTit );
148 humanname.append( " " ); 157 humanname.append( " " );
149 158
150 MountInfo* mi = new MountInfo( *fsit, humanname, this ); 159 MountInfo* mi = new MountInfo( *fsit, humanname, container );
151 vb->addWidget(mi); 160 vb->addWidget(mi);
152 disks.insert(*fsit,mi); 161 disks.insert(*fsit,mi);
153 mi->show(); 162 mi->show();
154 fsmount++;fsTit++; 163 fsmount++;fsTit++;
155 QString tempstr = humanname.left( 2 ); 164 QString tempstr = humanname.left( 2 );
156 if ( tempstr == tr( "CF" ) ) 165 if ( tempstr == tr( "CF" ) )
157 QWhatsThis::add( mi, tr( "This graph represents how much memory is currently used on this Compact Flash memory card." ) ); 166 QWhatsThis::add( mi, tr( "This graph represents how much memory is currently used on this Compact Flash memory card." ) );
158 else if ( tempstr == tr( "Ha" ) ) 167 else if ( tempstr == tr( "Ha" ) )
159 QWhatsThis::add( mi, tr( "This graph represents how much storage is currently used on this hard drive." ) ); 168 QWhatsThis::add( mi, tr( "This graph represents how much storage is currently used on this hard drive." ) );
160 else if ( tempstr == tr( "SD" ) ) 169 else if ( tempstr == tr( "SD" ) )
161 QWhatsThis::add( mi, tr( "This graph represents how much memory is currently used on this Secure Digital memory card." ) ); 170 QWhatsThis::add( mi, tr( "This graph represents how much memory is currently used on this Secure Digital memory card." ) );
162 else if ( tempstr == tr( "SC" ) ) 171 else if ( tempstr == tr( "SC" ) )
163 QWhatsThis::add( mi, tr( "This graph represents how much storage is currently used on this hard drive." ) ); 172 QWhatsThis::add( mi, tr( "This graph represents how much storage is currently used on this hard drive." ) );
164 else if ( tempstr == tr( "In" ) ) 173 else if ( tempstr == tr( "In" ) )
165 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." ) ); 174 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." ) );
175 else if ( tempstr == tr( "RA" ) )
176 QWhatsThis::add( mi, tr( "This graph represents how much memory is currently used of the temporary RAM disk." ) );
166 } 177 }
167 vb->addStretch(); 178 vb->addStretch();
168 } else { 179 } else {
169 // just update them 180 // just update them
170 for (QDictIterator<MountInfo> i(disks); i.current(); ++i) 181 for (QDictIterator<MountInfo> i(disks); i.current(); ++i)
171 i.current()->updateData(); 182 i.current()->updateData();
172 } 183 }
173#endif 184#endif
174} 185}
175 186
176 187
177MountInfo::MountInfo( const QString &path, const QString &ttl, QWidget *parent, const char *name ) 188MountInfo::MountInfo( const QString &path, const QString &ttl, QWidget *parent, const char *name )
178 : QWidget( parent, name ), title(ttl) 189 : QWidget( parent, name ), title(ttl)
179{ 190{
180 qDebug("new path is "+path);
181 fs = new FileSystem( path ); 191 fs = new FileSystem( path );
182 QVBoxLayout *vb = new QVBoxLayout( this, 3 ); 192 QVBoxLayout *vb = new QVBoxLayout( this, 3 );
183 193
184 totalSize = new QLabel( this ); 194 totalSize = new QLabel( this );
185 vb->addWidget( totalSize ); 195 vb->addWidget( totalSize );
186 196
187 data = new GraphData(); 197 data = new GraphData();
188 graph = new BarGraph( this ); 198 graph = new BarGraph( this );
189 graph->setFrameStyle( QFrame::Panel | QFrame::Sunken ); 199 graph->setFrameStyle( QFrame::Panel | QFrame::Sunken );
190 vb->addWidget( graph, 1 ); 200 vb->addWidget( graph, 1 );
191 graph->setData( data ); 201 graph->setData( data );
192 202
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
@@ -20,40 +20,42 @@
20#include <qwidget.h> 20#include <qwidget.h>
21#include <qframe.h> 21#include <qframe.h>
22#include <qlist.h> 22#include <qlist.h>
23#include <qdict.h> 23#include <qdict.h>
24 24
25class QLabel; 25class QLabel;
26class GraphData; 26class GraphData;
27class Graph; 27class Graph;
28class GraphLegend; 28class GraphLegend;
29class FileSystem; 29class FileSystem;
30class MountInfo; 30class MountInfo;
31class QVBoxLayout; 31class QVBoxLayout;
32class QWidget;
32 33
33 34
34class StorageInfo : public QWidget 35class StorageInfo : public QWidget
35{ 36{
36 Q_OBJECT 37 Q_OBJECT
37public: 38public:
38 StorageInfo( QWidget *parent=0, const char *name=0 ); 39 StorageInfo( QWidget *parent=0, const char *name=0 );
39 40
40protected: 41protected:
41 void timerEvent(QTimerEvent*); 42 void timerEvent(QTimerEvent*);
42 43
43private: 44private:
44 void updateMounts(); 45 void updateMounts();
45 QDict<MountInfo> disks; 46 QDict<MountInfo> disks;
46 QList<QFrame> lines; 47 QList<QFrame> lines;
47 QVBoxLayout *vb; 48 QVBoxLayout *vb;
49 QWidget *container;
48}; 50};
49 51
50class MountInfo : public QWidget 52class MountInfo : public QWidget
51{ 53{
52 Q_OBJECT 54 Q_OBJECT
53public: 55public:
54 MountInfo( const QString &path, const QString &ttl, QWidget *parent=0, const char *name=0 ); 56 MountInfo( const QString &path, const QString &ttl, QWidget *parent=0, const char *name=0 );
55 ~MountInfo(); 57 ~MountInfo();
56 58
57 void updateData(); 59 void updateData();
58 60
59private: 61private:
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
@@ -28,25 +28,25 @@
28#include "processinfo.h" 28#include "processinfo.h"
29#include "modulesinfo.h" 29#include "modulesinfo.h"
30#include "versioninfo.h" 30#include "versioninfo.h"
31#include "sysinfo.h" 31#include "sysinfo.h"
32 32
33#include <opie/otabwidget.h> 33#include <opie/otabwidget.h>
34 34
35#include <qpe/config.h> 35#include <qpe/config.h>
36#include <qpe/resource.h> 36#include <qpe/resource.h>
37 37
38#include <qlayout.h> 38#include <qlayout.h>
39 39
40SystemInfo::SystemInfo( QWidget *parent, const char *name, WFlags f ) 40SystemInfo::SystemInfo( QWidget *parent, const char *name, WFlags )
41 : QWidget( parent, name, WStyle_ContextHelp ) 41 : QWidget( parent, name, WStyle_ContextHelp )
42{ 42{
43 setIcon( Resource::loadPixmap( "system_icon" ) ); 43 setIcon( Resource::loadPixmap( "system_icon" ) );
44 setCaption( tr("System Info") ); 44 setCaption( tr("System Info") );
45 45
46 resize( 220, 180 ); 46 resize( 220, 180 );
47 47
48 Config config( "qpe" ); 48 Config config( "qpe" );
49 config.setGroup( "Appearance" ); 49 config.setGroup( "Appearance" );
50 bool advanced = config.readBoolEntry( "Advanced", TRUE ); 50 bool advanced = config.readBoolEntry( "Advanced", TRUE );
51 51
52 QVBoxLayout *lay = new QVBoxLayout( this ); 52 QVBoxLayout *lay = new QVBoxLayout( this );
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,34 +1,32 @@
1TEMPLATE = app 1TEMPLATE = app
2CONFIG = qt warn_on release 2CONFIG = qt warn_on release
3DESTDIR = $(OPIEDIR)/bin 3DESTDIR = $(OPIEDIR)/bin
4HEADERS = memory.h \ 4HEADERS = memory.h \
5 graph.h \ 5 graph.h \
6 load.h \ 6 load.h \
7 storage.h \ 7 storage.h \
8 processinfo.h \ 8 processinfo.h \
9 processdetail.h \ 9 processdetail.h \
10 modulesinfo.h \ 10 modulesinfo.h \
11 modulesdetail.h \
12 versioninfo.h \ 11 versioninfo.h \
13 sysinfo.h 12 sysinfo.h
14SOURCES = main.cpp \ 13SOURCES = main.cpp \
15 memory.cpp \ 14 memory.cpp \
16 graph.cpp \ 15 graph.cpp \
17 load.cpp \ 16 load.cpp \
18 storage.cpp \ 17 storage.cpp \
19 processinfo.cpp \ 18 processinfo.cpp \
20 modulesinfo.cpp \ 19 modulesinfo.cpp \
21 processdetail.cpp \ 20 processdetail.cpp \
22 modulesdetail.cpp \
23 versioninfo.cpp \ 21 versioninfo.cpp \
24 sysinfo.cpp 22 sysinfo.cpp
25INTERFACES = 23INTERFACES =
26INCLUDEPATH += $(OPIEDIR)/include 24INCLUDEPATH += $(OPIEDIR)/include
27DEPENDPATH += $(OPIEDIR)/include 25DEPENDPATH += $(OPIEDIR)/include
28LIBS += -lqpe -lopie 26LIBS += -lqpe -lopie
29TARGET = sysinfo 27TARGET = sysinfo
30 28
31TRANSLATIONS = ../../../i18n/de/sysinfo.ts \ 29TRANSLATIONS = ../../../i18n/de/sysinfo.ts \
32 ../../../i18n/xx/sysinfo.ts \ 30 ../../../i18n/xx/sysinfo.ts \
33 ../../../i18n/en/sysinfo.ts \ 31 ../../../i18n/en/sysinfo.ts \
34 ../../../i18n/es/sysinfo.ts \ 32 ../../../i18n/es/sysinfo.ts \