summaryrefslogtreecommitdiff
path: root/noncore/net/opietooth/manager
authormickeyl <mickeyl>2005-07-09 16:05:57 (UTC)
committer mickeyl <mickeyl>2005-07-09 16:05:57 (UTC)
commit9b070d84b36c5dc764b6b4a8a3ca511d2e3d441f (patch) (unidiff)
tree9d42efed66329ad925f3079e2739d9a3a9ced880 /noncore/net/opietooth/manager
parent5dbfa604bcc5dd32401d862372af806bfe674e89 (diff)
downloadopie-9b070d84b36c5dc764b6b4a8a3ca511d2e3d441f.zip
opie-9b070d84b36c5dc764b6b4a8a3ca511d2e3d441f.tar.gz
opie-9b070d84b36c5dc764b6b4a8a3ca511d2e3d441f.tar.bz2
autopopulate services list, use odebug where appropriate instead of owarn
Diffstat (limited to 'noncore/net/opietooth/manager') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/manager/bluebase.cpp44
-rw-r--r--noncore/net/opietooth/manager/bluebase.h9
2 files changed, 25 insertions, 28 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
@@ -38,103 +38,97 @@ using namespace Opie::Core;
38#include <qimage.h> 38#include <qimage.h>
39#include <qpixmap.h> 39#include <qpixmap.h>
40#include <qtabwidget.h> 40#include <qtabwidget.h>
41#include <qscrollview.h> 41#include <qscrollview.h>
42#include <qvbox.h> 42#include <qvbox.h>
43#include <qmessagebox.h> 43#include <qmessagebox.h>
44#include <qcheckbox.h> 44#include <qcheckbox.h>
45#include <qlineedit.h> 45#include <qlineedit.h>
46#include <qlistview.h> 46#include <qlistview.h>
47#include <qdir.h> 47#include <qdir.h>
48#include <qpopupmenu.h> 48#include <qpopupmenu.h>
49#include <qtimer.h> 49#include <qtimer.h>
50#include <qlist.h> 50#include <qlist.h>
51 51
52/* STD */ 52/* STD */
53#include <remotedevice.h> 53#include <remotedevice.h>
54#include <services.h> 54#include <services.h>
55#include <stdlib.h> 55#include <stdlib.h>
56 56
57using namespace OpieTooth; 57using namespace OpieTooth;
58 58
59BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl ) 59BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl )
60 : BluetoothBase( parent, name, fl ) 60 : BluetoothBase( parent, name, fl )
61{ 61{
62
63 m_localDevice = new Manager( "hci0" ); 62 m_localDevice = new Manager( "hci0" );
64 63
65 connect( PushButton2, SIGNAL( clicked() ), this, SLOT(startScan() ) ); 64 connect( PushButton2, SIGNAL( clicked() ), this, SLOT(startScan() ) );
66 connect( configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges() ) ); 65 connect( configApplyButton, SIGNAL(clicked() ), this, SLOT(applyConfigChanges() ) );
67 66
68 connect( rfcommBindButton, SIGNAL( clicked() ), this, SLOT( rfcommDialog() ) ); 67 connect( rfcommBindButton, SIGNAL( clicked() ), this, SLOT( rfcommDialog() ) );
69 // not good since lib is async 68
70 // connect( devicesView, SIGNAL( expanded(QListViewItem*) ),
71 // this, SLOT( addServicesToDevice(QListViewItem*) ) );
72 connect( devicesView, SIGNAL( clicked(QListViewItem*)), 69 connect( devicesView, SIGNAL( clicked(QListViewItem*)),
73 this, SLOT( startServiceActionClicked(QListViewItem*) ) ); 70 this, SLOT( startServiceActionClicked(QListViewItem*) ) );
74 connect( devicesView, SIGNAL( rightButtonClicked(QListViewItem*,const QPoint&,int) ), 71 connect( devicesView, SIGNAL( rightButtonClicked(QListViewItem*,const QPoint&,int) ),
75 this, SLOT(startServiceActionHold(QListViewItem*,const QPoint&,int) ) ); 72 this, SLOT(startServiceActionHold(QListViewItem*,const QPoint&,int) ) );
76 connect( m_localDevice , SIGNAL( foundServices(const QString&,Services::ValueList) ), 73 connect( m_localDevice , SIGNAL( foundServices(const QString&,Services::ValueList) ),
77 this, SLOT( addServicesToDevice(const QString&,Services::ValueList) ) ); 74 this, SLOT( addServicesToDevice(const QString&,Services::ValueList) ) );
78 connect( m_localDevice, SIGNAL( available(const QString&,bool) ), 75 connect( m_localDevice, SIGNAL( available(const QString&,bool) ),
79 this, SLOT( deviceActive(const QString&,bool) ) ); 76 this, SLOT( deviceActive(const QString&,bool) ) );
80 connect( m_localDevice, SIGNAL( connections(ConnectionState::ValueList) ), 77 connect( m_localDevice, SIGNAL( connections(ConnectionState::ValueList) ),
81 this, SLOT( addConnectedDevices(ConnectionState::ValueList) ) ); 78 this, SLOT( addConnectedDevices(ConnectionState::ValueList) ) );
82 connect( m_localDevice, SIGNAL( signalStrength(const QString&,const QString&) ), 79 connect( m_localDevice, SIGNAL( signalStrength(const QString&,const QString&) ),
83 this, SLOT( addSignalStrength(const QString&,const QString&) ) ); 80 this, SLOT( addSignalStrength(const QString&,const QString&) ) );
84 81
85
86 // let hold be rightButtonClicked() 82 // let hold be rightButtonClicked()
87 QPEApplication::setStylusOperation( devicesView->viewport(), QPEApplication::RightOnHold); 83 QPEApplication::setStylusOperation( devicesView->viewport(), QPEApplication::RightOnHold);
88 QPEApplication::setStylusOperation( connectionsView->viewport(), QPEApplication::RightOnHold); 84 QPEApplication::setStylusOperation( connectionsView->viewport(), QPEApplication::RightOnHold);
89 85
90 //Load all icons needed 86 //Load all icons needed
91 m_offPix = Resource::loadPixmap( "opietooth/notconnected" ); 87 m_offPix = Resource::loadPixmap( "opietooth/notconnected" );
92 m_onPix = Resource::loadPixmap( "opietooth/connected" ); 88 m_onPix = Resource::loadPixmap( "opietooth/connected" );
93 m_findPix = Resource::loadPixmap( "opietooth/find" ); 89 m_findPix = Resource::loadPixmap( "opietooth/find" );
94 90
95 QPalette pal = this->palette(); 91 QPalette pal = this->palette();
96 QColor col = pal.color( QPalette::Active, QColorGroup::Background ); 92 QColor col = pal.color( QPalette::Active, QColorGroup::Background );
97 pal.setColor( QPalette::Active, QColorGroup::Button, col ); 93 pal.setColor( QPalette::Active, QColorGroup::Button, col );
98 pal.setColor( QPalette::Inactive, QColorGroup::Button, col ); 94 pal.setColor( QPalette::Inactive, QColorGroup::Button, col );
99 pal.setColor( QPalette::Normal, QColorGroup::Button, col ); 95 pal.setColor( QPalette::Normal, QColorGroup::Button, col );
100 pal.setColor( QPalette::Disabled, QColorGroup::Button, col ); 96 pal.setColor( QPalette::Disabled, QColorGroup::Button, col );
101 this->setPalette( pal ); 97 this->setPalette( pal );
102 98
103 setCaption( tr( "Bluetooth Manager" ) ); 99 setCaption( tr( "Bluetooth Manager" ) );
104 100
105 readConfig(); 101 readConfig();
106 initGui(); 102 initGui();
107 103
108 devicesView->setRootIsDecorated(true); 104 devicesView->setRootIsDecorated(true);
109 105 m_iconLoader = new BTIconLoader();
110
111 writeToHciConfig(); 106 writeToHciConfig();
112 // search conncetions
113 addConnectedDevices(); 107 addConnectedDevices();
114 addSignalStrength();
115 m_iconLoader = new BTIconLoader();
116 readSavedDevices(); 108 readSavedDevices();
109 addServicesToDevices();
110 QTimer::singleShot( 3000, this, SLOT( addServicesToDevices() ) );
117} 111}
118 112
119/** 113/**
120 * Reads all options from the config file 114 * Reads all options from the config file
121 */ 115 */
122void BlueBase::readConfig() 116void BlueBase::readConfig()
123{ 117{
124 118
125 Config cfg( "bluetoothmanager" ); 119 Config cfg( "bluetoothmanager" );
126 cfg.setGroup( "bluezsettings" ); 120 cfg.setGroup( "bluezsettings" );
127 121
128 m_deviceName = cfg.readEntry( "name" , "No name" ); // name the device should identify with 122 m_deviceName = cfg.readEntry( "name" , "No name" ); // name the device should identify with
129 m_defaultPasskey = cfg.readEntryCrypt( "passkey" , "" ); // <- hmm, look up how good the trolls did that, maybe too weak 123 m_defaultPasskey = cfg.readEntryCrypt( "passkey" , "" ); // <- hmm, look up how good the trolls did that, maybe too weak
130 m_useEncryption = cfg.readBoolEntry( "useEncryption" , TRUE ); 124 m_useEncryption = cfg.readBoolEntry( "useEncryption" , TRUE );
131 m_enableAuthentification = cfg.readBoolEntry( "enableAuthentification" , TRUE ); 125 m_enableAuthentification = cfg.readBoolEntry( "enableAuthentification" , TRUE );
132 m_enablePagescan = cfg.readBoolEntry( "enablePagescan" , TRUE ); 126 m_enablePagescan = cfg.readBoolEntry( "enablePagescan" , TRUE );
133 m_enableInquiryscan = cfg.readBoolEntry( "enableInquiryscan" , TRUE ); 127 m_enableInquiryscan = cfg.readBoolEntry( "enableInquiryscan" , TRUE );
134} 128}
135 129
136/** 130/**
137 * Writes all options to the config file 131 * Writes all options to the config file
138 */ 132 */
139void BlueBase::writeConfig() 133void BlueBase::writeConfig()
140{ 134{
@@ -150,63 +144,63 @@ void BlueBase::writeConfig()
150 cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan ); 144 cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan );
151 145
152 writeToHciConfig(); 146 writeToHciConfig();
153} 147}
154 148
155/** 149/**
156 * Modify the hcid.conf file to our needs 150 * Modify the hcid.conf file to our needs
157 */ 151 */
158void BlueBase::writeToHciConfig() 152void BlueBase::writeToHciConfig()
159{ 153{
160 owarn << "writeToHciConfig" << oendl; 154 owarn << "writeToHciConfig" << oendl;
161 HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" ); 155 HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" );
162 hciconf.load(); 156 hciconf.load();
163 hciconf.setPinHelper( QPEApplication::qpeDir() + "bin/bluepin" ); 157 hciconf.setPinHelper( QPEApplication::qpeDir() + "bin/bluepin" );
164 hciconf.setName( m_deviceName ); 158 hciconf.setName( m_deviceName );
165 hciconf.setEncrypt( m_useEncryption ); 159 hciconf.setEncrypt( m_useEncryption );
166 hciconf.setAuth( m_enableAuthentification ); 160 hciconf.setAuth( m_enableAuthentification );
167 hciconf.setPscan( m_enablePagescan ); 161 hciconf.setPscan( m_enablePagescan );
168 hciconf.setIscan( m_enableInquiryscan ); 162 hciconf.setIscan( m_enableInquiryscan );
169 hciconf.save(); 163 hciconf.save();
170} 164}
171 165
172 166
173/** 167/**
174 * Read the list of allready known devices 168 * Read the list of already known devices
175 */ 169 */
176void BlueBase::readSavedDevices() 170void BlueBase::readSavedDevices()
177{ 171{
178 172
179 QValueList<RemoteDevice> loadedDevices; 173 QValueList<RemoteDevice> loadedDevices;
180 DeviceHandler handler; 174 DeviceHandler handler;
181 loadedDevices = handler.load(); 175 loadedDevices = handler.load();
182 176
183 addSearchedDevices( loadedDevices ); 177 addSearchedDevices( loadedDevices );
184} 178}
185 179
186 180
187/** 181/**
188 * Write the list of allready known devices 182 * Write the list of already known devices
189 */ 183 */
190void BlueBase::writeSavedDevices() 184void BlueBase::writeSavedDevices()
191{ 185{
192 QListViewItemIterator it( devicesView ); 186 QListViewItemIterator it( devicesView );
193 BTListItem* item; 187 BTListItem* item;
194 BTDeviceItem* device; 188 BTDeviceItem* device;
195 RemoteDevice::ValueList list; 189 RemoteDevice::ValueList list;
196 for ( ; it.current(); ++it ) 190 for ( ; it.current(); ++it )
197 { 191 {
198 item = (BTListItem*)it.current(); 192 item = (BTListItem*)it.current();
199 if(item->typeId() != BTListItem::Device ) 193 if(item->typeId() != BTListItem::Device )
200 continue; 194 continue;
201 device = (BTDeviceItem*)item; 195 device = (BTDeviceItem*)item;
202 196
203 list.append( device->remoteDevice() ); 197 list.append( device->remoteDevice() );
204 } 198 }
205 /* 199 /*
206 * if not empty save the List through DeviceHandler 200 * if not empty save the List through DeviceHandler
207 */ 201 */
208 if ( list.isEmpty() ) 202 if ( list.isEmpty() )
209 return; 203 return;
210 DeviceHandler handler; 204 DeviceHandler handler;
211 handler.save( list ); 205 handler.save( list );
212} 206}
@@ -274,51 +268,48 @@ void BlueBase::rfcommDialog()
274 } 268 }
275} 269}
276 270
277/** 271/**
278 * Add fresh found devices from scan dialog to the listing 272 * Add fresh found devices from scan dialog to the listing
279 * 273 *
280 */ 274 */
281void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices ) 275void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices )
282{ 276{
283 BTDeviceItem * deviceItem; 277 BTDeviceItem * deviceItem;
284 QValueList<RemoteDevice>::ConstIterator it; 278 QValueList<RemoteDevice>::ConstIterator it;
285 279
286 for( it = newDevices.begin(); it != newDevices.end() ; ++it ) 280 for( it = newDevices.begin(); it != newDevices.end() ; ++it )
287 { 281 {
288 282
289 if (find( (*it) )) // is already inserted 283 if (find( (*it) )) // is already inserted
290 continue; 284 continue;
291 285
292 deviceItem = new BTDeviceItem( devicesView , (*it) ); 286 deviceItem = new BTDeviceItem( devicesView , (*it) );
293 deviceItem->setPixmap( 1, m_findPix ); 287 deviceItem->setPixmap( 1, m_findPix );
294 deviceItem->setExpandable ( true ); 288 deviceItem->setExpandable ( true );
295 289
296 // look if device is avail. atm, async 290 // look if device is avail. atm, async
297 deviceActive( (*it) ); 291 deviceActive( (*it) );
298
299 // ggf auch hier?
300 addServicesToDevice( deviceItem );
301 } 292 }
302} 293}
303 294
304 295
305/** 296/**
306 * Action that is toggled on entrys on click 297 * Action that is toggled on entrys on click
307 */ 298 */
308void BlueBase::startServiceActionClicked( QListViewItem */*item*/ ) 299void BlueBase::startServiceActionClicked( QListViewItem */*item*/ )
309{} 300{}
310 301
311 302
312/** 303/**
313 * Action that are toggled on hold (mostly QPopups i guess) 304 * Action that are toggled on hold (mostly QPopups i guess)
314 */ 305 */
315void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ ) 306void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ )
316{ 307{
317 if (!item ) 308 if (!item )
318 return; 309 return;
319 310
320 QPopupMenu *menu = new QPopupMenu(); 311 QPopupMenu *menu = new QPopupMenu();
321 312
322 if ( static_cast<BTListItem*>( item )->type() == "device") 313 if ( static_cast<BTListItem*>( item )->type() == "device")
323 { 314 {
324 QPopupMenu *groups = new QPopupMenu(); 315 QPopupMenu *groups = new QPopupMenu();
@@ -377,72 +368,81 @@ void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & poin
377 368
378 if ( popup == 0l ) 369 if ( popup == 0l )
379 { 370 {
380 owarn << "factory returned 0l" << oendl; 371 owarn << "factory returned 0l" << oendl;
381 popup = new QPopupMenu(); 372 popup = new QPopupMenu();
382 } 373 }
383 int test1 = popup->insertItem( tr("Test1:"), 2); 374 int test1 = popup->insertItem( tr("Test1:"), 2);
384 375
385 int ret = popup->exec( point ); 376 int ret = popup->exec( point );
386 owarn << "returned from exec() " << oendl; 377 owarn << "returned from exec() " << oendl;
387 if ( ret == -1 ) 378 if ( ret == -1 )
388 { 379 {
389 ; 380 ;
390 } 381 }
391 else if ( ret == test1 ) 382 else if ( ret == test1 )
392 { 383 {
393 ; 384 ;
394 } 385 }
395 delete popup; 386 delete popup;
396 } 387 }
397 delete menu; 388 delete menu;
398} 389}
399 390
400 391
392void BlueBase::addServicesToDevices()
393{
394 odebug << "BlueBase::addServicesToDevices()" << oendl;
395 BTDeviceItem* item = (BTDeviceItem*) devicesView->firstChild();
396 while ( item )
397 {
398 addServicesToDevice( item );
399 item = (BTDeviceItem*) static_cast<QListViewItem*>( item )->nextSibling();
400 }
401}
402
401/** 403/**
402 * Search and display avail. services for a device (on expand from device listing) 404 * Search and display avail. services for a device (on expand from device listing)
403 * @param item the service item returned 405 * @param item the service item returned
404 */ 406 */
405void BlueBase::addServicesToDevice( BTDeviceItem * item ) 407void BlueBase::addServicesToDevice( BTDeviceItem * item )
406{ 408{
407 odebug << "addServicesToDevice" << oendl; 409 odebug << "BlueBase::addServicesToDevice" << oendl;
408 // row of mac adress text(3) 410 // row of mac adress text(3)
409 RemoteDevice device = item->remoteDevice(); 411 RemoteDevice device = item->remoteDevice();
410 m_deviceList.insert( item->mac() , item ); 412 m_deviceList.insert( item->mac() , item );
411 // and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back 413 // and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back
412 m_localDevice->searchServices( device ); 414 m_localDevice->searchServices( device );
413} 415}
414 416
415 417
416/** 418/**
417 * Overloaded. This one it the one that is
418 ted to the foundServices signal
419 * @param device the mac address of the remote device 419 * @param device the mac address of the remote device
420 * @param servicesList the list with the service the device has. 420 * @param servicesList the list with the service the device has.
421 */ 421 */
422void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList ) 422void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList )
423{ 423{
424 odebug << "fill services list" << oendl; 424 odebug << "BlueBase::fill services list" << oendl;
425 425
426 QMap<QString,BTDeviceItem*>::Iterator it; 426 QMap<QString,BTDeviceItem*>::Iterator it;
427 BTDeviceItem* deviceItem = 0; 427 BTDeviceItem* deviceItem = 0;
428 428
429 // get the right devices which requested the search 429 // get the right devices which requested the search
430 it = m_deviceList.find( device ); 430 it = m_deviceList.find( device );
431 if( it == m_deviceList.end() ) 431 if( it == m_deviceList.end() )
432 return; 432 return;
433 deviceItem = it.data(); 433 deviceItem = it.data();
434 434
435 // remove previous entries 435 // remove previous entries
436 QList<QListViewItem> tempList; 436 QList<QListViewItem> tempList;
437 tempList.setAutoDelete( true ); 437 tempList.setAutoDelete( true );
438 QListViewItem * child = deviceItem->firstChild(); 438 QListViewItem * child = deviceItem->firstChild();
439 while( child ) 439 while( child )
440 { 440 {
441 tempList.append( child ); 441 tempList.append( child );
442 child = child->nextSibling(); 442 child = child->nextSibling();
443 } 443 }
444 tempList.clear(); 444 tempList.clear();
445 445
446 QValueList<OpieTooth::Services>::Iterator it2; 446 QValueList<OpieTooth::Services>::Iterator it2;
447 BTServiceItem* serviceItem; 447 BTServiceItem* serviceItem;
448 448
@@ -455,84 +455,81 @@ void BlueBase::addServicesToDevice( const QString& device, Services::ValueList s
455 for( it2 = servicesList.begin(); it2 != servicesList.end(); ++it2 ) 455 for( it2 = servicesList.begin(); it2 != servicesList.end(); ++it2 )
456 { 456 {
457 serviceItem = new BTServiceItem( deviceItem, (*it2) ); 457 serviceItem = new BTServiceItem( deviceItem, (*it2) );
458 list = (*it2).classIdList(); 458 list = (*it2).classIdList();
459 classIt = list.begin(); 459 classIt = list.begin();
460 int classId=0; 460 int classId=0;
461 if ( classIt != list.end() ) 461 if ( classIt != list.end() )
462 { 462 {
463 classId = classIt.key(); 463 classId = classIt.key();
464 } 464 }
465 465
466 serviceItem->setPixmap( 0, m_iconLoader->serviceIcon( classId ) ); 466 serviceItem->setPixmap( 0, m_iconLoader->serviceIcon( classId ) );
467 } 467 }
468 } 468 }
469 else 469 else
470 { 470 {
471 Services s1; 471 Services s1;
472 s1.setServiceName( tr("no services found") ); 472 s1.setServiceName( tr("no services found") );
473 serviceItem = new BTServiceItem( deviceItem, s1 ); 473 serviceItem = new BTServiceItem( deviceItem, s1 );
474 } 474 }
475 // now remove them from the list 475 // now remove them from the list
476 m_deviceList.remove( it ); 476 m_deviceList.remove( it );
477} 477}
478 478
479
480
481
482
483void BlueBase::addSignalStrength() 479void BlueBase::addSignalStrength()
484{ 480{
485 481
486 QListViewItemIterator it( connectionsView ); 482 QListViewItemIterator it( connectionsView );
487 for ( ; it.current(); ++it ) 483 for ( ; it.current(); ++it )
488 { 484 {
489 m_localDevice->signalStrength( ((BTConnectionItem*)it.current() )->connection().mac() ); 485 m_localDevice->signalStrength( ((BTConnectionItem*)it.current() )->connection().mac() );
490 } 486 }
491 487
492 QTimer::singleShot( 5000, this, SLOT( addSignalStrength() ) ); 488 QTimer::singleShot( 5000, this, SLOT( addSignalStrength() ) );
493} 489}
494 490
495void BlueBase::addSignalStrength( const QString& mac, const QString& strength ) 491void BlueBase::addSignalStrength( const QString& mac, const QString& strength )
496{ 492{
497 493
498 QListViewItemIterator it( connectionsView ); 494 QListViewItemIterator it( connectionsView );
499 for ( ; it.current(); ++it ) 495 for ( ; it.current(); ++it )
500 { 496 {
501 if( ((BTConnectionItem*)it.current())->connection().mac() == mac ) 497 if( ((BTConnectionItem*)it.current())->connection().mac() == mac )
502 { 498 {
503 ((BTConnectionItem*)it.current() )->setSignalStrength( strength ); 499 ((BTConnectionItem*)it.current() )->setSignalStrength( strength );
504 } 500 }
505 } 501 }
506} 502}
507 503
508/** 504/**
509 * Add the existing connections (pairs) to the connections tab. 505 * Add the existing connections (pairs) to the connections tab.
510 * This one triggers the search 506 * This one triggers the search
511 */ 507 */
512void BlueBase::addConnectedDevices() 508void BlueBase::addConnectedDevices()
513{ 509{
514 m_localDevice->searchConnections(); 510 m_localDevice->searchConnections();
511 QTimer::singleShot( 5000, this, SLOT( addSignalStrength() ) );
515} 512}
516 513
517/** 514/**
518 * This adds the found connections to the connection tab. 515 * This adds the found connections to the connection tab.
519 * @param connectionList the ValueList with all current connections 516 * @param connectionList the ValueList with all current connections
520 */ 517 */
521void BlueBase::addConnectedDevices( ConnectionState::ValueList connectionList ) 518void BlueBase::addConnectedDevices( ConnectionState::ValueList connectionList )
522{ 519{
523 520
524 QValueList<OpieTooth::ConnectionState>::Iterator it; 521 QValueList<OpieTooth::ConnectionState>::Iterator it;
525 BTConnectionItem * connectionItem; 522 BTConnectionItem * connectionItem;
526 523
527 if ( !connectionList.isEmpty() ) 524 if ( !connectionList.isEmpty() )
528 { 525 {
529 526
530 for (it = connectionList.begin(); it != connectionList.end(); ++it) 527 for (it = connectionList.begin(); it != connectionList.end(); ++it)
531 { 528 {
532 529
533 QListViewItemIterator it2( connectionsView ); 530 QListViewItemIterator it2( connectionsView );
534 bool found = false; 531 bool found = false;
535 for ( ; it2.current(); ++it2 ) 532 for ( ; it2.current(); ++it2 )
536 { 533 {
537 if( ( (BTConnectionItem*)it2.current())->connection().mac() == (*it).mac() ) 534 if( ( (BTConnectionItem*)it2.current())->connection().mac() == (*it).mac() )
538 { 535 {
@@ -594,49 +591,48 @@ void BlueBase::deviceActive( const RemoteDevice &device )
594{ 591{
595 // search by mac, async, gets a signal back 592 // search by mac, async, gets a signal back
596 // We should have a BTDeviceItem there or where does it get added to the map -zecke 593 // We should have a BTDeviceItem there or where does it get added to the map -zecke
597 m_localDevice->isAvailable( device.mac() ); 594 m_localDevice->isAvailable( device.mac() );
598} 595}
599 596
600 597
601/** 598/**
602 * The signal catcher. Set the avail. status on device. 599 * The signal catcher. Set the avail. status on device.
603 * @param device - the mac address 600 * @param device - the mac address
604 * @param connected - if it is avail. or not 601 * @param connected - if it is avail. or not
605 */ 602 */
606void BlueBase::deviceActive( const QString& device, bool connected ) 603void BlueBase::deviceActive( const QString& device, bool connected )
607{ 604{
608 odebug << "deviceActive slot" << oendl; 605 odebug << "deviceActive slot" << oendl;
609 606
610 QMap<QString,BTDeviceItem*>::Iterator it; 607 QMap<QString,BTDeviceItem*>::Iterator it;
611 608
612 it = m_deviceList.find( device ); 609 it = m_deviceList.find( device );
613 if( it == m_deviceList.end() ) 610 if( it == m_deviceList.end() )
614 return; 611 return;
615 612
616 BTDeviceItem* deviceItem = it.data(); 613 BTDeviceItem* deviceItem = it.data();
617 614
618
619 if ( connected ) 615 if ( connected )
620 { 616 {
621 deviceItem->setPixmap( 1, m_onPix ); 617 deviceItem->setPixmap( 1, m_onPix );
622 } 618 }
623 else 619 else
624 { 620 {
625 deviceItem->setPixmap( 1, m_offPix ); 621 deviceItem->setPixmap( 1, m_offPix );
626 } 622 }
627 m_deviceList.remove( it ); 623 m_deviceList.remove( it );
628} 624}
629 625
630 626
631/** 627/**
632 * Open the "scan for devices" dialog 628 * Open the "scan for devices" dialog
633 */ 629 */
634void BlueBase::startScan() 630void BlueBase::startScan()
635{ 631{
636 ScanDialog *scan = new ScanDialog( this, "ScanDialog", 632 ScanDialog *scan = new ScanDialog( this, "ScanDialog",
637 true, WDestructiveClose ); 633 true, WDestructiveClose );
638 QObject::connect( scan, SIGNAL( selectedDevices(const QValueList<RemoteDevice>&) ), 634 QObject::connect( scan, SIGNAL( selectedDevices(const QValueList<RemoteDevice>&) ),
639 this, SLOT( addSearchedDevices(const QValueList<RemoteDevice>&) ) ); 635 this, SLOT( addSearchedDevices(const QValueList<RemoteDevice>&) ) );
640 636
641 QPEApplication::showDialog( scan ); 637 QPEApplication::showDialog( scan );
642} 638}
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
@@ -19,83 +19,84 @@
19#include "bticonloader.h" 19#include "bticonloader.h"
20 20
21#include <remotedevice.h> 21#include <remotedevice.h>
22#include <manager.h> 22#include <manager.h>
23 23
24class QVBox; 24class QVBox;
25class QHBoxLayout; 25class QHBoxLayout;
26class QGridLayout; 26class QGridLayout;
27class QFrame; 27class QFrame;
28class QLabel; 28class QLabel;
29class QPushButton; 29class QPushButton;
30class QTabWidget; 30class QTabWidget;
31class QCheckBox; 31class QCheckBox;
32class BTConnectionItem; 32class BTConnectionItem;
33 33
34 34
35namespace OpieTooth { 35namespace OpieTooth {
36 36
37 class BlueBase : public BluetoothBase { 37 class BlueBase : public BluetoothBase {
38 Q_OBJECT 38 Q_OBJECT
39 39
40 public: 40 public:
41 BlueBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 41 BlueBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
42 ~BlueBase(); 42 ~BlueBase();
43 43
44 static QString appName() { return QString::fromLatin1("bluetooth-manager"); } 44 static QString appName() { return QString::fromLatin1("bluetooth-manager"); }
45 45
46 protected: 46 protected:
47 47
48 48
49 private slots: 49 private slots:
50 void startScan(); 50 void startScan();
51 51
52 52
53 private: 53 private:
54 bool find( const RemoteDevice& device ); 54 bool find( const RemoteDevice& device );
55 void readConfig(); 55 void readConfig();
56 void writeConfig(); 56 void writeConfig();
57 void readSavedDevices(); 57 void readSavedDevices();
58 void writeSavedDevices(); 58 void writeSavedDevices();
59 void writeToHciConfig(); 59 void writeToHciConfig();
60 QString status()const; 60 QString status()const;
61 void initGui(); 61 void initGui();
62 void setInfo(); 62 void setInfo();
63 63
64 PopupHelper m_popHelper; 64 PopupHelper m_popHelper;
65 Manager *m_localDevice; 65 Manager *m_localDevice;
66 QMap<QString,BTDeviceItem*> m_deviceList; 66 QMap<QString,BTDeviceItem*> m_deviceList;
67 67
68 void deviceActive( const RemoteDevice &device ); 68 void deviceActive( const RemoteDevice &device );
69 69
70 QString m_deviceName; 70 QString m_deviceName;
71 QString m_defaultPasskey; 71 QString m_defaultPasskey;
72 bool m_useEncryption; 72 bool m_useEncryption;
73 bool m_enableAuthentification; 73 bool m_enableAuthentification;
74 bool m_enablePagescan; 74 bool m_enablePagescan;
75 bool m_enableInquiryscan; 75 bool m_enableInquiryscan;
76 76
77 QPixmap m_offPix; 77 QPixmap m_offPix;
78 QPixmap m_onPix; 78 QPixmap m_onPix;
79 QPixmap m_findPix; 79 QPixmap m_findPix;
80 80
81 BTIconLoader *m_iconLoader; 81 BTIconLoader *m_iconLoader;
82 82
83 private slots: 83 private slots:
84 void addSearchedDevices( const QValueList<RemoteDevice> &newDevices ); 84 void addSearchedDevices( const QValueList<RemoteDevice> &newDevices );
85 void addServicesToDevices();
85 void addServicesToDevice( BTDeviceItem *item ); 86 void addServicesToDevice( BTDeviceItem *item );
86 void addServicesToDevice( const QString& device, Services::ValueList ); 87 void addServicesToDevice( const QString& device, Services::ValueList );
87 void addConnectedDevices(); 88 void addConnectedDevices();
88 void addConnectedDevices( ConnectionState::ValueList ); 89 void addConnectedDevices( ConnectionState::ValueList );
89 void startServiceActionClicked( QListViewItem *item ); 90 void startServiceActionClicked( QListViewItem *item );
90 void startServiceActionHold( QListViewItem *, const QPoint &, int ); 91 void startServiceActionHold( QListViewItem *, const QPoint &, int );
91 void deviceActive( const QString& mac, bool connected ); 92 void deviceActive( const QString& mac, bool connected );
92 void applyConfigChanges(); 93 void applyConfigChanges();
93 void addSignalStrength(); 94 void addSignalStrength();
94 void addSignalStrength( const QString& mac, const QString& strengh ); 95 void addSignalStrength( const QString& mac, const QString& strengh );
95 void rfcommDialog(); 96 void rfcommDialog();
96 97
97 }; 98 };
98 99
99} 100}
100 101
101#endif 102#endif