summaryrefslogtreecommitdiff
path: root/noncore
authortille <tille>2003-06-13 13:32:55 (UTC)
committer tille <tille>2003-06-13 13:32:55 (UTC)
commite5d826221bab71c39dc8fc89d91509dd16bc2a8a (patch) (side-by-side diff)
tree4a0ff06e1e6b43d52fe78a9ab14a7a8f98f41327 /noncore
parentc48af71638614aaff280178693448916e0e98102 (diff)
downloadopie-e5d826221bab71c39dc8fc89d91509dd16bc2a8a.zip
opie-e5d826221bab71c39dc8fc89d91509dd16bc2a8a.tar.gz
opie-e5d826221bab71c39dc8fc89d91509dd16bc2a8a.tar.bz2
qcop channels for start, stop wlan interface works now...
... the qcop handling has to become more general, and this handlet in the interface itself.
Diffstat (limited to 'noncore') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings/TODO6
-rw-r--r--noncore/settings/networksettings/wlan/wlanimp2.cpp22
-rw-r--r--noncore/settings/networksettings/wlan/wlanmodule.cpp50
-rw-r--r--noncore/settings/networksettings/wlan/wlanmodule.h7
4 files changed, 65 insertions, 20 deletions
diff --git a/noncore/settings/networksettings/TODO b/noncore/settings/networksettings/TODO
index 614501f..b28c5a0 100644
--- a/noncore/settings/networksettings/TODO
+++ b/noncore/settings/networksettings/TODO
@@ -1,16 +1,22 @@
+* make dcop handling portable
+* move dcop call for start, stop interfaces from wlan to interface
+
+
+Old TODO of Benmayer:
+
Types:
-Ethernet Connection (Done)
-ISDN Connection
-Modem COnnection (Started)
-xDSL connection
-Token Ring Connection
-CIPE (VPN) connection (ipsec?)
-Wireless Connection (Done)
-Bluetooth
-IPChains?
When Zaurus is in cradle, USB interface is connected and reported as UP by the Network Setting application, clicking on Information button does not popup a window. It used to work before, but now it's broken in the latest feed...
-Z hangs on PCMCIA-eject of Symbol 802.11b card (card seems to be in an odd
state after first boot following reflash; see Additional Info)
diff --git a/noncore/settings/networksettings/wlan/wlanimp2.cpp b/noncore/settings/networksettings/wlan/wlanimp2.cpp
index e7b842b..b988822 100644
--- a/noncore/settings/networksettings/wlan/wlanimp2.cpp
+++ b/noncore/settings/networksettings/wlan/wlanimp2.cpp
@@ -1,94 +1,94 @@
#include "wlanimp2.h"
#include "keyedit.h"
#include "interfacesetupimp.h"
#include <qfile.h>
#include <qdir.h>
#include <qtextstream.h>
#include <qmessagebox.h>
#include <qlineedit.h>
#include <qlabel.h>
#include <qspinbox.h>
#include <qradiobutton.h>
#include <qcheckbox.h>
#include <qtabwidget.h>
#include <qcombobox.h>
-#ifdef QWS
+#ifdef QWS
#include <opie/oprocess.h>
#else
#define OProcess KProcess
#include <kprocess.h>
#endif
#define WIRELESS_OPTS "/etc/pcmcia/wireless.opts"
#define PREUP "/etc/netwrok/if-pre-up.d/wireless-tools"
/**
* Constructor, read in the wireless.opts file for parsing later.
- */
+ */
WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : WLAN(parent, name, modal, fl), currentProfile("*"), interface(i) {
interfaces = new Interfaces;
interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, interfaces);
tabWidget->insertTab(interfaceSetup, "TCP/IP");
// Check sanity - the existance of the wireless-tools if-pre-up script
QFile file(QString(PREUP));
if (file.exists()) {
qWarning(QString("WLANImp: Unable to open /etc/network/if-pre-up.d/wireless-tools"));
}
}
WLANImp::~WLANImp() {
- delete interfaces;
+//FIXME: delete interfaces;
}
/**
* Change the profile for both wireless settings and network settings.
- */
+ */
void WLANImp::setProfile(const QString &profile){
interfaceSetup->setProfile(profile);
parseOpts();
}
void WLANImp::parseOpts() {
bool error;
QString opt;
if (! interfaces->isInterfaceSet())
return;
-
+
opt = interfaces->getInterfaceOption("wireless_essid", error);
if(opt == "any" || opt == "off" || opt.isNull()){
essid->setEditText("any");
} else {
essid->setEditText(opt);
}
opt = interfaces->getInterfaceOption("wireless_mode", error).simplifyWhiteSpace();
if (opt == "Auto") {
mode->setCurrentItem(0);
} else if (opt == "Ad-Hoc") {
mode->setCurrentItem(2);
} else {
// Managed/Infrastructure mode
mode->setCurrentItem(1);
}
-
+
opt = interfaces->getInterfaceOption("wireless_ap", error).simplifyWhiteSpace();
if (! opt.isNull()) {
specifyAp->setChecked(true);
macEdit->setText(opt);
}
opt = interfaces->getInterfaceOption("wireless_channel", error).simplifyWhiteSpace();
if (! opt.isNull()) {
specifyChan->setChecked(true);
networkChannel->setValue(opt.toInt());
}
opt = interfaces->getInterfaceOption("wireless_key", error).simplifyWhiteSpace();
if (opt.isNull())
opt = interfaces->getInterfaceOption("wireless_enc", error).simplifyWhiteSpace();
parseKeyStr(opt);
@@ -119,41 +119,41 @@ void WLANImp::parseKeyStr(QString keystr) {
} else if ((*it).left(1) == "[") {
index = (*it).mid(1, 1).toInt();
// switch current key to index
switch (index) {
case 1:
keyRadio0->setChecked(true);
break;
case 2:
keyRadio1->setChecked(true);
break;
case 3:
keyRadio2->setChecked(true);
break;
case 4:
keyRadio3->setChecked(true);
break;
- }
+ }
} else {
// key
key = (*it);
}
if (! key.isNull()) {
if (enc == -1)
enc = 1;
- QStringList::Iterator next = ++it;
+ QStringList::Iterator next = ++it;
if (it == keys.end()) {
break;
}
if ((*(next)).left(1) == "[") {
// set key at index
index = (*(next)).mid(1, 1).toInt();
} else {
index = 1;
}
switch (index) {
case 1:
keyLineEdit0->setText(key);
break;
case 2:
keyLineEdit1->setText(key);
break;
@@ -174,44 +174,44 @@ void WLANImp::parseKeyStr(QString keystr) {
}
}
/**
* Check to see if the current config is valid
* Save interfaces
*/
void WLANImp::accept() {
if (wepEnabled->isChecked()) {
if ((keyRadio0->isChecked() && keyLineEdit0->text().isEmpty()) ||
(keyRadio1->isChecked() && keyLineEdit1->text().isEmpty()) ||
(keyRadio2->isChecked() && keyLineEdit2->text().isEmpty()) ||
(keyRadio3->isChecked() && keyLineEdit3->text().isEmpty())) {
QMessageBox::information(this, "Error", "Please enter a WEP key.", QMessageBox::Ok);
return;
}
- }
-
+ }
+
if (essid->currentText().isEmpty()) {
QMessageBox::information(this, "Error", "Please select/enter an ESSID.", QMessageBox::Ok);
return;
}
if (specifyAp->isChecked() && macEdit->text().isEmpty()) {
QMessageBox::information(this, "Error", "Please enter the MAC address of the Access Point.", QMessageBox::Ok);
return;
}
-
+
// Try to save the interfaces settings.
writeOpts();
// Close out the dialog
QDialog::accept();
}
void WLANImp::writeOpts() {
bool error = false;
interfaces->setInterfaceOption(QString("wireless_mode"), mode->currentText());
interfaces->setInterfaceOption(QString("wireless_essid"), essid->currentText());
if (specifyAp->isChecked()) {
interfaces->setInterfaceOption(QString("wireless_ap"), macEdit->text());
} else {
diff --git a/noncore/settings/networksettings/wlan/wlanmodule.cpp b/noncore/settings/networksettings/wlan/wlanmodule.cpp
index 3c988d5..e6f082c 100644
--- a/noncore/settings/networksettings/wlan/wlanmodule.cpp
+++ b/noncore/settings/networksettings/wlan/wlanmodule.cpp
@@ -1,39 +1,43 @@
#include "wlanmodule.h"
#include "wlanimp.h"
#include "infoimp.h"
#include "wextensions.h"
#include "interfaceinformationimp.h"
#include <qlabel.h>
#include <qprogressbar.h>
#include <qtabwidget.h>
+
+
+
/**
* Constructor, find all of the possible interfaces
*/
WLANModule::WLANModule() : Module() {
}
/**
* Delete any interfaces that we own.
*/
WLANModule::~WLANModule(){
Interface *i;
for ( i=list.first(); i != 0; i=list.next() )
delete i;
+
}
/**
* Change the current profile
*/
void WLANModule::setProfile(const QString &newProfile){
profile = newProfile;
}
/**
* get the icon name for this device.
* @param Interface* can be used in determining the icon.
* @return QString the icon name (minus .png, .gif etc)
*/
QString WLANModule::getPixmapName(Interface* ){
return "wlan";
@@ -60,36 +64,33 @@ bool WLANModule::isOwner(Interface *i){
*/
QWidget *WLANModule::configure(Interface *i){
WLANImp *wlanconfig = new WLANImp(0, "WlanConfig", i, false, Qt::WDestructiveClose);
wlanconfig->setProfile(profile);
return wlanconfig;
}
/**
* Create, and return the Information Module
* @return QWidget* pointer to this modules info.
*/
QWidget *WLANModule::information(Interface *i){
WExtensions we(i->getInterfaceName());
if(!we.doesHaveWirelessExtensions())
return NULL;
- WlanInfoImp *info = new WlanInfoImp(0, i->getInterfaceName(), Qt::WDestructiveClose);
- InterfaceInformationImp *information = new InterfaceInformationImp(info->tabWidget, "InterfaceSetupImp", i);
- info->tabWidget->insertTab(information, "TCP/IP");
- return info;
+ return getInfo( i );
}
/**
* Get all active (up or down) interfaces
* @return QList<Interface> A list of interfaces that exsist that havn't
* been called by isOwner()
*/
QList<Interface> WLANModule::getInterfaces(){
return list;
}
/**
* Attempt to add a new interface as defined by name
* @param name the name of the type of interface that should be created given
* by possibleNewInterfaces();
* @return Interface* NULL if it was unable to be created.
@@ -115,39 +116,72 @@ void WLANModule::receive(const QCString &param, const QByteArray &arg)
QStringList params = QStringList::split(",",param);
int count = params.count();
qDebug("got %i params", count );
if (count < 2){
qDebug("Erorr less than 2 parameter");
qDebug("RETURNING");
return;
}
QDataStream stream(arg,IO_ReadOnly);
QString interface;
QString action;
stream >> interface;
stream >> action;
qDebug("got interface %s and acion %s", interface.latin1(), action.latin1());
+ // find interfaces
+ Interface *ifa=0;
+ for ( Interface *i=list.first(); i != 0; i=list.next() ){
+ if (i->getInterfaceName() == interface){
+ qDebug("found interface %s",interface.latin1());
+ ifa = i;
+ }
+ }
+
+ if (ifa == 0){
+ qFatal("Did not find %s",interface.latin1());
+ }
if (count == 2){
- // those should call the interface
+ // those should call the interface directly
+ QWidget *info = getInfo( ifa );
+ info->showMaximized();
+
if ( action.contains("start" ) ){
- qDebug("starting %s not yet implemented",interface.latin1());
+ ifa->start();
} else if ( action.contains("restart" ) ){
- qDebug("restarting %s not yet implemented",interface.latin1());
+ ifa->restart();
} else if ( action.contains("stop" ) ){
- qDebug("stopping %s not yet implemented",interface.latin1());
+ ifa->stop();
+ }else if ( action.contains("refresh" ) ){
+ ifa->refresh();
}
}else if (count == 3){
QString value;
stream >> value;
qDebug("setting %s of %s to %s", action.latin1(), interface.latin1(), value.latin1() );
+ if ( action.contains("ESSID") ){
+ qDebug("Setting ESSID not yet impl");
+ }else if (action.contains("Channel")){
+ qDebug("Setting Channel not yet impl");
+ }else
+ qDebug("wlan plugin has no clue");
}
// if (param.contains("QString,QString,QString")) {
// QDataStream stream(arg,IO_ReadOnly);
// QString arg1, arg2, arg3;
// stream >> arg1 >> arg2 >> arg3 ;
// qDebug("interface >%s< setting >%s< value >%s<",arg1.latin1(),arg2.latin1(),arg3.latin1());
// }
}
+QWidget *WLANModule::getInfo( Interface *i)
+{
+ qDebug("WLANModule::getInfo start");
+ WlanInfoImp *info = new WlanInfoImp(0, i->getInterfaceName(), Qt::WDestructiveClose);
+ InterfaceInformationImp *information = new InterfaceInformationImp(info->tabWidget, "InterfaceSetupImp", i);
+ info->tabWidget->insertTab(information, "TCP/IP", 0);
+
+ qDebug("WLANModule::getInfo return");
+ return info;
+}
diff --git a/noncore/settings/networksettings/wlan/wlanmodule.h b/noncore/settings/networksettings/wlan/wlanmodule.h
index a617a90..0963137 100644
--- a/noncore/settings/networksettings/wlan/wlanmodule.h
+++ b/noncore/settings/networksettings/wlan/wlanmodule.h
@@ -1,44 +1,49 @@
#ifndef WLAN_MODULE_H
#define WLAN_MODULE_H
#include "module.h"
+//class WlanInfoImp;
+
class WLANModule : Module{
signals:
void updateInterface(Interface *i);
public:
WLANModule();
~WLANModule();
virtual const QString type() {return "wlan";};
void setProfile(const QString &newProfile);
bool isOwner(Interface *);
QWidget *configure(Interface *i);
QWidget *information(Interface *i);
QList<Interface> getInterfaces();
void possibleNewInterfaces(QMap<QString, QString> &){};
Interface *addNewInterface(const QString &name);
bool remove(Interface* i);
QString getPixmapName(Interface* i);
virtual void receive(const QCString&, const QByteArray&);
private:
+ QWidget *getInfo(Interface*);
+
QList<Interface> list;
QString profile;
-
+ // WlanInfoImp *info;
+ // Interface *iface;
};
extern "C"
{
void* create_plugin() {
return new WLANModule();
}
};
#endif
// wlanmodule.h