summaryrefslogtreecommitdiff
authorbenmeyer <benmeyer>2002-10-02 17:22:50 (UTC)
committer benmeyer <benmeyer>2002-10-02 17:22:50 (UTC)
commit527e77d8244fb25d0bab39857eebbdfbcbfb807a (patch) (side-by-side diff)
treef3ec7cee3573ef83d8d86f859c7c3de3a8b06b9f
parent6e50141595ec2159d384c2cb9aaee4758eb720ea (diff)
downloadopie-527e77d8244fb25d0bab39857eebbdfbcbfb807a.zip
opie-527e77d8244fb25d0bab39857eebbdfbcbfb807a.tar.gz
opie-527e77d8244fb25d0bab39857eebbdfbcbfb807a.tar.bz2
Add Connection function more filled in
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/networksetup/TODO1
-rw-r--r--noncore/net/networksetup/addconnection.ui (renamed from noncore/net/networksetup/addservice.ui)19
-rw-r--r--noncore/net/networksetup/addconnectionimp.cpp38
-rw-r--r--noncore/net/networksetup/addconnectionimp.h29
-rw-r--r--noncore/net/networksetup/addserviceimp.cpp26
-rw-r--r--noncore/net/networksetup/addserviceimp.h26
-rw-r--r--noncore/net/networksetup/interface.h1
-rw-r--r--noncore/net/networksetup/interfacesetupimp.cpp3
-rw-r--r--noncore/net/networksetup/mainwindow.ui10
-rw-r--r--noncore/net/networksetup/mainwindowimp.cpp205
-rw-r--r--noncore/net/networksetup/mainwindowimp.h1
-rw-r--r--noncore/net/networksetup/module.h55
-rw-r--r--noncore/net/networksetup/networksetup.pro6
-rw-r--r--noncore/net/networksetup/wlan/wlan.ui4
-rw-r--r--noncore/net/networksetup/wlan/wlanmodule.cpp23
-rw-r--r--noncore/net/networksetup/wlan/wlanmodule.h2
-rw-r--r--noncore/settings/networksettings/TODO1
-rw-r--r--noncore/settings/networksettings/addconnection.ui (renamed from noncore/settings/networksettings/addservice.ui)19
-rw-r--r--noncore/settings/networksettings/addconnectionimp.cpp38
-rw-r--r--noncore/settings/networksettings/addconnectionimp.h29
-rw-r--r--noncore/settings/networksettings/addserviceimp.cpp26
-rw-r--r--noncore/settings/networksettings/addserviceimp.h26
-rw-r--r--noncore/settings/networksettings/interface.h1
-rw-r--r--noncore/settings/networksettings/interfacesetupimp.cpp3
-rw-r--r--noncore/settings/networksettings/mainwindow.ui10
-rw-r--r--noncore/settings/networksettings/mainwindowimp.cpp205
-rw-r--r--noncore/settings/networksettings/mainwindowimp.h1
-rw-r--r--noncore/settings/networksettings/module.h55
-rw-r--r--noncore/settings/networksettings/networksetup.pro6
-rw-r--r--noncore/settings/networksettings/wlan/wlan.ui4
-rw-r--r--noncore/settings/networksettings/wlan/wlanmodule.cpp23
-rw-r--r--noncore/settings/networksettings/wlan/wlanmodule.h2
32 files changed, 514 insertions, 384 deletions
diff --git a/noncore/net/networksetup/TODO b/noncore/net/networksetup/TODO
index 9a1657a..e69de29 100644
--- a/noncore/net/networksetup/TODO
+++ b/noncore/net/networksetup/TODO
@@ -1 +0,0 @@
-Fix DHCP obtained and expoired info
diff --git a/noncore/net/networksetup/addservice.ui b/noncore/net/networksetup/addconnection.ui
index 929f4fb..a349804 100644
--- a/noncore/net/networksetup/addservice.ui
+++ b/noncore/net/networksetup/addconnection.ui
@@ -1,23 +1,23 @@
<!DOCTYPE UI><UI>
-<class>AddService</class>
+<class>AddConnection</class>
<widget>
<class>QDialog</class>
<property stdset="1">
<name>name</name>
- <cstring>AddService</cstring>
+ <cstring>AddConnection</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>245</width>
+ <width>233</width>
<height>268</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
- <string>Add Network Service</string>
+ <string>Add Network Connection</string>
</property>
<grid>
<property stdset="1">
@@ -36,7 +36,7 @@
</property>
<property stdset="1">
<name>text</name>
- <string>Cancel</string>
+ <string>&amp;Cancel</string>
</property>
</widget>
<widget row="3" column="0" >
@@ -47,7 +47,7 @@
</property>
<property stdset="1">
<name>text</name>
- <string>Add</string>
+ <string>&amp;Add</string>
</property>
</widget>
<widget row="0" column="0" rowspan="1" colspan="2" >
@@ -121,8 +121,7 @@
</property>
<property stdset="1">
<name>text</name>
- <string>LAN - TCP/IP
-For Local-area network connections through PC_CARD network interfdace cards.</string>
+ <string></string>
</property>
<property stdset="1">
<name>alignment</name>
@@ -141,13 +140,13 @@ For Local-area network connections through PC_CARD network interfdace cards.</st
<connection>
<sender>cancelButton</sender>
<signal>clicked()</signal>
- <receiver>AddService</receiver>
+ <receiver>AddConnection</receiver>
<slot>reject()</slot>
</connection>
<connection>
<sender>addButton</sender>
<signal>clicked()</signal>
- <receiver>AddService</receiver>
+ <receiver>AddConnection</receiver>
<slot>accept()</slot>
</connection>
</connections>
diff --git a/noncore/net/networksetup/addconnectionimp.cpp b/noncore/net/networksetup/addconnectionimp.cpp
new file mode 100644
index 0000000..ee7bd97
--- a/dev/null
+++ b/noncore/net/networksetup/addconnectionimp.cpp
@@ -0,0 +1,38 @@
+#include "addconnectionimp.h"
+#include <qlistview.h>
+#include <qlist.h>
+#include <qlabel.h>
+#include <qheader.h>
+
+/**
+ * Constructor
+ */
+AddConnectionImp::AddConnectionImp(QWidget *parent=0, const char *name=0, WFlags f=0):AddConnection(parent, name, f){
+ connect(registeredServicesList, SIGNAL(selectionChanged()), this, SLOT(changed()));
+ registeredServicesList->header()->hide();
+};
+
+/**
+ * The current item changed, update the discription.
+ */
+void AddConnectionImp::changed(){
+ QListViewItem *item = registeredServicesList->currentItem();
+ if(item){
+ help->setText(list[item->text(0)]);
+ }
+}
+
+/**
+ * Save a copy of newList for the discriptions and append them all to the view
+ * @param newList the new list of possible interfaces
+ */
+void AddConnectionImp::addConnections(QMap<QString, QString> newList){
+ list = newList;
+ QMap<QString, QString>::Iterator it;
+ for( it = list.begin(); it != list.end(); ++it )
+ QListViewItem *item = new QListViewItem(registeredServicesList, it.key());
+ registeredServicesList->setCurrentItem(registeredServicesList->firstChild());
+}
+
+// addserviceimp.cpp
+
diff --git a/noncore/net/networksetup/addconnectionimp.h b/noncore/net/networksetup/addconnectionimp.h
new file mode 100644
index 0000000..643cd9a
--- a/dev/null
+++ b/noncore/net/networksetup/addconnectionimp.h
@@ -0,0 +1,29 @@
+#ifndef ADDCONNECTIONIMP_H
+#define ADDCONNECTIONIMP_H
+
+#include "addconnection.h"
+#include <qmap.h>
+#include <qlist.h>
+
+class QListViewItem;
+
+class AddConnectionImp : public AddConnection {
+
+Q_OBJECT
+
+public:
+ AddConnectionImp(QWidget *parent=0, const char *name=0, WFlags f=0);
+ void addConnections(QMap<QString, QString> newList);
+
+private slots:
+ void changed();
+
+private:
+ QMap<QString, QString> list;
+
+};
+
+#endif
+
+// addconectionimp.h
+
diff --git a/noncore/net/networksetup/addserviceimp.cpp b/noncore/net/networksetup/addserviceimp.cpp
deleted file mode 100644
index ac79d06..0000000
--- a/noncore/net/networksetup/addserviceimp.cpp
+++ b/dev/null
@@ -1,26 +0,0 @@
-#include "addserviceimp.h"
-#include <qpe/qlibrary.h>
-#include <qlistview.h>
-#include <qlist.h>
-
-void AddServiceImp::addServices(QList<QString> list){
- list.setAutoDelete(true);
-
- for(uint i = 0; i < list.count(); i++){
- QString pluginFileName = "";
- QLibrary *lib = new QLibrary(pluginFileName);
- void *functionPointer = lib->resolve("info");
- if( !functionPointer ){
- qDebug(QString("AddServiceImp: File: %1 is not a plugin, but though was.").arg(pluginFileName).latin1());
- delete lib;
- break;
- }
-
- // Try to get an info.
- QString info = ((QString (*)()) functionPointer)();
- QListViewItem *newItem = new QListViewItem(registeredServicesList, info);
- }
-}
-
-
-// addserviceimp.cpp
diff --git a/noncore/net/networksetup/addserviceimp.h b/noncore/net/networksetup/addserviceimp.h
deleted file mode 100644
index 7cacb97..0000000
--- a/noncore/net/networksetup/addserviceimp.h
+++ b/dev/null
@@ -1,26 +0,0 @@
-#ifndef ADDSERVICEIMP_H
-#define ADDSERVICEIMP_H
-
-#include "addservice.h"
-#include <qmap.h>
-#include <qlist.h>
-
-class QListViewItem;
-
-class AddServiceImp : public AddService {
-
-Q_OBJECT
-
-public:
- AddServiceImp(QWidget *parent=0, const char *name=0, WFlags f=0):AddService(parent, name, f){};
- void addServices(QList<QString> list);
-
-private:
- QMap<QListViewItem*, QString> pluginInfo;
-
-};
-
-#endif
-
-// addserviceimp.h
-
diff --git a/noncore/net/networksetup/interface.h b/noncore/net/networksetup/interface.h
index 5dc95a4..1406e99 100644
--- a/noncore/net/networksetup/interface.h
+++ b/noncore/net/networksetup/interface.h
@@ -4,6 +4,7 @@
#include <qstring.h>
class Module;
+
class Interface {
public:
diff --git a/noncore/net/networksetup/interfacesetupimp.cpp b/noncore/net/networksetup/interfacesetupimp.cpp
index 6a8449d..951aeee 100644
--- a/noncore/net/networksetup/interfacesetupimp.cpp
+++ b/noncore/net/networksetup/interfacesetupimp.cpp
@@ -13,7 +13,6 @@
#include <assert.h>
-#define INTERFACE_FILE "/home/ben/interfaces"
#define DNSSCRIPT "interfacednsscript"
/**
@@ -22,7 +21,7 @@
InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : InterfaceSetup(parent, name, modal, fl){
assert(i);
interface = i;
- interfaces = new Interfaces(INTERFACE_FILE);
+ interfaces = new Interfaces();
changeProfile(profileCombo->currentText());
bool error = false;
if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
diff --git a/noncore/net/networksetup/mainwindow.ui b/noncore/net/networksetup/mainwindow.ui
index a3f7bb1..f5b104a 100644
--- a/noncore/net/networksetup/mainwindow.ui
+++ b/noncore/net/networksetup/mainwindow.ui
@@ -102,7 +102,7 @@
</column>
<property stdset="1">
<name>name</name>
- <cstring>serviceList</cstring>
+ <cstring>connectionList</cstring>
</property>
<property stdset="1">
<name>allColumnsShowFocus</name>
@@ -131,7 +131,7 @@
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
- <cstring>addServiceButton</cstring>
+ <cstring>addConnectionButton</cstring>
</property>
<property stdset="1">
<name>text</name>
@@ -142,7 +142,7 @@
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
- <cstring>informationServiceButton</cstring>
+ <cstring>informationConnectionButton</cstring>
</property>
<property stdset="1">
<name>text</name>
@@ -153,7 +153,7 @@
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
- <cstring>configureServiceButton</cstring>
+ <cstring>configureConnectionButton</cstring>
</property>
<property stdset="1">
<name>text</name>
@@ -164,7 +164,7 @@
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
- <cstring>removeServiceButton</cstring>
+ <cstring>removeConnectionButton</cstring>
</property>
<property stdset="1">
<name>text</name>
diff --git a/noncore/net/networksetup/mainwindowimp.cpp b/noncore/net/networksetup/mainwindowimp.cpp
index 89dac6f..66ec8b5 100644
--- a/noncore/net/networksetup/mainwindowimp.cpp
+++ b/noncore/net/networksetup/mainwindowimp.cpp
@@ -1,10 +1,10 @@
#include "mainwindowimp.h"
-#include "addserviceimp.h"
+#include "addconnectionimp.h"
#include "interfaceinformationimp.h"
#include "interfacesetupimp.h"
-#include "kprocess.h"
#include "module.h"
+#include "kprocess.h"
#include <qpushbutton.h>
#include <qtabwidget.h>
@@ -25,72 +25,68 @@
#include <qfile.h>
#include <qtextstream.h>
-// For library loading.
-#include <dlfcn.h>
-
#define TEMP_ALL "/tmp/ifconfig-a"
#define TEMP_UP "/tmp/ifconfig"
-MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true) {
- connect(addServiceButton, SIGNAL(clicked()), this, SLOT(addClicked()));
- connect(removeServiceButton, SIGNAL(clicked()), this, SLOT(removeClicked()));
- connect(informationServiceButton, SIGNAL(clicked()), this, SLOT(informationClicked()));
- connect(configureServiceButton, SIGNAL(clicked()), this, SLOT(configureClicked()));
+MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true), advancedUserMode(false){
+ connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked()));
+ connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked()));
+ connect(informationConnectionButton, SIGNAL(clicked()), this, SLOT(informationClicked()));
+ connect(configureConnectionButton, SIGNAL(clicked()), this, SLOT(configureClicked()));
connect(newProfileButton, SIGNAL(clicked()), this, SLOT(addProfile()));
connect(removeProfileButton, SIGNAL(clicked()), this, SLOT(removeProfile()));
connect(profilesList, SIGNAL(highlighted(const QString&)), this, SLOT(changeProfile(const QString&)));
- // Make sure we have a plugin directory to scan.
- QString DirStr = QDir::homeDirPath() + "/.networksetup/" ;
- QDir pluginDir( DirStr );
- pluginDir.mkdir( DirStr );
- pluginDir.mkdir( ( DirStr + "plugins/" ) );
- QString path = DirStr + "plugins";
- pluginDir.setPath(path);
- if(!pluginDir.exists()){
- qDebug(QString("MainWindowImp: ERROR: %1 %2").arg(__FILE__).arg(__LINE__).latin1());
- return;
- }
-
- // Load any saved services.
- loadModules(path);
+ // Load connections.
+ loadModules(QDir::homeDirPath() + "/.networksetup/plugins");
getInterfaceList();
- serviceList->header()->hide();
+ connectionList->header()->hide();
Config cfg("NetworkSetup");
profiles = QStringList::split(" ", cfg.readEntry("Profiles", "All"));
for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
profilesList->insertItem((*it));
+ advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false);
}
/**
- * Deconstructor. Unload libraries and save profile list.
+ * Deconstructor. Save profiles. Delete loaded libraries.
*/
MainWindowImp::~MainWindowImp(){
+ // Save profiles.
if(profiles.count() > 1){
Config cfg("NetworkSetup");
cfg.writeEntry("Profiles", profiles.join(" "));
}
+ // Delete Modules and Libraries
+ QMap<Module*, QLibrary*>::Iterator it;
+ for( it = libraries.begin(); it != libraries.end(); ++it ){
+ delete it.key();
+ delete it.data();
+ }
}
+/**
+ * Load all modules that are found in the path
+ * @param path a directory that is scaned for any plugins that can be loaded
+ * and attempts to load them
+ */
void MainWindowImp::loadModules(QString path){
qDebug(path.latin1());
- QDir d;
- d.setPath(path);
- if(!d.exists()){
- qDebug("MainWindowImp:: Path doesn't exists");
+ QDir d(path);
+ if(!d.exists())
return;
- }
+
+ // Don't want sym links
d.setFilter( QDir::Files | QDir::NoSymLinks );
const QFileInfoList *list = d.entryInfoList();
QFileInfoListIterator it( *list );
QFileInfo *fi;
while ( (fi=it.current()) ) {
if(fi->fileName().contains(".so")){
- qDebug("Found");
- Module *foo = loadPlugin(path + "/" + fi->fileName());
+ loadPlugin(path + "/" + fi->fileName());
}
++it;
}
@@ -103,7 +99,7 @@ void MainWindowImp::loadModules(QString path){
* @return pointer to the function with name resolveString or NULL
*/
Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString){
- qDebug(pluginFileName.latin1());
+ qDebug(QString("MainWindowImp::loadPlugin: %1").arg(pluginFileName).latin1());
QLibrary *lib = new QLibrary(pluginFileName);
void *functionPointer = lib->resolve(resolveString);
if( !functionPointer ){
@@ -120,7 +116,7 @@ Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString)
return NULL;
}
- // Store for reference
+ // Store for deletion later
libraries.insert(object, lib);
return object;
}
@@ -130,14 +126,25 @@ Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString)
* load the plugin and append it to the list
*/
void MainWindowImp::addClicked(){
- // Now that we have a list of all of the protocals, list them.
- {
- QMessageBox::information(this, "No Modules", "Nothing to add.", "Ok");
+ QMap<Module*, QLibrary*>::Iterator it;
+ QMap<QString, QString> list;
+ list.insert("USB (PPP) / (ADD_TEST)", "A dialup connection over the USB port");
+ list.insert("IrDa (PPP) / (ADD_TEST)", "A dialup connection over the IdDa port");
+ for( it = libraries.begin(); it != libraries.end(); ++it ){
+ if(it.key())
+ (it.key())->possibleNewInterfaces(list);
+ }
+ // See if the list has anything that we can add.
+ if(list.count() == 0){
+ QMessageBox::information(this, "Sorry", "Nothing to add.", "Ok");
return;
}
- AddServiceImp service(this, "AddService", true);
- service.showMaximized();
- service.exec();
+ AddConnectionImp addNewConnection(this, "AddConnectionImp", true);
+ addNewConnection.addConnections(list);
+ addNewConnection.showMaximized();
+ if(QDialog::Accepted == addNewConnection.exec()){
+
+ }
}
/**
@@ -145,7 +152,7 @@ void MainWindowImp::addClicked(){
* If they do then remove from the list and unload.
*/
void MainWindowImp::removeClicked(){
- QListViewItem *item = serviceList->currentItem();
+ QListViewItem *item = connectionList->currentItem();
if(item == NULL) {
QMessageBox::information(this, "Error","Please select an interface.", "Ok");
return;
@@ -161,76 +168,69 @@ void MainWindowImp::removeClicked(){
}
/**
- * See if there is a configuration for the selected protocal.
- * Prompt with errors.
+ * Pull up the configure about the currently selected interface.
+ * Report an error if no interface is selected.
+ * If the interface has a module owner then request its configure with a empty
+ * tab. If tab is !NULL then append the interfaces setup widget to it.
*/
void MainWindowImp::configureClicked(){
- QListViewItem *item = serviceList->currentItem();
- if(item == NULL){
- QMessageBox::information(this, "Error","Please select an interface.", "Ok");
- return;
+ QListViewItem *item = connectionList->currentItem();
+ if(!item){
+ QMessageBox::information(this, "Error","Please select an interface.", QMessageBox::Ok);
+ return;
}
-
- if((interfaceItems[item])->getModuleOwner() == NULL){
- InterfaceSetupImp *conf = new InterfaceSetupImp(0, "InterfaceConfiguration", interfaceItems[item]);
- conf->showMaximized();
- conf->show();
- }
- else{
- QTabWidget *t = NULL;
- QWidget *conf = (interfaceItems[item])->getModuleOwner()->configure(&t);
- if(conf != NULL){
- qDebug("Conf found");
- if(t != NULL){
- qDebug("Adding Interface");
- InterfaceSetupImp *i = new InterfaceSetupImp(t, "TCPIPInformation", interfaceItems[item], true);
- t->insertTab(i, "TCP/IP");
+
+ Interface *i = interfaceItems[item];
+ if(i->getModuleOwner()){
+ QTabWidget *tabWidget = NULL;
+ QWidget *moduleConfigure = i->getModuleOwner()->configure(&tabWidget);
+ if(moduleConfigure != NULL){
+ if(tabWidget != NULL){
+ InterfaceSetupImp *configure = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, true);
+ tabWidget->insertTab(configure, "TCP/IP");
}
- conf->showMaximized();
- conf->show();
- }
- else{
- InterfaceSetupImp *i = new InterfaceSetupImp(0, "TCPIPInformation", interfaceItems[item], true);
- i->showMaximized();
- i->show();
+ moduleConfigure->showMaximized();
+ moduleConfigure->show();
+ return;
}
}
+
+ InterfaceSetupImp *configure = new InterfaceSetupImp(0, "InterfaceSetupImp", i, true);
+ configure->showMaximized();
+ configure->show();
}
/**
- * Pull up the information about the selected interface
- * Report an error
+ * Pull up the information about the currently selected interface.
+ * Report an error if no interface is selected.
+ * If the interface has a module owner then request its configure with a empty
+ * tab. If tab is !NULL then append the interfaces setup widget to it.
*/
void MainWindowImp::informationClicked(){
- QListViewItem *item = serviceList->currentItem();
- if(item == NULL){
- QMessageBox::information(this, "Error","Please select an interface.", "Ok");
+ QListViewItem *item = connectionList->currentItem();
+ if(!item){
+ QMessageBox::information(this, "Error","Please select an interface.", QMessageBox::Ok);
return;
- }
-
- if( (interfaceItems[item])->getModuleOwner() == NULL){
- InterfaceInformationImp *i = new InterfaceInformationImp(0, "InterfaceInformationImp", interfaceItems[item]);
- i->showMaximized();
- i->show();
- }
- else{
- QTabWidget *t = NULL;
- QWidget *conf = (interfaceItems[item])->getModuleOwner()->information(&t);
- if(conf != NULL){
- if(t){
- qDebug("Adding Interface");
- InterfaceInformationImp *i = new InterfaceInformationImp(t, "TCPIPInformation", interfaceItems[item], true);
- t->insertTab(i, "TCP/IP");
+ }
+
+ Interface *i = interfaceItems[item];
+ if(i->getModuleOwner()){
+ QTabWidget *tabWidget = NULL;
+ QWidget *moduleInformation = i->getModuleOwner()->information(&tabWidget);
+ if(moduleInformation != NULL){
+ if(tabWidget != NULL){
+ InterfaceInformationImp *information = new InterfaceInformationImp(tabWidget, "InterfaceSetupImp", i, true);
+ tabWidget->insertTab(information, "TCP/IP");
}
- conf->showMaximized();
- conf->show();
+ moduleInformation->showMaximized();
+ moduleInformation->show();
+ return;
}
- else{
- InterfaceInformationImp *i = new InterfaceInformationImp(0, "TCPIPInformation", interfaceItems[item], true);
- i->showMaximized();
- i->show();
- }
- }
+ }
+
+ InterfaceInformationImp *information = new InterfaceInformationImp(0, "InterfaceSetupImp", i, true);
+ information->showMaximized();
+ information->show();
}
/**
@@ -272,6 +272,10 @@ void MainWindowImp::jobDone(KProcess *process){
if(space > 1){
// We have found an interface
QString interfaceName = line.mid(0, space);
+ if(!advancedUserMode){
+ if(interfaceName == "lo")
+ break;
+ }
Interface *i;
// See if we already have it
if(interfaceNames.find(interfaceName) == interfaceNames.end()){
@@ -306,12 +310,15 @@ void MainWindowImp::jobDone(KProcess *process){
QFile::remove(fileName);
}
+/**
+ *
+ */
void MainWindowImp::updateInterface(Interface *i){
QListViewItem *item = NULL;
// See if we already have it
if(items.find(i) == items.end()){
- item = new QListViewItem(serviceList, "", "", "");
+ item = new QListViewItem(connectionList, "", "", "");
// See if you can't find a module owner for this interface
QMap<Module*, QLibrary*>::Iterator it;
for( it = libraries.begin(); it != libraries.end(); ++it ){
diff --git a/noncore/net/networksetup/mainwindowimp.h b/noncore/net/networksetup/mainwindowimp.h
index 19ebaf2..629b758 100644
--- a/noncore/net/networksetup/mainwindowimp.h
+++ b/noncore/net/networksetup/mainwindowimp.h
@@ -48,6 +48,7 @@ private:
QMap<KProcess*, QString> threads;
QStringList profiles;
+ bool advancedUserMode;
};
#endif
diff --git a/noncore/net/networksetup/module.h b/noncore/net/networksetup/module.h
index c1e9488..0c81928 100644
--- a/noncore/net/networksetup/module.h
+++ b/noncore/net/networksetup/module.h
@@ -16,15 +16,60 @@ signals:
public:
Module(){};
-
+
+ /**
+ * 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)
+ */
+ virtual QString getPixmapName(Interface* i) = 0;
+
+ /**
+ * 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.
+ */
virtual bool isOwner(Interface *){ return false; };
- virtual QWidget *configure(QTabWidget **tabWidget){ return NULL; } ;
- virtual QWidget *information(QTabWidget **tabWidget){ return NULL; };
+
+ /**
+ * Create, set tabWiget and return the WLANConfigure Module
+ * @param tabWidget a pointer to the tab widget that this configure has.
+ * @return QWidget* pointer to the tab widget in this modules configure.
+ */
+ virtual QWidget *configure(QTabWidget **){ return NULL; } ;
+
+ /**
+ * Create, set tabWiget and return the Information Module
+ * @param tabWidget a pointer to the tab widget that this information has.
+ * @return QWidget* pointer to the tab widget in this modules info.
+ */
+ virtual QWidget *information(QTabWidget **){ return NULL; };
+
+ /**
+ * Get all active (up or down) interfaces
+ * @return QList<Interface> A list of interfaces that exsist that havn't
+ * been called by isOwner()
+ */
virtual QList<Interface> getInterfaces() = 0;
- virtual QMap<QString, QString> possibleNewInterfaces() = 0;
+
+ /**
+ * Adds possible new interfaces to the list (Example: usb(ppp), ir(ppp),
+ * modem ppp)
+ */
+ virtual void possibleNewInterfaces(QMap<QString, QString> &list) = 0;
+
+ /**
+ * Attempts to create a new interface from name
+ * @return Interface* NULL if it was unable to be created.
+ * @param name the type of interface to create
+ */
virtual Interface *addNewInterface(QString name) = 0;
+
+ /**
+ * Attempts to remove the interface, doesn't delete i
+ * @return bool true if successfull, false otherwise.
+ */
virtual bool remove(Interface* i) = 0;
- virtual QString getPixmapName(Interface* i) = 0;
};
diff --git a/noncore/net/networksetup/networksetup.pro b/noncore/net/networksetup/networksetup.pro
index 0d48790..ba70180 100644
--- a/noncore/net/networksetup/networksetup.pro
+++ b/noncore/net/networksetup/networksetup.pro
@@ -1,10 +1,10 @@
TEMPLATE = app
#CONFIG = qt warn_on debug
CONFIG = qt warn_on release
-HEADERS = mainwindowimp.h addserviceimp.h interface.h interfaceinformationimp.h interfacesetupimp.h interfaces.h defaultmodule.h kprocctrl.h module.h kprocess.h
-SOURCES = main.cpp mainwindowimp.cpp addserviceimp.cpp interface.cpp interfaceinformationimp.cpp interfacesetupimp.cpp kprocctrl.cpp kprocess.cpp interfaces.cpp
+HEADERS = mainwindowimp.h addconnectionimp.h interface.h interfaceinformationimp.h interfacesetupimp.h interfaces.h defaultmodule.h kprocctrl.h module.h kprocess.h
+SOURCES = main.cpp mainwindowimp.cpp addconnectionimp.cpp interface.cpp interfaceinformationimp.cpp interfacesetupimp.cpp kprocctrl.cpp kprocess.cpp interfaces.cpp
#INCLUDEPATH += $(QPEDIR)/include
#DEPENDPATH += $(QPEDIR)/include
LIBS += -lqpe
-INTERFACES = mainwindow.ui addservice.ui interfaceinformation.ui interfaceadvanced.ui interfacesetup.ui
+INTERFACES = mainwindow.ui addconnection.ui interfaceinformation.ui interfaceadvanced.ui interfacesetup.ui
TARGET = networksetup
diff --git a/noncore/net/networksetup/wlan/wlan.ui b/noncore/net/networksetup/wlan/wlan.ui
index dcacbe8..9f33559 100644
--- a/noncore/net/networksetup/wlan/wlan.ui
+++ b/noncore/net/networksetup/wlan/wlan.ui
@@ -11,7 +11,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>254</width>
+ <width>250</width>
<height>286</height>
</rect>
</property>
@@ -53,7 +53,7 @@
</property>
<attribute>
<name>title</name>
- <string>Config</string>
+ <string>WLAN General</string>
</attribute>
<vbox>
<property stdset="1">
diff --git a/noncore/net/networksetup/wlan/wlanmodule.cpp b/noncore/net/networksetup/wlan/wlanmodule.cpp
index 632f7e4..70b1f7a 100644
--- a/noncore/net/networksetup/wlan/wlanmodule.cpp
+++ b/noncore/net/networksetup/wlan/wlanmodule.cpp
@@ -20,6 +20,7 @@ QString WLANModule::getPixmapName(Interface* ){
/**
* 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){
@@ -50,17 +51,12 @@ QWidget *WLANModule::information(QTabWidget **tabWidget){
}
/**
- *
- */
+ * 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
-}
-
-/**
- * Return a list of possible new interfaces
- */
-QMap<QString, QString> WLANModule::possibleNewInterfaces(){
- //return list;
+ return list;
}
/**
@@ -69,7 +65,9 @@ QMap<QString, QString> WLANModule::possibleNewInterfaces(){
* by possibleNewInterfaces();
* @return Interface* NULL if it was unable to be created.
*/
-Interface *WLANModule::addNewInterface(QString name){
+Interface *WLANModule::addNewInterface(QString ){
+ // We can't add a 802.11 interface, either the hardware will be there
+ // or it wont.
return NULL;
}
@@ -77,7 +75,8 @@ Interface *WLANModule::addNewInterface(QString name){
* Attempts to remove the interface, doesn't delete i
* @return bool true if successfull, false otherwise.
*/
-bool WLANModule::remove(Interface* i){
+bool WLANModule::remove(Interface*){
+ // Can't remove a hardware device, you can stop it though.
return false;
}
diff --git a/noncore/net/networksetup/wlan/wlanmodule.h b/noncore/net/networksetup/wlan/wlanmodule.h
index 1fbf6a9..7ebe129 100644
--- a/noncore/net/networksetup/wlan/wlanmodule.h
+++ b/noncore/net/networksetup/wlan/wlanmodule.h
@@ -15,7 +15,7 @@ public:
virtual QWidget *configure(QTabWidget **tabWidget);
virtual QWidget *information(QTabWidget **tabWidget);
virtual QList<Interface> getInterfaces();
- virtual QMap<QString, QString> possibleNewInterfaces();
+ virtual void possibleNewInterfaces(QMap<QString, QString> &list){};
virtual Interface *addNewInterface(QString name);
virtual bool remove(Interface* i);
virtual QString getPixmapName(Interface* i);
diff --git a/noncore/settings/networksettings/TODO b/noncore/settings/networksettings/TODO
index 9a1657a..e69de29 100644
--- a/noncore/settings/networksettings/TODO
+++ b/noncore/settings/networksettings/TODO
@@ -1 +0,0 @@
-Fix DHCP obtained and expoired info
diff --git a/noncore/settings/networksettings/addservice.ui b/noncore/settings/networksettings/addconnection.ui
index 929f4fb..a349804 100644
--- a/noncore/settings/networksettings/addservice.ui
+++ b/noncore/settings/networksettings/addconnection.ui
@@ -1,23 +1,23 @@
<!DOCTYPE UI><UI>
-<class>AddService</class>
+<class>AddConnection</class>
<widget>
<class>QDialog</class>
<property stdset="1">
<name>name</name>
- <cstring>AddService</cstring>
+ <cstring>AddConnection</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>245</width>
+ <width>233</width>
<height>268</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
- <string>Add Network Service</string>
+ <string>Add Network Connection</string>
</property>
<grid>
<property stdset="1">
@@ -36,7 +36,7 @@
</property>
<property stdset="1">
<name>text</name>
- <string>Cancel</string>
+ <string>&amp;Cancel</string>
</property>
</widget>
<widget row="3" column="0" >
@@ -47,7 +47,7 @@
</property>
<property stdset="1">
<name>text</name>
- <string>Add</string>
+ <string>&amp;Add</string>
</property>
</widget>
<widget row="0" column="0" rowspan="1" colspan="2" >
@@ -121,8 +121,7 @@
</property>
<property stdset="1">
<name>text</name>
- <string>LAN - TCP/IP
-For Local-area network connections through PC_CARD network interfdace cards.</string>
+ <string></string>
</property>
<property stdset="1">
<name>alignment</name>
@@ -141,13 +140,13 @@ For Local-area network connections through PC_CARD network interfdace cards.</st
<connection>
<sender>cancelButton</sender>
<signal>clicked()</signal>
- <receiver>AddService</receiver>
+ <receiver>AddConnection</receiver>
<slot>reject()</slot>
</connection>
<connection>
<sender>addButton</sender>
<signal>clicked()</signal>
- <receiver>AddService</receiver>
+ <receiver>AddConnection</receiver>
<slot>accept()</slot>
</connection>
</connections>
diff --git a/noncore/settings/networksettings/addconnectionimp.cpp b/noncore/settings/networksettings/addconnectionimp.cpp
new file mode 100644
index 0000000..ee7bd97
--- a/dev/null
+++ b/noncore/settings/networksettings/addconnectionimp.cpp
@@ -0,0 +1,38 @@
+#include "addconnectionimp.h"
+#include <qlistview.h>
+#include <qlist.h>
+#include <qlabel.h>
+#include <qheader.h>
+
+/**
+ * Constructor
+ */
+AddConnectionImp::AddConnectionImp(QWidget *parent=0, const char *name=0, WFlags f=0):AddConnection(parent, name, f){
+ connect(registeredServicesList, SIGNAL(selectionChanged()), this, SLOT(changed()));
+ registeredServicesList->header()->hide();
+};
+
+/**
+ * The current item changed, update the discription.
+ */
+void AddConnectionImp::changed(){
+ QListViewItem *item = registeredServicesList->currentItem();
+ if(item){
+ help->setText(list[item->text(0)]);
+ }
+}
+
+/**
+ * Save a copy of newList for the discriptions and append them all to the view
+ * @param newList the new list of possible interfaces
+ */
+void AddConnectionImp::addConnections(QMap<QString, QString> newList){
+ list = newList;
+ QMap<QString, QString>::Iterator it;
+ for( it = list.begin(); it != list.end(); ++it )
+ QListViewItem *item = new QListViewItem(registeredServicesList, it.key());
+ registeredServicesList->setCurrentItem(registeredServicesList->firstChild());
+}
+
+// addserviceimp.cpp
+
diff --git a/noncore/settings/networksettings/addconnectionimp.h b/noncore/settings/networksettings/addconnectionimp.h
new file mode 100644
index 0000000..643cd9a
--- a/dev/null
+++ b/noncore/settings/networksettings/addconnectionimp.h
@@ -0,0 +1,29 @@
+#ifndef ADDCONNECTIONIMP_H
+#define ADDCONNECTIONIMP_H
+
+#include "addconnection.h"
+#include <qmap.h>
+#include <qlist.h>
+
+class QListViewItem;
+
+class AddConnectionImp : public AddConnection {
+
+Q_OBJECT
+
+public:
+ AddConnectionImp(QWidget *parent=0, const char *name=0, WFlags f=0);
+ void addConnections(QMap<QString, QString> newList);
+
+private slots:
+ void changed();
+
+private:
+ QMap<QString, QString> list;
+
+};
+
+#endif
+
+// addconectionimp.h
+
diff --git a/noncore/settings/networksettings/addserviceimp.cpp b/noncore/settings/networksettings/addserviceimp.cpp
deleted file mode 100644
index ac79d06..0000000
--- a/noncore/settings/networksettings/addserviceimp.cpp
+++ b/dev/null
@@ -1,26 +0,0 @@
-#include "addserviceimp.h"
-#include <qpe/qlibrary.h>
-#include <qlistview.h>
-#include <qlist.h>
-
-void AddServiceImp::addServices(QList<QString> list){
- list.setAutoDelete(true);
-
- for(uint i = 0; i < list.count(); i++){
- QString pluginFileName = "";
- QLibrary *lib = new QLibrary(pluginFileName);
- void *functionPointer = lib->resolve("info");
- if( !functionPointer ){
- qDebug(QString("AddServiceImp: File: %1 is not a plugin, but though was.").arg(pluginFileName).latin1());
- delete lib;
- break;
- }
-
- // Try to get an info.
- QString info = ((QString (*)()) functionPointer)();
- QListViewItem *newItem = new QListViewItem(registeredServicesList, info);
- }
-}
-
-
-// addserviceimp.cpp
diff --git a/noncore/settings/networksettings/addserviceimp.h b/noncore/settings/networksettings/addserviceimp.h
deleted file mode 100644
index 7cacb97..0000000
--- a/noncore/settings/networksettings/addserviceimp.h
+++ b/dev/null
@@ -1,26 +0,0 @@
-#ifndef ADDSERVICEIMP_H
-#define ADDSERVICEIMP_H
-
-#include "addservice.h"
-#include <qmap.h>
-#include <qlist.h>
-
-class QListViewItem;
-
-class AddServiceImp : public AddService {
-
-Q_OBJECT
-
-public:
- AddServiceImp(QWidget *parent=0, const char *name=0, WFlags f=0):AddService(parent, name, f){};
- void addServices(QList<QString> list);
-
-private:
- QMap<QListViewItem*, QString> pluginInfo;
-
-};
-
-#endif
-
-// addserviceimp.h
-
diff --git a/noncore/settings/networksettings/interface.h b/noncore/settings/networksettings/interface.h
index 5dc95a4..1406e99 100644
--- a/noncore/settings/networksettings/interface.h
+++ b/noncore/settings/networksettings/interface.h
@@ -4,6 +4,7 @@
#include <qstring.h>
class Module;
+
class Interface {
public:
diff --git a/noncore/settings/networksettings/interfacesetupimp.cpp b/noncore/settings/networksettings/interfacesetupimp.cpp
index 6a8449d..951aeee 100644
--- a/noncore/settings/networksettings/interfacesetupimp.cpp
+++ b/noncore/settings/networksettings/interfacesetupimp.cpp
@@ -13,7 +13,6 @@
#include <assert.h>
-#define INTERFACE_FILE "/home/ben/interfaces"
#define DNSSCRIPT "interfacednsscript"
/**
@@ -22,7 +21,7 @@
InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : InterfaceSetup(parent, name, modal, fl){
assert(i);
interface = i;
- interfaces = new Interfaces(INTERFACE_FILE);
+ interfaces = new Interfaces();
changeProfile(profileCombo->currentText());
bool error = false;
if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
diff --git a/noncore/settings/networksettings/mainwindow.ui b/noncore/settings/networksettings/mainwindow.ui
index a3f7bb1..f5b104a 100644
--- a/noncore/settings/networksettings/mainwindow.ui
+++ b/noncore/settings/networksettings/mainwindow.ui
@@ -102,7 +102,7 @@
</column>
<property stdset="1">
<name>name</name>
- <cstring>serviceList</cstring>
+ <cstring>connectionList</cstring>
</property>
<property stdset="1">
<name>allColumnsShowFocus</name>
@@ -131,7 +131,7 @@
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
- <cstring>addServiceButton</cstring>
+ <cstring>addConnectionButton</cstring>
</property>
<property stdset="1">
<name>text</name>
@@ -142,7 +142,7 @@
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
- <cstring>informationServiceButton</cstring>
+ <cstring>informationConnectionButton</cstring>
</property>
<property stdset="1">
<name>text</name>
@@ -153,7 +153,7 @@
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
- <cstring>configureServiceButton</cstring>
+ <cstring>configureConnectionButton</cstring>
</property>
<property stdset="1">
<name>text</name>
@@ -164,7 +164,7 @@
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
- <cstring>removeServiceButton</cstring>
+ <cstring>removeConnectionButton</cstring>
</property>
<property stdset="1">
<name>text</name>
diff --git a/noncore/settings/networksettings/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindowimp.cpp
index 89dac6f..66ec8b5 100644
--- a/noncore/settings/networksettings/mainwindowimp.cpp
+++ b/noncore/settings/networksettings/mainwindowimp.cpp
@@ -1,10 +1,10 @@
#include "mainwindowimp.h"
-#include "addserviceimp.h"
+#include "addconnectionimp.h"
#include "interfaceinformationimp.h"
#include "interfacesetupimp.h"
-#include "kprocess.h"
#include "module.h"
+#include "kprocess.h"
#include <qpushbutton.h>
#include <qtabwidget.h>
@@ -25,72 +25,68 @@
#include <qfile.h>
#include <qtextstream.h>
-// For library loading.
-#include <dlfcn.h>
-
#define TEMP_ALL "/tmp/ifconfig-a"
#define TEMP_UP "/tmp/ifconfig"
-MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true) {
- connect(addServiceButton, SIGNAL(clicked()), this, SLOT(addClicked()));
- connect(removeServiceButton, SIGNAL(clicked()), this, SLOT(removeClicked()));
- connect(informationServiceButton, SIGNAL(clicked()), this, SLOT(informationClicked()));
- connect(configureServiceButton, SIGNAL(clicked()), this, SLOT(configureClicked()));
+MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true), advancedUserMode(false){
+ connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked()));
+ connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked()));
+ connect(informationConnectionButton, SIGNAL(clicked()), this, SLOT(informationClicked()));
+ connect(configureConnectionButton, SIGNAL(clicked()), this, SLOT(configureClicked()));
connect(newProfileButton, SIGNAL(clicked()), this, SLOT(addProfile()));
connect(removeProfileButton, SIGNAL(clicked()), this, SLOT(removeProfile()));
connect(profilesList, SIGNAL(highlighted(const QString&)), this, SLOT(changeProfile(const QString&)));
- // Make sure we have a plugin directory to scan.
- QString DirStr = QDir::homeDirPath() + "/.networksetup/" ;
- QDir pluginDir( DirStr );
- pluginDir.mkdir( DirStr );
- pluginDir.mkdir( ( DirStr + "plugins/" ) );
- QString path = DirStr + "plugins";
- pluginDir.setPath(path);
- if(!pluginDir.exists()){
- qDebug(QString("MainWindowImp: ERROR: %1 %2").arg(__FILE__).arg(__LINE__).latin1());
- return;
- }
-
- // Load any saved services.
- loadModules(path);
+ // Load connections.
+ loadModules(QDir::homeDirPath() + "/.networksetup/plugins");
getInterfaceList();
- serviceList->header()->hide();
+ connectionList->header()->hide();
Config cfg("NetworkSetup");
profiles = QStringList::split(" ", cfg.readEntry("Profiles", "All"));
for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
profilesList->insertItem((*it));
+ advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false);
}
/**
- * Deconstructor. Unload libraries and save profile list.
+ * Deconstructor. Save profiles. Delete loaded libraries.
*/
MainWindowImp::~MainWindowImp(){
+ // Save profiles.
if(profiles.count() > 1){
Config cfg("NetworkSetup");
cfg.writeEntry("Profiles", profiles.join(" "));
}
+ // Delete Modules and Libraries
+ QMap<Module*, QLibrary*>::Iterator it;
+ for( it = libraries.begin(); it != libraries.end(); ++it ){
+ delete it.key();
+ delete it.data();
+ }
}
+/**
+ * Load all modules that are found in the path
+ * @param path a directory that is scaned for any plugins that can be loaded
+ * and attempts to load them
+ */
void MainWindowImp::loadModules(QString path){
qDebug(path.latin1());
- QDir d;
- d.setPath(path);
- if(!d.exists()){
- qDebug("MainWindowImp:: Path doesn't exists");
+ QDir d(path);
+ if(!d.exists())
return;
- }
+
+ // Don't want sym links
d.setFilter( QDir::Files | QDir::NoSymLinks );
const QFileInfoList *list = d.entryInfoList();
QFileInfoListIterator it( *list );
QFileInfo *fi;
while ( (fi=it.current()) ) {
if(fi->fileName().contains(".so")){
- qDebug("Found");
- Module *foo = loadPlugin(path + "/" + fi->fileName());
+ loadPlugin(path + "/" + fi->fileName());
}
++it;
}
@@ -103,7 +99,7 @@ void MainWindowImp::loadModules(QString path){
* @return pointer to the function with name resolveString or NULL
*/
Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString){
- qDebug(pluginFileName.latin1());
+ qDebug(QString("MainWindowImp::loadPlugin: %1").arg(pluginFileName).latin1());
QLibrary *lib = new QLibrary(pluginFileName);
void *functionPointer = lib->resolve(resolveString);
if( !functionPointer ){
@@ -120,7 +116,7 @@ Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString)
return NULL;
}
- // Store for reference
+ // Store for deletion later
libraries.insert(object, lib);
return object;
}
@@ -130,14 +126,25 @@ Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString)
* load the plugin and append it to the list
*/
void MainWindowImp::addClicked(){
- // Now that we have a list of all of the protocals, list them.
- {
- QMessageBox::information(this, "No Modules", "Nothing to add.", "Ok");
+ QMap<Module*, QLibrary*>::Iterator it;
+ QMap<QString, QString> list;
+ list.insert("USB (PPP) / (ADD_TEST)", "A dialup connection over the USB port");
+ list.insert("IrDa (PPP) / (ADD_TEST)", "A dialup connection over the IdDa port");
+ for( it = libraries.begin(); it != libraries.end(); ++it ){
+ if(it.key())
+ (it.key())->possibleNewInterfaces(list);
+ }
+ // See if the list has anything that we can add.
+ if(list.count() == 0){
+ QMessageBox::information(this, "Sorry", "Nothing to add.", "Ok");
return;
}
- AddServiceImp service(this, "AddService", true);
- service.showMaximized();
- service.exec();
+ AddConnectionImp addNewConnection(this, "AddConnectionImp", true);
+ addNewConnection.addConnections(list);
+ addNewConnection.showMaximized();
+ if(QDialog::Accepted == addNewConnection.exec()){
+
+ }
}
/**
@@ -145,7 +152,7 @@ void MainWindowImp::addClicked(){
* If they do then remove from the list and unload.
*/
void MainWindowImp::removeClicked(){
- QListViewItem *item = serviceList->currentItem();
+ QListViewItem *item = connectionList->currentItem();
if(item == NULL) {
QMessageBox::information(this, "Error","Please select an interface.", "Ok");
return;
@@ -161,76 +168,69 @@ void MainWindowImp::removeClicked(){
}
/**
- * See if there is a configuration for the selected protocal.
- * Prompt with errors.
+ * Pull up the configure about the currently selected interface.
+ * Report an error if no interface is selected.
+ * If the interface has a module owner then request its configure with a empty
+ * tab. If tab is !NULL then append the interfaces setup widget to it.
*/
void MainWindowImp::configureClicked(){
- QListViewItem *item = serviceList->currentItem();
- if(item == NULL){
- QMessageBox::information(this, "Error","Please select an interface.", "Ok");
- return;
+ QListViewItem *item = connectionList->currentItem();
+ if(!item){
+ QMessageBox::information(this, "Error","Please select an interface.", QMessageBox::Ok);
+ return;
}
-
- if((interfaceItems[item])->getModuleOwner() == NULL){
- InterfaceSetupImp *conf = new InterfaceSetupImp(0, "InterfaceConfiguration", interfaceItems[item]);
- conf->showMaximized();
- conf->show();
- }
- else{
- QTabWidget *t = NULL;
- QWidget *conf = (interfaceItems[item])->getModuleOwner()->configure(&t);
- if(conf != NULL){
- qDebug("Conf found");
- if(t != NULL){
- qDebug("Adding Interface");
- InterfaceSetupImp *i = new InterfaceSetupImp(t, "TCPIPInformation", interfaceItems[item], true);
- t->insertTab(i, "TCP/IP");
+
+ Interface *i = interfaceItems[item];
+ if(i->getModuleOwner()){
+ QTabWidget *tabWidget = NULL;
+ QWidget *moduleConfigure = i->getModuleOwner()->configure(&tabWidget);
+ if(moduleConfigure != NULL){
+ if(tabWidget != NULL){
+ InterfaceSetupImp *configure = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, true);
+ tabWidget->insertTab(configure, "TCP/IP");
}
- conf->showMaximized();
- conf->show();
- }
- else{
- InterfaceSetupImp *i = new InterfaceSetupImp(0, "TCPIPInformation", interfaceItems[item], true);
- i->showMaximized();
- i->show();
+ moduleConfigure->showMaximized();
+ moduleConfigure->show();
+ return;
}
}
+
+ InterfaceSetupImp *configure = new InterfaceSetupImp(0, "InterfaceSetupImp", i, true);
+ configure->showMaximized();
+ configure->show();
}
/**
- * Pull up the information about the selected interface
- * Report an error
+ * Pull up the information about the currently selected interface.
+ * Report an error if no interface is selected.
+ * If the interface has a module owner then request its configure with a empty
+ * tab. If tab is !NULL then append the interfaces setup widget to it.
*/
void MainWindowImp::informationClicked(){
- QListViewItem *item = serviceList->currentItem();
- if(item == NULL){
- QMessageBox::information(this, "Error","Please select an interface.", "Ok");
+ QListViewItem *item = connectionList->currentItem();
+ if(!item){
+ QMessageBox::information(this, "Error","Please select an interface.", QMessageBox::Ok);
return;
- }
-
- if( (interfaceItems[item])->getModuleOwner() == NULL){
- InterfaceInformationImp *i = new InterfaceInformationImp(0, "InterfaceInformationImp", interfaceItems[item]);
- i->showMaximized();
- i->show();
- }
- else{
- QTabWidget *t = NULL;
- QWidget *conf = (interfaceItems[item])->getModuleOwner()->information(&t);
- if(conf != NULL){
- if(t){
- qDebug("Adding Interface");
- InterfaceInformationImp *i = new InterfaceInformationImp(t, "TCPIPInformation", interfaceItems[item], true);
- t->insertTab(i, "TCP/IP");
+ }
+
+ Interface *i = interfaceItems[item];
+ if(i->getModuleOwner()){
+ QTabWidget *tabWidget = NULL;
+ QWidget *moduleInformation = i->getModuleOwner()->information(&tabWidget);
+ if(moduleInformation != NULL){
+ if(tabWidget != NULL){
+ InterfaceInformationImp *information = new InterfaceInformationImp(tabWidget, "InterfaceSetupImp", i, true);
+ tabWidget->insertTab(information, "TCP/IP");
}
- conf->showMaximized();
- conf->show();
+ moduleInformation->showMaximized();
+ moduleInformation->show();
+ return;
}
- else{
- InterfaceInformationImp *i = new InterfaceInformationImp(0, "TCPIPInformation", interfaceItems[item], true);
- i->showMaximized();
- i->show();
- }
- }
+ }
+
+ InterfaceInformationImp *information = new InterfaceInformationImp(0, "InterfaceSetupImp", i, true);
+ information->showMaximized();
+ information->show();
}
/**
@@ -272,6 +272,10 @@ void MainWindowImp::jobDone(KProcess *process){
if(space > 1){
// We have found an interface
QString interfaceName = line.mid(0, space);
+ if(!advancedUserMode){
+ if(interfaceName == "lo")
+ break;
+ }
Interface *i;
// See if we already have it
if(interfaceNames.find(interfaceName) == interfaceNames.end()){
@@ -306,12 +310,15 @@ void MainWindowImp::jobDone(KProcess *process){
QFile::remove(fileName);
}
+/**
+ *
+ */
void MainWindowImp::updateInterface(Interface *i){
QListViewItem *item = NULL;
// See if we already have it
if(items.find(i) == items.end()){
- item = new QListViewItem(serviceList, "", "", "");
+ item = new QListViewItem(connectionList, "", "", "");
// See if you can't find a module owner for this interface
QMap<Module*, QLibrary*>::Iterator it;
for( it = libraries.begin(); it != libraries.end(); ++it ){
diff --git a/noncore/settings/networksettings/mainwindowimp.h b/noncore/settings/networksettings/mainwindowimp.h
index 19ebaf2..629b758 100644
--- a/noncore/settings/networksettings/mainwindowimp.h
+++ b/noncore/settings/networksettings/mainwindowimp.h
@@ -48,6 +48,7 @@ private:
QMap<KProcess*, QString> threads;
QStringList profiles;
+ bool advancedUserMode;
};
#endif
diff --git a/noncore/settings/networksettings/module.h b/noncore/settings/networksettings/module.h
index c1e9488..0c81928 100644
--- a/noncore/settings/networksettings/module.h
+++ b/noncore/settings/networksettings/module.h
@@ -16,15 +16,60 @@ signals:
public:
Module(){};
-
+
+ /**
+ * 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)
+ */
+ virtual QString getPixmapName(Interface* i) = 0;
+
+ /**
+ * 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.
+ */
virtual bool isOwner(Interface *){ return false; };
- virtual QWidget *configure(QTabWidget **tabWidget){ return NULL; } ;
- virtual QWidget *information(QTabWidget **tabWidget){ return NULL; };
+
+ /**
+ * Create, set tabWiget and return the WLANConfigure Module
+ * @param tabWidget a pointer to the tab widget that this configure has.
+ * @return QWidget* pointer to the tab widget in this modules configure.
+ */
+ virtual QWidget *configure(QTabWidget **){ return NULL; } ;
+
+ /**
+ * Create, set tabWiget and return the Information Module
+ * @param tabWidget a pointer to the tab widget that this information has.
+ * @return QWidget* pointer to the tab widget in this modules info.
+ */
+ virtual QWidget *information(QTabWidget **){ return NULL; };
+
+ /**
+ * Get all active (up or down) interfaces
+ * @return QList<Interface> A list of interfaces that exsist that havn't
+ * been called by isOwner()
+ */
virtual QList<Interface> getInterfaces() = 0;
- virtual QMap<QString, QString> possibleNewInterfaces() = 0;
+
+ /**
+ * Adds possible new interfaces to the list (Example: usb(ppp), ir(ppp),
+ * modem ppp)
+ */
+ virtual void possibleNewInterfaces(QMap<QString, QString> &list) = 0;
+
+ /**
+ * Attempts to create a new interface from name
+ * @return Interface* NULL if it was unable to be created.
+ * @param name the type of interface to create
+ */
virtual Interface *addNewInterface(QString name) = 0;
+
+ /**
+ * Attempts to remove the interface, doesn't delete i
+ * @return bool true if successfull, false otherwise.
+ */
virtual bool remove(Interface* i) = 0;
- virtual QString getPixmapName(Interface* i) = 0;
};
diff --git a/noncore/settings/networksettings/networksetup.pro b/noncore/settings/networksettings/networksetup.pro
index 0d48790..ba70180 100644
--- a/noncore/settings/networksettings/networksetup.pro
+++ b/noncore/settings/networksettings/networksetup.pro
@@ -1,10 +1,10 @@
TEMPLATE = app
#CONFIG = qt warn_on debug
CONFIG = qt warn_on release
-HEADERS = mainwindowimp.h addserviceimp.h interface.h interfaceinformationimp.h interfacesetupimp.h interfaces.h defaultmodule.h kprocctrl.h module.h kprocess.h
-SOURCES = main.cpp mainwindowimp.cpp addserviceimp.cpp interface.cpp interfaceinformationimp.cpp interfacesetupimp.cpp kprocctrl.cpp kprocess.cpp interfaces.cpp
+HEADERS = mainwindowimp.h addconnectionimp.h interface.h interfaceinformationimp.h interfacesetupimp.h interfaces.h defaultmodule.h kprocctrl.h module.h kprocess.h
+SOURCES = main.cpp mainwindowimp.cpp addconnectionimp.cpp interface.cpp interfaceinformationimp.cpp interfacesetupimp.cpp kprocctrl.cpp kprocess.cpp interfaces.cpp
#INCLUDEPATH += $(QPEDIR)/include
#DEPENDPATH += $(QPEDIR)/include
LIBS += -lqpe
-INTERFACES = mainwindow.ui addservice.ui interfaceinformation.ui interfaceadvanced.ui interfacesetup.ui
+INTERFACES = mainwindow.ui addconnection.ui interfaceinformation.ui interfaceadvanced.ui interfacesetup.ui
TARGET = networksetup
diff --git a/noncore/settings/networksettings/wlan/wlan.ui b/noncore/settings/networksettings/wlan/wlan.ui
index dcacbe8..9f33559 100644
--- a/noncore/settings/networksettings/wlan/wlan.ui
+++ b/noncore/settings/networksettings/wlan/wlan.ui
@@ -11,7 +11,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>254</width>
+ <width>250</width>
<height>286</height>
</rect>
</property>
@@ -53,7 +53,7 @@
</property>
<attribute>
<name>title</name>
- <string>Config</string>
+ <string>WLAN General</string>
</attribute>
<vbox>
<property stdset="1">
diff --git a/noncore/settings/networksettings/wlan/wlanmodule.cpp b/noncore/settings/networksettings/wlan/wlanmodule.cpp
index 632f7e4..70b1f7a 100644
--- a/noncore/settings/networksettings/wlan/wlanmodule.cpp
+++ b/noncore/settings/networksettings/wlan/wlanmodule.cpp
@@ -20,6 +20,7 @@ QString WLANModule::getPixmapName(Interface* ){
/**
* 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){
@@ -50,17 +51,12 @@ QWidget *WLANModule::information(QTabWidget **tabWidget){
}
/**
- *
- */
+ * 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
-}
-
-/**
- * Return a list of possible new interfaces
- */
-QMap<QString, QString> WLANModule::possibleNewInterfaces(){
- //return list;
+ return list;
}
/**
@@ -69,7 +65,9 @@ QMap<QString, QString> WLANModule::possibleNewInterfaces(){
* by possibleNewInterfaces();
* @return Interface* NULL if it was unable to be created.
*/
-Interface *WLANModule::addNewInterface(QString name){
+Interface *WLANModule::addNewInterface(QString ){
+ // We can't add a 802.11 interface, either the hardware will be there
+ // or it wont.
return NULL;
}
@@ -77,7 +75,8 @@ Interface *WLANModule::addNewInterface(QString name){
* Attempts to remove the interface, doesn't delete i
* @return bool true if successfull, false otherwise.
*/
-bool WLANModule::remove(Interface* i){
+bool WLANModule::remove(Interface*){
+ // Can't remove a hardware device, you can stop it though.
return false;
}
diff --git a/noncore/settings/networksettings/wlan/wlanmodule.h b/noncore/settings/networksettings/wlan/wlanmodule.h
index 1fbf6a9..7ebe129 100644
--- a/noncore/settings/networksettings/wlan/wlanmodule.h
+++ b/noncore/settings/networksettings/wlan/wlanmodule.h
@@ -15,7 +15,7 @@ public:
virtual QWidget *configure(QTabWidget **tabWidget);
virtual QWidget *information(QTabWidget **tabWidget);
virtual QList<Interface> getInterfaces();
- virtual QMap<QString, QString> possibleNewInterfaces();
+ virtual void possibleNewInterfaces(QMap<QString, QString> &list){};
virtual Interface *addNewInterface(QString name);
virtual bool remove(Interface* i);
virtual QString getPixmapName(Interface* i);