-rw-r--r-- | noncore/applets/wirelessapplet/wireless.cpp | 74 |
1 files changed, 40 insertions, 34 deletions
diff --git a/noncore/applets/wirelessapplet/wireless.cpp b/noncore/applets/wirelessapplet/wireless.cpp index 72ac380..cee789c 100644 --- a/noncore/applets/wirelessapplet/wireless.cpp +++ b/noncore/applets/wirelessapplet/wireless.cpp @@ -51,6 +51,6 @@ #define STYLE_ANTENNA 1 -#define MDEBUG -//#undef MDEBUG +//#define MDEBUG +#undef MDEBUG WirelessControl::WirelessControl( WirelessApplet *applet, QWidget *parent, const char *name ) @@ -220,4 +220,5 @@ void WirelessApplet::checkInterface() interface = 0L; ONetwork* net = ONetwork::instance(); + net->synchronize(); ONetwork::InterfaceIterator it = net->iterator(); @@ -325,12 +326,24 @@ WirelessApplet::~WirelessApplet() void WirelessApplet::timerEvent( QTimerEvent* ) { +#ifdef MDEBUG qDebug( "WirelessApplet::timerEvent" ); - OWirelessNetworkInterface* iface = interface; - - if ( iface ) +#endif + if ( interface ) { + if ( !ONetwork::instance()->isPresent( (const char*) interface->name() ) ) + { +#ifdef MDEBUG + qDebug( "WIFIAPPLET: Interface no longer present." ); +#endif + interface = 0L; + mustRepaint(); + return; + } + if ( mustRepaint() ) { +#ifdef MDEBUG qDebug( "WIFIAPPLET: A value has changed -> repainting." ); +#endif repaint(); } @@ -357,14 +370,12 @@ void WirelessApplet::mousePressEvent( QMouseEvent * ) bool WirelessApplet::mustRepaint() { - OWirelessNetworkInterface* iface = interface; - // check if there are enough changes to justify a (flickering) repaint // has the interface changed? - if ( iface != oldiface ) + if ( interface != oldiface ) { - oldiface = iface; - if ( iface ) + oldiface = interface; + if ( interface ) { #ifdef MDEBUG @@ -392,5 +403,5 @@ bool WirelessApplet::mustRepaint() int noiseH = 50; // iface->noisePercent() * ( height() - 3 ) / 100; - int signalH = iface->signalStrength() * ( height() - 3 ) / 100; + int signalH = interface->signalStrength() * ( height() - 3 ) / 100; int qualityH = 50; // iface->qualityPercent() * ( height() - 3 ) / 100; @@ -405,5 +416,5 @@ bool WirelessApplet::mustRepaint() } - if ( rocESSID && ( oldESSID != iface->SSID() ) ) + if ( rocESSID && ( oldESSID != interface->SSID() ) ) { #ifdef MDEBUG @@ -412,5 +423,5 @@ bool WirelessApplet::mustRepaint() renewDHCP(); } - else if ( rocFREQ && ( oldFREQ != iface->frequency() ) ) + else if ( rocFREQ && ( oldFREQ != interface->frequency() ) ) { #ifdef MDEBUG @@ -419,5 +430,5 @@ bool WirelessApplet::mustRepaint() renewDHCP(); } - else if ( rocAP && ( oldAP != iface->associatedAP().toString() ) ) + else if ( rocAP && ( oldAP != interface->associatedAP().toString() ) ) { #ifdef MDEBUG @@ -426,5 +437,5 @@ bool WirelessApplet::mustRepaint() renewDHCP(); } - else if ( rocMODE && ( oldMODE != iface->mode() ) ) + else if ( rocMODE && ( oldMODE != interface->mode() ) ) { #ifdef MDEBUG @@ -434,8 +445,8 @@ bool WirelessApplet::mustRepaint() } - oldESSID = iface->SSID(); - oldMODE = iface->mode(); - oldFREQ = iface->frequency(); - oldAP = iface->associatedAP().toString(); + oldESSID = interface->SSID(); + oldMODE = interface->mode(); + oldFREQ = interface->frequency(); + oldAP = interface->associatedAP().toString(); return false; @@ -444,6 +455,5 @@ bool WirelessApplet::mustRepaint() void WirelessApplet::updatePopupWindow() { - OWirelessNetworkInterface* iface = interface; - int qualityH = iface->signalStrength(); + int qualityH = interface->signalStrength(); if ( status->mgraph ) @@ -451,19 +461,17 @@ void WirelessApplet::updatePopupWindow() QString freqString; - QString cell = ( iface->mode() == "Managed" ) ? "AP: " : "Cell: "; - freqString.sprintf( "%.3f GHz", iface->frequency() ); - status->statusLabel->setText( "Station: " + iface->nickName() + "<br>" + - "ESSID: " + iface->SSID() + "<br>" + - "MODE: " + iface->mode() + "<br>" + + QString cell = ( interface->mode() == "Managed" ) ? "AP: " : "Cell: "; + freqString.sprintf( "%.3f GHz", interface->frequency() ); + status->statusLabel->setText( "Station: " + interface->nickName() + "<br>" + + "ESSID: " + interface->SSID() + "<br>" + + "MODE: " + interface->mode() + "<br>" + "FREQ: " + freqString + "<br>" + - cell + " " + iface->associatedAP().toString() ); + cell + " " + interface->associatedAP().toString() ); } const char** WirelessApplet::getQualityPixmap() { - OWirelessNetworkInterface* iface = interface; - - if ( !iface ) return ( const char** ) nowireless_xpm; - int qualityH = iface->signalStrength(); + if ( !interface ) return ( const char** ) nowireless_xpm; + int qualityH = interface->signalStrength(); if ( qualityH < 0 ) return ( const char** ) nowireless_xpm; @@ -483,6 +491,4 @@ const char** WirelessApplet::getQualityPixmap() void WirelessApplet::paintEvent( QPaintEvent* ) { - OWirelessNetworkInterface* iface = interface; - QPainter p( this ); QColor color; @@ -497,5 +503,5 @@ void WirelessApplet::paintEvent( QPaintEvent* ) int noiseH = 30; // iface->noisePercent() * ( height() - 3 ) / 100; int signalH = 50; // iface->signalPercent() * ( height() - 3 ) / 100; - int qualityH = iface->signalStrength(); // iface->qualityPercent() * ( height() - 3 ) / 100; + int qualityH = interface->signalStrength(); // iface->qualityPercent() * ( height() - 3 ) / 100; double intensity; |