author | mickeyl <mickeyl> | 2005-07-09 16:05:57 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2005-07-09 16:05:57 (UTC) |
commit | 9b070d84b36c5dc764b6b4a8a3ca511d2e3d441f (patch) (side-by-side diff) | |
tree | 9d42efed66329ad925f3079e2739d9a3a9ced880 /noncore/net/opietooth/manager | |
parent | 5dbfa604bcc5dd32401d862372af806bfe674e89 (diff) | |
download | opie-9b070d84b36c5dc764b6b4a8a3ca511d2e3d441f.zip opie-9b070d84b36c5dc764b6b4a8a3ca511d2e3d441f.tar.gz opie-9b070d84b36c5dc764b6b4a8a3ca511d2e3d441f.tar.bz2 |
autopopulate services list, use odebug where appropriate instead of owarn
-rw-r--r-- | noncore/net/opietooth/manager/bluebase.cpp | 44 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/bluebase.h | 1 |
2 files changed, 21 insertions, 24 deletions
diff --git a/noncore/net/opietooth/manager/bluebase.cpp b/noncore/net/opietooth/manager/bluebase.cpp index af1cd23..0649514 100644 --- a/noncore/net/opietooth/manager/bluebase.cpp +++ b/noncore/net/opietooth/manager/bluebase.cpp @@ -56,22 +56,19 @@ using namespace Opie::Core; using namespace OpieTooth; BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl ) : BluetoothBase( parent, name, fl ) { - m_localDevice = new Manager( "hci0" ); connect( PushButton2, SIGNAL( clicked() ), this, SLOT(startScan() ) ); connect( configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges() ) ); connect( rfcommBindButton, SIGNAL( clicked() ), this, SLOT( rfcommDialog() ) ); - // not good since lib is async - // connect( devicesView, SIGNAL( expanded(QListViewItem*) ), - // this, SLOT( addServicesToDevice(QListViewItem*) ) ); + connect( devicesView, SIGNAL( clicked(QListViewItem*)), this, SLOT( startServiceActionClicked(QListViewItem*) ) ); connect( devicesView, SIGNAL( rightButtonClicked(QListViewItem*,const QPoint&,int) ), this, SLOT(startServiceActionHold(QListViewItem*,const QPoint&,int) ) ); connect( m_localDevice , SIGNAL( foundServices(const QString&,Services::ValueList) ), this, SLOT( addServicesToDevice(const QString&,Services::ValueList) ) ); @@ -79,13 +76,12 @@ BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl ) this, SLOT( deviceActive(const QString&,bool) ) ); connect( m_localDevice, SIGNAL( connections(ConnectionState::ValueList) ), this, SLOT( addConnectedDevices(ConnectionState::ValueList) ) ); connect( m_localDevice, SIGNAL( signalStrength(const QString&,const QString&) ), this, SLOT( addSignalStrength(const QString&,const QString&) ) ); - // let hold be rightButtonClicked() QPEApplication::setStylusOperation( devicesView->viewport(), QPEApplication::RightOnHold); QPEApplication::setStylusOperation( connectionsView->viewport(), QPEApplication::RightOnHold); //Load all icons needed m_offPix = Resource::loadPixmap( "opietooth/notconnected" ); @@ -103,20 +99,18 @@ BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl ) setCaption( tr( "Bluetooth Manager" ) ); readConfig(); initGui(); devicesView->setRootIsDecorated(true); - - + m_iconLoader = new BTIconLoader(); writeToHciConfig(); - // search conncetions addConnectedDevices(); - addSignalStrength(); - m_iconLoader = new BTIconLoader(); readSavedDevices(); + addServicesToDevices(); + QTimer::singleShot( 3000, this, SLOT( addServicesToDevices() ) ); } /** * Reads all options from the config file */ void BlueBase::readConfig() @@ -168,13 +162,13 @@ void BlueBase::writeToHciConfig() hciconf.setIscan( m_enableInquiryscan ); hciconf.save(); } /** - * Read the list of allready known devices + * Read the list of already known devices */ void BlueBase::readSavedDevices() { QValueList<RemoteDevice> loadedDevices; DeviceHandler handler; @@ -182,13 +176,13 @@ void BlueBase::readSavedDevices() addSearchedDevices( loadedDevices ); } /** - * Write the list of allready known devices + * Write the list of already known devices */ void BlueBase::writeSavedDevices() { QListViewItemIterator it( devicesView ); BTListItem* item; BTDeviceItem* device; @@ -292,15 +286,12 @@ void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices ) deviceItem = new BTDeviceItem( devicesView , (*it) ); deviceItem->setPixmap( 1, m_findPix ); deviceItem->setExpandable ( true ); // look if device is avail. atm, async deviceActive( (*it) ); - - // ggf auch hier? - addServicesToDevice( deviceItem ); } } /** * Action that is toggled on entrys on click @@ -395,36 +386,45 @@ void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & poin delete popup; } delete menu; } +void BlueBase::addServicesToDevices() +{ + odebug << "BlueBase::addServicesToDevices()" << oendl; + BTDeviceItem* item = (BTDeviceItem*) devicesView->firstChild(); + while ( item ) + { + addServicesToDevice( item ); + item = (BTDeviceItem*) static_cast<QListViewItem*>( item )->nextSibling(); + } +} + /** * Search and display avail. services for a device (on expand from device listing) * @param item the service item returned */ void BlueBase::addServicesToDevice( BTDeviceItem * item ) { - odebug << "addServicesToDevice" << oendl; + odebug << "BlueBase::addServicesToDevice" << oendl; // row of mac adress text(3) RemoteDevice device = item->remoteDevice(); m_deviceList.insert( item->mac() , item ); // and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back m_localDevice->searchServices( device ); } /** - * Overloaded. This one it the one that is - ted to the foundServices signal * @param device the mac address of the remote device * @param servicesList the list with the service the device has. */ void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList ) { - odebug << "fill services list" << oendl; + odebug << "BlueBase::fill services list" << oendl; QMap<QString,BTDeviceItem*>::Iterator it; BTDeviceItem* deviceItem = 0; // get the right devices which requested the search it = m_deviceList.find( device ); @@ -473,16 +473,12 @@ void BlueBase::addServicesToDevice( const QString& device, Services::ValueList s serviceItem = new BTServiceItem( deviceItem, s1 ); } // now remove them from the list m_deviceList.remove( it ); } - - - - void BlueBase::addSignalStrength() { QListViewItemIterator it( connectionsView ); for ( ; it.current(); ++it ) { @@ -509,12 +505,13 @@ void BlueBase::addSignalStrength( const QString& mac, const QString& strength ) * Add the existing connections (pairs) to the connections tab. * This one triggers the search */ void BlueBase::addConnectedDevices() { m_localDevice->searchConnections(); + QTimer::singleShot( 5000, this, SLOT( addSignalStrength() ) ); } /** * This adds the found connections to the connection tab. * @param connectionList the ValueList with all current connections */ @@ -612,13 +609,12 @@ void BlueBase::deviceActive( const QString& device, bool connected ) it = m_deviceList.find( device ); if( it == m_deviceList.end() ) return; BTDeviceItem* deviceItem = it.data(); - if ( connected ) { deviceItem->setPixmap( 1, m_onPix ); } else { diff --git a/noncore/net/opietooth/manager/bluebase.h b/noncore/net/opietooth/manager/bluebase.h index a8ab3db..48883d2 100644 --- a/noncore/net/opietooth/manager/bluebase.h +++ b/noncore/net/opietooth/manager/bluebase.h @@ -79,12 +79,13 @@ namespace OpieTooth { QPixmap m_findPix; BTIconLoader *m_iconLoader; private slots: void addSearchedDevices( const QValueList<RemoteDevice> &newDevices ); + void addServicesToDevices(); void addServicesToDevice( BTDeviceItem *item ); void addServicesToDevice( const QString& device, Services::ValueList ); void addConnectedDevices(); void addConnectedDevices( ConnectionState::ValueList ); void startServiceActionClicked( QListViewItem *item ); void startServiceActionHold( QListViewItem *, const QPoint &, int ); |