summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2005-05-06 10:27:14 (UTC)
committer mickeyl <mickeyl>2005-05-06 10:27:14 (UTC)
commite73cc9ec4596e1b5e9eed13af710606f358860ba (patch) (side-by-side diff)
treee83705b0bd60adcee980c30c3b8b83ad0376cd9c
parent543d9d7c58c9601dba6f47b3a4011313d1d75499 (diff)
downloadopie-e73cc9ec4596e1b5e9eed13af710606f358860ba.zip
opie-e73cc9ec4596e1b5e9eed13af710606f358860ba.tar.gz
opie-e73cc9ec4596e1b5e9eed13af710606f358860ba.tar.bz2
quick'n'dirty parsing of USB tree
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
@@ -253,21 +253,39 @@ void UsbCategory::populate()
int _bus, _level, _parent, _port, _count, _device, _channels, _power;
float _speed;
QString _manufacturer, _product, _serial;
int usbcount = 0;
+ UsbDevice* lastDev = 0;
+ UsbDevice* dev = 0;
while ( !usbinfo.atEnd() )
{
QString line = usbinfo.readLine();
odebug << "got line '" << line << "'" << oendl;
if ( line.startsWith( "T:" ) )
{
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);
- new UsbDevice( this, QString( "USB Device #%1" ).arg( usbcount++ ) );
+ if ( !_level )
+ {
+ odebug << "adding new bus" << oendl;
+ dev = new UsbDevice( this, QString( "Generic USB Hub Device" ) );
+ lastDev = dev;
+ }
+ else
+ {
+ odebug << "adding new dev" << oendl;
+ dev = new UsbDevice( lastDev, QString( "Generic USB Hub Device" ) );
+ lastDev = dev;
+ }
+ }
+ else if ( line.startsWith( "S: Product" ) )
+ {
+ int dp = line.find( '=' );
+ dev->setText( 0, dp != -1 ? line.right( line.length()-1-dp ) : "<unknown>" );
}
else
{
continue;
}
}
@@ -278,12 +296,18 @@ void UsbCategory::populate()
Device::Device( Category* parent, const QString& name )
:OListViewItem( parent, name )
{
devinfo = static_cast<QWidget*>( listView()->parent() );
}
+Device::Device( Device* parent, const QString& name )
+ :OListViewItem( parent, name )
+{
+ devinfo = static_cast<QWidget*>( listView()->parent() );
+}
+
Device::~Device()
{
}
QWidget* Device::detailsWidget()
@@ -344,9 +368,17 @@ UsbDevice::UsbDevice( Category* parent, const QString& name )
:Device( parent, name )
{
details = new QPushButton( name, devinfo );
details->hide();
}
+//=================================================================================================
+UsbDevice::UsbDevice( UsbDevice* parent, const QString& name )
+ :Device( parent, name )
+{
+ details = new QPushButton( name, devinfo );
+ details->hide();
+}
+
UsbDevice::~UsbDevice()
{
}
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
@@ -118,12 +118,13 @@ public:
//=================================================================================================
class Device : public Opie::Ui::OListViewItem
{
public:
Device( Category* parent, const QString& name );
+ Device( Device* parent, const QString& name );
~Device();
QWidget* devinfo;
QWidget* details;
virtual QWidget* detailsWidget();
@@ -163,12 +164,13 @@ public:
//=================================================================================================
class UsbDevice : public Device
{
public:
UsbDevice( Category* parent, const QString& name );
+ UsbDevice( UsbDevice* parent, const QString& name );
~UsbDevice();
// virtual QWidget* detailsWidget();
};
#endif