summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/manager/bluebase.cpp58
1 files changed, 27 insertions, 31 deletions
diff --git a/noncore/net/opietooth/manager/bluebase.cpp b/noncore/net/opietooth/manager/bluebase.cpp
index 7954cc3..af1cd23 100644
--- a/noncore/net/opietooth/manager/bluebase.cpp
+++ b/noncore/net/opietooth/manager/bluebase.cpp
@@ -128,65 +128,65 @@ void BlueBase::readConfig()
128 m_deviceName = cfg.readEntry( "name" , "No name" ); // name the device should identify with 128 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 129 m_defaultPasskey = cfg.readEntryCrypt( "passkey" , "" ); // <- hmm, look up how good the trolls did that, maybe too weak
130 m_useEncryption = cfg.readBoolEntry( "useEncryption" , TRUE ); 130 m_useEncryption = cfg.readBoolEntry( "useEncryption" , TRUE );
131 m_enableAuthentification = cfg.readBoolEntry( "enableAuthentification" , TRUE ); 131 m_enableAuthentification = cfg.readBoolEntry( "enableAuthentification" , TRUE );
132 m_enablePagescan = cfg.readBoolEntry( "enablePagescan" , TRUE ); 132 m_enablePagescan = cfg.readBoolEntry( "enablePagescan" , TRUE );
133 m_enableInquiryscan = cfg.readBoolEntry( "enableInquiryscan" , TRUE ); 133 m_enableInquiryscan = cfg.readBoolEntry( "enableInquiryscan" , TRUE );
134} 134}
135 135
136/** 136/**
137 * Writes all options to the config file 137 * Writes all options to the config file
138 */ 138 */
139void BlueBase::writeConfig() 139void BlueBase::writeConfig()
140{ 140{
141 141
142 Config cfg( "bluetoothmanager" ); 142 Config cfg( "bluetoothmanager" );
143 cfg.setGroup( "bluezsettings" ); 143 cfg.setGroup( "bluezsettings" );
144 144
145 cfg.writeEntry( "name" , m_deviceName ); 145 cfg.writeEntry( "name" , m_deviceName );
146 cfg.writeEntryCrypt( "passkey" , m_defaultPasskey ); 146 cfg.writeEntryCrypt( "passkey" , m_defaultPasskey );
147 cfg.writeEntry( "useEncryption" , m_useEncryption ); 147 cfg.writeEntry( "useEncryption" , m_useEncryption );
148 cfg.writeEntry( "enableAuthentification" , m_enableAuthentification ); 148 cfg.writeEntry( "enableAuthentification" , m_enableAuthentification );
149 cfg.writeEntry( "enablePagescan" , m_enablePagescan ); 149 cfg.writeEntry( "enablePagescan" , m_enablePagescan );
150 cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan ); 150 cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan );
151 151
152 writeToHciConfig(); 152 writeToHciConfig();
153} 153}
154 154
155/** 155/**
156 * Modify the hcid.conf file to our needs 156 * Modify the hcid.conf file to our needs
157 */ 157 */
158void BlueBase::writeToHciConfig() 158void BlueBase::writeToHciConfig()
159{ 159{
160 owarn << "writeToHciConfig" << oendl; 160 owarn << "writeToHciConfig" << oendl;
161 HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" ); 161 HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" );
162 hciconf.load(); 162 hciconf.load();
163 hciconf.setPinHelper( QPEApplication::qpeDir() + "bin/bluepin" ); 163 hciconf.setPinHelper( QPEApplication::qpeDir() + "bin/bluepin" );
164 hciconf.setName( m_deviceName ); 164 hciconf.setName( m_deviceName );
165 hciconf.setEncrypt( m_useEncryption ); 165 hciconf.setEncrypt( m_useEncryption );
166 hciconf.setAuth( m_enableAuthentification ); 166 hciconf.setAuth( m_enableAuthentification );
167 hciconf.setPscan( m_enablePagescan ); 167 hciconf.setPscan( m_enablePagescan );
168 hciconf.setIscan( m_enableInquiryscan ); 168 hciconf.setIscan( m_enableInquiryscan );
169 hciconf.save(); 169 hciconf.save();
170} 170}
171 171
172 172
173/** 173/**
174 * Read the list of allready known devices 174 * Read the list of allready known devices
175 */ 175 */
176void BlueBase::readSavedDevices() 176void BlueBase::readSavedDevices()
177{ 177{
178 178
179 QValueList<RemoteDevice> loadedDevices; 179 QValueList<RemoteDevice> loadedDevices;
180 DeviceHandler handler; 180 DeviceHandler handler;
181 loadedDevices = handler.load(); 181 loadedDevices = handler.load();
182 182
183 addSearchedDevices( loadedDevices ); 183 addSearchedDevices( loadedDevices );
184} 184}
185 185
186 186
187/** 187/**
188 * Write the list of allready known devices 188 * Write the list of allready known devices
189 */ 189 */
190void BlueBase::writeSavedDevices() 190void BlueBase::writeSavedDevices()
191{ 191{
192 QListViewItemIterator it( devicesView ); 192 QListViewItemIterator it( devicesView );
@@ -289,172 +289,168 @@ void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices )
289 if (find( (*it) )) // is already inserted 289 if (find( (*it) )) // is already inserted
290 continue; 290 continue;
291 291
292 deviceItem = new BTDeviceItem( devicesView , (*it) ); 292 deviceItem = new BTDeviceItem( devicesView , (*it) );
293 deviceItem->setPixmap( 1, m_findPix ); 293 deviceItem->setPixmap( 1, m_findPix );
294 deviceItem->setExpandable ( true ); 294 deviceItem->setExpandable ( true );
295 295
296 // look if device is avail. atm, async 296 // look if device is avail. atm, async
297 deviceActive( (*it) ); 297 deviceActive( (*it) );
298 298
299 // ggf auch hier? 299 // ggf auch hier?
300 addServicesToDevice( deviceItem ); 300 addServicesToDevice( deviceItem );
301 } 301 }
302} 302}
303 303
304 304
305/** 305/**
306 * Action that is toggled on entrys on click 306 * Action that is toggled on entrys on click
307 */ 307 */
308void BlueBase::startServiceActionClicked( QListViewItem */*item*/ ) 308void BlueBase::startServiceActionClicked( QListViewItem */*item*/ )
309{} 309{}
310 310
311 311
312/** 312/**
313 * Action that are toggled on hold (mostly QPopups i guess) 313 * Action that are toggled on hold (mostly QPopups i guess)
314 */ 314 */
315void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ ) 315void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ )
316{ 316{
317 if (!item ) 317 if (!item )
318 return; 318 return;
319 319
320 QPopupMenu *menu = new QPopupMenu(); 320 QPopupMenu *menu = new QPopupMenu();
321 int ret=0;
322 321
323 if ( ((BTListItem*)item)->type() == "device") 322 if ( static_cast<BTListItem*>( item )->type() == "device")
324 { 323 {
325
326 QPopupMenu *groups = new QPopupMenu(); 324 QPopupMenu *groups = new QPopupMenu();
327 325
328 menu->insertItem( ((BTDeviceItem*)item)->name(),0 ); 326 menu->insertItem( static_cast<BTDeviceItem*>( item )->name(), 0 );
329 menu->insertSeparator(1); 327 menu->insertSeparator( 1 );
330 menu->insertItem( tr("rescan sevices"), 2); 328 menu->insertItem( tr( "&Rescan services" ), 2);
331 menu->insertItem( tr("to group"), groups , 3); 329 // menu->insertItem( tr( "&Add to group" ), groups, 3);
332 menu->insertItem( tr("delete"), 4); 330 menu->insertItem( tr( "&Delete"), 4);
333 331 int ret = menu->exec( point, 0);
334 ret = menu->exec( point , 0);
335 332
336 switch(ret) 333 switch(ret)
337 { 334 {
338 case -1: 335 case -1:
339 break; 336 break;
340 case 2: 337 case 2:
341 addServicesToDevice( (BTDeviceItem*)item ); 338 addServicesToDevice( static_cast<BTDeviceItem*>( item ) );
342 break; 339 break;
343 340
344 case 4: 341 case 4:
345 // deletes childs too 342 // deletes childs too
346 delete item; 343 delete item;
347 break; 344 break;
348 } 345 }
349 delete groups; 346 // delete groups;
350
351 } 347 }
352 348
353 /* 349 /*
354 * We got service sensitive PopupMenus in our factory 350 * We got service sensitive PopupMenus in our factory
355 * We will create one through the factory and will insert 351 * We will create one through the factory and will insert
356 * our Separator + ShowInfo into the menu or create a new 352 * our Separator + ShowInfo into the menu or create a new
357 * one if the factory returns 0 353 * one if the factory returns 0
358 * PopupMenu deletion is kind of weird. 354 * PopupMenu deletion is kind of weird.
359 * If escaped( -1 ) or any of our items were chosen we'll 355 * If escaped( -1 ) or any of our items were chosen we'll
360 * delete the PopupMenu otherwise it's the responsibility of 356 * delete the PopupMenu otherwise it's the responsibility of
361 * the PopupMenu to delete itself 357 * the PopupMenu to delete itself
362 * 358 *
363 */ 359 */
364 else if ( ((BTListItem*)item)->type() == "service") 360 else if ( ((BTListItem*)item)->type() == "service")
365 { 361 {
366 BTServiceItem* service = (BTServiceItem*)item; 362 BTServiceItem* service = (BTServiceItem*)item;
367 QMap<int, QString> list = service->services().classIdList(); 363 QMap<int, QString> list = service->services().classIdList();
368 QMap<int, QString>::Iterator it = list.begin(); 364 QMap<int, QString>::Iterator it = list.begin();
369 QPopupMenu *popup =0l; 365 QPopupMenu *popup =0l;
370 if ( it != list.end() ) 366 if ( it != list.end() )
371 { 367 {
372 owarn << "Searching id " << it.key() << " " << it.data().latin1() << "" << oendl; 368 owarn << "Searching id " << it.key() << " " << it.data().latin1() << "" << oendl;
373 popup = m_popHelper.find( it.key(), 369 popup = m_popHelper.find( it.key(),
374 service->services(), 370 service->services(),
375 (BTDeviceItem*)service->parent() ); 371 (BTDeviceItem*)service->parent() );
376 } 372 }
377 else 373 else
378 { 374 {
379 owarn << "Empty" << oendl; 375 owarn << "Empty" << oendl;
380 } 376 }
381 377
382 if ( popup == 0l ) 378 if ( popup == 0l )
383 { 379 {
384 owarn << "factory returned 0l" << oendl; 380 owarn << "factory returned 0l" << oendl;
385 popup = new QPopupMenu(); 381 popup = new QPopupMenu();
386 } 382 }
387 int test1 = popup->insertItem( tr("Test1:"), 2); 383 int test1 = popup->insertItem( tr("Test1:"), 2);
388 384
389 ret = popup->exec( point ); 385 int ret = popup->exec( point );
390 owarn << "returned from exec() " << oendl; 386 owarn << "returned from exec() " << oendl;
391 if ( ret == -1 ) 387 if ( ret == -1 )
392 { 388 {
393 ; 389 ;
394 } 390 }
395 else if ( ret == test1 ) 391 else if ( ret == test1 )
396 { 392 {
397 ; 393 ;
398 } 394 }
399 delete popup; 395 delete popup;
400 } 396 }
401 delete menu; 397 delete menu;
402} 398}
403 399
404 400
405/** 401/**
406 * Search and display avail. services for a device (on expand from device listing) 402 * Search and display avail. services for a device (on expand from device listing)
407 * @param item the service item returned 403 * @param item the service item returned
408 */ 404 */
409void BlueBase::addServicesToDevice( BTDeviceItem * item ) 405void BlueBase::addServicesToDevice( BTDeviceItem * item )
410{ 406{
411 odebug << "addServicesToDevice" << oendl; 407 odebug << "addServicesToDevice" << oendl;
412 // row of mac adress text(3) 408 // row of mac adress text(3)
413 RemoteDevice device = item->remoteDevice(); 409 RemoteDevice device = item->remoteDevice();
414 m_deviceList.insert( item->mac() , item ); 410 m_deviceList.insert( item->mac() , item );
415 // and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back 411 // and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back
416 m_localDevice->searchServices( device ); 412 m_localDevice->searchServices( device );
417} 413}
418 414
419 415
420/** 416/**
421 * Overloaded. This one it the one that is 417 * Overloaded. This one it the one that is
422 ted to the foundServices signal 418 ted to the foundServices signal
423 * @param device the mac address of the remote device 419 * @param device the mac address of the remote device
424 * @param servicesList the list with the service the device has. 420 * @param servicesList the list with the service the device has.
425 */ 421 */
426void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList ) 422void BlueBase::addServicesToDevice( const QString& device, Services::ValueList servicesList )
427{ 423{
428 odebug << "fill services list" << oendl; 424 odebug << "fill services list" << oendl;
429 425
430 QMap<QString,BTDeviceItem*>::Iterator it; 426 QMap<QString,BTDeviceItem*>::Iterator it;
431 BTDeviceItem* deviceItem = 0; 427 BTDeviceItem* deviceItem = 0;
432 428
433 // get the right devices which requested the search 429 // get the right devices which requested the search
434 it = m_deviceList.find( device ); 430 it = m_deviceList.find( device );
435 if( it == m_deviceList.end() ) 431 if( it == m_deviceList.end() )
436 return; 432 return;
437 deviceItem = it.data(); 433 deviceItem = it.data();
438 434
439 // remove previous entries 435 // remove previous entries
440 QList<QListViewItem> tempList; 436 QList<QListViewItem> tempList;
441 tempList.setAutoDelete( true ); 437 tempList.setAutoDelete( true );
442 QListViewItem * child = deviceItem->firstChild(); 438 QListViewItem * child = deviceItem->firstChild();
443 while( child ) 439 while( child )
444 { 440 {
445 tempList.append( child ); 441 tempList.append( child );
446 child = child->nextSibling(); 442 child = child->nextSibling();
447 } 443 }
448 tempList.clear(); 444 tempList.clear();
449 445
450 QValueList<OpieTooth::Services>::Iterator it2; 446 QValueList<OpieTooth::Services>::Iterator it2;
451 BTServiceItem* serviceItem; 447 BTServiceItem* serviceItem;
452 448
453 449
454 if (!servicesList.isEmpty() ) 450 if (!servicesList.isEmpty() )
455 { 451 {
456 // add services 452 // add services
457 QMap<int, QString> list; 453 QMap<int, QString> list;
458 QMap<int, QString>::Iterator classIt; 454 QMap<int, QString>::Iterator classIt;
459 for( it2 = servicesList.begin(); it2 != servicesList.end(); ++it2 ) 455 for( it2 = servicesList.begin(); it2 != servicesList.end(); ++it2 )
460 { 456 {
@@ -580,65 +576,65 @@ void BlueBase::addConnectedDevices( ConnectionState::ValueList connectionList )
580 else 576 else
581 { 577 {
582 connectionsView->clear(); 578 connectionsView->clear();
583 ConnectionState con; 579 ConnectionState con;
584 con.setMac( tr("No connections found") ); 580 con.setMac( tr("No connections found") );
585 connectionItem = new BTConnectionItem( connectionsView , con ); 581 connectionItem = new BTConnectionItem( connectionsView , con );
586 } 582 }
587 583
588 // recall connection search after some time 584 // recall connection search after some time
589 QTimer::singleShot( 15000, this, SLOT( addConnectedDevices() ) ); 585 QTimer::singleShot( 15000, this, SLOT( addConnectedDevices() ) );
590} 586}
591 587
592 588
593/** 589/**
594 * Find out if a device can currently be reached 590 * Find out if a device can currently be reached
595 * @param device 591 * @param device
596 */ 592 */
597void BlueBase::deviceActive( const RemoteDevice &device ) 593void BlueBase::deviceActive( const RemoteDevice &device )
598{ 594{
599 // search by mac, async, gets a signal back 595 // search by mac, async, gets a signal back
600 // We should have a BTDeviceItem there or where does it get added to the map -zecke 596 // We should have a BTDeviceItem there or where does it get added to the map -zecke
601 m_localDevice->isAvailable( device.mac() ); 597 m_localDevice->isAvailable( device.mac() );
602} 598}
603 599
604 600
605/** 601/**
606 * The signal catcher. Set the avail. status on device. 602 * The signal catcher. Set the avail. status on device.
607 * @param device - the mac address 603 * @param device - the mac address
608 * @param connected - if it is avail. or not 604 * @param connected - if it is avail. or not
609 */ 605 */
610void BlueBase::deviceActive( const QString& device, bool connected ) 606void BlueBase::deviceActive( const QString& device, bool connected )
611{ 607{
612 odebug << "deviceActive slot" << oendl; 608 odebug << "deviceActive slot" << oendl;
613 609
614 QMap<QString,BTDeviceItem*>::Iterator it; 610 QMap<QString,BTDeviceItem*>::Iterator it;
615 611
616 it = m_deviceList.find( device ); 612 it = m_deviceList.find( device );
617 if( it == m_deviceList.end() ) 613 if( it == m_deviceList.end() )
618 return; 614 return;
619 615
620 BTDeviceItem* deviceItem = it.data(); 616 BTDeviceItem* deviceItem = it.data();
621 617
622 618
623 if ( connected ) 619 if ( connected )
624 { 620 {
625 deviceItem->setPixmap( 1, m_onPix ); 621 deviceItem->setPixmap( 1, m_onPix );
626 } 622 }
627 else 623 else
628 { 624 {
629 deviceItem->setPixmap( 1, m_offPix ); 625 deviceItem->setPixmap( 1, m_offPix );
630 } 626 }
631 m_deviceList.remove( it ); 627 m_deviceList.remove( it );
632} 628}
633 629
634 630
635/** 631/**
636 * Open the "scan for devices" dialog 632 * Open the "scan for devices" dialog
637 */ 633 */
638void BlueBase::startScan() 634void BlueBase::startScan()
639{ 635{
640 ScanDialog *scan = new ScanDialog( this, "ScanDialog", 636 ScanDialog *scan = new ScanDialog( this, "ScanDialog",
641 true, WDestructiveClose ); 637 true, WDestructiveClose );
642 QObject::connect( scan, SIGNAL( selectedDevices(const QValueList<RemoteDevice>&) ), 638 QObject::connect( scan, SIGNAL( selectedDevices(const QValueList<RemoteDevice>&) ),
643 this, SLOT( addSearchedDevices(const QValueList<RemoteDevice>&) ) ); 639 this, SLOT( addSearchedDevices(const QValueList<RemoteDevice>&) ) );
644 640