-rw-r--r-- | noncore/net/opiestumbler/opiestumbler.cpp | 49 | ||||
-rw-r--r-- | noncore/net/opiestumbler/opiestumbler.h | 11 |
2 files changed, 54 insertions, 6 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 @@ -8,12 +8,13 @@ #include <qdatetime.h> #include <qpopupmenu.h> #include <qstatusbar.h> #include <qlayout.h> #include <qwhatsthis.h> #include <qtimer.h> +#include <qprogressbar.h> #include <qpe/resource.h> #include <qpe/config.h> //#include <qpe/global.h> #include <qpe/qcopenvelope_qws.h> #include <qpe/qpeapplication.h> @@ -273,12 +274,27 @@ void OpieStumbler::slotJoinNetwork() for(; it.current() && it.current()->st->macAddress.toString() != m_mac; ++it ); if( !it.current() ) return; + m_ssid = it.current()->st->ssid.left(it.current()->st->ssid.length()-1); + m_splash = new QFrame( this, "splash", false, WStyle_StaysOnTop | WStyle_DialogBorder | WStyle_Customize ); + m_splash->setFrameStyle( QFrame::Panel | QFrame::Raised ); + m_splashBox = new QVBoxLayout( m_splash, 4, 4 ); + m_infoLabel = new QLabel( QString("<center><b>%1 %2</b></center>").arg(tr("Joining Network")).arg(m_ssid), m_splash ); + m_pbar = new QProgressBar( 3, m_splash ); + m_pbar->setCenterIndicator(true); + m_splashBox->addWidget( m_infoLabel ); + m_splashBox->addWidget( m_pbar ); + int sw = m_splashBox->sizeHint().width()*2; + int sh = m_splashBox->sizeHint().height(); + m_splash->setGeometry((240-(sw))/2, (320-sh)/2, sw, sh); + m_splash->show(); + m_splash->raise(); + Opie::Net::OStation *station = it.current()->st; odebug << "Bringing interface down" << oendl; wiface->setUp(FALSE); odebug << "Setting mode to " << (station->type == "adhoc" ? "adhoc" : "managed") << oendl; @@ -291,29 +307,36 @@ void OpieStumbler::slotJoinNetwork() wiface->setSSID(station->ssid); wiface->commit(); odebug << "Bringing interface up" << oendl; wiface->setUp(TRUE); + m_pbar->setProgress(1); //Wait 5 sec for association QTimer::singleShot(5000, this, SLOT(slotAssociated())); } void OpieStumbler::slotAssociated() { OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface)); - if( !wiface ) + if( !wiface ) { + slotCleanSplash(); return; + } if (!wiface->isAssociated()) { Global::statusMessage(tr("Could not Join")); + m_infoLabel->setText(tr("Could not Join")); + QTimer::singleShot(5000, this, SLOT(slotCleanSplash())); return; } Global::statusMessage(tr("Joined")); + m_pbar->setProgress(2); + m_infoLabel->setText(QString("<center><b>%1 %2</b></center>").arg(tr("Joined Network")).arg(m_ssid)); if(m_proc) { m_proc->kill(); delete m_proc; } @@ -325,24 +348,38 @@ void OpieStumbler::slotAssociated() } void OpieStumbler::slotCheckDHCP() { if(!m_proc->isRunning()) { Global::statusMessage(tr("Could not Obtain an Address")); + m_infoLabel->setText(QString("<center><b>%1</b></center>").arg(tr("Could not Obtain an Address"))); delete m_proc; m_proc = NULL; + QTimer::singleShot(5000, this, SLOT(slotCleanSplash())); return; } m_listCurrent->show(); - + m_pbar->setProgress(3); OWirelessNetworkInterface *wiface = static_cast<OWirelessNetworkInterface*>(ONetwork::instance()->interface(m_interface)); - Global::statusMessage(tr("Obtained IP ") + wiface->ipV4Address().toString()); -} - - + QString ipv4 = wiface->ipV4Address().toString(); + m_infoLabel->setText(QString("<center><b>%1 %2</b></center>").arg(tr("Obtained IP")).arg(ipv4)); + Global::statusMessage(tr("Obtained IP") + " " + ipv4); + QTimer::singleShot(5000, this, SLOT(slotCleanSplash())); +} +void OpieStumbler::slotCleanSplash() +{ + delete m_pbar; + m_pbar = 0; + delete m_infoLabel; + m_infoLabel = 0; + delete m_splashBox; + m_splashBox = 0; + delete m_splash; + m_splash = 0; +} 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 @@ -9,12 +9,16 @@ class QString; class QPopupMenu; class Stumbler; class QCopChannel; class QListView; class QListViewItem; +class QFrame; +class QLabel; +class QProgressBar; +class QVBoxLayout; namespace Opie{ namespace Net { class OMacAddress; class OStation; class OManufacturerDB; @@ -47,24 +51,31 @@ protected slots: void slotHistoryMousePressed(int button, QListViewItem *item, const QPoint &point, int c); void slotShowDetails(); void slotLoadManufacturers(); void slotJoinNetwork(); void slotAssociated(); void slotCheckDHCP(); + void slotCleanSplash(); protected: void loadConfig(); + QListView *m_listCurrent; QListView *m_listHistory; QString m_interface; Stumbler *m_stumbler; QCopChannel *m_channel; QList <Opie::Net::OStation> *m_stationsCurrent; QList <StumblerStation> m_stationsHistory; QPopupMenu *m_popupCurrent; QPopupMenu *m_popupHistory; Opie::Net::OManufacturerDB *m_db; QString m_mac; + QString m_ssid; Opie::Core::OProcess *m_proc; + QFrame *m_splash; + QVBoxLayout *m_splashBox; + QLabel *m_infoLabel; + QProgressBar *m_pbar; }; #endif /* OPIESTUMBLER_H */ |