summaryrefslogtreecommitdiff
authortille <tille>2003-06-13 14:54:32 (UTC)
committer tille <tille>2003-06-13 14:54:32 (UTC)
commit006f7b028f03232e51dd6ceab35a7d492288fd22 (patch) (side-by-side diff)
tree27fe264b7628f7ac4f17b925803b3f562f165fb7
parente5d826221bab71c39dc8fc89d91509dd16bc2a8a (diff)
downloadopie-006f7b028f03232e51dd6ceab35a7d492288fd22.zip
opie-006f7b028f03232e51dd6ceab35a7d492288fd22.tar.gz
opie-006f7b028f03232e51dd6ceab35a7d492288fd22.tar.bz2
qcop channels for ESSID, Channel and Mode
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings/mainwindowimp.cpp3
-rw-r--r--noncore/settings/networksettings/wlan/wlanimp2.cpp2
-rw-r--r--noncore/settings/networksettings/wlan/wlanmodule.cpp50
-rw-r--r--noncore/settings/networksettings/wlan/wlanmodule.h7
4 files changed, 42 insertions, 20 deletions
diff --git a/noncore/settings/networksettings/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindowimp.cpp
index 0ef1e68..5029525 100644
--- a/noncore/settings/networksettings/mainwindowimp.cpp
+++ b/noncore/settings/networksettings/mainwindowimp.cpp
@@ -617,50 +617,51 @@ void MainWindowImp::changeProfile(){
// restart all up devices?
if(QMessageBox::information(this, "Question","Restart all running interfaces?", QMessageBox::Ok, QMessageBox::No) == QMessageBox::Ok){
// Go through them one by one
QMap<Interface*, QListViewItem*>::Iterator it;
for( it = items.begin(); it != items.end(); ++it ){
if(it.key()->getStatus() == true)
it.key()->restart();
}
}
}
// TODO change the profile in the modules
}
void MainWindowImp::makeChannel()
{
channel = new QCopChannel( "QPE/Application/networksettings", this );
connect( channel, SIGNAL(received(const QCString&, const QByteArray&)),
this, SLOT(receive(const QCString&, const QByteArray&)) );
}
void MainWindowImp::receive(const QCString &msg, const QByteArray &arg)
{
bool found = false;
qDebug("MainWindowImp::receive QCop msg >"+msg+"<");
QString dest = msg.left(msg.find("("));
QCString param = msg.right(msg.length() - msg.find("(") - 1);
param = param.left( param.length() - 1 );
qDebug("dest >%s< param >"+param+"<",dest.latin1());
// if (param.contains("QString,QString,QString")) {
// QDataStream stream(arg,IO_ReadOnly);
// QString arg1, arg2, arg3;
// stream >> arg1 >> arg2 >> arg3 ;
// qDebug("args: >%s< >%s< >%s<",arg1.latin1(),arg2.latin1(),arg3.latin1());
// }
QMap<Module*, QLibrary*>::Iterator it;
for( it = libraries.begin(); it != libraries.end(); ++it ){
qDebug("plugin >%s<", it.key()->type().latin1() );
if(it.key()->type() == dest){
it.key()->receive( param, arg );
found = true;
}
}
- if (!found) qDebug("Huh what do ya want");
+ if (found) QPEApplication::setKeepRunning();
+ else qDebug("Huh what do ya want");
}
diff --git a/noncore/settings/networksettings/wlan/wlanimp2.cpp b/noncore/settings/networksettings/wlan/wlanimp2.cpp
index b988822..cdafb4d 100644
--- a/noncore/settings/networksettings/wlan/wlanimp2.cpp
+++ b/noncore/settings/networksettings/wlan/wlanimp2.cpp
@@ -1,79 +1,79 @@
#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
#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;
+ 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() {
//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();
diff --git a/noncore/settings/networksettings/wlan/wlanmodule.cpp b/noncore/settings/networksettings/wlan/wlanmodule.cpp
index e6f082c..bc467bb 100644
--- a/noncore/settings/networksettings/wlan/wlanmodule.cpp
+++ b/noncore/settings/networksettings/wlan/wlanmodule.cpp
@@ -1,65 +1,71 @@
#include "wlanmodule.h"
#include "wlanimp.h"
#include "infoimp.h"
#include "wextensions.h"
#include "interfaceinformationimp.h"
+#include <qcheckbox.h>
+#include <qcombobox.h>
#include <qlabel.h>
#include <qprogressbar.h>
+#include <qspinbox.h>
#include <qtabwidget.h>
/**
* Constructor, find all of the possible interfaces
*/
-WLANModule::WLANModule() : Module() {
+WLANModule::WLANModule()
+ : Module(),
+ wlanconfigWiget(0)
+{
}
/**
* 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";
}
/**
* Check to see if the interface i is owned by this module.
* @param Interface* interface to check against
* @return bool true if i is owned by this module, false otherwise.
*/
bool WLANModule::isOwner(Interface *i){
WExtensions we(i->getInterfaceName());
if(!we.doesHaveWirelessExtensions())
return false;
i->setHardwareName("802.11b");
list.append(i);
return true;
}
/**
* Create, and return the WLANConfigure Module
* @return QWidget* pointer to this modules configure.
*/
QWidget *WLANModule::configure(Interface *i){
@@ -70,118 +76,134 @@ QWidget *WLANModule::configure(Interface *i){
/**
* 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;
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.
*/
Interface *WLANModule::addNewInterface(const QString &){
// We can't add a 802.11 interface, either the hardware will be there
// or it wont.
return NULL;
}
/**
* Attempts to remove the interface, doesn't delete i
* @return bool true if successfull, false otherwise.
*/
bool WLANModule::remove(Interface*){
// Can't remove a hardware device, you can stop it though.
return false;
}
void WLANModule::receive(const QCString &param, const QByteArray &arg)
{
qDebug("WLANModule::receive "+param);
QStringList params = QStringList::split(",",param);
int count = params.count();
- qDebug("got %i params", count );
+ qDebug("WLANModule 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());
+ qDebug("WLANModule 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());
+ qDebug("WLANModule found interface %s",interface.latin1());
ifa = i;
}
}
if (ifa == 0){
- qFatal("Did not find %s",interface.latin1());
+ qFatal("WLANModule Did not find %s",interface.latin1());
}
if (count == 2){
// those should call the interface directly
QWidget *info = getInfo( ifa );
info->showMaximized();
if ( action.contains("start" ) ){
ifa->start();
} else if ( action.contains("restart" ) ){
ifa->restart();
} else if ( action.contains("stop" ) ){
ifa->stop();
}else if ( action.contains("refresh" ) ){
ifa->refresh();
}
}else if (count == 3){
QString value;
+ if (!wlanconfigWiget){
+ //FIXME: what if it got closed meanwhile?
+ wlanconfigWiget = (WLANImp*) configure(ifa);
+ }
+ wlanconfigWiget->showMaximized();
stream >> value;
- qDebug("setting %s of %s to %s", action.latin1(), interface.latin1(), value.latin1() );
+ qDebug("WLANModule is setting %s of %s to %s", action.latin1(), interface.latin1(), value.latin1() );
if ( action.contains("ESSID") ){
- qDebug("Setting ESSID not yet impl");
+ QComboBox *combo = wlanconfigWiget->essid;
+ bool found = false;
+ for ( int i = 0; i < combo->count(); i++)
+ if ( combo->text( i ) == value ){
+ combo->setCurrentItem( i );
+ found = true;
+ }
+ if (!found) combo->insertItem( value, 0 );
+ }else if ( action.contains("Mode") ){
+ QComboBox *combo = wlanconfigWiget->mode;
+ for ( int i = 0; i < combo->count(); i++)
+ if ( combo->text( i ) == value ){
+ combo->setCurrentItem( i );
+ }
+
}else if (action.contains("Channel")){
- qDebug("Setting Channel not yet impl");
+ wlanconfigWiget->specifyChan->setChecked( true );
+ wlanconfigWiget->networkChannel->setValue( value.toInt() );
}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 0963137..027ecec 100644
--- a/noncore/settings/networksettings/wlan/wlanmodule.h
+++ b/noncore/settings/networksettings/wlan/wlanmodule.h
@@ -1,49 +1,48 @@
#ifndef WLAN_MODULE_H
#define WLAN_MODULE_H
#include "module.h"
-//class WlanInfoImp;
+class WLANImp;
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*);
-
+ WLANImp *wlanconfigWiget;
QList<Interface> list;
QString profile;
- // WlanInfoImp *info;
- // Interface *iface;
+
};
extern "C"
{
void* create_plugin() {
return new WLANModule();
}
};
#endif
// wlanmodule.h