summaryrefslogtreecommitdiff
path: root/noncore
Unidiff
Diffstat (limited to 'noncore') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/manager/bluebase.cpp35
1 files changed, 26 insertions, 9 deletions
diff --git a/noncore/net/opietooth/manager/bluebase.cpp b/noncore/net/opietooth/manager/bluebase.cpp
index 598ce16..d2854a1 100644
--- a/noncore/net/opietooth/manager/bluebase.cpp
+++ b/noncore/net/opietooth/manager/bluebase.cpp
@@ -134,55 +134,55 @@ void BlueBase::writeConfig() {
134 cfg.setGroup( "bluezsettings" ); 134 cfg.setGroup( "bluezsettings" );
135 135
136 cfg.writeEntry( "name" , m_deviceName ); 136 cfg.writeEntry( "name" , m_deviceName );
137 cfg.writeEntryCrypt( "passkey" , m_defaultPasskey ); 137 cfg.writeEntryCrypt( "passkey" , m_defaultPasskey );
138 cfg.writeEntry( "useEncryption" , m_useEncryption ); 138 cfg.writeEntry( "useEncryption" , m_useEncryption );
139 cfg.writeEntry( "enableAuthentification" , m_enableAuthentification ); 139 cfg.writeEntry( "enableAuthentification" , m_enableAuthentification );
140 cfg.writeEntry( "enablePagescan" , m_enablePagescan ); 140 cfg.writeEntry( "enablePagescan" , m_enablePagescan );
141 cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan ); 141 cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan );
142 142
143 writeToHciConfig(); 143 writeToHciConfig();
144} 144}
145 145
146/**
147 * Modify the hcid.conf file to our needs
148 */
146void BlueBase::writeToHciConfig() { 149void BlueBase::writeToHciConfig() {
147 qWarning("writeToHciConfig"); 150 qWarning("writeToHciConfig");
148 HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" ); 151 HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" );
149 hciconf.load(); 152 hciconf.load();
150 hciconf.setPinHelper( "/bin/QtPalmtop/bin/blue-pin" ); 153 hciconf.setPinHelper( "/bin/QtPalmtop/bin/blue-pin" );
151
152
153 // hciconf->setPinHelper( "/bin/QtPalmtop/bin/blue-pin" );
154
155 hciconf.setName( m_deviceName ); 154 hciconf.setName( m_deviceName );
156 hciconf.setEncrypt( m_useEncryption ); 155 hciconf.setEncrypt( m_useEncryption );
157 hciconf.setAuth( m_enableAuthentification ); 156 hciconf.setAuth( m_enableAuthentification );
158 hciconf.setPscan( m_enablePagescan ); 157 hciconf.setPscan( m_enablePagescan );
159 hciconf.setIscan( m_enableInquiryscan ); 158 hciconf.setIscan( m_enableInquiryscan );
160 hciconf.save(); 159 hciconf.save();
161} 160}
162 161
163 162
164/** 163/**
165 * Read the list of allready known devices 164 * Read the list of allready known devices
166 * 165 *
167 */ 166 */
168void BlueBase::readSavedDevices() { 167void BlueBase::readSavedDevices() {
169 168
170 QValueList<RemoteDevice> loadedDevices; 169 QValueList<RemoteDevice> loadedDevices;
171 DeviceHandler handler; 170 DeviceHandler handler;
172 loadedDevices = handler.load(); 171 loadedDevices = handler.load();
173 172
174 addSearchedDevices( loadedDevices ); 173 addSearchedDevices( loadedDevices );
175} 174}
176 175
176
177/** 177/**
178 * Write the list of allready known devices 178 * Write the list of allready known devices
179 * 179 *
180 */ 180 */
181void BlueBase::writeSavedDevices() { 181void BlueBase::writeSavedDevices() {
182 QListViewItemIterator it( ListView2 ); 182 QListViewItemIterator it( ListView2 );
183 BTListItem* item; 183 BTListItem* item;
184 BTDeviceItem* device; 184 BTDeviceItem* device;
185 RemoteDevice::ValueList list; 185 RemoteDevice::ValueList list;
186 for ( ; it.current(); ++it ) { 186 for ( ; it.current(); ++it ) {
187 item = (BTListItem*)it.current(); 187 item = (BTListItem*)it.current();
188 if(item->typeId() != BTListItem::Device ) 188 if(item->typeId() != BTListItem::Device )
@@ -268,24 +268,25 @@ void BlueBase::addSearchedDevices( const QValueList<RemoteDevice> &newDevices )
268 // ggf auch hier? 268 // ggf auch hier?
269 addServicesToDevice( deviceItem ); 269 addServicesToDevice( deviceItem );
270 } 270 }
271} 271}
272 272
273 273
274/** 274/**
275 * Action that is toggled on entrys on click 275 * Action that is toggled on entrys on click
276 */ 276 */
277void BlueBase::startServiceActionClicked( QListViewItem */*item*/ ) { 277void BlueBase::startServiceActionClicked( QListViewItem */*item*/ ) {
278} 278}
279 279
280
280/** 281/**
281 * Action that are toggled on hold (mostly QPopups i guess) 282 * Action that are toggled on hold (mostly QPopups i guess)
282 */ 283 */
283void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ ) { 284void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & point, int /*column*/ ) {
284 285
285 QPopupMenu *menu = new QPopupMenu(); 286 QPopupMenu *menu = new QPopupMenu();
286 int ret=0; 287 int ret=0;
287 288
288 if ( ((BTListItem*)item)->type() == "device") { 289 if ( ((BTListItem*)item)->type() == "device") {
289 290
290 QPopupMenu *groups = new QPopupMenu(); 291 QPopupMenu *groups = new QPopupMenu();
291 292
@@ -304,25 +305,26 @@ void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & poin
304 break; 305 break;
305 case 2: 306 case 2:
306 // make connection 307 // make connection
307 break; 308 break;
308 case 3: 309 case 3:
309 // delete childs too 310 // delete childs too
310 delete item; 311 delete item;
311 break; 312 break;
312 } 313 }
313 delete groups; 314 delete groups;
314 315
315 } 316 }
316 /** 317
318 /*
317 * We got service sensitive PopupMenus in our factory 319 * We got service sensitive PopupMenus in our factory
318 * We will create one through the factory and will insert 320 * We will create one through the factory and will insert
319 * our Separator + ShowInfo into the menu or create a new 321 * our Separator + ShowInfo into the menu or create a new
320 * one if the factory returns 0 322 * one if the factory returns 0
321 * PopupMenu deletion is kind of weird. 323 * PopupMenu deletion is kind of weird.
322 * If escaped( -1 ) or any of our items were chosen we'll 324 * If escaped( -1 ) or any of our items were chosen we'll
323 * delete the PopupMenu otherwise it's the responsibility of 325 * delete the PopupMenu otherwise it's the responsibility of
324 * the PopupMenu to delete itself 326 * the PopupMenu to delete itself
325 * 327 *
326 */ 328 */
327 else if ( ((BTListItem*)item)->type() == "service") { 329 else if ( ((BTListItem*)item)->type() == "service") {
328 BTServiceItem* service = (BTServiceItem*)item; 330 BTServiceItem* service = (BTServiceItem*)item;
@@ -354,28 +356,29 @@ void BlueBase::startServiceActionHold( QListViewItem * item, const QPoint & poin
354 else if ( ret == test1 ) 356 else if ( ret == test1 )
355 delete popup; 357 delete popup;
356 else if ( ret == con ) 358 else if ( ret == con )
357 delete popup; 359 delete popup;
358 else if ( ret == del ) { 360 else if ( ret == del ) {
359 // take item first? -zecke 361 // take item first? -zecke
360 delete item; 362 delete item;
361 } 363 }
362 } 364 }
363 delete menu; 365 delete menu;
364} 366}
365 367
366 /** 368
367 * Search and display avail. services for a device (on expand from device listing) 369/**
368 * 370 * Search and display avail. services for a device (on expand from device listing)
369 */ 371 * @param item the service item returned
372 */
370void BlueBase::addServicesToDevice( BTDeviceItem * item ) { 373void BlueBase::addServicesToDevice( BTDeviceItem * item ) {
371 qDebug("addServicesToDevice"); 374 qDebug("addServicesToDevice");
372 // row of mac adress text(3) 375 // row of mac adress text(3)
373 RemoteDevice device = item->remoteDevice(); 376 RemoteDevice device = item->remoteDevice();
374 m_deviceList.insert( item->mac() , item ); 377 m_deviceList.insert( item->mac() , item );
375 // and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back 378 // and some time later I get a signal foundServices( const QString& device, Services::ValueList ); back
376 m_localDevice->searchServices( device ); 379 m_localDevice->searchServices( device );
377} 380}
378 381
379 382
380/** 383/**
381 * Overloaded. This one it the one that is connected to the foundServices signal 384 * Overloaded. This one it the one that is connected to the foundServices signal
@@ -421,52 +424,63 @@ void BlueBase::addServicesToDevice( const QString& device, Services::ValueList s
421} 424}
422 425
423 426
424/** 427/**
425 * Add the existing connections (pairs) to the connections tab. 428 * Add the existing connections (pairs) to the connections tab.
426 * This one triggers the search 429 * This one triggers the search
427 */ 430 */
428void BlueBase::addConnectedDevices() { 431void BlueBase::addConnectedDevices() {
429 m_localDevice->searchConnections(); 432 m_localDevice->searchConnections();
430} 433}
431 434
432 435
436/**
437 * This adds the found connections to the connection tab.
438 * @param connectionList the ValueList with all current connections
439 */
433void BlueBase::addConnectedDevices( ConnectionState::ValueList connectionList ) { 440void BlueBase::addConnectedDevices( ConnectionState::ValueList connectionList ) {
441
442 // clear the ListView first
443 ListView4->clear();
444
434 QValueList<OpieTooth::ConnectionState>::Iterator it; 445 QValueList<OpieTooth::ConnectionState>::Iterator it;
435 BTConnectionItem * connectionItem; 446 BTConnectionItem * connectionItem;
436 447
437 if ( !connectionList.isEmpty() ) { 448 if ( !connectionList.isEmpty() ) {
438 449
439 for (it = connectionList.begin(); it != connectionList.end(); ++it) { 450 for (it = connectionList.begin(); it != connectionList.end(); ++it) {
440 connectionItem = new BTConnectionItem( ListView4 , (*it) ); 451 connectionItem = new BTConnectionItem( ListView4 , (*it) );
441 } 452 }
442 } else { 453 } else {
443 ConnectionState con; 454 ConnectionState con;
444 con.setMac( tr("No connections found") ); 455 con.setMac( tr("No connections found") );
445 connectionItem = new BTConnectionItem( ListView4 , con ); 456 connectionItem = new BTConnectionItem( ListView4 , con );
446 } 457 }
447 458
448 // recall connection search after some time 459 // recall connection search after some time
449 QTimer::singleShot( 20000, this, SLOT( addConnectedDevices() ) ); 460 QTimer::singleShot( 20000, this, SLOT( addConnectedDevices() ) );
450} 461}
451 462
463
452/** 464/**
453 * Find out if a device can currently be reached 465 * Find out if a device can currently be reached
466 * @param device
454 */ 467 */
455void BlueBase::deviceActive( const RemoteDevice &device ) { 468void BlueBase::deviceActive( const RemoteDevice &device ) {
456 // search by mac, async, gets a signal back 469 // search by mac, async, gets a signal back
457 // We should have a BTDeviceItem there or where does it get added to the map -zecke 470 // We should have a BTDeviceItem there or where does it get added to the map -zecke
458 m_localDevice->isAvailable( device.mac() ); 471 m_localDevice->isAvailable( device.mac() );
459} 472}
460 473
474
461/** 475/**
462 * The signal catcher. Set the avail. status on device. 476 * The signal catcher. Set the avail. status on device.
463 * @param device - the mac address 477 * @param device - the mac address
464 * @param connected - if it is avail. or not 478 * @param connected - if it is avail. or not
465 */ 479 */
466void BlueBase::deviceActive( const QString& device, bool connected ) { 480void BlueBase::deviceActive( const QString& device, bool connected ) {
467 qDebug("deviceActive slot"); 481 qDebug("deviceActive slot");
468 482
469 QMap<QString,BTDeviceItem*>::Iterator it; 483 QMap<QString,BTDeviceItem*>::Iterator it;
470 484
471 it = m_deviceList.find( device ); 485 it = m_deviceList.find( device );
472 if( it == m_deviceList.end() ) 486 if( it == m_deviceList.end() )
@@ -474,52 +488,55 @@ void BlueBase::deviceActive( const QString& device, bool connected ) {
474 488
475 BTDeviceItem* deviceItem = it.data(); 489 BTDeviceItem* deviceItem = it.data();
476 490
477 491
478 if ( connected ) { 492 if ( connected ) {
479 deviceItem->setPixmap( 1, m_onPix ); 493 deviceItem->setPixmap( 1, m_onPix );
480 } else { 494 } else {
481 deviceItem->setPixmap( 1, m_offPix ); 495 deviceItem->setPixmap( 1, m_offPix );
482 } 496 }
483 m_deviceList.remove( it ); 497 m_deviceList.remove( it );
484} 498}
485 499
500
486/** 501/**
487 * Open the "scan for devices" dialog 502 * Open the "scan for devices" dialog
488 */ 503 */
489void BlueBase::startScan() { 504void BlueBase::startScan() {
490 ScanDialog *scan = new ScanDialog( this, "ScanDialog", 505 ScanDialog *scan = new ScanDialog( this, "ScanDialog",
491 true, WDestructiveClose ); 506 true, WDestructiveClose );
492 QObject::connect( scan, SIGNAL( selectedDevices( const QValueList<RemoteDevice>& ) ), 507 QObject::connect( scan, SIGNAL( selectedDevices( const QValueList<RemoteDevice>& ) ),
493 this, SLOT( addSearchedDevices( const QValueList<RemoteDevice>& ) ) ); 508 this, SLOT( addSearchedDevices( const QValueList<RemoteDevice>& ) ) );
494 509
495 scan->showMaximized(); 510 scan->showMaximized();
496} 511}
497 512
498 513
499/** 514/**
500 * Set the informations about the local device in information Tab 515 * Set the informations about the local device in information Tab
501 */ 516 */
502void BlueBase::setInfo() { 517void BlueBase::setInfo() {
503 StatusLabel->setText( status() ); 518 StatusLabel->setText( status() );
504} 519}
505 520
521
506/** 522/**
507 * Decontructor 523 * Decontructor
508 */ 524 */
509BlueBase::~BlueBase() { 525BlueBase::~BlueBase() {
510 writeSavedDevices(); 526 writeSavedDevices();
511 delete m_iconLoader; 527 delete m_iconLoader;
512} 528}
513 529
530
514/** 531/**
515 * find searches the ListView for a BTDeviceItem containig 532 * find searches the ListView for a BTDeviceItem containig
516 * the same Device if found return true else false 533 * the same Device if found return true else false
517 * @param dev RemoteDevice to find 534 * @param dev RemoteDevice to find
518 * @return returns true if found 535 * @return returns true if found
519 */ 536 */
520bool BlueBase::find( const RemoteDevice& rem ) { 537bool BlueBase::find( const RemoteDevice& rem ) {
521 QListViewItemIterator it( ListView2 ); 538 QListViewItemIterator it( ListView2 );
522 BTListItem* item; 539 BTListItem* item;
523 BTDeviceItem* device; 540 BTDeviceItem* device;
524 for (; it.current(); ++it ) { 541 for (; it.current(); ++it ) {
525 item = (BTListItem*) it.current(); 542 item = (BTListItem*) it.current();