summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2005-05-03 22:32:11 (UTC)
committer mickeyl <mickeyl>2005-05-03 22:32:11 (UTC)
commit1f412e211a7d5759d2ca51aa4e14c6292984f124 (patch) (unidiff)
tree6a6634d76f633cd5e8f3c6fcdf82f0604cdbad64
parent1daea169fcc0007727f0752251ca4546817999b7 (diff)
downloadopie-1f412e211a7d5759d2ca51aa4e14c6292984f124.zip
opie-1f412e211a7d5759d2ca51aa4e14c6292984f124.tar.gz
opie-1f412e211a7d5759d2ca51aa4e14c6292984f124.tar.bz2
use OAutoBoxLayout for devices info
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/sysinfo/devicesinfo.cpp16
-rw-r--r--noncore/settings/sysinfo/devicesinfo.h16
2 files changed, 23 insertions, 9 deletions
diff --git a/noncore/settings/sysinfo/devicesinfo.cpp b/noncore/settings/sysinfo/devicesinfo.cpp
index a1c9e0b..4bce65f 100644
--- a/noncore/settings/sysinfo/devicesinfo.cpp
+++ b/noncore/settings/sysinfo/devicesinfo.cpp
@@ -1,246 +1,256 @@
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 30
31/* OPIE */ 31/* OPIE */
32#include <opie2/odebug.h> 32#include <opie2/odebug.h>
33#include <opie2/oinputsystem.h> 33#include <opie2/oinputsystem.h>
34#include <opie2/olayout.h>
34#include <opie2/olistview.h> 35#include <opie2/olistview.h>
35#include <qpe/qpeapplication.h> 36#include <qpe/qpeapplication.h>
36using namespace Opie::Core; 37using namespace Opie::Core;
37using namespace Opie::Ui; 38using namespace Opie::Ui;
38 39
39/* QT */ 40/* QT */
41#include <qlistview.h>
40#include <qcombobox.h> 42#include <qcombobox.h>
41#include <qfile.h> 43#include <qfile.h>
42#include <qlayout.h>
43#include <qpushbutton.h> 44#include <qpushbutton.h>
44#include <qtextstream.h> 45#include <qtextstream.h>
45#include <qtextview.h> 46#include <qtextview.h>
46#include <qtimer.h> 47#include <qtimer.h>
47#include <qwhatsthis.h> 48#include <qwhatsthis.h>
48 49
49//================================================================================================= 50//=================================================================================================
50DevicesView::DevicesView( QWidget* parent, const char* name, WFlags fl ) 51DevicesView::DevicesView( QWidget* parent, const char* name, WFlags fl )
51 :OListView( parent, name, fl ) 52 :Opie::Ui::OListView( parent, name, fl )
52{ 53{
53 addColumn( tr( "My Computer" ) ); 54 addColumn( tr( "My Computer" ) );
54 setAllColumnsShowFocus( true ); 55 setAllColumnsShowFocus( true );
55 setRootIsDecorated( true ); 56 setRootIsDecorated( true );
56 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." ) );
57 58
58 DevicesView* root = this; 59 DevicesView* root = this;
59 ( new CpuCategory( root ) )->populate(); 60 ( new CpuCategory( root ) )->populate();
60 ( new InputCategory( root ) )->populate(); 61 ( new InputCategory( root ) )->populate();
61 ( new CardsCategory( root ) )->populate(); 62 ( new CardsCategory( root ) )->populate();
62 ( new UsbCategory( root ) )->populate(); 63 ( new UsbCategory( root ) )->populate();
64
65 connect( this, SIGNAL(selectionChanged(QListViewItem*)), this, SLOT(selectionChanged(QListViewItem*)) );
63} 66}
64 67
65DevicesView::~DevicesView() 68DevicesView::~DevicesView()
66{ 69{
67} 70}
68 71
72
73void DevicesView::selectionChanged( QListViewItem* item )
74{
75 odebug << "DevicesView::selectionChanged to '" << item->text( 0 ) << "'" << oendl;
76}
77
78
69//================================================================================================= 79//=================================================================================================
70DevicesInfo::DevicesInfo( QWidget* parent, const char* name, WFlags fl ) 80DevicesInfo::DevicesInfo( QWidget* parent, const char* name, WFlags fl )
71 :QWidget( parent, name, fl ) 81 :QWidget( parent, name, fl )
72{ 82{
73 QVBoxLayout *layout = new QVBoxLayout( this ); 83 OAutoBoxLayout *layout = new OAutoBoxLayout( this );
74 layout->setSpacing( 4 ); 84 layout->setSpacing( 4 );
75 layout->setMargin( 4 ); 85 layout->setMargin( 4 );
76 view = new DevicesView( this ); 86 view = new DevicesView( this );
77 layout->addWidget( view ); 87 layout->addWidget( view );
78} 88}
79 89
80DevicesInfo::~DevicesInfo() 90DevicesInfo::~DevicesInfo()
81{ 91{
82} 92}
83 93
84 94
85Category::Category( DevicesView* parent, const QString& name ) 95Category::Category( DevicesView* parent, const QString& name )
86 :OListViewItem( parent, name ) 96 :OListViewItem( parent, name )
87{ 97{
88 odebug << "Category '" << name << "' inserted. Scanning for devices..." << oendl; 98 odebug << "Category '" << name << "' inserted. Scanning for devices..." << oendl;
89} 99}
90 100
91Category::~Category() 101Category::~Category()
92{ 102{
93} 103}
94 104
95//================================================================================================= 105//=================================================================================================
96Device::Device( Category* parent, const QString& name ) 106Device::Device( Category* parent, const QString& name )
97 :OListViewItem( parent, name ) 107 :OListViewItem( parent, name )
98{ 108{
99} 109}
100 110
101Device::~Device() 111Device::~Device()
102{ 112{
103} 113}
104 114
105//================================================================================================= 115//=================================================================================================
106CpuCategory::CpuCategory( DevicesView* parent ) 116CpuCategory::CpuCategory( DevicesView* parent )
107 :Category( parent, "1. Central Processing Unit" ) 117 :Category( parent, "1. Central Processing Unit" )
108{ 118{
109} 119}
110 120
111CpuCategory::~CpuCategory() 121CpuCategory::~CpuCategory()
112{ 122{
113} 123}
114 124
115void CpuCategory::populate() 125void CpuCategory::populate()
116{ 126{
117 odebug << "CpuCategory::populate()" << oendl; 127 odebug << "CpuCategory::populate()" << oendl;
118 QFile cpuinfofile( "/proc/cpuinfo" ); 128 QFile cpuinfofile( "/proc/cpuinfo" );
119 if ( !cpuinfofile.exists() || !cpuinfofile.open( IO_ReadOnly ) ) 129 if ( !cpuinfofile.exists() || !cpuinfofile.open( IO_ReadOnly ) )
120 { 130 {
121 new OListViewItem( this, "ERROR: /proc/cpuinfo not found or unaccessible" ); 131 new OListViewItem( this, "ERROR: /proc/cpuinfo not found or unaccessible" );
122 return; 132 return;
123 } 133 }
124 QTextStream cpuinfo( &cpuinfofile ); 134 QTextStream cpuinfo( &cpuinfofile );
125 135
126 int cpucount = 0; 136 int cpucount = 0;
127 while ( !cpuinfo.atEnd() ) 137 while ( !cpuinfo.atEnd() )
128 { 138 {
129 QString line = cpuinfo.readLine(); 139 QString line = cpuinfo.readLine();
130 odebug << "got line '" << line << "'" << oendl; 140 odebug << "got line '" << line << "'" << oendl;
131 if ( line.startsWith( "processor" ) ) 141 if ( line.startsWith( "processor" ) )
132 { 142 {
133 new OListViewItem( this, QString( "CPU #%1" ).arg( cpucount++ ) ); 143 new OListViewItem( this, QString( "CPU #%1" ).arg( cpucount++ ) );
134 } 144 }
135 else 145 else
136 { 146 {
137 continue; 147 continue;
138 } 148 }
139 } 149 }
140} 150}
141 151
142//================================================================================================= 152//=================================================================================================
143InputCategory::InputCategory( DevicesView* parent ) 153InputCategory::InputCategory( DevicesView* parent )
144 :Category( parent, "2. Input Subsystem" ) 154 :Category( parent, "2. Input Subsystem" )
145{ 155{
146} 156}
147 157
148InputCategory::~InputCategory() 158InputCategory::~InputCategory()
149{ 159{
150} 160}
151 161
152void InputCategory::populate() 162void InputCategory::populate()
153{ 163{
154 odebug << "InputCategory::populate()" << oendl; 164 odebug << "InputCategory::populate()" << oendl;
155 OInputSystem* sys = OInputSystem::instance(); 165 OInputSystem* sys = OInputSystem::instance();
156 OInputSystem::DeviceIterator it = sys->iterator(); 166 OInputSystem::DeviceIterator it = sys->iterator();
157 while ( it.current() ) 167 while ( it.current() )
158 { 168 {
159 OInputDevice* dev = it.current(); 169 OInputDevice* dev = it.current();
160 new OListViewItem( this, dev->identity() ); 170 new OListViewItem( this, dev->identity() );
161 ++it; 171 ++it;
162 } 172 }
163} 173}
164 174
165//================================================================================================= 175//=================================================================================================
166CardsCategory::CardsCategory( DevicesView* parent ) 176CardsCategory::CardsCategory( DevicesView* parent )
167 :Category( parent, "3. Removable Cards" ) 177 :Category( parent, "3. Removable Cards" )
168{ 178{
169} 179}
170 180
171CardsCategory::~CardsCategory() 181CardsCategory::~CardsCategory()
172{ 182{
173} 183}
174 184
175void CardsCategory::populate() 185void CardsCategory::populate()
176{ 186{
177 odebug << "CardsCategory::populate()" << oendl; 187 odebug << "CardsCategory::populate()" << oendl;
178 QString fileName; 188 QString fileName;
179 if ( QFile::exists( "/var/run/stab" ) ) { fileName = "/var/run/stab"; } 189 if ( QFile::exists( "/var/run/stab" ) ) { fileName = "/var/run/stab"; }
180 else if ( QFile::exists( "/var/state/pcmcia/stab" ) ) { fileName = "/var/state/pcmcia/stab"; } 190 else if ( QFile::exists( "/var/state/pcmcia/stab" ) ) { fileName = "/var/state/pcmcia/stab"; }
181 else { fileName = "/var/lib/pcmcia/stab"; } 191 else { fileName = "/var/lib/pcmcia/stab"; }
182 QFile cardinfofile( fileName ); 192 QFile cardinfofile( fileName );
183 if ( !cardinfofile.exists() || !cardinfofile.open( IO_ReadOnly ) ) 193 if ( !cardinfofile.exists() || !cardinfofile.open( IO_ReadOnly ) )
184 { 194 {
185 new OListViewItem( this, "ERROR: pcmcia info file not found or unaccessible" ); 195 new OListViewItem( this, "ERROR: pcmcia info file not found or unaccessible" );
186 return; 196 return;
187 } 197 }
188 QTextStream cardinfo( &cardinfofile ); 198 QTextStream cardinfo( &cardinfofile );
189 while ( !cardinfo.atEnd() ) 199 while ( !cardinfo.atEnd() )
190 { 200 {
191 QString line = cardinfo.readLine(); 201 QString line = cardinfo.readLine();
192 odebug << "got line '" << line << "'" << oendl; 202 odebug << "got line '" << line << "'" << oendl;
193 if ( line.startsWith("Socket") ) 203 if ( line.startsWith("Socket") )
194 { 204 {
195 new OListViewItem( this, line ); 205 new OListViewItem( this, line );
196 } 206 }
197 else 207 else
198 { 208 {
199 continue; 209 continue;
200 } 210 }
201 } 211 }
202} 212}
203 213
204//================================================================================================= 214//=================================================================================================
205UsbCategory::UsbCategory( DevicesView* parent ) 215UsbCategory::UsbCategory( DevicesView* parent )
206 :Category( parent, "4. Universal Serial Bus" ) 216 :Category( parent, "4. Universal Serial Bus" )
207{ 217{
208} 218}
209 219
210UsbCategory::~UsbCategory() 220UsbCategory::~UsbCategory()
211{ 221{
212} 222}
213 223
214void UsbCategory::populate() 224void UsbCategory::populate()
215{ 225{
216 odebug << "UsbCategory::populate()" << oendl; 226 odebug << "UsbCategory::populate()" << oendl;
217 QFile usbinfofile( "/proc/bus/usb/devices" ); 227 QFile usbinfofile( "/proc/bus/usb/devices" );
218 if ( !usbinfofile.exists() || !usbinfofile.open( IO_ReadOnly ) ) 228 if ( !usbinfofile.exists() || !usbinfofile.open( IO_ReadOnly ) )
219 { 229 {
220 new OListViewItem( this, "ERROR: /proc/bus/usb/devices not found or unaccessible" ); 230 new OListViewItem( this, "ERROR: /proc/bus/usb/devices not found or unaccessible" );
221 return; 231 return;
222 } 232 }
223 QTextStream usbinfo( &usbinfofile ); 233 QTextStream usbinfo( &usbinfofile );
224 234
225 int _bus, _level, _parent, _port, _count, _device, _channels, _power; 235 int _bus, _level, _parent, _port, _count, _device, _channels, _power;
226 float _speed; 236 float _speed;
227 QString _manufacturer, _product, _serial; 237 QString _manufacturer, _product, _serial;
228 238
229 int usbcount = 0; 239 int usbcount = 0;
230 while ( !usbinfo.atEnd() ) 240 while ( !usbinfo.atEnd() )
231 { 241 {
232 QString line = usbinfo.readLine(); 242 QString line = usbinfo.readLine();
233 odebug << "got line '" << line << "'" << oendl; 243 odebug << "got line '" << line << "'" << oendl;
234 if ( line.startsWith("T:") ) 244 if ( line.startsWith("T:") )
235 { 245 {
236 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); 246 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);
237 247
238 new OListViewItem( this, QString( "USB Device #%1" ).arg( usbcount++ ) ); 248 new OListViewItem( this, QString( "USB Device #%1" ).arg( usbcount++ ) );
239 } 249 }
240 else 250 else
241 { 251 {
242 continue; 252 continue;
243 } 253 }
244 } 254 }
245} 255}
246 256
diff --git a/noncore/settings/sysinfo/devicesinfo.h b/noncore/settings/sysinfo/devicesinfo.h
index 60ec999..262af31 100644
--- a/noncore/settings/sysinfo/devicesinfo.h
+++ b/noncore/settings/sysinfo/devicesinfo.h
@@ -1,118 +1,122 @@
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#include <qwidget.h> 32/* OPIE */
33#include <opie2/olistview.h> 33#include <opie2/olistview.h>
34using namespace Opie::Ui; 34
35/* QT */
36#include <qwidget.h>
35 37
36//================================================================================================= 38//=================================================================================================
37class DevicesView : public OListView 39class DevicesView : public Opie::Ui::OListView
38{ 40{
39 Q_OBJECT 41 Q_OBJECT
40public: 42public:
41 DevicesView( QWidget* parent = 0, const char* name = 0, WFlags f = 0 ); 43 DevicesView( QWidget* parent = 0, const char* name = 0, WFlags f = 0 );
42 ~DevicesView(); 44 ~DevicesView();
45public slots:
46 void selectionChanged( QListViewItem* item );
43}; 47};
44 48
45//================================================================================================= 49//=================================================================================================
46class DevicesInfo : public QWidget 50class DevicesInfo : public QWidget
47{ 51{
48 Q_OBJECT 52 Q_OBJECT
49public: 53public:
50 DevicesInfo( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); 54 DevicesInfo( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
51 ~DevicesInfo(); 55 ~DevicesInfo();
52 56
53private: 57private:
54 OListView* view; 58 Opie::Ui::OListView* view;
55 59
56private slots: 60private slots:
57}; 61};
58 62
59//================================================================================================= 63//=================================================================================================
60class Category : public OListViewItem 64class Category : public Opie::Ui::OListViewItem
61{ 65{
62public: 66public:
63 Category( DevicesView* parent, const QString& name ); 67 Category( DevicesView* parent, const QString& name );
64 virtual ~Category(); 68 virtual ~Category();
65 69
66 virtual void populate() = 0; 70 virtual void populate() = 0;
67}; 71};
68 72
69//================================================================================================= 73//=================================================================================================
70class Device : public OListViewItem 74class Device : public Opie::Ui::OListViewItem
71{ 75{
72public: 76public:
73 Device( Category* parent, const QString& name ); 77 Device( Category* parent, const QString& name );
74 ~Device(); 78 ~Device();
75}; 79};
76 80
77//================================================================================================= 81//=================================================================================================
78class CpuCategory : public Category 82class CpuCategory : public Category
79{ 83{
80public: 84public:
81 CpuCategory( DevicesView* parent ); 85 CpuCategory( DevicesView* parent );
82 virtual ~CpuCategory(); 86 virtual ~CpuCategory();
83 87
84 virtual void populate(); 88 virtual void populate();
85}; 89};
86 90
87//================================================================================================= 91//=================================================================================================
88class InputCategory : public Category 92class InputCategory : public Category
89{ 93{
90public: 94public:
91 InputCategory( DevicesView* parent ); 95 InputCategory( DevicesView* parent );
92 virtual ~InputCategory(); 96 virtual ~InputCategory();
93 97
94 virtual void populate(); 98 virtual void populate();
95}; 99};
96 100
97//================================================================================================= 101//=================================================================================================
98class CardsCategory : public Category 102class CardsCategory : public Category
99{ 103{
100public: 104public:
101 CardsCategory( DevicesView* parent ); 105 CardsCategory( DevicesView* parent );
102 virtual ~CardsCategory(); 106 virtual ~CardsCategory();
103 107
104 virtual void populate(); 108 virtual void populate();
105}; 109};
106 110
107//================================================================================================= 111//=================================================================================================
108class UsbCategory : public Category 112class UsbCategory : public Category
109{ 113{
110public: 114public:
111 UsbCategory( DevicesView* parent ); 115 UsbCategory( DevicesView* parent );
112 virtual ~UsbCategory(); 116 virtual ~UsbCategory();
113 117
114 virtual void populate(); 118 virtual void populate();
115}; 119};
116 120
117 121
118#endif 122#endif