summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opiestumbler/opiestumbler.cpp55
-rw-r--r--noncore/net/opiestumbler/opiestumbler.h11
2 files changed, 57 insertions, 9 deletions
diff --git a/noncore/net/opiestumbler/opiestumbler.cpp b/noncore/net/opiestumbler/opiestumbler.cpp
index f231fca..bc4a7ab 100644
--- a/noncore/net/opiestumbler/opiestumbler.cpp
+++ b/noncore/net/opiestumbler/opiestumbler.cpp
@@ -11,6 +11,7 @@
11#include <qlayout.h> 11#include <qlayout.h>
12#include <qwhatsthis.h> 12#include <qwhatsthis.h>
13#include <qtimer.h> 13#include <qtimer.h>
14#include <qprogressbar.h>
14 15
15#include <qpe/resource.h> 16#include <qpe/resource.h>
16#include <qpe/config.h> 17#include <qpe/config.h>
@@ -275,7 +276,22 @@ void OpieStumbler::slotJoinNetwork()
275 276
276 if( !it.current() ) 277 if( !it.current() )
277 return; 278 return;
278 279
280 m_ssid = it.current()->st->ssid.left(it.current()->st->ssid.length()-1);
281 m_splash = new QFrame( this, "splash", false, WStyle_StaysOnTop | WStyle_DialogBorder | WStyle_Customize );
282 m_splash->setFrameStyle( QFrame::Panel | QFrame::Raised );
283 m_splashBox = new QVBoxLayout( m_splash, 4, 4 );
284 m_infoLabel = new QLabel( QString("<center><b>%1 %2</b></center>").arg(tr("Joining Network")).arg(m_ssid), m_splash );
285 m_pbar = new QProgressBar( 3, m_splash );
286 m_pbar->setCenterIndicator(true);
287 m_splashBox->addWidget( m_infoLabel );
288 m_splashBox->addWidget( m_pbar );
289 int sw = m_splashBox->sizeHint().width()*2;
290 int sh = m_splashBox->sizeHint().height();
291 m_splash->setGeometry((240-(sw))/2, (320-sh)/2, sw, sh);
292 m_splash->show();
293 m_splash->raise();
294
279 Opie::Net::OStation *station = it.current()->st; 295 Opie::Net::OStation *station = it.current()->st;
280 296
281 odebug << "Bringing interface down" << oendl; 297 odebug << "Bringing interface down" << oendl;
@@ -294,6 +310,7 @@ void OpieStumbler::slotJoinNetwork()
294 310
295 odebug << "Bringing interface up" << oendl; 311 odebug << "Bringing interface up" << oendl;
296 wiface->setUp(TRUE); 312 wiface->setUp(TRUE);
313 m_pbar->setProgress(1);
297 //Wait 5 sec for association 314 //Wait 5 sec for association
298 QTimer::singleShot(5000, this, SLOT(slotAssociated())); 315 QTimer::singleShot(5000, this, SLOT(slotAssociated()));
299} 316}
@@ -302,15 +319,21 @@ void OpieStumbler::slotAssociated()
302{ 319{
303 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface)); 320 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface));
304 321
305 if( !wiface ) 322 if( !wiface ) {
323 slotCleanSplash();
306 return; 324 return;
325 }
307 326
308 if (!wiface->isAssociated()) { 327 if (!wiface->isAssociated()) {
309 Global::statusMessage(tr("Could not Join")); 328 Global::statusMessage(tr("Could not Join"));
329 m_infoLabel->setText(tr("Could not Join"));
330 QTimer::singleShot(5000, this, SLOT(slotCleanSplash()));
310 return; 331 return;
311 } 332 }
312 333
313 Global::statusMessage(tr("Joined")); 334 Global::statusMessage(tr("Joined"));
335 m_pbar->setProgress(2);
336 m_infoLabel->setText(QString("<center><b>%1 %2</b></center>").arg(tr("Joined Network")).arg(m_ssid));
314 337
315 if(m_proc) { 338 if(m_proc) {
316 m_proc->kill(); 339 m_proc->kill();
@@ -328,21 +351,35 @@ void OpieStumbler::slotCheckDHCP()
328{ 351{
329 if(!m_proc->isRunning()) { 352 if(!m_proc->isRunning()) {
330 Global::statusMessage(tr("Could not Obtain an Address")); 353 Global::statusMessage(tr("Could not Obtain an Address"));
354 m_infoLabel->setText(QString("<center><b>%1</b></center>").arg(tr("Could not Obtain an Address")));
331 delete m_proc; 355 delete m_proc;
332 m_proc = NULL; 356 m_proc = NULL;
357 QTimer::singleShot(5000, this, SLOT(slotCleanSplash()));
333 return; 358 return;
334 } 359 }
335 m_listCurrent->show(); 360 m_listCurrent->show();
361 m_pbar->setProgress(3);
336 362
337
338 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface)); 363 OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface));
339 Global::statusMessage(tr("Obtained IP ") + wiface->ipV4Address().toString()); 364 QString ipv4 = wiface->ipV4Address().toString();
365 m_infoLabel->setText(QString("<center><b>%1 %2</b></center>").arg(tr("Obtained IP")).arg(ipv4));
366 Global::statusMessage(tr("Obtained IP") + " " + ipv4);
367 QTimer::singleShot(5000, this, SLOT(slotCleanSplash()));
368
340} 369}
341 370
371void OpieStumbler::slotCleanSplash()
372{
373 delete m_pbar;
374 m_pbar = 0;
342 375
376 delete m_infoLabel;
377 m_infoLabel = 0;
343 378
344 379 delete m_splashBox;
345 380 m_splashBox = 0;
346 381
347 382 delete m_splash;
383 m_splash = 0;
384}
348 385
diff --git a/noncore/net/opiestumbler/opiestumbler.h b/noncore/net/opiestumbler/opiestumbler.h
index 3f45a78..84a69ba 100644
--- a/noncore/net/opiestumbler/opiestumbler.h
+++ b/noncore/net/opiestumbler/opiestumbler.h
@@ -12,6 +12,10 @@ class Stumbler;
12class QCopChannel; 12class QCopChannel;
13class QListView; 13class QListView;
14class QListViewItem; 14class QListViewItem;
15class QFrame;
16class QLabel;
17class QProgressBar;
18class QVBoxLayout;
15 19
16namespace Opie{ 20namespace Opie{
17 namespace Net { 21 namespace Net {
@@ -50,8 +54,10 @@ protected slots:
50 void slotJoinNetwork(); 54 void slotJoinNetwork();
51 void slotAssociated(); 55 void slotAssociated();
52 void slotCheckDHCP(); 56 void slotCheckDHCP();
57 void slotCleanSplash();
53protected: 58protected:
54 void loadConfig(); 59 void loadConfig();
60
55 QListView *m_listCurrent; 61 QListView *m_listCurrent;
56 QListView *m_listHistory; 62 QListView *m_listHistory;
57 QString m_interface; 63 QString m_interface;
@@ -63,7 +69,12 @@ protected:
63 QPopupMenu *m_popupHistory; 69 QPopupMenu *m_popupHistory;
64 Opie::Net::OManufacturerDB *m_db; 70 Opie::Net::OManufacturerDB *m_db;
65 QString m_mac; 71 QString m_mac;
72 QString m_ssid;
66 Opie::Core::OProcess *m_proc; 73 Opie::Core::OProcess *m_proc;
74 QFrame *m_splash;
75 QVBoxLayout *m_splashBox;
76 QLabel *m_infoLabel;
77 QProgressBar *m_pbar;
67 78
68}; 79};
69 80