author | mickeyl <mickeyl> | 2004-02-23 13:37:46 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2004-02-23 13:37:46 (UTC) |
commit | 1f362cd77a2b39eae2abca6da28efa5118d2c347 (patch) (side-by-side diff) | |
tree | ddc796d7505b2ec0f20e9b74154316d3f818d16c | |
parent | 12ce268e3f75e4f07699b8e0c368f2112e651f7f (diff) | |
download | opie-1f362cd77a2b39eae2abca6da28efa5118d2c347.zip opie-1f362cd77a2b39eae2abca6da28efa5118d2c347.tar.gz opie-1f362cd77a2b39eae2abca6da28efa5118d2c347.tar.bz2 |
start with the long awaited wireless applet overhaul
-rw-r--r-- | noncore/applets/wirelessapplet/wireless.cpp | 55 | ||||
-rw-r--r-- | noncore/applets/wirelessapplet/wireless.h | 1 | ||||
-rw-r--r-- | noncore/applets/wirelessapplet/wirelessapplet.pro | 8 | ||||
-rw-r--r-- | noncore/applets/wirelessapplet/wirelessappletimpl.cpp | 66 | ||||
-rw-r--r-- | noncore/applets/wirelessapplet/wirelessappletimpl.h | 43 |
5 files changed, 39 insertions, 134 deletions
diff --git a/noncore/applets/wirelessapplet/wireless.cpp b/noncore/applets/wirelessapplet/wireless.cpp index 763aab8..cbaf5d6 100644 --- a/noncore/applets/wirelessapplet/wireless.cpp +++ b/noncore/applets/wirelessapplet/wireless.cpp @@ -1,75 +1,73 @@ /********************************************************************** -** Copyright (C) 2002 Michael 'Mickey' Lauer -** <mickey@tm.informatik.uni-frankfurt.de> -** http://www.Vanille.de +** Copyright (C) 2002-2004 Michael 'Mickey' Lauer <mickey@vanille.de> ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** **********************************************************************/ #include "wireless.h" +#include "networkinfo.h" +#include "mgraph.h" +#include "advancedconfig.h" +#include "connect0.xpm" +#include "connect1.xpm" +#include "connect2.xpm" +#include "connect3.xpm" +#include "connect4.xpm" +#include "connect5.xpm" +#include "nowireless.xpm" -#include <qapplication.h> +/* OPIE */ +#include <opie2/otaskbarapplet.h> #include <qpe/qpeapplication.h> #include <qpe/config.h> +/* QT */ #include <qpoint.h> #include <qradiobutton.h> #include <qpushbutton.h> #include <qpainter.h> #include <qlabel.h> #include <qslider.h> #include <qbuttongroup.h> #include <qlayout.h> #include <qframe.h> #include <qpixmap.h> #include <qstring.h> #include <qfile.h> #include <qtextstream.h> +/* STD */ #include <sys/types.h> #include <signal.h> -#include "networkinfo.h" -#include "mgraph.h" - -#include "advancedconfig.h" - -#include "connect0.xpm" -#include "connect1.xpm" -#include "connect2.xpm" -#include "connect3.xpm" -#include "connect4.xpm" -#include "connect5.xpm" -#include "nowireless.xpm" - #define STYLE_BARS 0 #define STYLE_ANTENNA 1 //#define MDEBUG #undef MDEBUG WirelessControl::WirelessControl( WirelessApplet *applet, QWidget *parent, const char *name ) : QFrame( parent, name, WStyle_StaysOnTop | WType_Popup ), applet( applet ) { readConfig(); writeConfigEntry( "UpdateFrequency", updateFrequency ); writeConfigEntry( "DisplayStyle", displayStyle ); setFrameStyle( QFrame::PopupPanel | QFrame::Raised ); QGridLayout *grid = new QGridLayout( this, 3, 2, 6, 2, "top layout" ); /* status label */ statusLabel = new QLabel( this, "statuslabel" ); QString text( "Wireless Status:<br>" "*** Unknown ***<br>" "Card not inserted ?<br>" "Or Sharp ROM ?<br>" @@ -205,48 +203,49 @@ void WirelessControl::writeConfigEntry( const char *entry, int val ) cfg.writeEntry( entry, val ); } //=========================================================================== WirelessApplet::WirelessApplet( QWidget *parent, const char *name ) : QWidget( parent, name ), visualStyle( STYLE_ANTENNA ), timer( 0 ), interface( 0 ), rocESSID( false ), rocFREQ( false ), rocAP( false ), rocMODE( false ) { setFixedHeight( 18 ); setFixedWidth( 14 ); network = new MWirelessNetwork(); status = new WirelessControl( this, this, "wireless status" ); } void WirelessApplet::checkInterface() { interface = network->getFirstInterface(); if ( interface ) { #ifdef MDEBUG qDebug( "WIFIAPPLET: using interface '%s'", (const char*) interface->getName() ); #endif + } else { #ifdef MDEBUG qDebug( "WIFIAPPLET: D'oh! No Wireless interface present... :(" ); #endif hide(); } } void WirelessApplet::renewDHCP() { #ifdef MDEBUG qDebug( "WIFIAPPLET: Going to request a DHCP configuration renew." ); #endif QString pidfile; if ( !interface ) return; QString ifacename( interface->getName() ); // At first we are trying dhcpcd pidfile.sprintf( "/var/run/dhcpcd-%s.pid", (const char* ) ifacename ); @@ -293,73 +292,74 @@ void WirelessApplet::updateDHCPConfig( bool ESSID, bool FREQ, bool AP, bool MODE { rocESSID = ESSID; rocFREQ = FREQ; rocAP = AP; rocMODE = MODE; } void WirelessApplet::updateDelayChange( int delay ) { if ( timer ) killTimer( timer ); delay *= 1000; if ( delay == 0 ) delay = 50; timer = startTimer( delay ); } void WirelessApplet::displayStyleChange( int style ) { visualStyle = style; repaint(); } WirelessApplet::~WirelessApplet() -{ -} +{} void WirelessApplet::timerEvent( QTimerEvent* ) { MWirelessNetworkInterface* iface = ( MWirelessNetworkInterface* ) interface; if ( iface ) { bool statResult = iface->updateStatistics(); if ( !statResult ) { interface = 0; mustRepaint(); return; - } else + } + else if ( mustRepaint() ) { //qDebug( "WIFIAPPLET: A value has changed -> repainting." ); repaint(); } if ( status->isVisible() ) updatePopupWindow(); - } else checkInterface(); + } + else checkInterface(); } void WirelessApplet::mousePressEvent( QMouseEvent *) { if ( status->isVisible() ) status->hide(); else status->show( true ); } bool WirelessApplet::mustRepaint() { MWirelessNetworkInterface* iface = ( MWirelessNetworkInterface* ) interface; // check if there are enough changes to justify a (flickering) repaint // has the interface changed? if ( iface != oldiface ) { oldiface = iface; if ( iface ) { #ifdef MDEBUG @@ -516,24 +516,37 @@ void WirelessApplet::paintEvent( QPaintEvent* ) pixelHeight = signalH; Hue = 100; leftoffset += pixelWidth + barSpace; for ( int i = 0; i < pixelHeight; ++i ) { intensity = 50 + ( (double) i / (double) pixelHeight ) * 205; color.setHsv( Hue, 255, intensity ); p.setPen ( color ); p.drawLine( leftoffset, height()-bottomoffset-i, pixelWidth+leftoffset, height()-bottomoffset-i ); } // draw quality indicator pixelHeight = qualityH; Hue = 250; leftoffset += pixelWidth + barSpace; for ( int i = 0; i < pixelHeight; ++i ) { intensity = 50 + ( (double) i / (double) pixelHeight ) * 205; color.setHsv( Hue, 255, intensity ); p.setPen ( color ); p.drawLine( leftoffset, height()-bottomoffset-i, pixelWidth+leftoffset, height()-bottomoffset-i ); } } } + + +int WirelessApplet::position() +{ + return 6; +} + + +Q_EXPORT_INTERFACE() +{ + Q_CREATE_INSTANCE( OTaskbarAppletWrapper<WirelessApplet> ); +} + diff --git a/noncore/applets/wirelessapplet/wireless.h b/noncore/applets/wirelessapplet/wireless.h index 51a3fab..644be26 100644 --- a/noncore/applets/wirelessapplet/wireless.h +++ b/noncore/applets/wirelessapplet/wireless.h @@ -44,48 +44,49 @@ public: public slots: void updateDelayChange( int ); void displayStyleChange( int ); void advancedConfigClicked(); private: WirelessApplet* applet; int displayStyle; int updateFrequency; bool rocESSID; bool rocFREQ; bool rocAP; bool rocMODE; }; class WirelessApplet : public QWidget { Q_OBJECT public: WirelessApplet( QWidget *parent = 0, const char *name=0 ); ~WirelessApplet(); + static int position(); WirelessControl* status; virtual void timerEvent( QTimerEvent* ); void updateDelayChange( int delay ); void displayStyleChange( int style ); void updateDHCPConfig( bool, bool, bool, bool ); private: void mousePressEvent( QMouseEvent * ); void paintEvent( QPaintEvent* ); void checkInterface(); void renewDHCP(); bool mustRepaint(); void updatePopupWindow(); const char** getQualityPixmap(); private: QPixmap snapshotPixmap; int visualStyle; int timer; MWirelessNetwork* network; diff --git a/noncore/applets/wirelessapplet/wirelessapplet.pro b/noncore/applets/wirelessapplet/wirelessapplet.pro index 411a039..38cb475 100644 --- a/noncore/applets/wirelessapplet/wirelessapplet.pro +++ b/noncore/applets/wirelessapplet/wirelessapplet.pro @@ -1,13 +1,13 @@ TEMPLATE = lib CONFIG += qt plugin warn_on release -HEADERS = wireless.h wirelessappletimpl.h networkinfo.h mgraph.h advancedconfig.h -SOURCES = wireless.cpp wirelessappletimpl.cpp networkinfo.cpp mgraph.cpp advancedconfig.cpp +HEADERS = wireless.h networkinfo.h mgraph.h advancedconfig.h +SOURCES = wireless.cpp networkinfo.cpp mgraph.cpp advancedconfig.cpp INTERFACES = advancedconfigbase.ui TARGET = wirelessapplet DESTDIR = $(OPIEDIR)/plugins/applets INCLUDEPATH += $(OPIEDIR)/include -DEPENDPATH += ../$(OPIEDIR)/include +DEPENDPATH += $(OPIEDIR)/include LIBS += -lqpe -VERSION = 0.1.0 +VERSION = 0.1.1 include ( $(OPIEDIR)/include.pro ) diff --git a/noncore/applets/wirelessapplet/wirelessappletimpl.cpp b/noncore/applets/wirelessapplet/wirelessappletimpl.cpp deleted file mode 100644 index de70714..0000000 --- a/noncore/applets/wirelessapplet/wirelessappletimpl.cpp +++ b/dev/null @@ -1,66 +0,0 @@ -/********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. -** -** This file is part of Qtopia Environment. -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See http://www.trolltech.com/gpl/ for GPL licensing information. -** -** Contact info@trolltech.com if any conditions of this licensing are -** not clear to you. -** -**********************************************************************/ -#include "wireless.h" -#include "wirelessappletimpl.h" - - -WirelessAppletImpl::WirelessAppletImpl() - : wireless(0) -{ -} - -WirelessAppletImpl::~WirelessAppletImpl() -{ - delete wireless; -} - -QWidget *WirelessAppletImpl::applet( QWidget *parent ) -{ - if ( !wireless ) - wireless = new WirelessApplet( parent ); - return wireless; -} - -int WirelessAppletImpl::position() const -{ - return 6; -} - -QRESULT WirelessAppletImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) -{ - *iface = 0; - if ( uuid == IID_QUnknown ) - *iface = this; - else if ( uuid == IID_TaskbarApplet ) - *iface = this; - else - return QS_FALSE; - - if ( *iface ) - (*iface)->addRef(); - return QS_OK; -} - -Q_EXPORT_INTERFACE() -{ - Q_CREATE_INSTANCE( WirelessAppletImpl ) -} - - diff --git a/noncore/applets/wirelessapplet/wirelessappletimpl.h b/noncore/applets/wirelessapplet/wirelessappletimpl.h deleted file mode 100644 index 1bf4507..0000000 --- a/noncore/applets/wirelessapplet/wirelessappletimpl.h +++ b/dev/null @@ -1,43 +0,0 @@ -/********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. -** -** This file is part of Qtopia Environment. -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See http://www.trolltech.com/gpl/ for GPL licensing information. -** -** Contact info@trolltech.com if any conditions of this licensing are -** not clear to you. -** -**********************************************************************/ -#ifndef WIRELESSAPPLETIMPL_H -#define WIRELESSAPPLETIMPL_H - -#include <qpe/taskbarappletinterface.h> - -class WirelessApplet; - -class WirelessAppletImpl : public TaskbarAppletInterface -{ -public: - WirelessAppletImpl(); - virtual ~WirelessAppletImpl(); - - QRESULT queryInterface( const QUuid&, QUnknownInterface** ); - Q_REFCOUNT - - virtual QWidget *applet( QWidget *parent ); - virtual int position() const; - -private: - WirelessApplet *wireless; -}; - -#endif |