summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/sysinfo/devicesinfo.cpp34
-rw-r--r--noncore/settings/sysinfo/devicesinfo.h2
2 files changed, 35 insertions, 1 deletions
diff --git a/noncore/settings/sysinfo/devicesinfo.cpp b/noncore/settings/sysinfo/devicesinfo.cpp
index 6508d3c..b463e43 100644
--- a/noncore/settings/sysinfo/devicesinfo.cpp
+++ b/noncore/settings/sysinfo/devicesinfo.cpp
@@ -1,352 +1,384 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 =. Copyright (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de> 3 =. Copyright (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de>
4 .=l. Copyright (C) The Opie Team <opie-devel@handhelds.org> 4 .=l. Copyright (C) The Opie Team <opie-devel@handhelds.org>
5          .>+-= 5          .>+-=
6_;:,     .>    :=|. This program is free software; you can 6_;:,     .>    :=|. This program is free software; you can
7.> <`_,   >  .   <= redistribute it and/or modify it under 7.> <`_,   >  .   <= redistribute it and/or modify it under
8:`=1 )Y*s>-.--   : the terms of the GNU General Public 8:`=1 )Y*s>-.--   : the terms of the GNU General Public
9.="- .-=="i,     .._ License as published by the Free Software 9.="- .-=="i,     .._ License as published by the Free Software
10- .   .-<_>     .<> Foundation; version 2 of the License. 10- .   .-<_>     .<> Foundation; version 2 of the License.
11    ._= =}       : 11    ._= =}       :
12   .%`+i>       _;_. 12   .%`+i>       _;_.
13   .i_,=:_.      -<s. This program is distributed in the hope that 13   .i_,=:_.      -<s. This program is distributed in the hope that
14    +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 14    +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
15   : ..    .:,     . . . without even the implied warranty of 15   : ..    .:,     . . . without even the implied warranty of
16   =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 16   =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
17 _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 17 _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
18..}^=.=       =       ; General Public License for more 18..}^=.=       =       ; General Public License for more
19++=   -.     .`     .: details. 19++=   -.     .`     .: details.
20:     =  ...= . :.=- 20:     =  ...= . :.=-
21-.   .:....=;==+<; You should have received a copy of the GNU 21-.   .:....=;==+<; You should have received a copy of the GNU
22 -_. . .   )=.  = General Public License along with 22 -_. . .   )=.  = General Public License along with
23   --        :-=` this application; see the file LICENSE.GPL. 23   --        :-=` this application; see the file LICENSE.GPL.
24 If not, write to the Free Software Foundation, 24 If not, write to the Free Software Foundation,
25 Inc., 59 Temple Place - Suite 330, 25 Inc., 59 Temple Place - Suite 330,
26 Boston, MA 02111-1307, USA. 26 Boston, MA 02111-1307, USA.
27*/ 27*/
28 28
29#include "devicesinfo.h" 29#include "devicesinfo.h"
30/* OPIE */ 30/* OPIE */
31#include <opie2/odebug.h> 31#include <opie2/odebug.h>
32#include <opie2/oinputsystem.h> 32#include <opie2/oinputsystem.h>
33#include <opie2/olayout.h> 33#include <opie2/olayout.h>
34#include <opie2/olistview.h> 34#include <opie2/olistview.h>
35#include <qpe/qpeapplication.h> 35#include <qpe/qpeapplication.h>
36using namespace Opie::Core; 36using namespace Opie::Core;
37using namespace Opie::Ui; 37using namespace Opie::Ui;
38 38
39/* QT */ 39/* QT */
40#include <qobjectlist.h> 40#include <qobjectlist.h>
41#include <qlistview.h> 41#include <qlistview.h>
42#include <qcombobox.h> 42#include <qcombobox.h>
43#include <qfile.h> 43#include <qfile.h>
44#include <qpushbutton.h> 44#include <qpushbutton.h>
45#include <qtextstream.h> 45#include <qtextstream.h>
46#include <qtextview.h> 46#include <qtextview.h>
47#include <qtimer.h> 47#include <qtimer.h>
48#include <qwhatsthis.h> 48#include <qwhatsthis.h>
49 49
50//================================================================================================= 50//=================================================================================================
51DevicesView::DevicesView( QWidget* parent, const char* name, WFlags fl ) 51DevicesView::DevicesView( QWidget* parent, const char* name, WFlags fl )
52 :Opie::Ui::OListView( parent, name, fl ) 52 :Opie::Ui::OListView( parent, name, fl )
53{ 53{
54 addColumn( tr( "My Computer" ) ); 54 addColumn( tr( "My Computer" ) );
55 setAllColumnsShowFocus( true ); 55 setAllColumnsShowFocus( true );
56 setRootIsDecorated( true ); 56 setRootIsDecorated( true );
57 QWhatsThis::add( this, tr( "This is a list of all the devices currently recognized on this device." ) ); 57 QWhatsThis::add( this, tr( "This is a list of all the devices currently recognized on this device." ) );
58 58
59 DevicesView* root = this; 59 DevicesView* root = this;
60 ( new CpuCategory( root ) )->populate(); 60 ( new CpuCategory( root ) )->populate();
61 ( new InputCategory( root ) )->populate(); 61 ( new InputCategory( root ) )->populate();
62 ( new CardsCategory( root ) )->populate(); 62 ( new CardsCategory( root ) )->populate();
63 ( new UsbCategory( root ) )->populate(); 63 ( new UsbCategory( root ) )->populate();
64 64
65 connect( this, SIGNAL(selectionChanged(QListViewItem*)), this, SLOT(selectionChanged(QListViewItem*)) ); 65 connect( this, SIGNAL(selectionChanged(QListViewItem*)), this, SLOT(selectionChanged(QListViewItem*)) );
66} 66}
67 67
68DevicesView::~DevicesView() 68DevicesView::~DevicesView()
69{ 69{
70} 70}
71 71
72 72
73void DevicesView::selectionChanged( QListViewItem* item ) 73void DevicesView::selectionChanged( QListViewItem* item )
74{ 74{
75 odebug << "DevicesView::selectionChanged to '" << item->text( 0 ) << "'" << oendl; 75 odebug << "DevicesView::selectionChanged to '" << item->text( 0 ) << "'" << oendl;
76 if ( item->parent() ) 76 if ( item->parent() )
77 { 77 {
78 QWidget* details = ( static_cast<Device*>( item ) )->detailsWidget(); 78 QWidget* details = ( static_cast<Device*>( item ) )->detailsWidget();
79 ( static_cast<DevicesInfo*>( parent() ) )->setDetailsWidget( details ); 79 ( static_cast<DevicesInfo*>( parent() ) )->setDetailsWidget( details );
80 } 80 }
81 else 81 else
82 { 82 {
83 odebug << "DevicesView::not a device node." << oendl; 83 odebug << "DevicesView::not a device node." << oendl;
84 } 84 }
85} 85}
86 86
87 87
88//================================================================================================= 88//=================================================================================================
89DevicesInfo::DevicesInfo( QWidget* parent, const char* name, WFlags fl ) 89DevicesInfo::DevicesInfo( QWidget* parent, const char* name, WFlags fl )
90 :QWidget( parent, name, fl ), details( 0 ) 90 :QWidget( parent, name, fl ), details( 0 )
91{ 91{
92 layout = new OAutoBoxLayout( this ); 92 layout = new OAutoBoxLayout( this );
93 layout->setSpacing( 2 ); 93 layout->setSpacing( 2 );
94 layout->setMargin( 2 ); 94 layout->setMargin( 2 );
95 view = new DevicesView( this ); 95 view = new DevicesView( this );
96 layout->addWidget( view, 100 ); 96 layout->addWidget( view, 100 );
97 stack = new QWidgetStack( this ); 97 stack = new QWidgetStack( this );
98 layout->addWidget( stack, 70 ); 98 layout->addWidget( stack, 70 );
99} 99}
100 100
101 101
102DevicesInfo::~DevicesInfo() 102DevicesInfo::~DevicesInfo()
103{ 103{
104} 104}
105 105
106 106
107void DevicesInfo::setDetailsWidget( QWidget* w ) 107void DevicesInfo::setDetailsWidget( QWidget* w )
108{ 108{
109 if ( details ) 109 if ( details )
110 { 110 {
111 qDebug( "hiding widget '%s' ('%s')", details->name(), details->className() ); 111 qDebug( "hiding widget '%s' ('%s')", details->name(), details->className() );
112 stack->removeWidget( w ); 112 stack->removeWidget( w );
113 } 113 }
114 114
115 stack->addWidget( details = w, 40 ); 115 stack->addWidget( details = w, 40 );
116 stack->raiseWidget( details ); 116 stack->raiseWidget( details );
117} 117}
118 118
119 119
120//================================================================================================= 120//=================================================================================================
121Category::Category( DevicesView* parent, const QString& name ) 121Category::Category( DevicesView* parent, const QString& name )
122 :OListViewItem( parent, name ) 122 :OListViewItem( parent, name )
123{ 123{
124 odebug << "Category '" << name << "' inserted. Scanning for devices..." << oendl; 124 odebug << "Category '" << name << "' inserted. Scanning for devices..." << oendl;
125} 125}
126 126
127Category::~Category() 127Category::~Category()
128{ 128{
129} 129}
130 130
131//================================================================================================= 131//=================================================================================================
132CpuCategory::CpuCategory( DevicesView* parent ) 132CpuCategory::CpuCategory( DevicesView* parent )
133 :Category( parent, "1. Central Processing Unit" ) 133 :Category( parent, "1. Central Processing Unit" )
134{ 134{
135} 135}
136 136
137CpuCategory::~CpuCategory() 137CpuCategory::~CpuCategory()
138{ 138{
139} 139}
140 140
141void CpuCategory::populate() 141void CpuCategory::populate()
142{ 142{
143 odebug << "CpuCategory::populate()" << oendl; 143 odebug << "CpuCategory::populate()" << oendl;
144 QFile cpuinfofile( "/proc/cpuinfo" ); 144 QFile cpuinfofile( "/proc/cpuinfo" );
145 if ( !cpuinfofile.exists() || !cpuinfofile.open( IO_ReadOnly ) ) 145 if ( !cpuinfofile.exists() || !cpuinfofile.open( IO_ReadOnly ) )
146 { 146 {
147 new CpuDevice( this, "ERROR: /proc/cpuinfo not found or unaccessible" ); 147 new CpuDevice( this, "ERROR: /proc/cpuinfo not found or unaccessible" );
148 return; 148 return;
149 } 149 }
150 QTextStream cpuinfo( &cpuinfofile ); 150 QTextStream cpuinfo( &cpuinfofile );
151 151
152 int cpucount = 0; 152 int cpucount = 0;
153 CpuDevice* dev = 0; 153 CpuDevice* dev = 0;
154 154
155 while ( !cpuinfo.atEnd() ) 155 while ( !cpuinfo.atEnd() )
156 { 156 {
157 QString line = cpuinfo.readLine(); 157 QString line = cpuinfo.readLine();
158 odebug << "got line '" << line << "'" << oendl; 158 odebug << "got line '" << line << "'" << oendl;
159 if ( line.startsWith( "processor" ) ) 159 if ( line.startsWith( "processor" ) )
160 { 160 {
161 dev = new CpuDevice( this, QString( "CPU #%1" ).arg( cpucount++ ) ); 161 dev = new CpuDevice( this, QString( "CPU #%1" ).arg( cpucount++ ) );
162 dev->addInfo( line ); 162 dev->addInfo( line );
163 } 163 }
164 else 164 else
165 { 165 {
166 if ( dev ) dev->addInfo( line ); 166 if ( dev ) dev->addInfo( line );
167 } 167 }
168 } 168 }
169} 169}
170 170
171//================================================================================================= 171//=================================================================================================
172InputCategory::InputCategory( DevicesView* parent ) 172InputCategory::InputCategory( DevicesView* parent )
173 :Category( parent, "2. Input Subsystem" ) 173 :Category( parent, "2. Input Subsystem" )
174{ 174{
175} 175}
176 176
177InputCategory::~InputCategory() 177InputCategory::~InputCategory()
178{ 178{
179} 179}
180 180
181void InputCategory::populate() 181void InputCategory::populate()
182{ 182{
183 odebug << "InputCategory::populate()" << oendl; 183 odebug << "InputCategory::populate()" << oendl;
184 OInputSystem* sys = OInputSystem::instance(); 184 OInputSystem* sys = OInputSystem::instance();
185 OInputSystem::DeviceIterator it = sys->iterator(); 185 OInputSystem::DeviceIterator it = sys->iterator();
186 while ( it.current() ) 186 while ( it.current() )
187 { 187 {
188 OInputDevice* dev = it.current(); 188 OInputDevice* dev = it.current();
189 new InputDevice( this, dev->identity() ); 189 new InputDevice( this, dev->identity() );
190 ++it; 190 ++it;
191 } 191 }
192} 192}
193 193
194//================================================================================================= 194//=================================================================================================
195CardsCategory::CardsCategory( DevicesView* parent ) 195CardsCategory::CardsCategory( DevicesView* parent )
196 :Category( parent, "3. Removable Cards" ) 196 :Category( parent, "3. Removable Cards" )
197{ 197{
198} 198}
199 199
200CardsCategory::~CardsCategory() 200CardsCategory::~CardsCategory()
201{ 201{
202} 202}
203 203
204void CardsCategory::populate() 204void CardsCategory::populate()
205{ 205{
206 odebug << "CardsCategory::populate()" << oendl; 206 odebug << "CardsCategory::populate()" << oendl;
207 QString fileName; 207 QString fileName;
208 if ( QFile::exists( "/var/run/stab" ) ) { fileName = "/var/run/stab"; } 208 if ( QFile::exists( "/var/run/stab" ) ) { fileName = "/var/run/stab"; }
209 else if ( QFile::exists( "/var/state/pcmcia/stab" ) ) { fileName = "/var/state/pcmcia/stab"; } 209 else if ( QFile::exists( "/var/state/pcmcia/stab" ) ) { fileName = "/var/state/pcmcia/stab"; }
210 else { fileName = "/var/lib/pcmcia/stab"; } 210 else { fileName = "/var/lib/pcmcia/stab"; }
211 QFile cardinfofile( fileName ); 211 QFile cardinfofile( fileName );
212 if ( !cardinfofile.exists() || !cardinfofile.open( IO_ReadOnly ) ) 212 if ( !cardinfofile.exists() || !cardinfofile.open( IO_ReadOnly ) )
213 { 213 {
214 new CardDevice( this, "ERROR: pcmcia info file not found or unaccessible" ); 214 new CardDevice( this, "ERROR: pcmcia info file not found or unaccessible" );
215 return; 215 return;
216 } 216 }
217 QTextStream cardinfo( &cardinfofile ); 217 QTextStream cardinfo( &cardinfofile );
218 while ( !cardinfo.atEnd() ) 218 while ( !cardinfo.atEnd() )
219 { 219 {
220 QString line = cardinfo.readLine(); 220 QString line = cardinfo.readLine();
221 odebug << "got line '" << line << "'" << oendl; 221 odebug << "got line '" << line << "'" << oendl;
222 if ( line.startsWith( "Socket" ) ) 222 if ( line.startsWith( "Socket" ) )
223 { 223 {
224 new CardDevice( this, line ); 224 new CardDevice( this, line );
225 } 225 }
226 else 226 else
227 { 227 {
228 continue; 228 continue;
229 } 229 }
230 } 230 }
231} 231}
232 232
233//================================================================================================= 233//=================================================================================================
234UsbCategory::UsbCategory( DevicesView* parent ) 234UsbCategory::UsbCategory( DevicesView* parent )
235 :Category( parent, "4. Universal Serial Bus" ) 235 :Category( parent, "4. Universal Serial Bus" )
236{ 236{
237} 237}
238 238
239UsbCategory::~UsbCategory() 239UsbCategory::~UsbCategory()
240{ 240{
241} 241}
242 242
243void UsbCategory::populate() 243void UsbCategory::populate()
244{ 244{
245 odebug << "UsbCategory::populate()" << oendl; 245 odebug << "UsbCategory::populate()" << oendl;
246 QFile usbinfofile( "/proc/bus/usb/devices" ); 246 QFile usbinfofile( "/proc/bus/usb/devices" );
247 if ( !usbinfofile.exists() || !usbinfofile.open( IO_ReadOnly ) ) 247 if ( !usbinfofile.exists() || !usbinfofile.open( IO_ReadOnly ) )
248 { 248 {
249 new UsbDevice( this, "ERROR: /proc/bus/usb/devices not found or unaccessible" ); 249 new UsbDevice( this, "ERROR: /proc/bus/usb/devices not found or unaccessible" );
250 return; 250 return;
251 } 251 }
252 QTextStream usbinfo( &usbinfofile ); 252 QTextStream usbinfo( &usbinfofile );
253 253
254 int _bus, _level, _parent, _port, _count, _device, _channels, _power; 254 int _bus, _level, _parent, _port, _count, _device, _channels, _power;
255 float _speed; 255 float _speed;
256 QString _manufacturer, _product, _serial; 256 QString _manufacturer, _product, _serial;
257 257
258 int usbcount = 0; 258 int usbcount = 0;
259 UsbDevice* lastDev = 0;
260 UsbDevice* dev = 0;
259 while ( !usbinfo.atEnd() ) 261 while ( !usbinfo.atEnd() )
260 { 262 {
261 QString line = usbinfo.readLine(); 263 QString line = usbinfo.readLine();
262 odebug << "got line '" << line << "'" << oendl; 264 odebug << "got line '" << line << "'" << oendl;
263 if ( line.startsWith( "T:" ) ) 265 if ( line.startsWith( "T:" ) )
264 { 266 {
265 sscanf(line.local8Bit().data(), "T: Bus=%2d Lev=%2d Prnt=%2d Port=%d Cnt=%2d Dev#=%3d Spd=%3f MxCh=%2d", &_bus, &_level, &_parent, &_port, &_count, &_device, &_speed, &_channels); 267 sscanf(line.local8Bit().data(), "T: Bus=%2d Lev=%2d Prnt=%2d Port=%d Cnt=%2d Dev#=%3d Spd=%3f MxCh=%2d", &_bus, &_level, &_parent, &_port, &_count, &_device, &_speed, &_channels);
266 268
267 new UsbDevice( this, QString( "USB Device #%1" ).arg( usbcount++ ) ); 269 if ( !_level )
270 {
271 odebug << "adding new bus" << oendl;
272 dev = new UsbDevice( this, QString( "Generic USB Hub Device" ) );
273 lastDev = dev;
274 }
275 else
276 {
277 odebug << "adding new dev" << oendl;
278 dev = new UsbDevice( lastDev, QString( "Generic USB Hub Device" ) );
279 lastDev = dev;
280 }
281 }
282 else if ( line.startsWith( "S: Product" ) )
283 {
284 int dp = line.find( '=' );
285 dev->setText( 0, dp != -1 ? line.right( line.length()-1-dp ) : "<unknown>" );
268 } 286 }
269 else 287 else
270 { 288 {
271 continue; 289 continue;
272 } 290 }
273 } 291 }
274} 292}
275 293
276 294
277//================================================================================================= 295//=================================================================================================
278Device::Device( Category* parent, const QString& name ) 296Device::Device( Category* parent, const QString& name )
279 :OListViewItem( parent, name ) 297 :OListViewItem( parent, name )
280{ 298{
281 devinfo = static_cast<QWidget*>( listView()->parent() ); 299 devinfo = static_cast<QWidget*>( listView()->parent() );
282} 300}
283 301
302Device::Device( Device* parent, const QString& name )
303 :OListViewItem( parent, name )
304{
305 devinfo = static_cast<QWidget*>( listView()->parent() );
306}
307
284Device::~Device() 308Device::~Device()
285{ 309{
286} 310}
287 311
288 312
289QWidget* Device::detailsWidget() 313QWidget* Device::detailsWidget()
290{ 314{
291 return details; 315 return details;
292} 316}
293 317
294//================================================================================================= 318//=================================================================================================
295CpuDevice::CpuDevice( Category* parent, const QString& name ) 319CpuDevice::CpuDevice( Category* parent, const QString& name )
296 :Device( parent, name ) 320 :Device( parent, name )
297{ 321{
298 OListView* w = new OListView( devinfo ); 322 OListView* w = new OListView( devinfo );
299 details = w; 323 details = w;
300 w->addColumn( "Info" ); 324 w->addColumn( "Info" );
301 w->addColumn( "Value" ); 325 w->addColumn( "Value" );
302 w->hide(); 326 w->hide();
303} 327}
304 328
305CpuDevice::~CpuDevice() 329CpuDevice::~CpuDevice()
306{ 330{
307} 331}
308 332
309void CpuDevice::addInfo( const QString& info ) 333void CpuDevice::addInfo( const QString& info )
310{ 334{
311 int dp = info.find( ':' ); 335 int dp = info.find( ':' );
312 if ( dp != -1 ) 336 if ( dp != -1 )
313 { 337 {
314 new OListViewItem( (OListView*) details, info.left( dp ), info.right( info.length()-dp ) ); 338 new OListViewItem( (OListView*) details, info.left( dp ), info.right( info.length()-dp ) );
315 } 339 }
316} 340}
317 341
318//================================================================================================= 342//=================================================================================================
319CardDevice::CardDevice( Category* parent, const QString& name ) 343CardDevice::CardDevice( Category* parent, const QString& name )
320 :Device( parent, name ) 344 :Device( parent, name )
321{ 345{
322 details = new QPushButton( name, devinfo ); 346 details = new QPushButton( name, devinfo );
323 details->hide(); 347 details->hide();
324} 348}
325 349
326CardDevice::~CardDevice() 350CardDevice::~CardDevice()
327{ 351{
328} 352}
329 353
330//================================================================================================= 354//=================================================================================================
331InputDevice::InputDevice( Category* parent, const QString& name ) 355InputDevice::InputDevice( Category* parent, const QString& name )
332 :Device( parent, name ) 356 :Device( parent, name )
333{ 357{
334 details = new QPushButton( name, devinfo ); 358 details = new QPushButton( name, devinfo );
335 details->hide(); 359 details->hide();
336} 360}
337 361
338InputDevice::~InputDevice() 362InputDevice::~InputDevice()
339{ 363{
340} 364}
341 365
342//================================================================================================= 366//=================================================================================================
343UsbDevice::UsbDevice( Category* parent, const QString& name ) 367UsbDevice::UsbDevice( Category* parent, const QString& name )
344 :Device( parent, name ) 368 :Device( parent, name )
345{ 369{
346 details = new QPushButton( name, devinfo ); 370 details = new QPushButton( name, devinfo );
347 details->hide(); 371 details->hide();
348} 372}
349 373
374//=================================================================================================
375UsbDevice::UsbDevice( UsbDevice* parent, const QString& name )
376 :Device( parent, name )
377{
378 details = new QPushButton( name, devinfo );
379 details->hide();
380}
381
350UsbDevice::~UsbDevice() 382UsbDevice::~UsbDevice()
351{ 383{
352} 384}
diff --git a/noncore/settings/sysinfo/devicesinfo.h b/noncore/settings/sysinfo/devicesinfo.h
index 586d204..c601a96 100644
--- a/noncore/settings/sysinfo/devicesinfo.h
+++ b/noncore/settings/sysinfo/devicesinfo.h
@@ -1,174 +1,176 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 =. Copyright (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de> 3 =. Copyright (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de>
4 .=l. Copyright (C) The Opie Team <opie-devel@handhelds.org> 4 .=l. Copyright (C) The Opie Team <opie-devel@handhelds.org>
5          .>+-= 5          .>+-=
6_;:,     .>    :=|. This program is free software; you can 6_;:,     .>    :=|. This program is free software; you can
7.> <`_,   >  .   <= redistribute it and/or modify it under 7.> <`_,   >  .   <= redistribute it and/or modify it under
8:`=1 )Y*s>-.--   : the terms of the GNU General Public 8:`=1 )Y*s>-.--   : the terms of the GNU General Public
9.="- .-=="i,     .._ License as published by the Free Software 9.="- .-=="i,     .._ License as published by the Free Software
10- .   .-<_>     .<> Foundation; version 2 of the License. 10- .   .-<_>     .<> Foundation; version 2 of the License.
11    ._= =}       : 11    ._= =}       :
12   .%`+i>       _;_. 12   .%`+i>       _;_.
13   .i_,=:_.      -<s. This program is distributed in the hope that 13   .i_,=:_.      -<s. This program is distributed in the hope that
14    +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 14    +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
15   : ..    .:,     . . . without even the implied warranty of 15   : ..    .:,     . . . without even the implied warranty of
16   =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 16   =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
17 _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 17 _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
18..}^=.=       =       ; General Public License for more 18..}^=.=       =       ; General Public License for more
19++=   -.     .`     .: details. 19++=   -.     .`     .: details.
20:     =  ...= . :.=- 20:     =  ...= . :.=-
21-.   .:....=;==+<; You should have received a copy of the GNU 21-.   .:....=;==+<; You should have received a copy of the GNU
22 -_. . .   )=.  = General Public License along with 22 -_. . .   )=.  = General Public License along with
23   --        :-=` this application; see the file LICENSE.GPL. 23   --        :-=` this application; see the file LICENSE.GPL.
24 If not, write to the Free Software Foundation, 24 If not, write to the Free Software Foundation,
25 Inc., 59 Temple Place - Suite 330, 25 Inc., 59 Temple Place - Suite 330,
26 Boston, MA 02111-1307, USA. 26 Boston, MA 02111-1307, USA.
27*/ 27*/
28 28
29#ifndef DEVICESINFO_H 29#ifndef DEVICESINFO_H
30#define DEVICESINFO_H 30#define DEVICESINFO_H
31 31
32/* OPIE */ 32/* OPIE */
33#include <opie2/olistview.h> 33#include <opie2/olistview.h>
34#include <opie2/olayout.h> 34#include <opie2/olayout.h>
35 35
36/* QT */ 36/* QT */
37#include <qwidget.h> 37#include <qwidget.h>
38#include <qwidgetstack.h> 38#include <qwidgetstack.h>
39 39
40//================================================================================================= 40//=================================================================================================
41class DevicesView : public Opie::Ui::OListView 41class DevicesView : public Opie::Ui::OListView
42{ 42{
43 Q_OBJECT 43 Q_OBJECT
44public: 44public:
45 DevicesView( QWidget* parent = 0, const char* name = 0, WFlags f = 0 ); 45 DevicesView( QWidget* parent = 0, const char* name = 0, WFlags f = 0 );
46 ~DevicesView(); 46 ~DevicesView();
47public slots: 47public slots:
48 void selectionChanged( QListViewItem* item ); 48 void selectionChanged( QListViewItem* item );
49}; 49};
50 50
51//================================================================================================= 51//=================================================================================================
52class DevicesInfo : public QWidget 52class DevicesInfo : public QWidget
53{ 53{
54 Q_OBJECT 54 Q_OBJECT
55public: 55public:
56 DevicesInfo( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); 56 DevicesInfo( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
57 ~DevicesInfo(); 57 ~DevicesInfo();
58 58
59 void setDetailsWidget( QWidget* w = 0 ); 59 void setDetailsWidget( QWidget* w = 0 );
60 60
61private: 61private:
62 Opie::Ui::OAutoBoxLayout* layout; 62 Opie::Ui::OAutoBoxLayout* layout;
63 Opie::Ui::OListView* view; 63 Opie::Ui::OListView* view;
64 QWidget* details; 64 QWidget* details;
65 QWidgetStack* stack; 65 QWidgetStack* stack;
66private slots: 66private slots:
67}; 67};
68 68
69//================================================================================================= 69//=================================================================================================
70class Category : public Opie::Ui::OListViewItem 70class Category : public Opie::Ui::OListViewItem
71{ 71{
72public: 72public:
73 Category( DevicesView* parent, const QString& name ); 73 Category( DevicesView* parent, const QString& name );
74 virtual ~Category(); 74 virtual ~Category();
75 75
76 virtual void populate() = 0; 76 virtual void populate() = 0;
77}; 77};
78 78
79//================================================================================================= 79//=================================================================================================
80class CpuCategory : public Category 80class CpuCategory : public Category
81{ 81{
82public: 82public:
83 CpuCategory( DevicesView* parent ); 83 CpuCategory( DevicesView* parent );
84 virtual ~CpuCategory(); 84 virtual ~CpuCategory();
85 85
86 virtual void populate(); 86 virtual void populate();
87}; 87};
88 88
89//================================================================================================= 89//=================================================================================================
90class InputCategory : public Category 90class InputCategory : public Category
91{ 91{
92public: 92public:
93 InputCategory( DevicesView* parent ); 93 InputCategory( DevicesView* parent );
94 virtual ~InputCategory(); 94 virtual ~InputCategory();
95 95
96 virtual void populate(); 96 virtual void populate();
97}; 97};
98 98
99//================================================================================================= 99//=================================================================================================
100class CardsCategory : public Category 100class CardsCategory : public Category
101{ 101{
102public: 102public:
103 CardsCategory( DevicesView* parent ); 103 CardsCategory( DevicesView* parent );
104 virtual ~CardsCategory(); 104 virtual ~CardsCategory();
105 105
106 virtual void populate(); 106 virtual void populate();
107}; 107};
108 108
109//================================================================================================= 109//=================================================================================================
110class UsbCategory : public Category 110class UsbCategory : public Category
111{ 111{
112public: 112public:
113 UsbCategory( DevicesView* parent ); 113 UsbCategory( DevicesView* parent );
114 virtual ~UsbCategory(); 114 virtual ~UsbCategory();
115 115
116 virtual void populate(); 116 virtual void populate();
117}; 117};
118 118
119//================================================================================================= 119//=================================================================================================
120class Device : public Opie::Ui::OListViewItem 120class Device : public Opie::Ui::OListViewItem
121{ 121{
122public: 122public:
123 Device( Category* parent, const QString& name ); 123 Device( Category* parent, const QString& name );
124 Device( Device* parent, const QString& name );
124 ~Device(); 125 ~Device();
125 126
126 QWidget* devinfo; 127 QWidget* devinfo;
127 QWidget* details; 128 QWidget* details;
128 129
129 virtual QWidget* detailsWidget(); 130 virtual QWidget* detailsWidget();
130}; 131};
131 132
132//================================================================================================= 133//=================================================================================================
133class CpuDevice : public Device 134class CpuDevice : public Device
134{ 135{
135public: 136public:
136 CpuDevice( Category* parent, const QString& name ); 137 CpuDevice( Category* parent, const QString& name );
137 ~CpuDevice(); 138 ~CpuDevice();
138 139
139 void addInfo( const QString& line ); 140 void addInfo( const QString& line );
140 141
141// virtual QWidget* detailsWidget(); 142// virtual QWidget* detailsWidget();
142}; 143};
143 144
144//================================================================================================= 145//=================================================================================================
145class InputDevice : public Device 146class InputDevice : public Device
146{ 147{
147public: 148public:
148 InputDevice( Category* parent, const QString& name ); 149 InputDevice( Category* parent, const QString& name );
149 ~InputDevice(); 150 ~InputDevice();
150 151
151// virtual QWidget* detailsWidget(); 152// virtual QWidget* detailsWidget();
152}; 153};
153 154
154//================================================================================================= 155//=================================================================================================
155class CardDevice : public Device 156class CardDevice : public Device
156{ 157{
157public: 158public:
158 CardDevice( Category* parent, const QString& name ); 159 CardDevice( Category* parent, const QString& name );
159 ~CardDevice(); 160 ~CardDevice();
160 161
161// virtual QWidget* detailsWidget(); 162// virtual QWidget* detailsWidget();
162}; 163};
163 164
164//================================================================================================= 165//=================================================================================================
165class UsbDevice : public Device 166class UsbDevice : public Device
166{ 167{
167public: 168public:
168 UsbDevice( Category* parent, const QString& name ); 169 UsbDevice( Category* parent, const QString& name );
170 UsbDevice( UsbDevice* parent, const QString& name );
169 ~UsbDevice(); 171 ~UsbDevice();
170 172
171// virtual QWidget* detailsWidget(); 173// virtual QWidget* detailsWidget();
172}; 174};
173 175
174#endif 176#endif