From db9f0e2a7fd93157d95f421534fcc3015abe53e0 Mon Sep 17 00:00:00 2001 From: wimpie Date: Sat, 10 Apr 2004 13:06:13 +0000 Subject: *** empty log message *** --- (limited to 'noncore/settings/networksettings2') diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.h b/noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.h index 4a773cd..c168429 100644 --- a/noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.h +++ b/noncore/settings/networksettings2/bluetooth/bluetoothBNEPrun.h @@ -20,7 +20,7 @@ protected : void detectState( NodeCollection * ) { } - bool setState( NodeCollection * , Action_t ) + bool setState( NodeCollection * , Action_t, bool ) { return 0; } bool canSetState( State_t , Action_t ) diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.h b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.h index 6a7902a..aff1f59 100644 --- a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.h +++ b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.h @@ -17,7 +17,7 @@ protected : void detectState( NodeCollection * ) { } - bool setState( NodeCollection * , Action_t ) + bool setState( NodeCollection * , Action_t, bool ) { return 0; } bool canSetState( State_t , Action_t ) diff --git a/noncore/settings/networksettings2/cable/cablerun.cpp b/noncore/settings/networksettings2/cable/cablerun.cpp index edb4b01..5e99237 100644 --- a/noncore/settings/networksettings2/cable/cablerun.cpp +++ b/noncore/settings/networksettings2/cable/cablerun.cpp @@ -13,7 +13,7 @@ void CableRun::detectState( NodeCollection * NC ) { NC->setCurrentState( Available ); } -bool CableRun::setState( NodeCollection * NC, Action_t A ) { +bool CableRun::setState( NodeCollection * NC, Action_t A, bool ) { if( A == Activate ) { detectState(NC); return (NC->currentState() == Available); diff --git a/noncore/settings/networksettings2/cable/cablerun.h b/noncore/settings/networksettings2/cable/cablerun.h index 7b341c4..c5b59d5 100644 --- a/noncore/settings/networksettings2/cable/cablerun.h +++ b/noncore/settings/networksettings2/cable/cablerun.h @@ -15,7 +15,7 @@ public : protected : void detectState( NodeCollection * NC ); - bool setState( NodeCollection * NC, Action_t A ); + bool setState( NodeCollection * NC, Action_t A, bool Force ); bool canSetState( State_t Curr, Action_t A ); private : diff --git a/noncore/settings/networksettings2/irda/irdarun.h b/noncore/settings/networksettings2/irda/irdarun.h index d9fe5e8..4c903cc 100644 --- a/noncore/settings/networksettings2/irda/irdarun.h +++ b/noncore/settings/networksettings2/irda/irdarun.h @@ -17,7 +17,7 @@ protected : void detectState( NodeCollection * ) { } - bool setState( NodeCollection * , Action_t ) + bool setState( NodeCollection * , Action_t, bool ) { return 0; } bool canSetState( State_t , Action_t ) diff --git a/noncore/settings/networksettings2/lancard/lancardrun.cpp b/noncore/settings/networksettings2/lancard/lancardrun.cpp index 2e4fc43..1544ddc 100644 --- a/noncore/settings/networksettings2/lancard/lancardrun.cpp +++ b/noncore/settings/networksettings2/lancard/lancardrun.cpp @@ -73,7 +73,7 @@ void LanCardRun::detectState( NodeCollection * NC ) { } -bool LanCardRun::setState( NodeCollection * NC, Action_t A ) { +bool LanCardRun::setState( NodeCollection * NC, Action_t A, bool ) { // we only handle activate and deactivate switch( A ) { diff --git a/noncore/settings/networksettings2/lancard/lancardrun.h b/noncore/settings/networksettings2/lancard/lancardrun.h index e8a535a..b28dda7 100644 --- a/noncore/settings/networksettings2/lancard/lancardrun.h +++ b/noncore/settings/networksettings2/lancard/lancardrun.h @@ -23,7 +23,7 @@ public : protected : void detectState( NodeCollection * NC ); - bool setState( NodeCollection * NC, Action_t A ); + bool setState( NodeCollection * NC, Action_t A, bool Force ); bool canSetState( State_t Curr, Action_t A ); bool handlesInterface( const QString & I ); diff --git a/noncore/settings/networksettings2/modem/modemrun.h b/noncore/settings/networksettings2/modem/modemrun.h index 6d1662b..336462e 100644 --- a/noncore/settings/networksettings2/modem/modemrun.h +++ b/noncore/settings/networksettings2/modem/modemrun.h @@ -17,7 +17,7 @@ protected : void detectState( NodeCollection * ) { } - bool setState( NodeCollection *, Action_t ) + bool setState( NodeCollection *, Action_t, bool ) { return 0; } bool canSetState( State_t, Action_t ) diff --git a/noncore/settings/networksettings2/network/networkrun.cpp b/noncore/settings/networksettings2/network/networkrun.cpp index c19235a..41e1c53 100644 --- a/noncore/settings/networksettings2/network/networkrun.cpp +++ b/noncore/settings/networksettings2/network/networkrun.cpp @@ -17,7 +17,7 @@ void NetworkRun::detectState( NodeCollection * NC ) { RI->detectState( NC ); } -bool NetworkRun::setState( NodeCollection * NC, Action_t A ) { +bool NetworkRun::setState( NodeCollection * NC, Action_t A, bool Force ) { // we handle UP and DOWN RuntimeInfo * RI = netNode()->nextNode()->runtime(); AsDevice * Next = RI->asDevice(); @@ -25,7 +25,7 @@ bool NetworkRun::setState( NodeCollection * NC, Action_t A ) { if( A == Up ) { // we can bring UP if lower level is available - if( NC->currentState() == Available ) { + if( NC->currentState() == Available || Force ) { QString S; S.sprintf( "ifup %s=%s-c%d-allowed", II->Name.latin1(), II->Name.latin1(), @@ -34,7 +34,7 @@ bool NetworkRun::setState( NodeCollection * NC, Action_t A ) { } return 1; } else if( A == Down ) { - if( NC->currentState() == IsUp ) { + if( NC->currentState() == IsUp || Force ) { QString S; S.sprintf( "ifdown %s=%s-c%d-allowed", II->Name.latin1(), II->Name.latin1(), diff --git a/noncore/settings/networksettings2/network/networkrun.h b/noncore/settings/networksettings2/network/networkrun.h index fa16365..522a912 100644 --- a/noncore/settings/networksettings2/network/networkrun.h +++ b/noncore/settings/networksettings2/network/networkrun.h @@ -15,7 +15,7 @@ public : protected : void detectState( NodeCollection * ); - bool setState( NodeCollection * ,Action_t A ); + bool setState( NodeCollection * ,Action_t A, bool ); bool canSetState( State_t , Action_t A ); bool handlesInterface( const QString & I ); diff --git a/noncore/settings/networksettings2/networksettings.cpp b/noncore/settings/networksettings2/networksettings.cpp index 3ddcbde..b36c7a0 100644 --- a/noncore/settings/networksettings2/networksettings.cpp +++ b/noncore/settings/networksettings2/networksettings.cpp @@ -23,6 +23,7 @@ NetworkSettings::NetworkSettings( QWidget *parent, NSD() { UpdateTimer = new QTimer( this ); + // set pixmaps Add_TB->setPixmap( NSResources->getPixmap( "add" ) ); Delete_TB->setPixmap( NSResources->getPixmap( "remove" ) ); @@ -31,9 +32,12 @@ NetworkSettings::NetworkSettings( QWidget *parent, GenConfig_TB->setPixmap( NSResources->getPixmap( "configure" ) ); Connect_TB->setPixmap( NSResources->getPixmap( "connected" ) ); + Disconnect_TB->setPixmap( NSResources->getPixmap( "disconnected" ) ); On_TB->setPixmap( NSResources->getPixmap( "off" ) ); + SLOT_ToProfile(); + // populate main Listbox Profiles_LB->clear(); { Name2Connection_t & M = NSResources->connections(); @@ -276,7 +280,7 @@ void NetworkSettings::SLOT_ShowNode( QListBoxItem * LBI ) { Description_LBL->setText( NC->description() ); } - CurProfile_GB->setTitle( LBI->text() ); + Profile_GB->setTitle( LBI->text() ); State_LBL->setText( NC->stateName() ); } @@ -409,6 +413,28 @@ void NetworkSettings::SLOT_Connect( void ) { // we do not update the GUI but wait for the REAL upping of the device } +void NetworkSettings::SLOT_Disconnect( void ) { + QListBoxItem * LBI = Profiles_LB->item( Profiles_LB->currentItem() ); + + if ( ! LBI ) + return; + + NodeCollection * NC = + NSResources->findConnection( LBI->text() ); + + NC->setState( Down, 1 ); +} + +void NetworkSettings::SLOT_ToMessages( void ) { + Profile_GB->hide(); + Messages_GB->show(); +} + +void NetworkSettings::SLOT_ToProfile( void ) { + Profile_GB->show(); + Messages_GB->hide(); +} + void NetworkSettings::SLOT_QCopMessage(const QCString &msg, const QByteArray &data) { QDataStream stream( data, IO_ReadOnly ); diff --git a/noncore/settings/networksettings2/networksettings.h b/noncore/settings/networksettings2/networksettings.h index d9ea5d4..97852af 100644 --- a/noncore/settings/networksettings2/networksettings.h +++ b/noncore/settings/networksettings2/networksettings.h @@ -36,9 +36,12 @@ public slots : void SLOT_Enable( void ); void SLOT_On( void ); void SLOT_Connect( void ); + void SLOT_Disconnect( void ); void SLOT_GenerateConfig( void ); void SLOT_RefreshStates( void ); void SLOT_QCopMessage( const QCString&,const QByteArray& ); + void SLOT_ToProfile( void ); + void SLOT_ToMessages( void ); private : diff --git a/noncore/settings/networksettings2/networksettings2/netnode.cpp b/noncore/settings/networksettings2/networksettings2/netnode.cpp index dc66aff..1182543 100644 --- a/noncore/settings/networksettings2/networksettings2/netnode.cpp +++ b/noncore/settings/networksettings2/networksettings2/netnode.cpp @@ -1,5 +1,7 @@ -#include #include +#include +#include +#include #include #include @@ -247,8 +249,17 @@ static char * State2PixmapTbl[] = { }; QPixmap NodeCollection::devicePixmap( void ) { - return NSResources->getPixmap( - device()->netNode()->pixmapName()+"-large" ); + QPixmap pm = NSResources->getPixmap( + getToplevel()->nextNode()->pixmapName()+"-large"); + + QPixmap Mini = NSResources->getPixmap( device()->netNode()->pixmapName() ); + + QPainter painter( &pm ); + painter.drawPixmap( pm.width()-Mini.width(), + pm.height()-Mini.height(), + Mini ); + pm.setMask( pm.createHeuristicMask( TRUE ) ); + return pm; } QPixmap NodeCollection::statePixmap( State_t S) { diff --git a/noncore/settings/networksettings2/networksettings2/netnode.h b/noncore/settings/networksettings2/networksettings2/netnode.h index 27d54f8..5e36062 100644 --- a/noncore/settings/networksettings2/networksettings2/netnode.h +++ b/noncore/settings/networksettings2/networksettings2/netnode.h @@ -258,7 +258,7 @@ public : { return NNI->connection(); } virtual void detectState( NodeCollection * NC ) = 0; - virtual bool setState( NodeCollection * NC, Action_t A ) = 0; + virtual bool setState( NodeCollection * NC, Action_t A, bool Force = 0 ) = 0; virtual bool canSetState( State_t Curr, Action_t A ) = 0; signals : @@ -322,8 +322,8 @@ public : QString stateName( bool Update = 0 ) { return stateName( state(Update) ); } - bool setState( Action_t A ) - { return getToplevel()->runtime()->setState( this, A ); } + bool setState( Action_t A, bool Force =0 ) + { return getToplevel()->runtime()->setState( this, A, Force ); } bool canSetState( Action_t A ) { return getToplevel()->runtime()->canSetState( CurrentState, A ); } diff --git a/noncore/settings/networksettings2/networksettings2/networksettings2.pro b/noncore/settings/networksettings2/networksettings2/networksettings2.pro index 11b5f84..f97c93b 100644 --- a/noncore/settings/networksettings2/networksettings2/networksettings2.pro +++ b/noncore/settings/networksettings2/networksettings2/networksettings2.pro @@ -10,11 +10,13 @@ HEADERS = netnode.h \ asconnection.h \ asfullsetup.h \ systemfile.h \ + wextensions.h \ asdevice.h SOURCES = netnode.cpp \ GUIUtils.cpp \ system.cpp \ systemfile.cpp \ + wextensions.cpp \ resources.cpp INCLUDEPATH += $(OPIEDIR)/include ../networksettings2 DEPENDPATH += $(OPIEDIR)/include diff --git a/noncore/settings/networksettings2/networksettings2/resources.cpp b/noncore/settings/networksettings2/networksettings2/resources.cpp index 4b7a62f..c95ac7f 100644 --- a/noncore/settings/networksettings2/networksettings2/resources.cpp +++ b/noncore/settings/networksettings2/networksettings2/resources.cpp @@ -177,7 +177,8 @@ bool TheNSResources::loadNetNode( QPixmap TheNSResources::getPixmap( const QString & QS ) { QString S("networksettings2/"); S += QS; - return Resource::loadPixmap( QString("networksettings2/")+QS ); + fprintf( stderr, "%s\n", S.latin1() ); + return Resource::loadPixmap( S ); } QString TheNSResources::tr( const char * s ) { diff --git a/noncore/settings/networksettings2/networksettingsGUI.ui b/noncore/settings/networksettings2/networksettingsGUI.ui index 1d79123..7ef2f64 100644 --- a/noncore/settings/networksettings2/networksettingsGUI.ui +++ b/noncore/settings/networksettings2/networksettingsGUI.ui @@ -11,8 +11,8 @@ 0 0 - 399 - 502 + 160 + 260 @@ -32,7 +32,7 @@ spacing - 0 + 2 QFrame @@ -167,7 +167,7 @@ QToolButton name - On_TB + Enable_TB sizePolicy @@ -193,7 +193,7 @@ QToolButton name - Enable_TB + On_TB sizePolicy @@ -241,6 +241,32 @@ true + + QToolButton + + name + Disconnect_TB + + + sizePolicy + + 0 + 0 + + + + text + ... + + + toggleButton + true + + + toggleButton + true + + @@ -254,18 +280,11 @@ QGroupBox name - CurProfile_GB - - - sizePolicy - - 5 - 1 - + Profile_GB title - + Profile layoutMargin @@ -280,7 +299,7 @@ spacing - 1 + 2 QLayoutWidget @@ -301,7 +320,7 @@ QLabel name - TextLabel2 + TextLabel2_2 text @@ -326,7 +345,7 @@ name - Spacer6 + Spacer6_2 orientation @@ -379,6 +398,145 @@ vAlign + + QLayoutWidget + + name + Layout4 + + + + margin + 0 + + + spacing + 6 + + + + name + Spacer4 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QPushButton + + name + ToMessages_BUT + + + sizePolicy + + 1 + 0 + + + + text + Messages ... + + + + + + + + QGroupBox + + name + Messages_GB + + + title + Messages + + + layoutMargin + + + layoutSpacing + + + + margin + 4 + + + spacing + 2 + + + QListBox + + name + Mesages_LB + + + + QLayoutWidget + + name + Layout2 + + + + margin + 0 + + + spacing + 6 + + + + name + Spacer3 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QPushButton + + name + ToProfile_BUT + + + text + Profile ... + + + + @@ -444,6 +602,18 @@ NetworkSettingsGUI SLOT_EditNode( QListBoxItem *) + + ToProfile_BUT + clicked() + NetworkSettingsGUI + SLOT_ToProfile() + + + ToMessages_BUT + clicked() + NetworkSettingsGUI + SLOT_ToMessages() + SLOT_AddNode() SLOT_CheckState() SLOT_Connect() @@ -453,5 +623,8 @@ SLOT_GenerateConfig() SLOT_On() SLOT_ShowNode( QListBoxItem*) + SLOT_ToMessages() + SLOT_ToProfile() + SLOT_Disconnect() diff --git a/noncore/settings/networksettings2/ppp/ppprun.cpp b/noncore/settings/networksettings2/ppp/ppprun.cpp index 8c75df3..a8abc50 100644 --- a/noncore/settings/networksettings2/ppp/ppprun.cpp +++ b/noncore/settings/networksettings2/ppp/ppprun.cpp @@ -20,7 +20,7 @@ void PPPRun::detectState( NodeCollection * NC ) { } } -bool PPPRun::setState( NodeCollection * NC, Action_t A ) { +bool PPPRun::setState( NodeCollection * NC, Action_t A, bool ) { switch( A ) { case Activate : NC->setCurrentState( Available ); diff --git a/noncore/settings/networksettings2/ppp/ppprun.h b/noncore/settings/networksettings2/ppp/ppprun.h index af51fbe..90a3f25 100644 --- a/noncore/settings/networksettings2/ppp/ppprun.h +++ b/noncore/settings/networksettings2/ppp/ppprun.h @@ -27,7 +27,7 @@ public : protected : void detectState( NodeCollection * NC ); - bool setState( NodeCollection * NC, Action_t A ); + bool setState( NodeCollection * NC, Action_t A, bool ); bool canSetState( State_t S, Action_t A ) { return AsDevice::connection()->findNext( AsDevice::netNode() )->runtime()->canSetState( S,A ); } diff --git a/noncore/settings/networksettings2/profile/profileedit.cpp b/noncore/settings/networksettings2/profile/profileedit.cpp index 3f72c52..c9fb650 100644 --- a/noncore/settings/networksettings2/profile/profileedit.cpp +++ b/noncore/settings/networksettings2/profile/profileedit.cpp @@ -11,16 +11,18 @@ #include "profileedit.h" ProfileEdit::ProfileEdit( QWidget * Parent, ANetNodeInstance * TNNI ) : - ProfileGUI( Parent ), TrafficRefresh(this) { + ProfileGUI( Parent ), RefreshTimer(this) { InterfaceInfo * II; NNI = TNNI; Dev = NNI->runtime()->device(); if( ( II = Dev->assignedInterface() ) ) { + Refresh_CB->setEnabled( TRUE ); Snd_GB->setEnabled( TRUE ); Rcv_GB->setEnabled( TRUE ); Collisions_FRM->setEnabled( TRUE ); + // show current content SLOT_Refresh(); @@ -42,10 +44,11 @@ ProfileEdit::ProfileEdit( QWidget * Parent, ANetNodeInstance * TNNI ) : S.prepend( " : " ); } InterfaceOptions_LBL->setText( S ); + + connect( &RefreshTimer, SIGNAL( timeout() ), + this, SLOT( SLOT_Refresh() ) ); } - connect( &TrafficRefresh, SIGNAL( timeout() ), - this, SLOT( SLOT_Refresh() ) ); } QString ProfileEdit::acceptable( void ) { @@ -85,9 +88,9 @@ void ProfileEdit::SLOT_Refresh( void ) { void ProfileEdit::SLOT_AutoRefresh( bool ar ) { if( ar ) { - TrafficRefresh.start( 1000 ); + RefreshTimer.start( 1000 ); SLOT_Refresh(); } else { - TrafficRefresh.stop(); + RefreshTimer.stop(); } } diff --git a/noncore/settings/networksettings2/profile/profileedit.h b/noncore/settings/networksettings2/profile/profileedit.h index 8ca34be..b186b58 100644 --- a/noncore/settings/networksettings2/profile/profileedit.h +++ b/noncore/settings/networksettings2/profile/profileedit.h @@ -23,7 +23,7 @@ public slots : private : - QTimer TrafficRefresh; + QTimer RefreshTimer; ANetNodeInstance * NNI; AsDevice * Dev; }; diff --git a/noncore/settings/networksettings2/profile/profilerun.cpp b/noncore/settings/networksettings2/profile/profilerun.cpp index feebf86..79bb93e 100644 --- a/noncore/settings/networksettings2/profile/profilerun.cpp +++ b/noncore/settings/networksettings2/profile/profilerun.cpp @@ -12,7 +12,7 @@ void ProfileRun::detectState( NodeCollection * NC ) { } } -bool ProfileRun::setState( NodeCollection * NC, Action_t A ) { +bool ProfileRun::setState( NodeCollection * NC, Action_t A, bool ) { ANetNodeInstance * NNNI; NNNI = netNode()->nextNode(); diff --git a/noncore/settings/networksettings2/profile/profilerun.h b/noncore/settings/networksettings2/profile/profilerun.h index 6e8385c..c8ea063 100644 --- a/noncore/settings/networksettings2/profile/profilerun.h +++ b/noncore/settings/networksettings2/profile/profilerun.h @@ -13,7 +13,7 @@ public : { Data = &D; } void detectState( NodeCollection * NC ); - bool setState( NodeCollection * NC, Action_t A ); + bool setState( NodeCollection * NC, Action_t A, bool ); bool canSetState( State_t Curr, Action_t A ); bool handlesInterface( const QString & I ); diff --git a/noncore/settings/networksettings2/usb/usbrun.cpp b/noncore/settings/networksettings2/usb/usbrun.cpp index 4ce6721..beacd7b 100644 --- a/noncore/settings/networksettings2/usb/usbrun.cpp +++ b/noncore/settings/networksettings2/usb/usbrun.cpp @@ -75,7 +75,7 @@ void USBRun::detectState( NodeCollection * NC ) { NC->setCurrentState( Unavailable ); } -bool USBRun::setState( NodeCollection * NC, Action_t A ) { +bool USBRun::setState( NodeCollection * NC, Action_t A, bool ) { // we only handle activate and deactivate switch( A ) { diff --git a/noncore/settings/networksettings2/usb/usbrun.h b/noncore/settings/networksettings2/usb/usbrun.h index 6c6e4e4..03e21ab 100644 --- a/noncore/settings/networksettings2/usb/usbrun.h +++ b/noncore/settings/networksettings2/usb/usbrun.h @@ -23,7 +23,7 @@ public : protected : void detectState( NodeCollection * ); - bool setState( NodeCollection * , Action_t A ); + bool setState( NodeCollection * , Action_t A, bool ); bool canSetState( State_t , Action_t A ); bool handlesInterface( const QString & I ); diff --git a/noncore/settings/networksettings2/vpn/vpnrun.h b/noncore/settings/networksettings2/vpn/vpnrun.h index 4d26298..c19b609 100644 --- a/noncore/settings/networksettings2/vpn/vpnrun.h +++ b/noncore/settings/networksettings2/vpn/vpnrun.h @@ -19,7 +19,7 @@ protected : void detectState( NodeCollection * ) { } - bool setState( NodeCollection *, Action_t ) + bool setState( NodeCollection *, Action_t, bool ) { return 0; } bool canSetState( State_t, Action_t ) diff --git a/noncore/settings/networksettings2/wlan/wlanGUI.ui b/noncore/settings/networksettings2/wlan/wlanGUI.ui index 9614369..1aec138 100644 --- a/noncore/settings/networksettings2/wlan/wlanGUI.ui +++ b/noncore/settings/networksettings2/wlan/wlanGUI.ui @@ -11,8 +11,8 @@ 0 0 - 192 - 329 + 209 + 307 @@ -32,7 +32,7 @@ spacing - 0 + 1 QTabWidget @@ -73,25 +73,43 @@ QLayoutWidget name - Layout6 + Layout11 - layoutMargin + layoutSpacing margin - 1 + 0 spacing - 6 + 1 - - QLabel + + QComboBox + + + text + Auto + + + + + text + Managed + + + + + text + Ad-Hoc + + name - essidLabel + Mode_CB enabled @@ -101,52 +119,30 @@ sizePolicy 1 - 1 + 0 - - text - ESS-ID - - - QComboBox - - - text - any - - + + QLabel name - ESSID_CB - - - sizePolicy - - 7 - 0 - + essidLabel_2 - editable + enabled true - currentItem - 0 - - - sizeLimit - 5 - - - autoCompletion - true + sizePolicy + + 1 + 1 + - duplicatesEnabled - false + text + Name @@ -171,35 +167,18 @@ Mode - - QComboBox - - - text - Infrastructure - - - - - text - Auto - - - - - text - Managed - - - - - text - Ad-Hoc - - + + QLineEdit name - Mode_CB + ESSID_LE + + + + QLabel + + name + essidLabel enabled @@ -209,9 +188,24 @@ sizePolicy 1 - 0 + 1 + + text + ESS-ID + + + + QLineEdit + + name + NodeName_LE + + + text + <UseHostName> + @@ -244,7 +238,7 @@ text - Specify &Access Point + Specify Access Point @@ -310,60 +304,6 @@ - - QLayoutWidget - - name - Layout7 - - - layoutMargin - - - - margin - 1 - - - spacing - 6 - - - QCheckBox - - name - SpecifyChannel_CB - - - text - Specific &Channel - - - - QSpinBox - - name - ChannelNr_SB - - - enabled - false - - - maxValue - 15 - - - minValue - 1 - - - value - 1 - - - - name @@ -410,7 +350,7 @@ QCheckBox name - EnableWEB_CB + EnableWEP_CB text @@ -511,6 +451,10 @@ name Key2_LE + + enabled + false + QLineEdit @@ -518,6 +462,10 @@ name Key4_LE + + enabled + false + QLineEdit @@ -525,6 +473,10 @@ name Key3_LE + + enabled + false + @@ -532,7 +484,7 @@ QCheckBox name - CheckBox4 + AcceptNonEncrypted_CB enabled @@ -589,7 +541,7 @@ QLayoutWidget name - Layout12 + Layout13 layoutSpacing @@ -603,26 +555,15 @@ spacing 2 - - QLabel - - name - TextLabel1_3 - - - text - Station - - - + QLabel name - Channel_LBL + Frequency_LBL frameShape - Panel + Box frameShadow @@ -633,48 +574,34 @@ 0 - - QLabel - - name - TextLabel4_3 - - - text - Channel - - QLabel name - TextLabel3_3 + TextLabel9_2 text - Mode + AP - + QLabel name - TextLabel2_3 + Channel_LBL - text - ESSID + frameShape + Box - - - QLabel - name - TextLabel9_2 + frameShadow + Plain - text - AP + indent + 0 @@ -685,7 +612,7 @@ frameShape - Panel + Box frameShadow @@ -696,7 +623,18 @@ 0 - + + QLabel + + name + TextLabel4_2_2 + + + text + Rate + + + QLabel name @@ -711,7 +649,7 @@ frameShape - Panel + Box frameShadow @@ -722,26 +660,34 @@ 0 - + QLabel name - TextLabel4_2_2 + AP_LBL - text - Rate + frameShape + Box + + + frameShadow + Plain + + + indent + 0 - + QLabel name - AP_LBL + Mode_LBL frameShape - Panel + Box frameShadow @@ -760,7 +706,7 @@ frameShape - Panel + Box frameShadow @@ -771,23 +717,59 @@ 0 - + QLabel name - Mode_LBL + TextLabel3_3 - frameShape - Panel + text + Mode + + + QLabel - frameShadow - Plain + name + TextLabel4_3 - indent - 0 + text + Channel + + + + QLabel + + name + TextLabel1_3 + + + text + Station + + + + QLabel + + name + TextLabel2_3 + + + text + ESSID + + + + QLabel + + name + TextLabel4_3_2 + + + text + Frequency @@ -799,6 +781,10 @@ GroupBox1 + margin + 0 + + title Link Quality @@ -815,7 +801,7 @@ spacing - 2 + 0 QLabel @@ -847,7 +833,7 @@ progress - 0 + 10 @@ -858,7 +844,7 @@ progress - 0 + 10 @@ -872,27 +858,6 @@ Signal - - - name - Spacer28 - - - orientation - Horizontal - - - sizeType - Fixed - - - sizeHint - - 16 - 20 - - - QProgressBar @@ -909,7 +874,7 @@ progress - 0 + 10 @@ -935,6 +900,62 @@ + + QLayoutWidget + + name + Layout21 + + + + margin + 0 + + + spacing + 6 + + + QCheckBox + + name + Refresh_CB + + + sizePolicy + + 1 + 5 + + + + text + Live feed + + + + + name + Spacer16 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + @@ -942,7 +963,7 @@ - EnableWEB_CB + EnableWEP_CB toggled(bool) KeyButtonGroup setEnabled(bool) @@ -960,16 +981,41 @@ setEnabled(bool) - SpecifyChannel_CB + EnableWEP_CB + toggled(bool) + AcceptNonEncrypted_CB + setEnabled(bool) + + + Key1_RB + toggled(bool) + Key1_LE + setEnabled(bool) + + + Key2_RB + toggled(bool) + Key2_LE + setEnabled(bool) + + + Key3_RB toggled(bool) - ChannelNr_SB + Key3_LE setEnabled(bool) - EnableWEB_CB + Key4_RB toggled(bool) - CheckBox4 + Key4_LE setEnabled(bool) + + Refresh_CB + toggled(bool) + WLanGUI + SLOT_AutoRefresh(bool) + + SLOT_AutoRefresh(bool) diff --git a/noncore/settings/networksettings2/wlan/wlan_NNI.cpp b/noncore/settings/networksettings2/wlan/wlan_NNI.cpp index 78e756c..61969f2 100644 --- a/noncore/settings/networksettings2/wlan/wlan_NNI.cpp +++ b/noncore/settings/networksettings2/wlan/wlan_NNI.cpp @@ -1,3 +1,4 @@ +#include #include "wlanedit.h" #include "wlan_NNI.h" #include "wlan_NN.h" @@ -5,16 +6,66 @@ AWLan::AWLan( WLanNetNode * PNN ) : ANetNodeInstance( PNN ) { GUI = 0; RT = 0; + Data.ESSID = ""; + Data.NodeName = tr(""); + Data.Mode = 0; + Data.SpecificAP = 0; + Data.APMac = ""; + Data.Encrypted = 0; + Data.AcceptNonEncrypted = 0; + Data.Key[0] = ""; + Data.Key[1] = ""; + Data.Key[2] = ""; + Data.Key[3] = ""; } -void AWLan::setSpecificAttribute( QString & , QString & ) { +void AWLan::setSpecificAttribute( QString & A, QString & V ) { + if( A == "essid" ) { + Data.ESSID = V; + } else if( A == "nodename" ) { + Data.NodeName = V; + } else if( A == "mode" ) { + Data.Mode = V.toShort(); + } else if( A == "specificap" ) { + Data.SpecificAP = (V=="yes"); + } else if( A == "apmac" ) { + Data.APMac = V; + } else if( A == "encrypted" ) { + Data.Encrypted = (V=="yes"); + } else if( A == "acceptnonencrypted" ) { + Data.AcceptNonEncrypted = (V=="yes"); + } else if( A == "key0" ) { + Data.Key[0] = V; + } else if( A == "key1" ) { + Data.Key[1] = V; + } else if( A == "key2" ) { + Data.Key[2] = V; + } else if( A == "key3" ) { + Data.Key[3] = V; + } } -void AWLan::saveSpecificAttribute( QTextStream & ) { +void AWLan::saveSpecificAttribute( QTextStream & S ) { + S << "essid=" << quote( Data.ESSID ) << endl; + S << "nodename=" << quote( Data.NodeName ) << endl; + S << "mode=" << Data.Mode << endl; + S << "specificap=" + << ((Data.SpecificAP) ? "yes" : "no") + << endl; + S << "apmac=" << Data.APMac << endl; + S << "encrypted=" + << ((Data.Encrypted) ? "yes" : "no") + << endl; + S << "acceptnonencrypted=" + << ((Data.AcceptNonEncrypted) ? "yes" : "no") + << endl; + for( int i = 0 ;i < 4 ; i ++ ) { + S << "key" << i << "=" << Data.Key[i] << endl; + } } QWidget * AWLan::edit( QWidget * parent ) { - GUI = new WLanEdit( parent ); + GUI = new WLanEdit( parent, this ); GUI->showData( Data ); return GUI; } @@ -29,8 +80,61 @@ void AWLan::commit( void ) { } bool AWLan::generateDataForCommonFile( - SystemFile &, + SystemFile & S, long ) { - return 1; + + S << " wireless_essid \"" + << Data.ESSID + << "\"" + << endl; + + if( ! Data.NodeName.isEmpty() ) { + if( Data.NodeName == tr("") ) { + char Buf[100]; + if( gethostname(Buf, sizeof(Buf) ) == 0 ) { + Buf[99] = '\0'; // just to make sure + S << " wireless_nick " + << Buf + << endl; + } + } else { + S << " wireless_nick \"" + << Data.NodeName + << "\"" + << endl; + } + } + + char * M; + switch ( Data.Mode ) { + case 0 : + M = "Auto"; + break; + case 1 : + M = "Managed"; + break; + case 2 : + M = "Ad-Hoc"; + break; + } + + S << " wireless_mode " + << M + << endl; + if( Data.Encrypted ) { + for( int i = 0; i < 4; i ++ ) { + if( ! Data.Key[i].isEmpty() ) { + S << " wireless_key" + << i + << " " + << Data.Key[i] + << endl; + } + } + S << " wireless_keymode " + << ((Data.AcceptNonEncrypted) ? "open" : "restricted") + << endl; + } + return 0; } diff --git a/noncore/settings/networksettings2/wlan/wlan_NNI.h b/noncore/settings/networksettings2/wlan/wlan_NNI.h index d861d13..2211c47 100644 --- a/noncore/settings/networksettings2/wlan/wlan_NNI.h +++ b/noncore/settings/networksettings2/wlan/wlan_NNI.h @@ -28,7 +28,7 @@ public : { return (void *)&Data; } virtual bool hasDataFor( const QString & ) - { return 0; } + { return 1; } virtual bool generateDataForCommonFile( SystemFile & SF, long DevNr ); protected : diff --git a/noncore/settings/networksettings2/wlan/wlandata.h b/noncore/settings/networksettings2/wlan/wlandata.h index ba1f2c2..36990a9 100644 --- a/noncore/settings/networksettings2/wlan/wlandata.h +++ b/noncore/settings/networksettings2/wlan/wlandata.h @@ -3,15 +3,14 @@ #include typedef struct WLanData { - QString Device; - QString LockFile; - long Speed; - short Parity; - short DataBits; - short StopBits; - bool HardwareControl; - bool SoftwareControl; - + QString ESSID; + QString NodeName; + short Mode; + bool SpecificAP; + QString APMac; + bool Encrypted; + QString Key[4]; + bool AcceptNonEncrypted; } WLanData_t; #endif diff --git a/noncore/settings/networksettings2/wlan/wlanedit.cpp b/noncore/settings/networksettings2/wlan/wlanedit.cpp index c884886..8d3979e 100644 --- a/noncore/settings/networksettings2/wlan/wlanedit.cpp +++ b/noncore/settings/networksettings2/wlan/wlanedit.cpp @@ -1,16 +1,115 @@ +#include +#include +#include +#include +#include +#include #include +#include +#include + #include "wlanedit.h" +#include "wlan_NN.h" +#include "wlan_NNI.h" + +WLanEdit::WLanEdit( QWidget * Parent, ANetNodeInstance * TNNI ) : + WLanGUI( Parent ), RefreshTimer(this){ + + InterfaceInfo * II; + + NNI = TNNI; + Dev = NNI->runtime()->device(); + WE = 0; + if( ( II = Dev->assignedInterface() ) ) { + // show data + WE = new WExtensions( II->Name ); + + if( WE->doesHaveWirelessExtensions() ) { + QString S; + Station_LBL->setText( WE->station() ); + ESSID_LBL->setText( WE->essid() ); + Mode_LBL->setText( WE->mode() ); + S.setNum( WE->frequency() ); + Frequency_LBL->setText( S ); + S.setNum( WE->channel() ); + Channel_LBL->setText( S ); + S.setNum( WE->rate() ); + Rate_LBL->setText( S ); + AP_LBL->setText( WE->ap() ); + + SLOT_Refresh(); + + connect( &RefreshTimer, SIGNAL( timeout() ), + this, SLOT( SLOT_Refresh() ) ); + } + } +} -WLanEdit::WLanEdit( QWidget * Parent ) : WLanGUI( Parent ){ +WLanEdit::~WLanEdit( void ) { + if( WE ) + delete WE; } QString WLanEdit::acceptable( void ) { + if( ESSID_LE->text().isEmpty() ) { + return QString("ESSID is mandatory"); + } + if( SpecifyAP_CB->isChecked() && + APMac_LE->text().isEmpty() ) { + return QString("APMac must have value"); + } return QString(); } void WLanEdit::showData( WLanData_t & Data ) { + Mode_CB->setCurrentItem( Data.Mode ); + ESSID_LE->setText( Data.ESSID ); + NodeName_LE->setText( Data.NodeName ); + SpecifyAP_CB->setChecked( Data.SpecificAP ); + APMac_LE->setText( Data.APMac ); + + EnableWEP_CB->setChecked( Data.Encrypted ); + AcceptNonEncrypted_CB->setChecked( Data.AcceptNonEncrypted ); + Key1_LE->setText( Data.Key[0] ); + Key2_LE->setText( Data.Key[1] ); + Key3_LE->setText( Data.Key[2] ); + Key4_LE->setText( Data.Key[3] ); } bool WLanEdit::commit( WLanData_t & Data ) { + bool SM = 0; + + TXTM( Data.ESSID, ESSID_LE, SM ); + TXTM( Data.NodeName, NodeName_LE, SM ); + TXTM( Data.APMac, APMac_LE, SM ); + TXTM( Data.Key[0], Key1_LE, SM ); + TXTM( Data.Key[1], Key2_LE, SM ); + TXTM( Data.Key[2], Key3_LE, SM ); + TXTM( Data.Key[3], Key4_LE, SM ); + CBM( Data.SpecificAP, SpecifyAP_CB, SM ); + CBM( Data.Encrypted, EnableWEP_CB, SM ); + CBM( Data.AcceptNonEncrypted, AcceptNonEncrypted_CB, SM ); + CIM( Data.Mode, Mode_CB, SM ); return 0; } + +void WLanEdit::SLOT_Refresh( void ) { + if( WE ) { + int signal, noise, quality; + WE->stats( signal, noise, quality); + + Signal_PB->setProgress( signal ); + Noise_PB->setProgress( noise ); + Quality_PB->setProgress( quality ); + } +} + +void WLanEdit::SLOT_AutoRefresh( bool ar ) { + if( ar ) { + RefreshTimer.start( 1000 ); + SLOT_Refresh(); + } else { + RefreshTimer.stop(); + } +} + diff --git a/noncore/settings/networksettings2/wlan/wlanedit.h b/noncore/settings/networksettings2/wlan/wlanedit.h index b7442d5..e550c14 100644 --- a/noncore/settings/networksettings2/wlan/wlanedit.h +++ b/noncore/settings/networksettings2/wlan/wlanedit.h @@ -1,12 +1,32 @@ +#include +#include #include "wlandata.h" #include "wlanGUI.h" +class ANetNodeInstance; +class AsDevice; +class WExtensions; + class WLanEdit : public WLanGUI { public : - WLanEdit( QWidget * parent ); + WLanEdit( QWidget * parent, ANetNodeInstance * NNI ); + ~WLanEdit( void ); QString acceptable( void ); void showData( WLanData_t & Data ); bool commit( WLanData_t & Data ); + +public slots : + + void SLOT_AutoRefresh( bool ); + void SLOT_Refresh( void ); + +private : + + ANetNodeInstance * NNI; + AsDevice * Dev; + QTimer RefreshTimer; + WExtensions * WE; + }; diff --git a/noncore/settings/networksettings2/wlan/wlanrun.cpp b/noncore/settings/networksettings2/wlan/wlanrun.cpp index 79f11f7..3f1d4a9 100644 --- a/noncore/settings/networksettings2/wlan/wlanrun.cpp +++ b/noncore/settings/networksettings2/wlan/wlanrun.cpp @@ -1,5 +1,185 @@ + +#include +#include +#include +#include #include "wlanrun.h" +void WLanRun::detectState( NodeCollection * NC ) { + + // unavailable : no card found + // available : card found and assigned to us or free + // up : card found and assigned to us and up + + QString S = QString( "/tmp/profile-%1.up" ).arg(NC->number()); + System & Sys = NSResources->system(); + InterfaceInfo * Run; + + QFile F( S ); + + if( F.open( IO_ReadOnly ) ) { + // could open file -> read interface and assign + QString X; + QTextStream TS(&F); + X = TS.readLine(); + // find interface + if( handlesInterface( X ) ) { + for( QDictIterator It(Sys.interfaces()); + It.current(); + ++It ) { + Run = It.current(); + if( X == Run->Name ) { + Run->assignNode( netNode() ); + assignInterface( Run ); + NC->setCurrentState( IsUp ); + return; + } + } + } + } + + if( ( Run = assignedInterface() ) ) { + // we already have an interface assigned -> still present ? + if( ! Run->IsUp ) { + // usb is still free -> keep assignment + NC->setCurrentState( Available ); + return; + } // else interface is up but NOT us -> some other profile + } + + // nothing (valid) assigned to us + assignInterface( 0 ); + + // find possible interface + for( QDictIterator It(Sys.interfaces()); + It.current(); + ++It ) { + Run = It.current(); + if( handlesInterface( *Run ) && + ( Run->CardType == ARPHRD_ETHER +#ifdef ARPHRD_IEEE1394 + || Run->CardType == ARPHRD_IEEE1394 +#endif + ) && + ! Run->IsUp + ) { + // proper type, and Not UP -> free + NC->setCurrentState( Off ); + return; + } + } + // no free found + + NC->setCurrentState( Unavailable ); + +} + +bool WLanRun::setState( NodeCollection * NC, Action_t A, bool ) { + + // we only handle activate and deactivate + switch( A ) { + case Activate : + { + if( NC->currentState() != Off ) { + return 0; + } + InterfaceInfo * N = getInterface(); + if( ! N ) { + // no interface available + NC->setCurrentState( Unavailable ); + return 0; + } + // because we were OFF the interface + // we get back is NOT assigned + N->assignNode( netNode() ); + assignInterface( N ); + NC->setCurrentState( Available ); + return 1; + } + case Deactivate : + if( NC->currentState() == IsUp ) { + // bring down first + if( ! connection()->setState( Down ) ) + // could not ... + return 0; + } else if( NC->currentState() != Available ) { + return 1; + } + assignedInterface()->assignNode( 0 ); // release + assignInterface( 0 ); + NC->setCurrentState( Off ); + return 1; + default : + // FT + break; + } + return 0; +} + +bool WLanRun::canSetState( State_t Curr, Action_t A ) { + // we only handle up down activate and deactivate + switch( A ) { + case Activate : + { // at least available + if( Curr == Available ) { + return 1; + } + // or we can make one available + InterfaceInfo * N = getInterface(); + if( ! N || N->assignedNode() != 0 ) { + // non available or assigned + return 0; + } + return 1; + } + case Deactivate : + return ( Curr >= Available ); + default : + // FT + break; + } + return 0; +} + +// get interface that is free or assigned to us +InterfaceInfo * WLanRun::getInterface( void ) { + + System & S = NSResources->system(); + InterfaceInfo * best = 0, * Run; + + for( QDictIterator It(S.interfaces()); + It.current(); + ++It ) { + Run = It.current(); + if( handlesInterface( *Run ) && + ( Run->CardType == ARPHRD_ETHER +#ifdef ARPHRD_IEEE1394 + || Run->CardType == ARPHRD_IEEE1394 +#endif + ) + ) { + // this is a LAN card + if( Run->assignedNode() == netNode() ) { + // assigned to us + return Run; + } else if( Run->assignedNode() == 0 ) { + // free + best = Run; + } + } + } + return best; // can be 0 +} + bool WLanRun::handlesInterface( const QString & S ) { + InterfaceInfo * II; + II = NSResources->system().interface( S ); + if( ( II = NSResources->system().interface( S ) ) ) { + return handlesInterface( *II ); + } return Pat.match( S ) >= 0; } + +bool WLanRun::handlesInterface( const InterfaceInfo & II ) { + return ( Pat.match( II.Name ) < 0 ); +} diff --git a/noncore/settings/networksettings2/wlan/wlanrun.h b/noncore/settings/networksettings2/wlan/wlanrun.h index f46bcb7..25d5b96 100644 --- a/noncore/settings/networksettings2/wlan/wlanrun.h +++ b/noncore/settings/networksettings2/wlan/wlanrun.h @@ -21,20 +21,17 @@ public : protected : - void detectState( NodeCollection * ) - { } - - bool setState( NodeCollection *, Action_t ) - { return 0; } - - bool canSetState( State_t, Action_t ) - { return 0; } - + void detectState( NodeCollection * ); + bool setState( NodeCollection *, Action_t, bool ); + bool canSetState( State_t, Action_t ); bool handlesInterface( const QString & I ); + bool handlesInterface( const InterfaceInfo & II ); private : + InterfaceInfo * getInterface( void ); QRegExp Pat; + WLanData * Data; }; #endif -- cgit v0.9.0.2