Diffstat (limited to 'noncore/settings/networksettings/wlan/wlanimp2.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/settings/networksettings/wlan/wlanimp2.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/noncore/settings/networksettings/wlan/wlanimp2.cpp b/noncore/settings/networksettings/wlan/wlanimp2.cpp index 5cb78cf..11dfe74 100644 --- a/noncore/settings/networksettings/wlan/wlanimp2.cpp +++ b/noncore/settings/networksettings/wlan/wlanimp2.cpp | |||
@@ -361,25 +361,26 @@ void WLANImp::rescanNeighbourhood() | |||
361 | return; | 361 | return; |
362 | } | 362 | } |
363 | 363 | ||
364 | // open a packet capturer | 364 | // open a packet capturer |
365 | OPacketCapturer* cap = new OPacketCapturer(); | 365 | OPacketCapturer* cap = new OPacketCapturer(); |
366 | cap->open( name ); | 366 | cap->open( name ); |
367 | if ( !cap->isOpen() ) | 367 | if ( !cap->isOpen() ) |
368 | { | 368 | { |
369 | owarn << "rescanNeighbourhood(): Unable to open libpcap (" << strerror( errno ) << ")." << oendl; | 369 | owarn << "rescanNeighbourhood(): Unable to open libpcap (" << strerror( errno ) << ")." << oendl; |
370 | return; | 370 | return; |
371 | } | 371 | } |
372 | 372 | ||
373 | // display splash screen | 373 | // disable button and display splash screen |
374 | rescanButton->setEnabled( false ); | ||
374 | QFrame* splash = new QFrame( this, "splash", false, WStyle_StaysOnTop | WStyle_DialogBorder | WStyle_Customize ); | 375 | QFrame* splash = new QFrame( this, "splash", false, WStyle_StaysOnTop | WStyle_DialogBorder | WStyle_Customize ); |
375 | splash->setLineWidth( 2 ); | 376 | splash->setLineWidth( 2 ); |
376 | splash->setFrameStyle( QFrame::Panel | QFrame::Raised ); | 377 | splash->setFrameStyle( QFrame::Panel | QFrame::Raised ); |
377 | QVBoxLayout* vbox = new QVBoxLayout( splash, 4, 4 ); | 378 | QVBoxLayout* vbox = new QVBoxLayout( splash, 4, 4 ); |
378 | QLabel* lab = new QLabel( "<center><b>Scanning...</b><br>Please Wait...</center>", splash ); | 379 | QLabel* lab = new QLabel( "<center><b>Scanning...</b><br>Please Wait...</center>", splash ); |
379 | QProgressBar* pb = new QProgressBar( wiface->channels(), splash ); | 380 | QProgressBar* pb = new QProgressBar( wiface->channels(), splash ); |
380 | vbox->addWidget( lab ); | 381 | vbox->addWidget( lab ); |
381 | vbox->addWidget( pb ); | 382 | vbox->addWidget( pb ); |
382 | pb->setCenterIndicator( true ); | 383 | pb->setCenterIndicator( true ); |
383 | pb->setFixedHeight( pb->sizeHint().height() ); | 384 | pb->setFixedHeight( pb->sizeHint().height() ); |
384 | QWidget* widgetDesktop = qApp->desktop(); | 385 | QWidget* widgetDesktop = qApp->desktop(); |
385 | int dw = widgetDesktop->width(); | 386 | int dw = widgetDesktop->width(); |
@@ -407,27 +408,28 @@ void WLANImp::rescanNeighbourhood() | |||
407 | } | 408 | } |
408 | else | 409 | else |
409 | { | 410 | { |
410 | odebug << "rescanNeighbourhood(): TADAA - something came in on channel " << i << "" << oendl; | 411 | odebug << "rescanNeighbourhood(): TADAA - something came in on channel " << i << "" << oendl; |
411 | handlePacket( p ); | 412 | handlePacket( p ); |
412 | } | 413 | } |
413 | } | 414 | } |
414 | 415 | ||
415 | cap->close(); | 416 | cap->close(); |
416 | wiface->setMode( "managed" ); // TODO: use previous mode | 417 | wiface->setMode( "managed" ); // TODO: use previous mode |
417 | wiface->setPromiscuousMode( false ); | 418 | wiface->setPromiscuousMode( false ); |
418 | 419 | ||
420 | // hide splash screen and reenable button | ||
419 | splash->hide(); | 421 | splash->hide(); |
420 | delete splash; | 422 | delete splash; |
421 | 423 | rescanButton->setEnabled( true ); | |
422 | } | 424 | } |
423 | 425 | ||
424 | void WLANImp::handlePacket( OPacket* p ) | 426 | void WLANImp::handlePacket( OPacket* p ) |
425 | { | 427 | { |
426 | 428 | ||
427 | // check if we received a beacon frame | 429 | // check if we received a beacon frame |
428 | OWaveLanManagementPacket* beacon = static_cast<OWaveLanManagementPacket*>( p->child( "802.11 Management" ) ); | 430 | OWaveLanManagementPacket* beacon = static_cast<OWaveLanManagementPacket*>( p->child( "802.11 Management" ) ); |
429 | if ( beacon && beacon->managementType() == "Beacon" ) | 431 | if ( beacon && beacon->managementType() == "Beacon" ) |
430 | { | 432 | { |
431 | 433 | ||
432 | QString type; | 434 | QString type; |
433 | if ( beacon->canIBSS() ) | 435 | if ( beacon->canIBSS() ) |