-rw-r--r-- | noncore/settings/networksettings/mainwindowimp.cpp | 44 | ||||
-rw-r--r-- | noncore/settings/networksettings/mainwindowimp.h | 140 | ||||
-rw-r--r-- | noncore/settings/networksettings/module.h | 12 | ||||
-rw-r--r-- | noncore/settings/networksettings/networksettings.pro | 5 | ||||
-rw-r--r-- | noncore/settings/networksettings/ppp/pppmodule.h | 2 | ||||
-rw-r--r-- | noncore/settings/networksettings/wlan/wlanmodule.cpp | 72 | ||||
-rw-r--r-- | noncore/settings/networksettings/wlan/wlanmodule.h | 3 |
7 files changed, 191 insertions, 87 deletions
diff --git a/noncore/settings/networksettings/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindowimp.cpp index 4119490..0ef1e68 100644 --- a/noncore/settings/networksettings/mainwindowimp.cpp +++ b/noncore/settings/networksettings/mainwindowimp.cpp @@ -13,2 +13,3 @@ #include <qlabel.h> +#include <qpe/qcopenvelope_qws.h> #include <qtabwidget.h> // in order to disable the profiles tab @@ -63,3 +64,3 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par //FIXME: disable profiles for the moment: - tabWidget->setTabEnabled( tab, false ); +// tabWidget->setTabEnabled( tab, false ); @@ -121,2 +122,3 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par } + makeChannel(); } @@ -195,3 +197,4 @@ void MainWindowImp::getAllInterfaces(){ for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it) { - int flags = 0, family; + int flags = 0; +// int family; i = NULL; @@ -626 +629,38 @@ void MainWindowImp::changeProfile(){ + +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"); +} diff --git a/noncore/settings/networksettings/mainwindowimp.h b/noncore/settings/networksettings/mainwindowimp.h index c045fe6..a553f75 100644 --- a/noncore/settings/networksettings/mainwindowimp.h +++ b/noncore/settings/networksettings/mainwindowimp.h @@ -1,67 +1,73 @@ -#ifndef MAINWINOWIMP_H
-#define MAINWINOWIMP_H
-
-#include "mainwindow.h"
-#include <qmap.h>
-#include <qstringlist.h>
-
-class Module;
-class Interface;
-class QLibrary;
-class KProcess;
-#ifdef QWS
-class QLibrary;
-#else
-class KLibrary;
-class KLibLoader;
-#define QLibrary KLibrary
-#endif
-
-
-class MainWindowImp : public MainWindow {
- Q_OBJECT
-
-public:
- MainWindowImp(QWidget *parent=0, const char *name=0);
- ~MainWindowImp();
-
-private slots:
- void getAllInterfaces();
-
- void addClicked();
- void removeClicked();
- void configureClicked();
- void informationClicked();
-
- void addProfile();
- void removeProfile();
- void changeProfile();
-
- void updateInterface(Interface *i);
- void newProfileChanged(const QString& newText);
-
-private:
- void loadModules(const QString &path);
-
- Module* loadPlugin(const QString &pluginFileName,
- const QString &resolveString = "create_plugin");
-
- // For our local list of names
- QMap<QString, Interface*> interfaceNames;
-
- QMap<Module*, QLibrary*> libraries;
- QMap<Interface*, QListViewItem*> items;
- QMap<QListViewItem*, Interface*> interfaceItems;
-
- QMap<KProcess*, QString> threads;
- QStringList profiles;
-
- bool advancedUserMode;
- QString scheme;
-#ifndef QWS
- KLibLoader *loader;
-#endif
-};
-
-#endif // MAINWINOWIMP_H
-
+#ifndef MAINWINOWIMP_H +#define MAINWINOWIMP_H + +#include "mainwindow.h" +#include <qmap.h> +#include <qstringlist.h> + +class Module; +class Interface; +class QLibrary; +class KProcess; +class QCopChannel; +#ifdef QWS +class QLibrary; +#else +class KLibrary; +class KLibLoader; +#define QLibrary KLibrary +#endif + + +class MainWindowImp : public MainWindow { + Q_OBJECT + +public: + MainWindowImp(QWidget *parent=0, const char *name=0); + ~MainWindowImp(); + + QCopChannel *channel; + +private slots: + void getAllInterfaces(); + + void addClicked(); + void removeClicked(); + void configureClicked(); + void informationClicked(); + + void addProfile(); + void removeProfile(); + void changeProfile(); + + void updateInterface(Interface *i); + void newProfileChanged(const QString& newText); + + void receive (const QCString &, const QByteArray &); + +private: + void makeChannel(); + void loadModules(const QString &path); + + Module* loadPlugin(const QString &pluginFileName, + const QString &resolveString = "create_plugin"); + + // For our local list of names + QMap<QString, Interface*> interfaceNames; + + QMap<Module*, QLibrary*> libraries; + QMap<Interface*, QListViewItem*> items; + QMap<QListViewItem*, Interface*> interfaceItems; + + QMap<KProcess*, QString> threads; + QStringList profiles; + + bool advancedUserMode; + QString scheme; +#ifndef QWS + KLibLoader *loader; +#endif +}; + +#endif // MAINWINOWIMP_H + diff --git a/noncore/settings/networksettings/module.h b/noncore/settings/networksettings/module.h index 46a3c77..db74394 100644 --- a/noncore/settings/networksettings/module.h +++ b/noncore/settings/networksettings/module.h @@ -19,2 +19,3 @@ signals: void updateInterface(Interface *i); + @@ -24,2 +25,8 @@ public: /** + * The type of the plugin + * and the name of the dcop call + */ + virtual const QString type() = 0; + + /** * The current profile has been changed and the module should do any @@ -84,2 +91,7 @@ public: + /** + * get dcop calls + */ + virtual void receive(const QCString &msg, const QByteArray &arg) = 0; + }; diff --git a/noncore/settings/networksettings/networksettings.pro b/noncore/settings/networksettings/networksettings.pro index 875c68e..cdd133a 100644 --- a/noncore/settings/networksettings/networksettings.pro +++ b/noncore/settings/networksettings/networksettings.pro @@ -2,4 +2,5 @@ DESTDIR = $(OPIEDIR)/bin TEMPLATE = app -#CONFIG = qt warn_on debug -CONFIG = qt warn_on release +# +CONFIG = qt warn_on debug +#CONFIG = qt warn_on release HEADERS = mainwindowimp.h addconnectionimp.h defaultmodule.h module.h diff --git a/noncore/settings/networksettings/ppp/pppmodule.h b/noncore/settings/networksettings/ppp/pppmodule.h index 6464f87..de649e4 100644 --- a/noncore/settings/networksettings/ppp/pppmodule.h +++ b/noncore/settings/networksettings/ppp/pppmodule.h @@ -14,2 +14,3 @@ public: + virtual const QString type() {return "ppp";}; virtual void setProfile(const QString &newProfile); @@ -23,2 +24,3 @@ public: virtual QString getPixmapName(Interface* i); + virtual void receive(const QCString &msg, const QByteArray &arg) {}; diff --git a/noncore/settings/networksettings/wlan/wlanmodule.cpp b/noncore/settings/networksettings/wlan/wlanmodule.cpp index 3979e60..3c988d5 100644 --- a/noncore/settings/networksettings/wlan/wlanmodule.cpp +++ b/noncore/settings/networksettings/wlan/wlanmodule.cpp @@ -12,3 +12,3 @@ * Constructor, find all of the possible interfaces - */ + */ WLANModule::WLANModule() : Module() { @@ -18,3 +18,3 @@ WLANModule::WLANModule() : Module() { * Delete any interfaces that we own. - */ + */ WLANModule::~WLANModule(){ @@ -27,3 +27,3 @@ WLANModule::~WLANModule(){ * Change the current profile - */ + */ void WLANModule::setProfile(const QString &newProfile){ @@ -35,4 +35,4 @@ void WLANModule::setProfile(const QString &newProfile){ * @param Interface* can be used in determining the icon. - * @return QString the icon name (minus .png, .gif etc) - */ + * @return QString the icon name (minus .png, .gif etc) + */ QString WLANModule::getPixmapName(Interface* ){ @@ -45,3 +45,3 @@ QString WLANModule::getPixmapName(Interface* ){ * @return bool true if i is owned by this module, false otherwise. - */ + */ bool WLANModule::isOwner(Interface *i){ @@ -50,3 +50,3 @@ bool WLANModule::isOwner(Interface *i){ return false; - + i->setHardwareName("802.11b"); @@ -59,3 +59,3 @@ bool WLANModule::isOwner(Interface *i){ * @return QWidget* pointer to this modules configure. - */ + */ QWidget *WLANModule::configure(Interface *i){ @@ -69,3 +69,3 @@ QWidget *WLANModule::configure(Interface *i){ * @return QWidget* pointer to this modules info. - */ + */ QWidget *WLANModule::information(Interface *i){ @@ -74,3 +74,3 @@ QWidget *WLANModule::information(Interface *i){ return NULL; - + WlanInfoImp *info = new WlanInfoImp(0, i->getInterfaceName(), Qt::WDestructiveClose); @@ -95,7 +95,7 @@ QList<Interface> WLANModule::getInterfaces(){ * @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; + // or it wont. + return NULL; } @@ -105,9 +105,49 @@ Interface *WLANModule::addNewInterface(const QString &){ * @return bool true if successfull, false otherwise. - */ + */ bool WLANModule::remove(Interface*){ // Can't remove a hardware device, you can stop it though. - return false; + return false; } -// wlanmodule.cpp +void WLANModule::receive(const QCString ¶m, const QByteArray &arg) +{ + qDebug("WLANModule::receive "+param); + 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()); + + if (count == 2){ + // those should call the interface + if ( action.contains("start" ) ){ + qDebug("starting %s not yet implemented",interface.latin1()); + } else if ( action.contains("restart" ) ){ + qDebug("restarting %s not yet implemented",interface.latin1()); + } else if ( action.contains("stop" ) ){ + qDebug("stopping %s not yet implemented",interface.latin1()); + } + }else if (count == 3){ + QString value; + stream >> value; + qDebug("setting %s of %s to %s", action.latin1(), interface.latin1(), value.latin1() ); + } + // 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()); +// } +} diff --git a/noncore/settings/networksettings/wlan/wlanmodule.h b/noncore/settings/networksettings/wlan/wlanmodule.h index 3a54de6..a617a90 100644 --- a/noncore/settings/networksettings/wlan/wlanmodule.h +++ b/noncore/settings/networksettings/wlan/wlanmodule.h @@ -14,2 +14,4 @@ public: + + virtual const QString type() {return "wlan";}; void setProfile(const QString &newProfile); @@ -23,2 +25,3 @@ public: QString getPixmapName(Interface* i); + virtual void receive(const QCString&, const QByteArray&); |