summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/networksetup/TODO2
-rw-r--r--noncore/net/networksetup/interface.cpp287
-rw-r--r--noncore/net/networksetup/interface.h71
-rw-r--r--noncore/net/networksetup/interfaceadvanced.ui344
-rw-r--r--noncore/net/networksetup/interfaceedit.cpp141
-rw-r--r--noncore/net/networksetup/interfaceedit.h56
-rw-r--r--noncore/net/networksetup/interfaceinformation.ui343
-rw-r--r--noncore/net/networksetup/interfaceinformationimp.cpp70
-rw-r--r--noncore/net/networksetup/interfaceinformationimp.h27
-rw-r--r--noncore/net/networksetup/interfaces.cpp638
-rw-r--r--noncore/net/networksetup/interfaces.h76
-rw-r--r--noncore/net/networksetup/interfacesetup.ui284
-rw-r--r--noncore/net/networksetup/interfacesetupimp.cpp147
-rw-r--r--noncore/net/networksetup/interfacesetupimp.h31
-rw-r--r--noncore/net/networksetup/mainwindowimp.cpp28
-rw-r--r--noncore/net/networksetup/module.h14
-rw-r--r--noncore/net/networksetup/networksetup.pro14
-rw-r--r--noncore/net/networksetup/wlan/wextensions.cpp6
-rw-r--r--noncore/net/networksetup/wlan/wlan.pro4
-rw-r--r--noncore/net/networksetup/wlan/wlanimp.cpp14
-rw-r--r--noncore/net/networksetup/wlan/wlanimp.h8
-rw-r--r--noncore/net/networksetup/wlan/wlanmodule.cpp22
-rw-r--r--noncore/net/networksetup/wlan/wlanmodule.h4
-rw-r--r--noncore/settings/networksettings/TODO2
-rw-r--r--noncore/settings/networksettings/interface.cpp287
-rw-r--r--noncore/settings/networksettings/interface.h71
-rw-r--r--noncore/settings/networksettings/interfaceadvanced.ui344
-rw-r--r--noncore/settings/networksettings/interfaceedit.cpp141
-rw-r--r--noncore/settings/networksettings/interfaceedit.h56
-rw-r--r--noncore/settings/networksettings/interfaceinformation.ui343
-rw-r--r--noncore/settings/networksettings/interfaceinformationimp.cpp70
-rw-r--r--noncore/settings/networksettings/interfaceinformationimp.h27
-rw-r--r--noncore/settings/networksettings/interfaces.cpp638
-rw-r--r--noncore/settings/networksettings/interfaces.h76
-rw-r--r--noncore/settings/networksettings/interfacesetup.ui284
-rw-r--r--noncore/settings/networksettings/interfacesetupimp.cpp147
-rw-r--r--noncore/settings/networksettings/interfacesetupimp.h31
-rw-r--r--noncore/settings/networksettings/mainwindowimp.cpp28
-rw-r--r--noncore/settings/networksettings/module.h14
-rw-r--r--noncore/settings/networksettings/networksetup.pro14
-rw-r--r--noncore/settings/networksettings/wlan/wextensions.cpp6
-rw-r--r--noncore/settings/networksettings/wlan/wlan.pro4
-rw-r--r--noncore/settings/networksettings/wlan/wlanimp.cpp14
-rw-r--r--noncore/settings/networksettings/wlan/wlanimp.h8
-rw-r--r--noncore/settings/networksettings/wlan/wlanmodule.cpp22
-rw-r--r--noncore/settings/networksettings/wlan/wlanmodule.h4
46 files changed, 116 insertions, 5146 deletions
diff --git a/noncore/net/networksetup/TODO b/noncore/net/networksetup/TODO
index d61c510..c83d909 100644
--- a/noncore/net/networksetup/TODO
+++ b/noncore/net/networksetup/TODO
@@ -1,9 +1,11 @@
+Make sure the C code in wextensions is clean.
+
WLAN needs to be re-written to not use Config
WHERE Is DHCP info stored???
PPP module needs to be written
Write a class that parses /proc and not ifconfig
Possible other modules: ipsec, bluetooth, ipchains
diff --git a/noncore/net/networksetup/interface.cpp b/noncore/net/networksetup/interface.cpp
deleted file mode 100644
index 929b3a1..0000000
--- a/noncore/net/networksetup/interface.cpp
+++ b/dev/null
@@ -1,287 +0,0 @@
-#include "interface.h"
-#include <qdatetime.h>
-#include <qfile.h>
-#include <qdir.h>
-#include <qfileinfo.h>
-#include <qtextstream.h>
-
-#define IFCONFIG "/sbin/ifconfig"
-#define DHCP_INFO_DIR "/etc/dhcpc"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-Interface::Interface(QObject * parent, const char * name, bool newSatus): QObject(parent, name), status(newSatus), attached(false), hardwareName("Unknown"), moduleOwner(NULL), macAddress(""), ip("0.0.0.0"), broadcast(""), subnetMask("0.0.0.0"), dhcp(false){
- refresh();
-}
-
-/**
- * Set status
- * @param newStatus - the new status
- * emit updateInterface
- */
-void Interface::setStatus(bool newStatus){
- if(status != newStatus){
- status = newStatus;
- refresh();
- }
-};
-
-/**
- * Set if attached or not (802.11 card pulled out for example)
- * @param isAttached - if attached
- * emit updateInterface
- */
-void Interface::setAttached(bool isAttached){
- attached = isAttached;
- emit(updateInterface(this));
-};
-
-/**
- * Set Hardware name
- * @param name - the new name
- * emit updateInterface
- */
-void Interface::setHardwareName(QString name){
- hardwareName = name;
- emit(updateInterface(this));
-};
-
-/**
- * Set Module owner
- * @param owner - the new owner
- * emit updateInterface
- */
-void Interface::setModuleOwner(Module *owner){
- moduleOwner = owner;
- emit(updateInterface(this));
-};
-
-
-/**
- * Try to start the interface.
- */
-void Interface::start(){
- // check to see if we are already running.
- if(true == status)
- return;
-
- int ret = system(QString("%1 %2 up").arg(IFCONFIG).arg(this->name()).latin1());
- // See if it was successfull...
- if(ret != 0)
- return;
-
- status = true;
- refresh();
-}
-
-/**
- * Try to stop the interface.
- */
-void Interface::stop(){
- // check to see if we are already stopped.
- if(false == status)
- return;
-
- int ret = system(QString("%1 %2 down").arg(IFCONFIG).arg(this->name()).latin1());
- if(ret != 0)
- return;
-
- status = true;
- refresh();
-}
-
-/**
- * Try to restart the interface.
- */
-void Interface::restart(){
- stop();
- start();
-}
-
-/**
- * Try to refresh the information about the interface.
- * First call ifconfig, then check the dhcp-info file
- * @return bool true if successfull.
- */
-bool Interface::refresh(){
- // See if we are up.
- if(status == false){
- macAddress = "";
- ip = "0.0.0.0";
- subnetMask = "0.0.0.0";
- broadcast = "";
- dhcp = false;
- dhcpServerIp = "";
- leaseObtained = "";
- leaseExpires = "";
- emit(updateInterface(this));
- return true;
- }
-
- QString fileName = QString("/tmp/%1_ifconfig_info").arg(this->name());
- int ret = system(QString("%1 %2 > %3").arg(IFCONFIG).arg(this->name()).arg(fileName).latin1());
- if(ret != 0){
- qDebug(QString("Interface: Ifconfig return value: %1, is not 0").arg(ret).latin1());
- return false;
- }
-
- QFile file(fileName);
- if (!file.open(IO_ReadOnly)){
- qDebug(QString("Interface: Can't open file: %1").arg(fileName).latin1());
- return false;
- }
-
- // Set to the defaults
- macAddress = "";
- ip = "0.0.0.0";
- subnetMask = "0.0.0.0";
- broadcast = "";
-
- QTextStream stream( &file );
- QString line;
- while ( !stream.eof() ) {
- line = stream.readLine();
- if(line.contains("HWaddr")){
- int mac = line.find("HWaddr");
- macAddress = line.mid(mac+7, line.length());
- }
- if(line.contains("inet addr")){
- int ipl = line.find("inet addr");
- int space = line.find(" ", ipl+10);
- ip = line.mid(ipl+10, space-ipl-10);
- }
- if(line.contains("Mask")){
- int mask = line.find("Mask");
- subnetMask = line.mid(mask+5, line.length());
- }
- if(line.contains("Bcast")){
- int mask = line.find("Bcast");
- int space = line.find(" ", mask+6);
- broadcast = line.mid(mask+6, space-mask-6);
- }
- }
- file.close();
- QFile::remove(fileName);
-
- // DHCP TESTING
- // reset DHCP info
- dhcpServerIp = "";
- leaseObtained = "";
- leaseExpires = "";
- dhcp = false;
-
- QString dhcpDirectory(DHCP_INFO_DIR);
- QDir d(dhcpDirectory);
- if(!d.exists(dhcpDirectory))
- dhcpDirectory = "/var/run";
-
- // See if we have
- QString dhcpFile(QString(dhcpDirectory+"/dhcpcd-%1.info").arg(this->name()));
- // If there is no DHCP information then exit now with no errors.
- if(!QFile::exists(dhcpFile)){
- emit(updateInterface(this));
- return true;
- }
-
- file.setName(dhcpFile);
- if (!file.open(IO_ReadOnly)){
- qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1());
- return false;
- }
-
- // leaseTime and renewalTime and used if pid and deamon exe can be accessed.
- int leaseTime = 0;
- int renewalTime = 0;
-
- stream.setDevice( &file );
- while ( !stream.eof() ) {
- line = stream.readLine();
- if(line.contains("DHCPSIADDR="))
- dhcpServerIp = line.mid(11, line.length());
- if(line.contains("LEASETIME="))
- leaseTime = line.mid(10, line.length()).toInt();
- if(line.contains("RENEWALTIME="))
- renewalTime = line.mid(12, line.length()).toInt();
- }
- file.close();
- //qDebug(QString("Interface: leaseTime: %1").arg(leaseTime).latin1());
- //qDebug(QString("Interface: renewalTime: %1").arg(renewalTime).latin1());
-
- // Get the pid of the deamond
- dhcpFile = (QString(dhcpDirectory+"/dhcpcd-%1.pid").arg(this->name()));
- file.setName(dhcpFile);
- if (!file.open(IO_ReadOnly)){
- qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1());
- return false;
- }
-
- int pid = -1;
- stream.setDevice( &file );
- while ( !stream.eof() ) {
- line = stream.readLine();
- pid = line.toInt();
- }
- file.close();
-
- if( pid == -1){
- qDebug("Interface: Could not get pid of dhcpc deamon.");
- return false;
- }
-
- // Get the start running time of the deamon
- fileName = (QString("/proc/%1/stat").arg(pid));
- file.setName(fileName);
- stream.setDevice( &file );
- if (!file.open(IO_ReadOnly)){
- qDebug(QString("Interface: Can't open file: %1").arg(fileName).latin1());
- return false;
- }
- while ( !stream.eof() ) {
- line = stream.readLine();
- }
- file.close();
- long time = 0;
- // Grab the start time
- // pid com state ppid pgrp session tty_nr tpgid flags
- sscanf(line.latin1(), "%*d %*s %*c %*d %*d %*d %*d %*d %*u "
- // minflt cminflt majflt cmajflt utime stime cutime cstime priority
- "%*u %*u %*u %*u %*u %*u %*d %*d %*d "
- // nice 0 itrealvalue starttime
- "%*d %*d %*d %lu", (long*) &time);
- time = time/100;
-
- QDateTime datetime(QDateTime::currentDateTime());
-
- // Get the uptime of the computer.
- QFile f("/proc/uptime");
- if ( f.open(IO_ReadOnly) ) { // file opened successfully
- QTextStream t( &f ); // use a text stream
- int sec = 0;
- t >> sec;
- datetime = datetime.addSecs((-1*sec));
- f.close();
- }
- else{
- qDebug("Interface: Can't open /proc/uptime to retrive uptime.");
- return false;
- }
-
- datetime = datetime.addSecs(time);
- //qDebug(QString("Interface: %1 %2").arg(datetime.toString()).arg(pid).latin1());
-
- // Calculate the start and renew times
- leaseObtained = datetime.toString();
-
- // Calculate the start and renew times
- datetime = datetime.addSecs(leaseTime);
- leaseExpires = datetime.toString();
-
- dhcp = true;
-
- emit(updateInterface(this));
- return true;
-}
-
-// interface.cpp
-
diff --git a/noncore/net/networksetup/interface.h b/noncore/net/networksetup/interface.h
deleted file mode 100644
index dc9c6d3..0000000
--- a/noncore/net/networksetup/interface.h
+++ b/dev/null
@@ -1,71 +0,0 @@
-#ifndef INTERFACE_H
-#define INTERFACE_H
-
-#include <qstring.h>
-#include <qobject.h>
-
-class Module;
-
-class Interface : public QObject{
- Q_OBJECT
-
-signals:
- void updateInterface(Interface *i);
-
-public:
- Interface(QObject * parent=0, const char * name= "unknown", bool status = false);
- virtual ~Interface(){};
-
- virtual QString getInterfaceName(){ QString n(this->name()); return n; };
-
- virtual bool getStatus(){ return status; };
- virtual void setStatus(bool newStatus);
-
- virtual bool isAttached(){ return attached; };
- virtual void setAttached(bool isAttached=false);
-
- virtual QString getHardwareName(){ return hardwareName; };
- virtual void setHardwareName(QString name="Unknown");
-
- virtual Module* getModuleOwner(){ return moduleOwner; };
- virtual void setModuleOwner(Module *owner=NULL);
-
- // inet information.
- QString getMacAddress(){ return macAddress; };
- QString getIp(){ return ip; };
- QString getSubnetMask(){ return subnetMask; };
- QString getBroadcast(){ return broadcast; };
- bool isDhcp(){ return dhcp; };
- QString getDhcpServerIp(){ return dhcpServerIp; };
- QString getLeaseObtained(){ return leaseObtained; };
- QString getLeaseExpires(){ return leaseExpires; };
-
-public slots:
- bool refresh();
- void start();
- void stop();
- void restart();
-
-private:
- // Interface information
- bool status;
- bool attached;
- QString hardwareName;
- Module *moduleOwner;
-
- // Network information
- QString macAddress;
- QString ip;
- QString broadcast;
- QString subnetMask;
- bool dhcp;
- QString dhcpServerIp;
- QString leaseObtained;
- QString leaseExpires;
-
-};
-
-#endif
-
-// interface.h
-
diff --git a/noncore/net/networksetup/interfaceadvanced.ui b/noncore/net/networksetup/interfaceadvanced.ui
deleted file mode 100644
index 0ec67c2..0000000
--- a/noncore/net/networksetup/interfaceadvanced.ui
+++ b/dev/null
@@ -1,344 +0,0 @@
-<!DOCTYPE UI><UI>
-<class>InterfaceAdvanced</class>
-<widget>
- <class>QWidget</class>
- <property stdset="1">
- <name>name</name>
- <cstring>InterfaceAdvanced</cstring>
- </property>
- <property stdset="1">
- <name>geometry</name>
- <rect>
- <x>0</x>
- <y>0</y>
- <width>214</width>
- <height>286</height>
- </rect>
- </property>
- <property stdset="1">
- <name>maximumSize</name>
- <size>
- <width>240</width>
- <height>32767</height>
- </size>
- </property>
- <property stdset="1">
- <name>caption</name>
- <string>Advanced Interface Information</string>
- </property>
- <grid>
- <property stdset="1">
- <name>margin</name>
- <number>11</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget row="1" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel1</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>MAC Address</string>
- </property>
- </widget>
- <widget row="0" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>interfaceName</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>eth0</string>
- </property>
- </widget>
- <widget row="2" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel3</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>IP Address</string>
- </property>
- </widget>
- <widget row="1" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>macAddressLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>00:00:00:00:00:00</string>
- </property>
- </widget>
- <widget row="0" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel7</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Interface</string>
- </property>
- </widget>
- <widget row="4" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel4</cstring>
- </property>
- <property stdset="1">
- <name>enabled</name>
- <bool>true</bool>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Subnet Mask</string>
- </property>
- </widget>
- <widget row="2" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>ipAddressLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>0.0.0.0</string>
- </property>
- </widget>
- <widget row="4" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>subnetMaskLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>0.0.0.0</string>
- </property>
- </widget>
- <widget row="3" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel2</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Broadcast</string>
- </property>
- </widget>
- <widget row="3" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>broadcastLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- </widget>
- <widget row="5" column="0" rowspan="1" colspan="2" >
- <class>QGroupBox</class>
- <property stdset="1">
- <name>name</name>
- <cstring>dhcpInformation</cstring>
- </property>
- <property stdset="1">
- <name>title</name>
- <string>DHCP Information</string>
- </property>
- <grid>
- <property stdset="1">
- <name>margin</name>
- <number>11</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget row="0" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel6</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>DHCP Server</string>
- </property>
- </widget>
- <widget row="2" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>leaseExpiresLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string></string>
- </property>
- </widget>
- <widget row="1" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>leaseObtainedLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string></string>
- </property>
- </widget>
- <widget row="2" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel9</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Lease Expires</string>
- </property>
- </widget>
- <widget row="1" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel8</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Lease Obtained</string>
- </property>
- </widget>
- <widget row="0" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>dhcpServerLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string></string>
- </property>
- </widget>
- </grid>
- </widget>
- <spacer row="6" column="1" >
- <property>
- <name>name</name>
- <cstring>Spacer2</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Vertical</enum>
- </property>
- <property stdset="1">
- <name>sizeType</name>
- <enum>Expanding</enum>
- </property>
- <property>
- <name>sizeHint</name>
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </grid>
-</widget>
-<customwidgets>
- <customwidget>
- <class>QWidget</class>
- <header location="local">qwidget.h</header>
- <sizehint>
- <width>100</width>
- <height>100</height>
- </sizehint>
- <container>0</container>
- <sizepolicy>
- <hordata>7</hordata>
- <verdata>7</verdata>
- </sizepolicy>
- <pixmap>image0</pixmap>
- </customwidget>
-</customwidgets>
-<images>
- <image>
- <name>image0</name>
- <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
- </image>
-</images>
-</UI>
diff --git a/noncore/net/networksetup/interfaceedit.cpp b/noncore/net/networksetup/interfaceedit.cpp
deleted file mode 100644
index 25599ef..0000000
--- a/noncore/net/networksetup/interfaceedit.cpp
+++ b/dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-** Form implementation generated from reading ui file 'interfaceedit.ui'
-**
-** Created: Mon Sep 23 12:18:55 2002
-** by: The User Interface Compiler (uic)
-**
-** WARNING! All changes made in this file will be lost!
-****************************************************************************/
-#include "interfaceedit.h"
-
-#include <qcheckbox.h>
-#include <qcombobox.h>
-#include <qframe.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qspinbox.h>
-#include "qwidget.h"
-#include <qlayout.h>
-#include <qvariant.h>
-#include <qtooltip.h>
-#include <qwhatsthis.h>
-
-/*
- * Constructs a InterfaceConfiguration which is a child of 'parent', with the
- * name 'name' and widget flags set to 'f'
- */
-InterfaceConfiguration::InterfaceConfiguration( QWidget* parent, const char* name, WFlags fl )
- : QWidget( parent, name, fl )
-{
- if ( !name )
- setName( "InterfaceConfiguration" );
- resize( 177, 306 );
- setCaption( tr( "Interface Configuration" ) );
- InterfaceConfigurationLayout = new QGridLayout( this );
- InterfaceConfigurationLayout->setSpacing( 6 );
- InterfaceConfigurationLayout->setMargin( 11 );
-
- profile = new QComboBox( FALSE, this, "profile" );
- profile->insertItem( tr( "All" ) );
-
- InterfaceConfigurationLayout->addWidget( profile, 2, 1 );
-
- TextLabel1 = new QLabel( this, "TextLabel1" );
- TextLabel1->setText( tr( "Profile:" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel1, 2, 0 );
-
- Line1 = new QFrame( this, "Line1" );
- Line1->setFrameStyle( QFrame::HLine | QFrame::Sunken );
-
- InterfaceConfigurationLayout->addMultiCellWidget( Line1, 1, 1, 0, 1 );
-
- CheckBox3 = new QCheckBox( this, "CheckBox3" );
- CheckBox3->setText( tr( "Automaticly bring up" ) );
-
- InterfaceConfigurationLayout->addMultiCellWidget( CheckBox3, 0, 0, 0, 1 );
-
- dhcpCheckBox = new QCheckBox( this, "dhcpCheckBox" );
- dhcpCheckBox->setText( tr( "DHCP" ) );
-
- InterfaceConfigurationLayout->addMultiCellWidget( dhcpCheckBox, 3, 3, 0, 1 );
-
- TextLabel3_3_2 = new QLabel( this, "TextLabel3_3_2" );
- TextLabel3_3_2->setText( tr( "Lease Hours" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel3_3_2, 4, 0 );
-
- SpinBox1_2 = new QSpinBox( this, "SpinBox1_2" );
- SpinBox1_2->setMaxValue( 336 );
- SpinBox1_2->setMinValue( 1 );
- SpinBox1_2->setValue( 24 );
-
- InterfaceConfigurationLayout->addWidget( SpinBox1_2, 4, 1 );
- QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
- InterfaceConfigurationLayout->addItem( spacer, 11, 1 );
-
- TextLabel4 = new QLabel( this, "TextLabel4" );
- TextLabel4->setText( tr( "IP Address" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel4, 6, 0 );
-
- ipAddressEdit = new QLineEdit( this, "ipAddressEdit" );
-
- InterfaceConfigurationLayout->addWidget( ipAddressEdit, 6, 1 );
-
- TextLabel5 = new QLabel( this, "TextLabel5" );
- TextLabel5->setText( tr( "Subnet Mask" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel5, 7, 0 );
-
- firstDNSLineEdit = new QLineEdit( this, "firstDNSLineEdit" );
-
- InterfaceConfigurationLayout->addWidget( firstDNSLineEdit, 9, 1 );
-
- TextLabel3 = new QLabel( this, "TextLabel3" );
- TextLabel3->setText( tr( "Second DNS" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel3, 10, 0 );
-
- subnetMaskEdit = new QLineEdit( this, "subnetMaskEdit" );
-
- InterfaceConfigurationLayout->addWidget( subnetMaskEdit, 7, 1 );
-
- gatewayEdit = new QLineEdit( this, "gatewayEdit" );
-
- InterfaceConfigurationLayout->addWidget( gatewayEdit, 8, 1 );
-
- TextLabel7 = new QLabel( this, "TextLabel7" );
- TextLabel7->setText( tr( "Gateway" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel7, 8, 0 );
-
- TextLabel2 = new QLabel( this, "TextLabel2" );
- TextLabel2->setText( tr( "First DNS" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel2, 9, 0 );
-
- secondDNSLineEdit = new QLineEdit( this, "secondDNSLineEdit" );
-
- InterfaceConfigurationLayout->addWidget( secondDNSLineEdit, 10, 1 );
-
- GroupBox2 = new QGroupBox( this, "GroupBox2" );
- GroupBox2->setTitle( tr( "Static Ip Configuration" ) );
-
- InterfaceConfigurationLayout->addMultiCellWidget( GroupBox2, 5, 5, 0, 1 );
-
- // signals and slots connections
- connect( dhcpCheckBox, SIGNAL( toggled(bool) ), SpinBox1_2, SLOT( setEnabled(bool) ) );
- connect( dhcpCheckBox, SIGNAL( toggled(bool) ), GroupBox2, SLOT( setDisabled(bool) ) );
-}
-
-/*
- * Destroys the object and frees any allocated resources
- */
-InterfaceConfiguration::~InterfaceConfiguration()
-{
- // no need to delete child widgets, Qt does it all for us
-}
-
diff --git a/noncore/net/networksetup/interfaceedit.h b/noncore/net/networksetup/interfaceedit.h
deleted file mode 100644
index a65c030..0000000
--- a/noncore/net/networksetup/interfaceedit.h
+++ b/dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-** Form interface generated from reading ui file 'interfaceedit.ui'
-**
-** Created: Mon Sep 23 12:18:55 2002
-** by: The User Interface Compiler (uic)
-**
-** WARNING! All changes made in this file will be lost!
-****************************************************************************/
-#ifndef INTERFACECONFIGURATION_H
-#define INTERFACECONFIGURATION_H
-
-#include <qvariant.h>
-#include <qwidget.h>
-class QVBoxLayout;
-class QHBoxLayout;
-class QGridLayout;
-class QCheckBox;
-class QComboBox;
-class QFrame;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QSpinBox;
-
-class InterfaceConfiguration : public QWidget
-{
- Q_OBJECT
-
-public:
- InterfaceConfiguration( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
- ~InterfaceConfiguration();
-
- QComboBox* profile;
- QLabel* TextLabel1;
- QFrame* Line1;
- QCheckBox* CheckBox3;
- QCheckBox* dhcpCheckBox;
- QLabel* TextLabel3_3_2;
- QSpinBox* SpinBox1_2;
- QLabel* TextLabel4;
- QLineEdit* ipAddressEdit;
- QLabel* TextLabel5;
- QLineEdit* firstDNSLineEdit;
- QLabel* TextLabel3;
- QLineEdit* subnetMaskEdit;
- QLineEdit* gatewayEdit;
- QLabel* TextLabel7;
- QLabel* TextLabel2;
- QLineEdit* secondDNSLineEdit;
- QGroupBox* GroupBox2;
-
-protected:
- QGridLayout* InterfaceConfigurationLayout;
-};
-
-#endif // INTERFACECONFIGURATION_H
diff --git a/noncore/net/networksetup/interfaceinformation.ui b/noncore/net/networksetup/interfaceinformation.ui
deleted file mode 100644
index 2838d19..0000000
--- a/noncore/net/networksetup/interfaceinformation.ui
+++ b/dev/null
@@ -1,343 +0,0 @@
-<!DOCTYPE UI><UI>
-<class>InterfaceInformation</class>
-<widget>
- <class>QWidget</class>
- <property stdset="1">
- <name>name</name>
- <cstring>InterfaceInformation</cstring>
- </property>
- <property stdset="1">
- <name>geometry</name>
- <rect>
- <x>0</x>
- <y>0</y>
- <width>219</width>
- <height>255</height>
- </rect>
- </property>
- <property stdset="1">
- <name>caption</name>
- <string>Interface Information</string>
- </property>
- <grid>
- <property stdset="1">
- <name>margin</name>
- <number>11</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget row="4" column="0" rowspan="1" colspan="2" >
- <class>QLayoutWidget</class>
- <property stdset="1">
- <name>name</name>
- <cstring>Layout1</cstring>
- </property>
- <grid>
- <property stdset="1">
- <name>margin</name>
- <number>0</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget row="1" column="0" >
- <class>QPushButton</class>
- <property stdset="1">
- <name>name</name>
- <cstring>refreshButton</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>&amp;Refresh</string>
- </property>
- </widget>
- <widget row="0" column="1" >
- <class>QPushButton</class>
- <property stdset="1">
- <name>name</name>
- <cstring>stopButton</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>S&amp;top</string>
- </property>
- </widget>
- <widget row="1" column="1" >
- <class>QPushButton</class>
- <property stdset="1">
- <name>name</name>
- <cstring>restartButton</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>R&amp;estart</string>
- </property>
- </widget>
- <widget row="0" column="0" >
- <class>QPushButton</class>
- <property stdset="1">
- <name>name</name>
- <cstring>startButton</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>&amp;Start</string>
- </property>
- </widget>
- </grid>
- </widget>
- <widget row="0" column="0" >
- <class>Line</class>
- <property stdset="1">
- <name>name</name>
- <cstring>Line1</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Horizontal</enum>
- </property>
- </widget>
- <widget row="0" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel22</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>IP Address</string>
- </property>
- </widget>
- <widget row="1" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel23</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Subnet Mask</string>
- </property>
- </widget>
- <widget row="2" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel21</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>MAC Address</string>
- </property>
- </widget>
- <widget row="3" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel24</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>MShape</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>MShadow</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Broadcast</string>
- </property>
- </widget>
- <widget row="1" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>subnetMaskLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>0.0.0.0</string>
- </property>
- </widget>
- <widget row="2" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>macAddressLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>00:00:00:00:00:00</string>
- </property>
- </widget>
- <widget row="3" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>broadcastLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string></string>
- </property>
- </widget>
- <widget row="0" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>ipAddressLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>0.0.0.0</string>
- </property>
- </widget>
- <spacer row="7" column="1" >
- <property>
- <name>name</name>
- <cstring>Spacer18</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Vertical</enum>
- </property>
- <property stdset="1">
- <name>sizeType</name>
- <enum>Expanding</enum>
- </property>
- <property>
- <name>sizeHint</name>
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget row="6" column="0" rowspan="1" colspan="2" >
- <class>QLayoutWidget</class>
- <property stdset="1">
- <name>name</name>
- <cstring>Layout2</cstring>
- </property>
- <hbox>
- <property stdset="1">
- <name>margin</name>
- <number>0</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <spacer>
- <property>
- <name>name</name>
- <cstring>Spacer10</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Horizontal</enum>
- </property>
- <property stdset="1">
- <name>sizeType</name>
- <enum>Expanding</enum>
- </property>
- <property>
- <name>sizeHint</name>
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget>
- <class>QPushButton</class>
- <property stdset="1">
- <name>name</name>
- <cstring>advancedButton</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>View &amp;Advanced Information</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget row="5" column="0" rowspan="1" colspan="2" >
- <class>Line</class>
- <property stdset="1">
- <name>name</name>
- <cstring>Line5</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Horizontal</enum>
- </property>
- </widget>
- </grid>
-</widget>
-<customwidgets>
- <customwidget>
- <class>QWidget</class>
- <header location="local">qwidget.h</header>
- <sizehint>
- <width>100</width>
- <height>100</height>
- </sizehint>
- <container>0</container>
- <sizepolicy>
- <hordata>7</hordata>
- <verdata>7</verdata>
- </sizepolicy>
- <pixmap>image0</pixmap>
- </customwidget>
-</customwidgets>
-<images>
- <image>
- <name>image0</name>
- <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
- </image>
-</images>
-<tabstops>
- <tabstop>startButton</tabstop>
- <tabstop>stopButton</tabstop>
- <tabstop>refreshButton</tabstop>
- <tabstop>restartButton</tabstop>
- <tabstop>advancedButton</tabstop>
-</tabstops>
-</UI>
diff --git a/noncore/net/networksetup/interfaceinformationimp.cpp b/noncore/net/networksetup/interfaceinformationimp.cpp
deleted file mode 100644
index 43483fb..0000000
--- a/noncore/net/networksetup/interfaceinformationimp.cpp
+++ b/dev/null
@@ -1,70 +0,0 @@
-#include "interfaceinformationimp.h"
-#include "interfaceadvanced.h"
-
-#include <qpushbutton.h>
-#include <qlabel.h>
-#include <qgroupbox.h>
-#include <assert.h>
-
-/**
- * Constructor for the InterfaceInformationImp class. This class pretty much
- * just display's information about the interface that is passed to it.
- */
-InterfaceInformationImp::InterfaceInformationImp(QWidget *parent, const char *name, Interface *i, WFlags f):InterfaceInformation(parent, name, f){
- assert(i);
-
- interface = i;
- connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *)));
- updateInterface(interface);
- connect(startButton, SIGNAL(clicked()), interface, SLOT(start()));
- connect(stopButton, SIGNAL(clicked()), interface, SLOT(stop()));
- connect(restartButton, SIGNAL(clicked()), interface, SLOT(restart()));
- connect(refreshButton, SIGNAL(clicked()), interface, SLOT(refresh()));
- connect(advancedButton, SIGNAL(clicked()), this, SLOT(advanced()));
-
-}
-
-/**
- * Update the interface information and buttons.
- * @param Intarface *i the interface to update (should be the one we already
- * know about).
- */
-void InterfaceInformationImp::updateInterface(Interface *i){
- if(interface->getStatus()){
- startButton->setEnabled(false);
- stopButton->setEnabled(true);
- restartButton->setEnabled(true);
- }
- else{
- startButton->setEnabled(true);
- stopButton->setEnabled(false);
- restartButton->setEnabled(false);
- }
- macAddressLabel->setText(interface->getMacAddress());
- ipAddressLabel->setText(interface->getIp());
- subnetMaskLabel->setText(interface->getSubnetMask());
- broadcastLabel->setText(interface->getBroadcast());
-}
-
-/**
- * Create the advanced widget. Fill it with the current interface's information.
- * Display it.
- */
-void InterfaceInformationImp::advanced(){
- InterfaceAdvanced *a = new InterfaceAdvanced(0, "InterfaceAdvanced");
- a->interfaceName->setText(interface->getInterfaceName());
- a->macAddressLabel->setText(interface->getMacAddress());
- a->ipAddressLabel->setText(interface->getIp());
- a->subnetMaskLabel->setText(interface->getSubnetMask());
- a->broadcastLabel->setText(interface->getBroadcast());
- a->dhcpServerLabel->setText(interface->getDhcpServerIp());
- a->leaseObtainedLabel->setText(interface->getLeaseObtained());
- a->leaseExpiresLabel->setText(interface->getLeaseExpires());
- a->dhcpInformation->setEnabled(interface->isDhcp());
-
- a->showMaximized();
- a->show();
-}
-
-// infoimp.cpp
-
diff --git a/noncore/net/networksetup/interfaceinformationimp.h b/noncore/net/networksetup/interfaceinformationimp.h
deleted file mode 100644
index 42213cc..0000000
--- a/noncore/net/networksetup/interfaceinformationimp.h
+++ b/dev/null
@@ -1,27 +0,0 @@
-#ifndef INTERFACEINFORMATIONIMP_H
-#define INTERFACEINFORMATIONIMP_H
-
-#include "interfaceinformation.h"
-#include "interface.h"
-
-class InterfaceInformationImp : public InterfaceInformation {
-
-Q_OBJECT
-
-public:
- InterfaceInformationImp(QWidget *parent=0, const char *name=0, Interface *i=0, WFlags f=0);
- ~InterfaceInformationImp(){};
-
-private slots:
- void advanced();
- void updateInterface(Interface *i);
-
-private:
- Interface *interface;
-
-};
-
-#endif
-
-// addserviceimp.h
-
diff --git a/noncore/net/networksetup/interfaces.cpp b/noncore/net/networksetup/interfaces.cpp
deleted file mode 100644
index 377a6db..0000000
--- a/noncore/net/networksetup/interfaces.cpp
+++ b/dev/null
@@ -1,638 +0,0 @@
-#include "interfaces.h"
-
-#include <qfile.h>
-#include <qtextstream.h>
-#include <qregexp.h>
-
-#define AUTO "auto"
-#define IFACE "iface"
-#define MAPPING "mapping"
-
-/**
- * Constructor. Reads in the interfaces file and then split the file up by
- * the \n for interfaces variable.
- * @param useInterfacesFile if an interface file other then the default is
- * desired to be used it should be passed in.
- */
-Interfaces::Interfaces(QString useInterfacesFile){
- acceptedFamily.append(INTERFACES_FAMILY_INET);
- acceptedFamily.append(INTERFACES_FAMILY_IPX);
- acceptedFamily.append(INTERFACES_FAMILY_INET6);
-
- interfacesFile = useInterfacesFile;
- QFile file(interfacesFile);
- if (!file.open(IO_ReadOnly)){
- qDebug(QString("Interfaces: Can't open file: %1 for reading.").arg(interfacesFile).latin1());
- currentIface = interfaces.end();
- currentMapping = interfaces.end();
- return;
- }
- QTextStream stream( &file );
- QString line;
- while ( !stream.eof() ) {
- line += stream.readLine();
- line += "\n";
- }
- file.close();
- interfaces = QStringList::split("\n", line, true);
-
- currentIface = interfaces.end();
- currentMapping = interfaces.end();
-}
-
-
-/**
- * Get a list of all interfaces in the interface file. Usefull for
- * hardware that is not currently connected such as an 802.11b card
- * not plugged in, but configured for when it is plugged in.
- * @return Return string list of interfaces.
- **/
-QStringList Interfaces::getInterfaceList(){
- QStringList list;
- for ( QStringList::Iterator it = interfaces.begin(); it != interfaces.end(); ++it ) {
- QString line = (*it).simplifyWhiteSpace();
- if(line.contains(IFACE) && line.at(0) != '#'){
- line = line.mid(QString(IFACE).length() +1, line.length());
- line = line.simplifyWhiteSpace();
- int findSpace = line.find(" ");
- if( findSpace >= 0){
- line = line.mid(0, findSpace);
- list.append(line);
- }
- }
- }
- return list;
-}
-
-/**
- * Find out if interface is in an "auto" group or not.
- * Report any duplicates such as eth0 being in two differnt auto's
- * @param interface interface to check to see if it is on or not.
- * @return true is interface is in auto
- */
-bool Interfaces::isAuto(QString interface){
- QStringList autoLines = interfaces.grep(QRegExp(AUTO));
- QStringList awi = autoLines.grep(QRegExp(interface));
- if(awi.count() > 1)
- qDebug(QString("Interfaces: Found more then auto group with interface: %1.").arg(interface).latin1());
- if(awi.count() < 1)
- return false;
- return true;
-}
-
-/**
- * Attempt to set the auto option for interface to setAuto.
- * @param interface the interface to set
- * @param setAuto the value to set interface to.
- * @return false if already set to setAuto.
- * */
-bool Interfaces::setAuto(QString interface, bool setAuto){
- // Don't need to set it if it is already set.
- if(isAuto(interface) == setAuto)
- return false;
-
- bool changed = false;
- for ( QStringList::Iterator it = interfaces.begin(); it != interfaces.end(); ++it ) {
- if((*it).contains(AUTO)){
- //We know that they are not in any group so let add to this auto.
- if(setAuto){
- (*it) = (*it) += " " + interface;
- // Don't care to have such thins as: auto eth0 lo usb0
- (*it) = (*it).simplifyWhiteSpace();
- changed = true;
- break;
- }
- else{
- if((*it).contains(interface)){
- (*it) = (*it).replace(QRegExp(interface), "");
- // clean up
- QString line = (*it).simplifyWhiteSpace();
- line = line.replace(QRegExp(" "),"");
- if(line == AUTO)
- (*it) = "";
- changed = true;
- // Don't break because we want to make sure we remove all cases.
- }
- }
- }
- }
- if(changed == false){
- if(setAuto == true)
- interfaces.append(QString(AUTO" %1").arg(interface));
- else{
- qDebug(QString("Interfaces: Can't set interface %1 auto to false sense it is already false.").arg(interface).latin1());
- }
- }
- return true;
-}
-
-/**
- * Set the current interface to interface. This needs to be done before you
- * can call getFamily(), getMethod, and get/setOption().
- * @param interface the name of the interface to set. All whitespace is
- * removed from the interface name.
- * @return bool true if it is successfull.
- */
-bool Interfaces::setInterface(QString interface){
- interface = interface.simplifyWhiteSpace();
- interface = interface.replace(QRegExp(" "), "");
- return setStanza(IFACE, interface, currentIface);
-}
-
-/**
- * A quick helper funtion to see if the current interface is set.
- * @return bool true if set, false otherwise.
- */
-bool Interfaces::isInterfaceSet(){
- return (currentIface != interfaces.end());
-}
-
-/**
- * Add a new interface of with the settings - family and method
- * @param interface the name of the interface to set. All whitespace is
- * removed from the interface name.
- * @param family the family of this interface inet or inet, ipx or inet6
- * Must of one of the families defined in interfaces.h
- * @param method for the family. see interfaces man page for family methods.
- * @return true if successfull.
- */
-bool Interfaces::addInterface(QString interface, QString family, QString method){
- if(acceptedFamily.contains(family)==0)
- return false;
- interface = interface.simplifyWhiteSpace();
- interface = interface.replace(QRegExp(" "), "");
- interfaces.append("");
- interfaces.append(QString(IFACE " %1 %2 %3").arg(interface).arg(family).arg(method));
- return true;
-}
-
-/**
- * Copies interface with name interface to name newInterface
- * @param newInterface name of the new interface.
- * @return bool true if successfull
- */
-bool Interfaces::copyInterface(QString interface, QString newInterface){
- if(!setInterface(interface)) return false;
-
- QStringList::Iterator it = currentIface;
- it++;
-
- bool error;
- addInterface(newInterface, getInterfaceFamily(error), getInterfaceMethod(error));
- if(!setInterface(newInterface)) return false;
- QStringList::Iterator newIface = currentIface;
- newIface++;
-
- for ( it; it != interfaces.end(); ++it ){
- if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)))
- break;
- newIface = interfaces.insert(newIface, *it);
- }
-
- return true;
-}
-
-/**
- * Remove the currently selected interface and all of its options.
- * @return bool if successfull or not.
- */
-bool Interfaces::removeInterface(){
- if(currentIface == interfaces.end())
- return false;
- (*currentIface) = "";
- return removeAllInterfaceOptions();
-}
-
-/**
- * Gets the hardware name of the interface that is currently selected.
- * @return QString name of the hardware interface (eth0, usb2, wlan1...).
- * @param error set to true if any error occurs, false otherwise.
- */
-QString Interfaces::getInterfaceName(bool &error){
- if(currentIface == interfaces.end()){
- error = true;
- return QString();
- }
- QString line = (*currentIface);
- line = line.mid(QString(IFACE).length() +1, line.length());
- line = line.simplifyWhiteSpace();
- int findSpace = line.find(" ");
- if( findSpace < 0){
- error = true;
- return QString();
- }
- error = false;
- return line.mid(0, findSpace);
-}
-
-/**
- * Gets the family name of the interface that is currently selected.
- * @return QString name of the family (inet, inet6, ipx).
- * @param error set to true if any error occurs, false otherwise.
- */
-QString Interfaces::getInterfaceFamily(bool &error){
- QString name = getInterfaceName(error);
- if(error){
- error = true;
- return QString();
- }
- QString line = (*currentIface);
- line = line.mid(QString(IFACE).length() +1, line.length());
- line = line.mid(name.length()+1, line.length());
- line = line.simplifyWhiteSpace();
- int findSpace = line.find(" ");
- if( findSpace < 0){
- error = true;
- return QString();
- }
- error = false;
- return line.mid(0, findSpace);
-}
-
-/**
- * Gets the method of the interface that is currently selected.
- * @return QString name of the method such as staic or dhcp.
- * See the man page of interfaces for possible methods depending on the family.
- * @param error set to true if any error occurs, false otherwise.
- */
-QString Interfaces::getInterfaceMethod(bool &error){
- QString name = getInterfaceName(error);
- if(error){
- error = true;
- return QString();
- }
- QString family = getInterfaceFamily(error);
- if(error){
- error = true;
- return QString();
- }
- QString line = (*currentIface);
- line = line.mid(QString(IFACE).length()+1, line.length());
- line = line.mid(name.length()+1, line.length());
- line = line.mid(family.length()+1, line.length());
- line = line.simplifyWhiteSpace();
- error = false;
- return line;
-}
-
-/**
- * Sets the interface name to newName.
- * @param newName the new name of the interface. All whitespace is removed.
- * @return bool true if successfull.
- */
-bool Interfaces::setInterfaceName(QString newName){
- if(currentIface == interfaces.end())
- return false;
- newName = newName.simplifyWhiteSpace();
- newName = newName.replace(QRegExp(" "), "");
- bool returnValue = false;
- (*currentIface) = QString("iface %1 %2 %3").arg(newName).arg(getInterfaceFamily(returnValue)).arg(getInterfaceMethod(returnValue));
- return !returnValue;
-}
-
-/**
- * Sets the interface family to newName.
- * @param newName the new name of the interface. Must be one of the families
- * defined in the interfaces.h file.
- * @return bool true if successfull.
- */
-bool Interfaces::setInterfaceFamily(QString newName){
- if(currentIface == interfaces.end())
- return false;
- if(acceptedFamily.contains(newName)==0)
- return false;
- bool returnValue = false;
- (*currentIface) = QString("iface %1 %2 %3").arg(getInterfaceName(returnValue)).arg(newName).arg(getInterfaceMethod(returnValue));
- return !returnValue;
-}
-
-/**
- * Sets the interface method to newName
- * @param newName the new name of the interface
- * @return bool true if successfull.
- */
-bool Interfaces::setInterfaceMethod(QString newName){
- if(currentIface == interfaces.end())
- return false;
- bool returnValue = false;
- (*currentIface) = QString("iface %1 %2 %3").arg(getInterfaceName(returnValue)).arg(getInterfaceFamily(returnValue)).arg(newName);
- return !returnValue;
-}
-
-/**
- * Get a value for an option in the currently selected interface. For example
- * calling getInterfaceOption("address") on the following stanza would
- * return 192.168.1.1.
- * iface eth0 static
- * address 192.168.1.1
- * @param option the options to get the value.
- * @param error set to true if any error occurs, false otherwise.
- * @return QString the options value. QString::null if error == true
- */
-QString Interfaces::getInterfaceOption(QString option, bool &error){
- return getOption(currentIface, option, error);
-}
-
-/**
- * Set a value for an option in the currently selected interface. If option
- * doesn't exist then it is added along with the value.
- * @param option the options to set the value.
- * @param value the value that option should be set to.
- * @param error set to true if any error occurs, false otherwise.
- * @return QString the options value. QString::null if error == true
- */
-bool Interfaces::setInterfaceOption(QString option, QString value){
- return setOption(currentIface, option, value);
-}
-
-/**
- * Removes a value for an option in the currently selected interface.
- * @param option the options to set the value.
- * @param value the value that option should be set to.
- * @param error set to true if any error occurs, false otherwise.
- * @return QString the options value. QString::null if error == true
- */
-bool Interfaces::removeInterfaceOption(QString option, QString value){
- return removeOption(currentIface, option, value);
-}
-
-/**
- * Removes all of the options from the currently selected interface.
- * @return bool error if if successfull
- */
-bool Interfaces::removeAllInterfaceOptions(){
- return removeAllOptions(currentIface);
-}
-
-/**
- * Set the current map to interface's map. This needs to be done before you
- * can call addMapping(), set/getMap(), and get/setScript().
- * @param interface the name of the interface to set. All whitespace is
- * removed from the interface name.
- * @return bool true if it is successfull.
- */
-bool Interfaces::setMapping(QString interface){
- interface = interface.simplifyWhiteSpace();
- interface = interface.replace(QRegExp(" "), "");
- return setStanza(MAPPING, interface, currentMapping);
-}
-
-/**
- * Adds a new Mapping to the interfaces file with interfaces.
- * @param interface the name(s) of the interfaces to set to this mapping
- */
-void Interfaces::addMapping(QString option){
- interfaces.append("");
- interfaces.append(QString(MAPPING " %1").arg(option));
-}
-
-/**
- * Remove the currently selected map and all of its options.
- * @return bool if successfull or not.
- */
-bool Interfaces::removeMapping(){
- if(currentMapping == interfaces.end())
- return false;
- (*currentMapping) = "";
- return removeAllOptions(currentMapping);
-}
-
-/**
- * Set a map option within a mapping.
- * @param map map to use
- * @param value value to go with map
- * @return bool true if it is successfull.
- */
-bool Interfaces::setMap(QString map, QString value){
- return setOption(currentMapping, map, value);
-}
-
-/**
- * Removes a map option within a mapping.
- * @param map map to use
- * @param value value to go with map
- * @return bool true if it is successfull.
- */
-bool Interfaces::removeMap(QString map, QString value){
- return removeOption(currentMapping, map, value);
-}
-
-/**
- * Get a map value within a mapping.
- * @param map map to get value of
- * @param bool true if it is successfull.
- * @return value that goes to the map
- */
-QString Interfaces::getMap(QString map, bool &error){
- return getOption(currentMapping, map, error);
-}
-
-/**
- * Sets a script value of the current mapping to argument.
- * @param argument the script name.
- * @return true if successfull.
- */
-bool Interfaces::setScript(QString argument){
- return setOption(currentMapping, "script", argument);
-}
-
-/**
- * @param error true if could not retrieve the current script argument.
- * @return QString the argument of the script for the current mapping.
- */
-QString Interfaces::getScript(bool &error){
- return getOption(currentMapping, "script", error);
-}
-
-/**
- * Helper function used to parse through the QStringList and put pointers in
- * the correct place.
- * @param stanza The stanza (auto, iface, mapping) to look for.
- * @param option string that must be in the stanza's main line.
- * @param interator interator to place at location of stanza if successfull.
- * @return bool true if the stanza is found.
- */
-bool Interfaces::setStanza(QString stanza, QString option, QStringList::Iterator &iterator){
- bool found = false;
- iterator = interfaces.end();
- for ( QStringList::Iterator it = interfaces.begin(); it != interfaces.end(); ++it ) {
- QString line = (*it).simplifyWhiteSpace();
- if(line.contains(stanza) && line.contains(option) && line.at(0) != '#'){
- uint point = line.find(option);
- bool valid = true;
- if(point > 0){
- // There are more chars in the line. check +1
- if(line.at(point-1) != ' ')
- valid = false;
- }
- point += option.length();
- if(point < line.length()-1){
- // There are more chars in the line. check -1
- if(line.at(point) != ' ')
- valid = false;
- }
- if(valid){
- if(found == true){
- qDebug(QString("Interfaces: Found multiple stanza's for search: %1 %2").arg(stanza).arg(option).latin1());
- }
- found = true;
- iterator = it;
- }
- }
- }
- return found;
-}
-
-/**
- * Sets a value of an option in a stanza
- * @param start the start of the stanza
- * @param option the option to use when setting value.
- * @return bool true if successfull, false otherwise.
- */
-bool Interfaces::setOption(QStringList::Iterator start, QString option, QString value){
- if(start == interfaces.end())
- return false;
-
- bool found = false;
- for ( QStringList::Iterator it = start; it != interfaces.end(); ++it ) {
- if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)) && it != start){
- if(!found && value != ""){
- // Got to the end of the stanza without finding it, so append it.
- interfaces.insert(--it, QString("\t%1 %2").arg(option).arg(value));
- }
- found = true;
- break;
- }
- if((*it).contains(option) && it != start && (*it).at(0) != '#'){
- // Found it in stanza so replace it.
- if(found)
- qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1());
- found = true;
- (*it) = QString("\t%1 %2").arg(option).arg(value);
- }
- }
- if(!found){
- QStringList::Iterator p = start;
- interfaces.insert(++p, QString("\t%1 %2").arg(option).arg(value));
- found = true;
- }
- return found;
-}
-/**
- * Removes a option in a stanza
- * @param start the start of the stanza
- * @param option the option to use when setting value.
- * @return bool true if successfull, false otherwise.
- */
-bool Interfaces::removeOption(QStringList::Iterator start, QString option, QString value){
- if(start == interfaces.end())
- return false;
-
- bool found = false;
- for ( QStringList::Iterator it = start; it != interfaces.end(); ++it ) {
- if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)) && it != start){
- // got to the end without finding it
- break;
- }
- if((*it).contains(option) && (*it).contains(value) && it != start && (*it).at(0) != '#'){
- // Found it in stanza so replace it.
- if(found)
- qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1());
- found = true;
- (*it) = "";
- }
- }
- return found;
-}
-
-/**
- * Removes all options in a stanza
- * @param start the start of the stanza
- * @return bool true if successfull, false otherwise.
- */
-bool Interfaces::removeAllOptions(QStringList::Iterator start){
- if(start == interfaces.end())
- return false;
-
- QStringList::Iterator it = start;
- it = ++it;
- for (it; it != interfaces.end(); ++it ) {
- if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)) && it != start){
- break;
- }
- it = interfaces.remove(it);
- it = --it;
- }
- // Leave a space between this interface and the next.
- interfaces.insert(it, QString(""));
- return true;
-}
-
-/**
- * Gets a value of an option in a stanza
- * @param start the start of the stanza
- * @param option the option to use when getting the value.
- * @param bool true if errors false otherwise.
- * @return QString the value of option QString::null() if error == true.
- */
-QString Interfaces::getOption(QStringList::Iterator start, QString option, bool &error){
- if(start == interfaces.end()){
- error = false;
- return QString();
- }
-
- QString value;
- bool found = false;
- for ( QStringList::Iterator it = start; it != interfaces.end(); ++it ) {
- if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)) && it != start){
- break;
- }
- if((*it).contains(option) && (*it).at(0) != '#'){
- if(found)
- qDebug(QString("Interfaces: Get Options found more then one value: %1 for option: %2 in stanza %3").arg((*it)).arg(option).arg((*start)).latin1());
- found = true;
- QString line = (*it).simplifyWhiteSpace();
- int space = line.find(" ", option.length());
- if(space != -1)
- value = line.mid(space+1, line.length());
- else
- qDebug(QString("Interfaces: Option %1 with no value").arg(option).latin1());
- }
- }
- error = !found;
- return value;
-}
-
-/**
- * Write out the interfaces file to the file passed into the constructor.
- * Removes any excess blank lines over 1 line long.
- * @return bool true if successfull, false if not.
- */
-bool Interfaces::write(){
- QFile::remove(interfacesFile);
- QFile file(interfacesFile);
-
- if (!file.open(IO_ReadWrite)){
- qDebug(QString("Interfaces: Can't open file: %1 for writing.").arg(interfacesFile).latin1());
- return false;
- }
- QTextStream stream( &file );
- int whiteSpaceCount = 0;
- for ( QStringList::Iterator it = interfaces.begin(); it != interfaces.end(); ++it ) {
- QString line = (*it).simplifyWhiteSpace();
- line = line.replace(QRegExp(" "),"");
- if(line.length() == 0)
- whiteSpaceCount++;
- else
- whiteSpaceCount = 0;
- if(whiteSpaceCount < 2){
- qDebug((*it).latin1());
- stream << (*it) << '\n';
- }
- }
- file.close();
- return true;
-}
-
-// interfaces.cpp
-
diff --git a/noncore/net/networksetup/interfaces.h b/noncore/net/networksetup/interfaces.h
deleted file mode 100644
index e09ea71..0000000
--- a/noncore/net/networksetup/interfaces.h
+++ b/dev/null
@@ -1,76 +0,0 @@
-#ifndef INTERFACES_H
-#define INTERFACES_H
-
-#include <qstring.h>
-#include <qstringlist.h>
-
-#define INTERFACES_LOOPBACK "loopback"
-
-#define INTERFACES_FAMILY_INET "inet"
-#define INTERFACES_FAMILY_IPX "ipx"
-#define INTERFACES_FAMILY_INET6 "inet6"
-
-#define INTERFACES_METHOD_DHCP "dhcp"
-#define INTERFACES_METHOD_STATIC "static"
-#define INTERFACES_METHOD_PPP "ppp"
-
-/**
- * This class provides a clean frontend for parsing the network interfaces file.
- * It provides helper functions to minipulate the options within the file.
- * See the interfaces man page for the syntax rules.
- */
-class Interfaces {
-
-public:
- Interfaces(QString useInterfacesFile = "/etc/network/interfaces");
- QStringList getInterfaceList();
-
- bool isAuto(QString interface);
- bool setAuto(QString interface, bool setAuto);
-
- bool removeInterface();
- bool addInterface(QString interface, QString family, QString method);
- bool copyInterface(QString oldInterface, QString newInterface);
- bool setInterface(QString interface);
- bool isInterfaceSet();
- QString getInterfaceName(bool &error);
- bool setInterfaceName(QString newName);
- QString getInterfaceFamily(bool &error);
- bool setInterfaceFamily(QString newName);
- QString getInterfaceMethod(bool &error);
- bool setInterfaceMethod(QString newName);
- QString getInterfaceOption(QString option, bool &error);
- bool setInterfaceOption(QString option, QString value);
- bool removeInterfaceOption(QString option, QString value);
- bool removeAllInterfaceOptions();
-
- bool setMapping(QString interface);
- bool removeMapping();
- void addMapping(QString options);
- bool setMap(QString map, QString value);
- bool removeMap(QString map, QString value);
- QString getMap(QString map, bool &error);
- bool setScript(QString);
- QString getScript(bool &error);
-
- bool write();
-
-private:
- bool setStanza(QString stanza, QString option,QStringList::Iterator &iterator);
- bool setOption(QStringList::Iterator start, QString option, QString value);
- bool removeOption(QStringList::Iterator start, QString option, QString value);
- QString getOption(QStringList::Iterator start, QString option, bool &error);
- bool removeAllOptions(QStringList::Iterator start);
-
- QString interfacesFile;
- QStringList interfaces;
- QStringList::Iterator currentIface;
- QStringList::Iterator currentMapping;
-
- QStringList acceptedFamily;
-};
-
-#endif
-
-// interfaces
-
diff --git a/noncore/net/networksetup/interfacesetup.ui b/noncore/net/networksetup/interfacesetup.ui
deleted file mode 100644
index 0c834fe..0000000
--- a/noncore/net/networksetup/interfacesetup.ui
+++ b/dev/null
@@ -1,284 +0,0 @@
-<!DOCTYPE UI><UI>
-<class>InterfaceSetup</class>
-<widget>
- <class>QDialog</class>
- <property stdset="1">
- <name>name</name>
- <cstring>InterfaceSetup</cstring>
- </property>
- <property stdset="1">
- <name>geometry</name>
- <rect>
- <x>0</x>
- <y>0</y>
- <width>290</width>
- <height>280</height>
- </rect>
- </property>
- <property stdset="1">
- <name>caption</name>
- <string>Interface Configuration</string>
- </property>
- <vbox>
- <property stdset="1">
- <name>margin</name>
- <number>11</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget>
- <class>QCheckBox</class>
- <property stdset="1">
- <name>name</name>
- <cstring>autoStart</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Automatically bring up</string>
- </property>
- </widget>
- <widget>
- <class>QLayoutWidget</class>
- <property stdset="1">
- <name>name</name>
- <cstring>Layout9</cstring>
- </property>
- <hbox>
- <property stdset="1">
- <name>margin</name>
- <number>0</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget>
- <class>QCheckBox</class>
- <property stdset="1">
- <name>name</name>
- <cstring>dhcpCheckBox</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>DHCP</string>
- </property>
- <property stdset="1">
- <name>checked</name>
- <bool>true</bool>
- </property>
- </widget>
- <widget>
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>leaseHoursLabel</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Requested Lease</string>
- </property>
- </widget>
- <widget>
- <class>QSpinBox</class>
- <property stdset="1">
- <name>name</name>
- <cstring>leaseTime</cstring>
- </property>
- <property stdset="1">
- <name>suffix</name>
- <string> hours</string>
- </property>
- <property stdset="1">
- <name>maxValue</name>
- <number>87600</number>
- </property>
- <property stdset="1">
- <name>minValue</name>
- <number>1</number>
- </property>
- <property stdset="1">
- <name>value</name>
- <number>168</number>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget>
- <class>QGroupBox</class>
- <property stdset="1">
- <name>name</name>
- <cstring>staticGroupBox</cstring>
- </property>
- <property stdset="1">
- <name>enabled</name>
- <bool>false</bool>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Box</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>title</name>
- <string>Static Ip Configuration</string>
- </property>
- <grid>
- <property stdset="1">
- <name>margin</name>
- <number>11</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget row="1" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel5</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Subnet Mask</string>
- </property>
- </widget>
- <widget row="2" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>gatewayEdit</cstring>
- </property>
- </widget>
- <widget row="1" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>subnetMaskEdit</cstring>
- </property>
- </widget>
- <widget row="0" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>ipAddressEdit</cstring>
- </property>
- </widget>
- <widget row="3" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel2</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>First DNS</string>
- </property>
- </widget>
- <widget row="0" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel4</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>IP Address</string>
- </property>
- </widget>
- <widget row="2" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel1_2</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Gateway</string>
- </property>
- </widget>
- <widget row="4" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel3</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Second DNS</string>
- </property>
- </widget>
- <widget row="3" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>firstDNSLineEdit</cstring>
- </property>
- </widget>
- <widget row="4" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>secondDNSLineEdit</cstring>
- </property>
- </widget>
- </grid>
- </widget>
- <spacer>
- <property>
- <name>name</name>
- <cstring>Spacer9</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Vertical</enum>
- </property>
- <property stdset="1">
- <name>sizeType</name>
- <enum>Expanding</enum>
- </property>
- <property>
- <name>sizeHint</name>
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </vbox>
-</widget>
-<connections>
- <connection>
- <sender>dhcpCheckBox</sender>
- <signal>toggled(bool)</signal>
- <receiver>leaseHoursLabel</receiver>
- <slot>setEnabled(bool)</slot>
- </connection>
- <connection>
- <sender>dhcpCheckBox</sender>
- <signal>toggled(bool)</signal>
- <receiver>leaseTime</receiver>
- <slot>setEnabled(bool)</slot>
- </connection>
- <connection>
- <sender>dhcpCheckBox</sender>
- <signal>toggled(bool)</signal>
- <receiver>staticGroupBox</receiver>
- <slot>setDisabled(bool)</slot>
- </connection>
-</connections>
-<tabstops>
- <tabstop>autoStart</tabstop>
- <tabstop>dhcpCheckBox</tabstop>
- <tabstop>leaseTime</tabstop>
- <tabstop>ipAddressEdit</tabstop>
- <tabstop>subnetMaskEdit</tabstop>
- <tabstop>gatewayEdit</tabstop>
- <tabstop>firstDNSLineEdit</tabstop>
- <tabstop>secondDNSLineEdit</tabstop>
-</tabstops>
-</UI>
diff --git a/noncore/net/networksetup/interfacesetupimp.cpp b/noncore/net/networksetup/interfacesetupimp.cpp
deleted file mode 100644
index a8731a9..0000000
--- a/noncore/net/networksetup/interfacesetupimp.cpp
+++ b/dev/null
@@ -1,147 +0,0 @@
-#include "interfacesetupimp.h"
-#include "interface.h"
-#include "interfaces.h"
-
-#include <qcombobox.h>
-#include <qcheckbox.h>
-#include <qlineedit.h>
-#include <qspinbox.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-
-#include <qmessagebox.h>
-
-#include <assert.h>
-
-#define DNSSCRIPT "interfacednsscript"
-
-/**
- * Constuctor. Set up the connection and load the first profile.
- */
-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();
- bool error = false;
- if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
- staticGroupBox->hide();
- dhcpCheckBox->hide();
- leaseTime->hide();
- leaseHoursLabel->hide();
- }
-}
-
-/**
- * Save the current settings, then write out the interfaces file and close.
- */
-void InterfaceSetupImp::accept(){
- if(!saveSettings())
- return;
- interfaces->write();
- QDialog::accept();
-}
-
-/**
- * Save the settings for the current Interface.
- * @return bool true if successfull, false otherwise
- */
-bool InterfaceSetupImp::saveSettings(){
- // eh can't really do anything about it other then return. :-D
- if(!interfaces->isInterfaceSet())
- return true;
-
- bool error = false;
- // Loopback case
- if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
- interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
- return true;
- }
-
- if(!dhcpCheckBox->isChecked() && (ipAddressEdit->text().isEmpty() || subnetMaskEdit->text().isEmpty() || firstDNSLineEdit->text().isEmpty())){
- QMessageBox::information(this, "Empy Fields.", "Please fill in address, subnet,\n gateway and the first dns entries.", "Ok");
- return false;
- }
- interfaces->removeAllInterfaceOptions();
-
- // DHCP
- if(dhcpCheckBox->isChecked()){
- interfaces->setInterfaceMethod(INTERFACES_METHOD_DHCP);
- interfaces->setInterfaceOption("leasehours", QString("%1").arg(leaseTime->value()));
- interfaces->setInterfaceOption("leasetime", QString("%1").arg(leaseTime->value()*60*60));
- }
- else{
- interfaces->setInterfaceMethod("static");
- interfaces->setInterfaceOption("address", ipAddressEdit->text());
- interfaces->setInterfaceOption("netmask", subnetMaskEdit->text());
- interfaces->setInterfaceOption("gateway", gatewayEdit->text());
- QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text();
- interfaces->setInterfaceOption("up "DNSSCRIPT" add ", dns);
- interfaces->setInterfaceOption("down "DNSSCRIPT" remove ", dns);
- }
-
- // IP Information
- interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
- return true;
-}
-
-/**
- * The Profile has changed.
- * @profile the new profile.
- */
-void InterfaceSetupImp::setProfile(const QString &profile){
- QString newInterfaceName = interface->getInterfaceName();
- if(profile.length() > 0)
- newInterfaceName += "_" + profile;
- // See if we have to make a interface.
- if(!interfaces->setInterface(newInterfaceName)){
- // Add making for this new interface if need too
- if(profile != ""){
- interfaces->copyInterface(interface->getInterfaceName(), newInterfaceName);
- if(!interfaces->setMapping(interface->getInterfaceName())){
- interfaces->addMapping(interface->getInterfaceName());
- if(!interfaces->setMapping(interface->getInterfaceName())){
- qDebug("InterfaceSetupImp: Added Mapping, but still can't set.");
- return;
- }
- }
- interfaces->setMap("map", newInterfaceName);
- interfaces->setScript("getprofile.sh");
- }
- else{
- interfaces->addInterface(newInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP);
- if(!interfaces->setInterface(newInterfaceName)){
- qDebug("InterfaceSetupImp: Added interface, but still can't set.");
- return;
- }
- }
- }
-
- // We must have a valid interface to get this far so read some settings.
-
- // DHCP
- bool error = false;
- if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP)
- dhcpCheckBox->setChecked(true);
- else
- dhcpCheckBox->setChecked(false);
- leaseTime->setValue(interfaces->getInterfaceOption("leasehours", error).toInt());
- if(error)
- leaseTime->setValue(interfaces->getInterfaceOption("leasetime", error).toInt()/60/60);
- if(error)
- leaseTime->setValue(24);
-
- // IP Information
- autoStart->setChecked(interfaces->isAuto(interface->getInterfaceName()));
- QString dns = interfaces->getInterfaceOption("up interfacednsscript add", error);
- if(dns.contains(" ")){
- firstDNSLineEdit->setText(dns.mid(0, dns.find(" ")));
- secondDNSLineEdit->setText(dns.mid(dns.find(" ")+1, dns.length()));
- }
- ipAddressEdit->setText(interfaces->getInterfaceOption("address", error));
- subnetMaskEdit->setText(interfaces->getInterfaceOption("netmask", error));
- gatewayEdit->setText(interfaces->getInterfaceOption("gateway", error));
-}
-
-
-// interfacesetup.cpp
-
diff --git a/noncore/net/networksetup/interfacesetupimp.h b/noncore/net/networksetup/interfacesetupimp.h
deleted file mode 100644
index a0bec32..0000000
--- a/noncore/net/networksetup/interfacesetupimp.h
+++ b/dev/null
@@ -1,31 +0,0 @@
-#ifndef INTERFACESETUPIMP_H
-#define INTERFACESETUPIMP_H
-
-#include "interfacesetup.h"
-
-class Interface;
-class Interfaces;
-
-class InterfaceSetupImp : public InterfaceSetup {
- Q_OBJECT
-
-public:
- InterfaceSetupImp( QWidget* parent = 0, const char* name = 0, Interface *i=0, bool modal = FALSE, WFlags fl = 0);
-
-protected slots:
- void accept();
-
-public slots:
- void setProfile(const QString &profile);
-
-private:
- bool saveSettings();
- Interfaces *interfaces;
- Interface *interface;
-
-};
-
-#endif
-
-// interfacesetupimp.h
-
diff --git a/noncore/net/networksetup/mainwindowimp.cpp b/noncore/net/networksetup/mainwindowimp.cpp
index f9ca83b..b9fff56 100644
--- a/noncore/net/networksetup/mainwindowimp.cpp
+++ b/noncore/net/networksetup/mainwindowimp.cpp
@@ -1,558 +1,544 @@
#include "mainwindowimp.h"
#include "addconnectionimp.h"
#include "interfaceinformationimp.h"
#include "interfacesetupimp.h"
#include "interfaces.h"
#include "module.h"
#include "kprocess.h"
#include <qpushbutton.h>
-#include <qtabwidget.h>
#include <qlistbox.h>
#include <qlineedit.h>
#include <qlistview.h>
#include <qheader.h>
#include <qlabel.h>
#include <qmainwindow.h>
#include <qmessagebox.h>
#include <qpe/config.h>
#include <qpe/qlibrary.h>
#include <qpe/resource.h>
#include <qpe/qpeapplication.h>
#include <qlist.h>
#include <qdir.h>
#include <qfile.h>
#include <qtextstream.h>
#define TEMP_ALL "/tmp/ifconfig-a"
#define TEMP_UP "/tmp/ifconfig"
#define DEFAULT_SCHEME "/var/lib/pcmcia/scheme"
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(setCurrentProfileButton, SIGNAL(clicked()), this, SLOT(changeProfile()));
connect(newProfile, SIGNAL(textChanged(const QString&)), this, SLOT(newProfileChanged(const QString&)));
// Load connections.
loadModules(QPEApplication::qpeDir() + "/plugins/networksetup");
getInterfaceList();
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));
currentProfileLabel->setText(cfg.readEntry("CurrentProfile", "All"));
advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false);
scheme = cfg.readEntry("SchemeFile", DEFAULT_SCHEME);
QFile file(scheme);
if ( file.open(IO_ReadOnly) ) { // file opened successfully
QTextStream stream( &file ); // use a text stream
while ( !stream.eof() ) { // until end of file...
QString line = stream.readLine(); // line of text excluding '\n'
if(line.contains("SCHEME")){
line = line.mid(7, line.length());
currentProfileLabel->setText(line);
break;
}
}
file.close();
}
}
/**
* Deconstructor. Save profiles. Delete loaded libraries.
*/
MainWindowImp::~MainWindowImp(){
// Save profiles.
Config cfg("NetworkSetup");
cfg.setGroup("General");
cfg.writeEntry("Profiles", profiles.join(" "));
// Delete all interfaces that don't have owners.
QMap<Interface*, QListViewItem*>::Iterator iIt;
for( iIt = items.begin(); iIt != items.end(); ++iIt ){
if(iIt.key()->getModuleOwner() == NULL)
delete iIt.key();
}
// Delete Modules and Libraries
QMap<Module*, QLibrary*>::Iterator it;
for( it = libraries.begin(); it != libraries.end(); ++it ){
delete it.key();
// I wonder why I can't delete the libraries
+ // What fucking shit this is.
//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(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")){
loadPlugin(path + "/" + fi->fileName());
}
++it;
}
}
/**
* Attempt to load a function and resolve a function.
* @param pluginFileName - the name of the file in which to attempt to load
* @param resolveString - function pointer to resolve
* @return pointer to the function with name resolveString or NULL
*/
Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString){
//qDebug(QString("MainWindowImp::loadPlugin: %1").arg(pluginFileName).latin1());
QLibrary *lib = new QLibrary(pluginFileName);
void *functionPointer = lib->resolve(resolveString);
if( !functionPointer ){
qDebug(QString("MainWindowImp: File: %1 is not a plugin, but though was.").arg(pluginFileName).latin1());
delete lib;
return NULL;
}
// Try to get an object.
Module *object = ((Module* (*)()) functionPointer)();
if(object == NULL){
qDebug("MainWindowImp: Couldn't create object, but did load library!");
delete lib;
return NULL;
}
// Store for deletion later
libraries.insert(object, lib);
return object;
}
/**
* The Add button was clicked. Bring up the add dialog and if OK is hit
* load the plugin and append it to the list
*/
void MainWindowImp::addClicked(){
QMap<Module*, QLibrary*>::Iterator it;
QMap<QString, QString> list;
QMap<QString, Module*> newInterfaceOwners;
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;
}
AddConnectionImp addNewConnection(this, "AddConnectionImp", true);
addNewConnection.addConnections(list);
addNewConnection.showMaximized();
if(QDialog::Accepted == addNewConnection.exec()){
QListViewItem *item = addNewConnection.registeredServicesList->currentItem();
if(!item)
return;
for( it = libraries.begin(); it != libraries.end(); ++it ){
if(it.key()){
Interface *i = (it.key())->addNewInterface(item->text(0));
if(i){
interfaceNames.insert(i->getInterfaceName(), i);
updateInterface(i);
}
}
}
}
}
/**
* Prompt the user to see if they really want to do this.
* If they do then remove from the list and unload.
*/
void MainWindowImp::removeClicked(){
QListViewItem *item = connectionList->currentItem();
if(!item) {
QMessageBox::information(this, "Sorry","Please select an interface First.", "Ok");
return;
}
Interface *i = interfaceItems[item];
if(i->getModuleOwner() == NULL){
QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", "Ok");
}
else{
if(!i->getModuleOwner()->remove(i))
QMessageBox::information(this, "Error", "Unable to remove.", "Ok");
else{
QMessageBox::information(this, "Success", "Interface was removed.", "Ok");
// TODO memory managment....
// who deletes the interface?
}
}
}
/**
* 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.
+ * If the interface has a module owner then request its configure.
*/
void MainWindowImp::configureClicked(){
QListViewItem *item = connectionList->currentItem();
if(!item){
QMessageBox::information(this, "Sorry","Please select an interface first.", QMessageBox::Ok);
return;
}
QString currentProfile = currentProfileLabel->text();
if(profilesList->count() <= 1 || currentProfile == "All"){
currentProfile = "";
}
Interface *i = interfaceItems[item];
if(i->getModuleOwner()){
i->getModuleOwner()->setProfile(currentProfile);
- QTabWidget *tabWidget = NULL;
- QWidget *moduleConfigure = i->getModuleOwner()->configure(i, &tabWidget);
+ QWidget *moduleConfigure = i->getModuleOwner()->configure(i);
if(moduleConfigure != NULL){
- if(tabWidget != NULL){
- InterfaceSetupImp *configure = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, false, Qt::WDestructiveClose);
- configure->setProfile(currentProfile);
- tabWidget->insertTab(configure, "TCP/IP");
- }
moduleConfigure->showMaximized();
moduleConfigure->show();
return;
}
}
- InterfaceSetupImp *configure = new InterfaceSetupImp(0, "InterfaceSetupImp", i, false, Qt::WDestructiveClose);
- configure->setProfile(currentProfile);
+ InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(0, "InterfaceSetupImp", i, true, Qt::WDestructiveClose);
+ //configure->setProfile(currentProfile);
configure->showMaximized();
configure->show();
}
/**
* 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.
+ * If the interface has a module owner then request its configure.
*/
void MainWindowImp::informationClicked(){
QListViewItem *item = connectionList->currentItem();
if(!item){
QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok);
return;
}
Interface *i = interfaceItems[item];
if(!i->isAttached()){
QMessageBox::information(this, "Sorry","No information about\na disconnected interface.", QMessageBox::Ok);
return;
}
QStringList list;
for(uint i = 0; i < profilesList->count(); i++){
list.append(profilesList->text(i));
}
if(i->getModuleOwner()){
- QTabWidget *tabWidget = NULL;
- QWidget *moduleInformation = i->getModuleOwner()->information(i, &tabWidget);
+ QWidget *moduleInformation = i->getModuleOwner()->information(i);
if(moduleInformation != NULL){
- if(tabWidget != NULL){
- InterfaceInformationImp *information = new InterfaceInformationImp(tabWidget, "InterfaceSetupImp", i, true);
- tabWidget->insertTab(information, "TCP/IP");
- }
moduleInformation->showMaximized();
moduleInformation->show();
return;
}
}
-
InterfaceInformationImp *information = new InterfaceInformationImp(0, "InterfaceSetupImp", i, true);
information->showMaximized();
information->show();
}
/**
* Aquire the list of active interfaces from ifconfig
* Call ifconfig and ifconfig -a
*/
void MainWindowImp::getInterfaceList(){
KShellProcess *processAll = new KShellProcess();
*processAll << "/sbin/ifconfig" << "-a" << " > " TEMP_ALL;
connect(processAll, SIGNAL(processExited(KProcess *)),
this, SLOT(jobDone(KProcess *)));
threads.insert(processAll, TEMP_ALL);
KShellProcess *process = new KShellProcess();
*process << "/sbin/ifconfig" << " > " TEMP_UP;
connect(process, SIGNAL(processExited(KProcess *)),
this, SLOT(jobDone(KProcess *)));
threads.insert(process, TEMP_UP);
processAll->start(KShellProcess::NotifyOnExit);
process->start(KShellProcess::NotifyOnExit);
}
void MainWindowImp::jobDone(KProcess *process){
QString fileName = threads[process];
threads.remove(process);
delete process;
QFile file(fileName);
if (!file.open(IO_ReadOnly)){
qDebug(QString("MainWindowImp: Can't open file: %1").arg(fileName).latin1());
return;
}
QTextStream stream( &file );
QString line;
while ( !stream.eof() ) {
line = stream.readLine();
int space = line.find(" ");
if(space > 1){
// We have found an interface
QString interfaceName = line.mid(0, space);
Interface *i;
// We have found an interface
//qDebug(QString("MainWindowImp: Found Interface: %1").arg(line).latin1());
// See if we already have it
if(interfaceNames.find(interfaceName) == interfaceNames.end()){
if(fileName == TEMP_ALL)
i = new Interface(this, interfaceName, false);
else
i = new Interface(this, interfaceName, true);
i->setAttached(true);
QString hardName = "Ethernet";
int hardwareName = line.find("Link encap:");
int macAddress = line.find("HWaddr");
if(macAddress == -1)
macAddress = line.length();
if(hardwareName != -1)
i->setHardwareName(line.mid(hardwareName+11, macAddress-(hardwareName+11)) );
interfaceNames.insert(i->getInterfaceName(), i);
updateInterface(i);
connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *)));
}
// It was an interface we already had.
else{
if(fileName != TEMP_ALL)
(interfaceNames[interfaceName])->setStatus(true);
}
}
}
file.close();
QFile::remove(fileName);
if(threads.count() == 0){
Interfaces i;
QStringList list = i.getInterfaceList();
QMap<QString, Interface*>::Iterator it;
for ( QStringList::Iterator ni = list.begin(); ni != list.end(); ++ni ) {
bool found = false;
for( it = interfaceNames.begin(); it != interfaceNames.end(); ++it ){
if(it.key() == (*ni))
found = true;
}
if(!found){
if(!(*ni).contains("_")){
Interface *i = new Interface(this, *ni, false);
i->setAttached(false);
i->setHardwareName("Disconnected");
interfaceNames.insert(i->getInterfaceName(), i);
updateInterface(i);
connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *)));
}
}
}
}
}
/**
* Update this interface. If no QListViewItem exists create one.
* @param Interface* pointer to the interface that needs to be updated.
*/
void MainWindowImp::updateInterface(Interface *i){
if(!advancedUserMode){
if(i->getInterfaceName() == "lo")
return;
}
QListViewItem *item = NULL;
// Find the interface, making it if needed.
if(items.find(i) == items.end()){
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 ){
if(it.key()->isOwner(i))
i->setModuleOwner(it.key());
}
items.insert(i, item);
interfaceItems.insert(item, i);
}
else
item = items[i];
// Update the icons and information
item->setPixmap(0, (Resource::loadPixmap(i->getStatus() ? "up": "down")));
QString typeName = "lan";
if(i->getHardwareName().contains("Local Loopback"))
typeName = "lo";
if(i->getInterfaceName().contains("irda"))
typeName = "irda";
if(i->getInterfaceName().contains("wlan"))
typeName = "wlan";
if(i->getInterfaceName().contains("usb"))
typeName = "usb";
if(!i->isAttached())
typeName = "connect_no";
// Actually try to use the Module
if(i->getModuleOwner() != NULL)
typeName = i->getModuleOwner()->getPixmapName(i);
item->setPixmap(1, (Resource::loadPixmap(typeName)));
item->setText(2, i->getHardwareName());
item->setText(3, QString("(%1)").arg(i->getInterfaceName()));
item->setText(4, (i->getStatus()) ? i->getIp() : QString(""));
}
void MainWindowImp::newProfileChanged(const QString& newText){
if(newText.length() > 0)
newProfileButton->setEnabled(true);
else
newProfileButton->setEnabled(false);
}
/**
* Adds a new profile to the list of profiles.
* Don't add profiles that already exists.
* Appends to the list and QStringList
*/
void MainWindowImp::addProfile(){
QString newProfileName = newProfile->text();
if(profiles.grep(newProfileName).count() > 0){
QMessageBox::information(this, "Can't Add","Profile already exists.", "Ok");
return;
}
profiles.append(newProfileName);
profilesList->insertItem(newProfileName);
}
/**
* Removes the currently selected profile in the combo.
* Doesn't delete if there are less then 2 profiles.
*/
void MainWindowImp::removeProfile(){
if(profilesList->count() <= 1){
QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", "Ok");
return;
}
QString profileToRemove = profilesList->currentText();
if(profileToRemove == "All"){
QMessageBox::information(this, "Can't remove.","Can't remove default.", "Ok");
return;
}
// Can't remove the curent profile
if(profileToRemove == currentProfileLabel->text()){
QMessageBox::information(this, "Can't remove.",QString("%1 is the current profile.").arg(profileToRemove), "Ok");
return;
}
if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok){
profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), ""));
profilesList->clear();
for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
profilesList->insertItem((*it));
// Remove any interface settings and mappings.
Interfaces interfaces;
// Go through them one by one
QMap<Interface*, QListViewItem*>::Iterator it;
for( it = items.begin(); it != items.end(); ++it ){
QString interfaceName = it.key()->getInterfaceName();
qDebug(interfaceName.latin1());
if(interfaces.setInterface(interfaceName + "_" + profileToRemove)){
interfaces.removeInterface();
if(interfaces.setMapping(interfaceName)){
if(profilesList->count() == 1)
interfaces.removeMapping();
else{
interfaces.removeMap("map", interfaceName + "_" + profileToRemove);
}
}
interfaces.write();
break;
}
}
}
}
/**
* A new profile has been selected, change.
* @param newProfile the new profile.
*/
void MainWindowImp::changeProfile(){
if(profilesList->currentItem() == -1){
QMessageBox::information(this, "Can't Change.","Please select a profile.", "Ok");
return;
}
QString newProfile = profilesList->text(profilesList->currentItem());
if(newProfile != currentProfileLabel->text()){
currentProfileLabel->setText(newProfile);
QFile::remove(scheme);
QFile file(scheme);
if ( file.open(IO_ReadWrite) ) {
QTextStream stream( &file );
stream << QString("SCHEME=%1").arg(newProfile);
file.close();
}
// 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();
}
}
}
}
// mainwindowimp.cpp
diff --git a/noncore/net/networksetup/module.h b/noncore/net/networksetup/module.h
index 96db5b3..92b125a 100644
--- a/noncore/net/networksetup/module.h
+++ b/noncore/net/networksetup/module.h
@@ -1,88 +1,86 @@
#ifndef NETCONF_MODULE_H
#define NETCONF_MODULE_H
#include <qobject.h>
#include <qlist.h>
#include <qmap.h>
#include "interface.h"
class QWidget;
class QTabWidget;
class Module : QObject{
signals:
void updateInterface(Interface *i);
public:
Module(){};
/**
* The current profile has been changed and the module should do any
* neccesary changes also.
* @param newProfile what the profile should be changed to.
*/
virtual void setProfile(QString newProfile) = 0;
/**
* 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 *) = 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; };
/**
- * Create, set tabWiget and return the WLANConfigure Module
+ * Create and return the WLANConfigure Module
* @param Interface *i the interface to configure.
- * @param tabWidget a pointer to the tab widget that this configure has.
- * @return QWidget* pointer to the tab widget in this modules configure.
+ * @return QWidget* pointer to this modules configure.
*/
- virtual QWidget *configure(Interface *, QTabWidget **){ return NULL; } ;
+ virtual QWidget *configure(Interface *){ return NULL; } ;
/**
- * Create, set tabWiget and return the Information Module
+ * Create, and return the Information Module
* @param Interface *i the interface to get info on.
- * @param tabWidget a pointer to the tab widget that this information has.
- * @return QWidget* pointer to the tab widget in this modules info.
+ * @return QWidget* pointer to this modules info.
*/
- virtual QWidget *information(Interface *, QTabWidget **){ return NULL; };
+ virtual QWidget *information(Interface *){ 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;
/**
* 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;
};
#endif
// module.h
diff --git a/noncore/net/networksetup/networksetup.pro b/noncore/net/networksetup/networksetup.pro
index f09db93..9f28fbd 100644
--- a/noncore/net/networksetup/networksetup.pro
+++ b/noncore/net/networksetup/networksetup.pro
@@ -1,11 +1,11 @@
-DESTDIR = $(OPIEDIR)/bin
+#DESTDIR = $(OPIEDIR)/bin
TEMPLATE = app
#CONFIG = qt warn_on debug
CONFIG = qt warn_on release
-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 += $(OPIEDIR)/include
-DEPENDPATH += $(OPIEDIR)/include
-LIBS += -lqpe
-INTERFACES = mainwindow.ui addconnection.ui interfaceinformation.ui interfaceadvanced.ui interfacesetup.ui
+HEADERS = mainwindowimp.h addconnectionimp.h defaultmodule.h kprocctrl.h module.h kprocess.h
+SOURCES = main.cpp mainwindowimp.cpp addconnectionimp.cpp kprocctrl.cpp kprocess.cpp
+INCLUDEPATH += $(OPIEDIR)/include interfaces/
+DEPENDPATH += $(OPIEDIR)/include interfaces/ wlan
+LIBS += -lqpe -Linterfaces -linterfaces
+INTERFACES = mainwindow.ui addconnection.ui
TARGET = networksetup
diff --git a/noncore/net/networksetup/wlan/wextensions.cpp b/noncore/net/networksetup/wlan/wextensions.cpp
index e545bd1..eb6fc42 100644
--- a/noncore/net/networksetup/wlan/wextensions.cpp
+++ b/noncore/net/networksetup/wlan/wextensions.cpp
@@ -1,175 +1,175 @@
#include "wextensions.h"
#include <qfile.h>
#include <qtextstream.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <math.h>
#define PROCNETWIRELESS "/proc/net/wireless"
#define IW_LOWER 0
#define IW_UPPER 256
/**
* Constructor. Sets hasWirelessExtensions
*/
-WExtensions::WExtensions(QString interfaceName){
+WExtensions::WExtensions(QString interfaceName): hasWirelessExtensions(false){
interface = interfaceName;
fd = socket( AF_INET, SOCK_DGRAM, 0 );
+ if(fd == -1)
+ return;
const char* buffer[200];
memset( &iwr, 0, sizeof( iwr ) );
iwr.u.essid.pointer = (caddr_t) buffer;
iwr.u.essid.length = IW_ESSID_MAX_SIZE;
iwr.u.essid.flags = 0;
// check if it is an IEEE 802.11 standard conform
// wireless device by sending SIOCGIWESSID
// which also gives back the Extended Service Set ID
// (see IEEE 802.11 for more information)
const char* iname = interface.latin1();
strcpy( iwr.ifr_ifrn.ifrn_name, (const char *)iname );
if ( 0 == ioctl( fd, SIOCGIWESSID, &iwr ) )
hasWirelessExtensions = true;
- else
- hasWirelessExtensions = false;
}
/**
* @return QString the station name of the access point.
*/
QString WExtensions::station(){
if(!hasWirelessExtensions)
return QString();
const char* buffer[200];
iwr.u.data.pointer = (caddr_t) buffer;
iwr.u.data.length = IW_ESSID_MAX_SIZE;
iwr.u.data.flags = 0;
if ( 0 == ioctl( fd, SIOCGIWNICKN, &iwr )){
iwr.u.data.pointer[(unsigned int) iwr.u.data.length-1] = '\0';
return QString(iwr.u.data.pointer);
}
return QString();
}
/**
* @return QString the essid of the host 802.11 access point.
*/
QString WExtensions::essid(){
if(!hasWirelessExtensions)
return QString();
if ( 0 == ioctl( fd, SIOCGIWESSID, &iwr )){
iwr.u.essid.pointer[(unsigned int) iwr.u.essid.length-1] = '\0';
return QString(iwr.u.essid.pointer);
}
return QString();
}
/**
* @return QString the mode of interface
*/
QString WExtensions::mode(){
if(!hasWirelessExtensions)
return QString();
if ( 0 == ioctl( fd, SIOCGIWMODE, &iwr ) )
return QString("%1").arg(iwr.u.mode == IW_MODE_ADHOC ? "Ad-Hoc" : "Managed");
return QString();
}
/**
* Get the frequency that the interface is running at.
* @return int the frequency that the interfacae is running at.
*/
double WExtensions::frequency(){
if(!hasWirelessExtensions)
return 0;
if ( 0 == ioctl( fd, SIOCGIWFREQ, &iwr ))
return (double( iwr.u.freq.m ) * pow( 10, iwr.u.freq.e ) / 1000000000);
return 0;
}
/***
* Get the current rate that the card is transmiting at.
*/
double WExtensions::rate(){
if(!hasWirelessExtensions)
return 0;
if(0 == ioctl(fd, SIOCGIWRATE, &iwr)){
return ((double)iwr.u.bitrate.value)/1000000;
}
return 0;
}
/**
* @return QString the AccessPoint that the interface is connected to.
*/
QString WExtensions::ap(){
if(!hasWirelessExtensions)
return QString();
if ( 0 == ioctl( fd, SIOCGIWAP, &iwr )){
QString ap;
ap = ap.sprintf( "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X",
iwr.u.ap_addr.sa_data[0]&0xff,
iwr.u.ap_addr.sa_data[1]&0xff,
iwr.u.ap_addr.sa_data[2]&0xff,
iwr.u.ap_addr.sa_data[3]&0xff,
iwr.u.ap_addr.sa_data[4]&0xff,
iwr.u.ap_addr.sa_data[5]&0xff );
return ap;
}
else return QString();
}
/**
* Get the stats for interfaces
* @param signal the signal strength of interface
* @param noise the noise level of the interface
* @param quality the quality level of the interface
* @return bool true if successfull
*/
bool WExtensions::stats(int &signal, int &noise, int &quality){
// gather link quality from /proc/net/wireless
if(!QFile::exists(PROCNETWIRELESS))
return false;
char c;
QString status;
QString name;
QFile wfile( PROCNETWIRELESS );
if(!wfile.open( IO_ReadOnly ))
return false;
QTextStream wstream( &wfile );
wstream.readLine(); // skip the first two lines
wstream.readLine(); // because they only contain headers
while(!wstream.atEnd()){
wstream >> name >> status >> quality >> c >> signal >> c >> noise;
if(name == QString("%1:").arg(interface)){
if ( quality > 92 )
qDebug( "WIFIAPPLET: D'oh! Quality %d > estimated max!\n", quality );
if ( ( signal > IW_UPPER ) || ( signal < IW_LOWER ) )
qDebug( "WIFIAPPLET: Doh! Strength %d > estimated max!\n", signal );
if ( ( noise > IW_UPPER ) || ( noise < IW_LOWER ) )
qDebug( "WIFIAPPLET: Doh! Noise %d > estimated max!\n", noise );
//qDebug(QString("q:%1, s:%2, n:%3").arg(quality).arg(signal).arg(noise).latin1());
signal = ( ( signal-IW_LOWER ) * 100 ) / IW_UPPER;
noise = ( ( noise-IW_LOWER ) * 100 ) / IW_UPPER;
quality = ( quality*100 ) / 92;
return true;
}
}
qDebug("WExtensions::statsCard no longer present.");
quality = -1;
signal = IW_LOWER;
noise = IW_LOWER;
return false;
}
// wextensions.cpp
diff --git a/noncore/net/networksetup/wlan/wlan.pro b/noncore/net/networksetup/wlan/wlan.pro
index f28feb2..23fc39a 100644
--- a/noncore/net/networksetup/wlan/wlan.pro
+++ b/noncore/net/networksetup/wlan/wlan.pro
@@ -1,12 +1,12 @@
TEMPLATE = lib
CONFIG += qt warn_on release
#CONFIG += qt warn_on debug
DESTDIR = $(OPIEDIR)/plugins/networksetup
HEADERS = wlanimp.h infoimp.h wlanmodule.h wextensions.h
SOURCES = wlanimp.cpp infoimp.cpp wlanmodule.cpp wextensions.cpp
-INCLUDEPATH += $(OPIEDIR)/include ../
+INCLUDEPATH += $(OPIEDIR)/include ../ ../interfaces/
DEPENDPATH += $(OPIEDIR)/include
-LIBS += -lqpe
+LIBS += -lqpe -L../interfaces/ -linterfaces
INTERFACES = wlan.ui info.ui
TARGET = wlanplugin
VERSION = 1.0.0
diff --git a/noncore/net/networksetup/wlan/wlanimp.cpp b/noncore/net/networksetup/wlan/wlanimp.cpp
index 45952b9..7c902e0 100644
--- a/noncore/net/networksetup/wlan/wlanimp.cpp
+++ b/noncore/net/networksetup/wlan/wlanimp.cpp
@@ -1,234 +1,244 @@
#include "wlanimp.h"
/* Config class */
#include <qpe/config.h>
/* Global namespace */
#include <qpe/global.h>
/* system() */
#include <stdlib.h>
#include <qfile.h>
#include <qdir.h>
#include <qtextstream.h>
#include <qmessagebox.h>
#include <qlineedit.h>
#include <qspinbox.h>
#include <qradiobutton.h>
#include <qcheckbox.h>
#include <qregexp.h>
+#include <qpe/config.h>
+#include <qtabwidget.h>
+#include "interfacesetupimp.h"
-WLANImp::WLANImp( QWidget* parent, const char* name, bool modal, WFlags fl):WLAN(parent, name, modal, fl){
+WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl):WLAN(parent, name, modal, fl){
config = new Config("wireless");
+ interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i);//, Qt::WDestructiveClose);
+ //configure->setProfile(currentProfile);
+ tabWidget->insertTab(interfaceSetup, "TCP/IP");
+
readConfig();
+
}
WLANImp::~WLANImp( ){
delete config;
}
void WLANImp::readConfig()
{
qWarning( "WLANImp::readConfig() called." );
config->setGroup( "Properties" );
QString ssid = config->readEntry( "SSID", "any" );
if( ssid == "any" || ssid == "ANY" ){
essNon->setChecked( true );
} else {
essSpecific->setChecked( true );
essSpecificLineEdit->setText( ssid );
}
QString mode = config->readEntry( "Mode", "Managed" );
if( mode == "adhoc" ) {
network802->setChecked( true );
} else {
networkInfrastructure->setChecked( true );
}
networkChannel->setValue( config->readNumEntry( "CHANNEL", 1 ) );
// config->readEntry( "RATE", "auto" );
config->readEntry( "dot11PrivacyInvoked" ) == "true" ? wepEnabled->setChecked( true ) : wepEnabled->setChecked( false );
config->readEntry( "AuthType", "opensystem" );
config->readEntry( "PRIV_KEY128", "false" ) == "false" ? key40->setChecked( true ) : key128->setChecked( true );
int defaultkey = config->readNumEntry( "dot11WEPDefaultKeyID", 0 );
switch( defaultkey ){
case 0:
keyRadio0->setChecked( true );
break;
case 1:
keyRadio1->setChecked( true );
break;
case 2:
keyRadio2->setChecked( true );
break;
case 3:
keyRadio3->setChecked( true );
break;
}
keyLineEdit0->setText(config->readEntry( "dot11WEPDefaultKey0" ));
keyLineEdit1->setText(config->readEntry( "dot11WEPDefaultKey1" ));
keyLineEdit2->setText(config->readEntry( "dot11WEPDefaultKey2" ));
keyLineEdit3->setText(config->readEntry( "dot11WEPDefaultKey3" ));
return;
}
bool WLANImp::writeConfig()
{
qWarning( "WLANImp::writeConfig() called." );
config->setGroup( "Properties" );
if( essNon->isChecked() ) {
config->writeEntry( "SSID", "any" );
} else {
config->writeEntry( "SSID", essSpecificLineEdit->text() );
}
if( networkInfrastructure->isChecked() ){
config->writeEntry( "Mode", "Managed" );
} else if( network802->isChecked() ){
config->writeEntry( "Mode", "adhoc" );
}
config->writeEntry( "CHANNEL", networkChannel->value() );
// config->readEntry( "RATE", "auto" );
wepEnabled->isChecked() ? config->writeEntry( "dot11PrivacyInvoked", "true" ) : config->writeEntry( "dot11PrivacyInvoked", "false" );
authOpen->isChecked() ? config->writeEntry( "AuthType", "opensystem" ) : config->writeEntry( "AuthType", "sharedkey" );
key40->isChecked() ? config->writeEntry( "PRIV_KEY128", "false" ) : config->writeEntry( "PRIV_KEY128", "true" );
if( keyRadio0->isChecked() ){
config->writeEntry( "dot11WEPDefaultKeyID", 0 );
} else if( keyRadio1->isChecked() ){
config->writeEntry( "dot11WEPDefaultKeyID", 1 );
} else if( keyRadio2->isChecked() ){
config->writeEntry( "dot11WEPDefaultKeyID", 2 );
} else if( keyRadio3->isChecked() ){
config->writeEntry( "dot11WEPDefaultKeyID", 3 );
}
config->writeEntry( "dot11WEPDefaultKey0", keyLineEdit0->text() );
config->writeEntry( "dot11WEPDefaultKey1", keyLineEdit1->text() );
config->writeEntry( "dot11WEPDefaultKey2", keyLineEdit2->text() );
config->writeEntry( "dot11WEPDefaultKey3", keyLineEdit3->text() );
return true;
return writeWirelessOpts( );
}
/**
*/
void WLANImp::accept()
{
- if ( writeConfig() )
+ if ( writeConfig() ){
+ interfaceSetup->saveChanges();
QDialog::accept();
+ }
}
bool WLANImp::writeWirelessOpts( QString scheme )
{
qWarning( "WLANImp::writeWirelessOpts entered." );
QString prev = "/etc/pcmcia/wireless.opts";
QFile prevFile(prev);
if ( !prevFile.open( IO_ReadOnly ) )
return false;
QString tmp = "/etc/pcmcia/wireless.opts-qpe-new";
QFile tmpFile(tmp);
if ( !tmpFile.open( IO_WriteOnly ) )
return false;
bool retval = true;
QTextStream in( &prevFile );
QTextStream out( &tmpFile );
config->setGroup("Properties");
QString line;
bool found=false;
bool done=false;
while ( !in.atEnd() ) {
QString line = in.readLine();
QString wline = line.simplifyWhiteSpace();
if ( !done ) {
if ( found ) {
// skip existing entry for this scheme, and write our own.
if ( wline == ";;" ) {
found = false;
continue;
} else {
continue;
}
} else {
if ( wline.left(scheme.length()+7) == scheme + ",*,*,*)" ) {
found=true;
continue; // skip this line
} else if ( wline == "esac" || wline == "*,*,*,*)" ) {
// end - add new entry
// Not all fields have a GUI, but all are supported
// in the letwork configuration files.
static const char* txtfields[] = {
0
};
QString readmode = config->readEntry( "Mode", "Managed" );
QString mode;
if( readmode == "Managed" ){
mode = readmode;
} else if( readmode == "adhoc" ){
mode = "Ad-Hoc";
}
QString key;
if( wepEnabled->isChecked() ){
int defaultkey = config->readNumEntry( "dot11WEPDefaultKeyID", 0 );
switch( defaultkey ){
case 0:
key += keyLineEdit0->text();
break;
case 1:
key += keyLineEdit1->text();
break;
case 2:
key += keyLineEdit2->text();
break;
case 3:
key += keyLineEdit3->text();
break;
}
if( config->readEntry( "AuthType", "opensystem" ) == "opensystem")
key += " open";
}
out << scheme << ",*,*,*)" << "\n"
<< " ESSID=" << Global::shellQuote( config->readEntry( "SSID", "any" ) ) << "\n"
<< " MODE=" << mode << "\n"
<< " KEY=" << Global::shellQuote( key ) << "\n"
<< " RATE=" << "auto" << "\n"
;
if( mode != "Managed" )
out << " CHANNEL=" << config->readNumEntry( "CHANNEL", 1 ) << "\n";
const char** f = txtfields;
while (*f) {
out << " " << *f << "=" << config->readEntry(*f,"") << "\n";
++f;
}
out << " ;;\n";
done = true;
}
}
}
out << line << "\n";
}
prevFile.close();
tmpFile.close();
QString initpath;
//system("cardctl suspend");
if( QDir("/etc/rc.d/init.d").exists() ){
initpath = "/etc/rc.d/init.d";
} else if( QDir("/etc/init.d").exists() ){
initpath = "/etc/init.d";
}
if( initpath )
system(QString("%1/pcmcia stop").arg(initpath));
if( system( "mv " + tmp + " " + prev ) )
retval = false;
//#ifdef USE_SCHEMES
// if ( retval )
// SchemeChanger::changeScheme(scheme);
//#endif
//system("cardctl resume");
if( initpath )
system(QString("%1/pcmcia start").arg(initpath));
return retval;
}
diff --git a/noncore/net/networksetup/wlan/wlanimp.h b/noncore/net/networksetup/wlan/wlanimp.h
index 59b7c59..608d681 100644
--- a/noncore/net/networksetup/wlan/wlanimp.h
+++ b/noncore/net/networksetup/wlan/wlanimp.h
@@ -1,27 +1,31 @@
#ifndef WLANIMP_H
#define WLANIMP_H
#include "wlan.h"
-#include <qpe/config.h>
+class InterfaceSetupImp;
+class Interface;
+class Config;
class WLANImp : public WLAN {
Q_OBJECT
public:
- WLANImp( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+ WLANImp( QWidget* parent = 0, const char* name = 0, Interface *i=0, bool modal = FALSE, WFlags fl = 0 );
~WLANImp( );
protected:
void accept();
private:
void readConfig();
bool writeConfig();
bool writeWirelessOpts( QString scheme = "*" );
bool writeWlanngOpts( QString scheme = "*" );
Config* config;
+ InterfaceSetupImp *interfaceSetup;
+
};
#endif
diff --git a/noncore/net/networksetup/wlan/wlanmodule.cpp b/noncore/net/networksetup/wlan/wlanmodule.cpp
index 9ab3b76..c8becb0 100644
--- a/noncore/net/networksetup/wlan/wlanmodule.cpp
+++ b/noncore/net/networksetup/wlan/wlanmodule.cpp
@@ -1,112 +1,112 @@
#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(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, 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.
+ * Create, and return the WLANConfigure Module
+ * @return QWidget* pointer to this modules configure.
*/
-QWidget *WLANModule::configure(Interface *, QTabWidget **tabWidget){
- WLANImp *wlanconfig = new WLANImp(0, "WlanConfig", false, Qt::WDestructiveClose);
- (*tabWidget) = wlanconfig->tabWidget;
+QWidget *WLANModule::configure(Interface *i){
+ WLANImp *wlanconfig = new WLANImp(0, "WlanConfig", i, false, Qt::WDestructiveClose);
return wlanconfig;
}
/**
- * 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.
+ * Create, and return the Information Module
+ * @return QWidget* pointer to this modules info.
*/
-QWidget *WLANModule::information(Interface *i, QTabWidget **tabWidget){
+QWidget *WLANModule::information(Interface *i){
WExtensions we(i->getInterfaceName());
if(!we.doesHaveWirelessExtensions())
return NULL;
WlanInfoImp *info = new WlanInfoImp(0, i->getInterfaceName(), Qt::WDestructiveClose);
- (*tabWidget) = info->tabWidget;
+ InterfaceInformationImp *information = new InterfaceInformationImp(info->tabWidget, "InterfaceSetupImp", i);
+ info->tabWidget->insertTab(information, "TCP/IP");
return info;
}
/**
* 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(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;
}
// wlanmodule.cpp
diff --git a/noncore/net/networksetup/wlan/wlanmodule.h b/noncore/net/networksetup/wlan/wlanmodule.h
index 1418ce8..a81ccff 100644
--- a/noncore/net/networksetup/wlan/wlanmodule.h
+++ b/noncore/net/networksetup/wlan/wlanmodule.h
@@ -1,41 +1,41 @@
#ifndef WLAN_MODULE_H
#define WLAN_MODULE_H
#include "module.h"
class WLANModule : Module{
signals:
void updateInterface(Interface *i);
public:
WLANModule();
~WLANModule();
virtual void setProfile(QString newProfile);
virtual bool isOwner(Interface *);
- virtual QWidget *configure(Interface *i, QTabWidget **tabWidget);
- virtual QWidget *information(Interface *i, QTabWidget **tabWidget);
+ virtual QWidget *configure(Interface *i);
+ virtual QWidget *information(Interface *i);
virtual QList<Interface> getInterfaces();
virtual void possibleNewInterfaces(QMap<QString, QString> &){};
virtual Interface *addNewInterface(QString name);
virtual bool remove(Interface* i);
virtual QString getPixmapName(Interface* i);
private:
QList<Interface> list;
QString profile;
};
extern "C"
{
void* create_plugin() {
return new WLANModule();
}
};
#endif
// wlanmodule.h
diff --git a/noncore/settings/networksettings/TODO b/noncore/settings/networksettings/TODO
index d61c510..c83d909 100644
--- a/noncore/settings/networksettings/TODO
+++ b/noncore/settings/networksettings/TODO
@@ -1,9 +1,11 @@
+Make sure the C code in wextensions is clean.
+
WLAN needs to be re-written to not use Config
WHERE Is DHCP info stored???
PPP module needs to be written
Write a class that parses /proc and not ifconfig
Possible other modules: ipsec, bluetooth, ipchains
diff --git a/noncore/settings/networksettings/interface.cpp b/noncore/settings/networksettings/interface.cpp
deleted file mode 100644
index 929b3a1..0000000
--- a/noncore/settings/networksettings/interface.cpp
+++ b/dev/null
@@ -1,287 +0,0 @@
-#include "interface.h"
-#include <qdatetime.h>
-#include <qfile.h>
-#include <qdir.h>
-#include <qfileinfo.h>
-#include <qtextstream.h>
-
-#define IFCONFIG "/sbin/ifconfig"
-#define DHCP_INFO_DIR "/etc/dhcpc"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-Interface::Interface(QObject * parent, const char * name, bool newSatus): QObject(parent, name), status(newSatus), attached(false), hardwareName("Unknown"), moduleOwner(NULL), macAddress(""), ip("0.0.0.0"), broadcast(""), subnetMask("0.0.0.0"), dhcp(false){
- refresh();
-}
-
-/**
- * Set status
- * @param newStatus - the new status
- * emit updateInterface
- */
-void Interface::setStatus(bool newStatus){
- if(status != newStatus){
- status = newStatus;
- refresh();
- }
-};
-
-/**
- * Set if attached or not (802.11 card pulled out for example)
- * @param isAttached - if attached
- * emit updateInterface
- */
-void Interface::setAttached(bool isAttached){
- attached = isAttached;
- emit(updateInterface(this));
-};
-
-/**
- * Set Hardware name
- * @param name - the new name
- * emit updateInterface
- */
-void Interface::setHardwareName(QString name){
- hardwareName = name;
- emit(updateInterface(this));
-};
-
-/**
- * Set Module owner
- * @param owner - the new owner
- * emit updateInterface
- */
-void Interface::setModuleOwner(Module *owner){
- moduleOwner = owner;
- emit(updateInterface(this));
-};
-
-
-/**
- * Try to start the interface.
- */
-void Interface::start(){
- // check to see if we are already running.
- if(true == status)
- return;
-
- int ret = system(QString("%1 %2 up").arg(IFCONFIG).arg(this->name()).latin1());
- // See if it was successfull...
- if(ret != 0)
- return;
-
- status = true;
- refresh();
-}
-
-/**
- * Try to stop the interface.
- */
-void Interface::stop(){
- // check to see if we are already stopped.
- if(false == status)
- return;
-
- int ret = system(QString("%1 %2 down").arg(IFCONFIG).arg(this->name()).latin1());
- if(ret != 0)
- return;
-
- status = true;
- refresh();
-}
-
-/**
- * Try to restart the interface.
- */
-void Interface::restart(){
- stop();
- start();
-}
-
-/**
- * Try to refresh the information about the interface.
- * First call ifconfig, then check the dhcp-info file
- * @return bool true if successfull.
- */
-bool Interface::refresh(){
- // See if we are up.
- if(status == false){
- macAddress = "";
- ip = "0.0.0.0";
- subnetMask = "0.0.0.0";
- broadcast = "";
- dhcp = false;
- dhcpServerIp = "";
- leaseObtained = "";
- leaseExpires = "";
- emit(updateInterface(this));
- return true;
- }
-
- QString fileName = QString("/tmp/%1_ifconfig_info").arg(this->name());
- int ret = system(QString("%1 %2 > %3").arg(IFCONFIG).arg(this->name()).arg(fileName).latin1());
- if(ret != 0){
- qDebug(QString("Interface: Ifconfig return value: %1, is not 0").arg(ret).latin1());
- return false;
- }
-
- QFile file(fileName);
- if (!file.open(IO_ReadOnly)){
- qDebug(QString("Interface: Can't open file: %1").arg(fileName).latin1());
- return false;
- }
-
- // Set to the defaults
- macAddress = "";
- ip = "0.0.0.0";
- subnetMask = "0.0.0.0";
- broadcast = "";
-
- QTextStream stream( &file );
- QString line;
- while ( !stream.eof() ) {
- line = stream.readLine();
- if(line.contains("HWaddr")){
- int mac = line.find("HWaddr");
- macAddress = line.mid(mac+7, line.length());
- }
- if(line.contains("inet addr")){
- int ipl = line.find("inet addr");
- int space = line.find(" ", ipl+10);
- ip = line.mid(ipl+10, space-ipl-10);
- }
- if(line.contains("Mask")){
- int mask = line.find("Mask");
- subnetMask = line.mid(mask+5, line.length());
- }
- if(line.contains("Bcast")){
- int mask = line.find("Bcast");
- int space = line.find(" ", mask+6);
- broadcast = line.mid(mask+6, space-mask-6);
- }
- }
- file.close();
- QFile::remove(fileName);
-
- // DHCP TESTING
- // reset DHCP info
- dhcpServerIp = "";
- leaseObtained = "";
- leaseExpires = "";
- dhcp = false;
-
- QString dhcpDirectory(DHCP_INFO_DIR);
- QDir d(dhcpDirectory);
- if(!d.exists(dhcpDirectory))
- dhcpDirectory = "/var/run";
-
- // See if we have
- QString dhcpFile(QString(dhcpDirectory+"/dhcpcd-%1.info").arg(this->name()));
- // If there is no DHCP information then exit now with no errors.
- if(!QFile::exists(dhcpFile)){
- emit(updateInterface(this));
- return true;
- }
-
- file.setName(dhcpFile);
- if (!file.open(IO_ReadOnly)){
- qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1());
- return false;
- }
-
- // leaseTime and renewalTime and used if pid and deamon exe can be accessed.
- int leaseTime = 0;
- int renewalTime = 0;
-
- stream.setDevice( &file );
- while ( !stream.eof() ) {
- line = stream.readLine();
- if(line.contains("DHCPSIADDR="))
- dhcpServerIp = line.mid(11, line.length());
- if(line.contains("LEASETIME="))
- leaseTime = line.mid(10, line.length()).toInt();
- if(line.contains("RENEWALTIME="))
- renewalTime = line.mid(12, line.length()).toInt();
- }
- file.close();
- //qDebug(QString("Interface: leaseTime: %1").arg(leaseTime).latin1());
- //qDebug(QString("Interface: renewalTime: %1").arg(renewalTime).latin1());
-
- // Get the pid of the deamond
- dhcpFile = (QString(dhcpDirectory+"/dhcpcd-%1.pid").arg(this->name()));
- file.setName(dhcpFile);
- if (!file.open(IO_ReadOnly)){
- qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1());
- return false;
- }
-
- int pid = -1;
- stream.setDevice( &file );
- while ( !stream.eof() ) {
- line = stream.readLine();
- pid = line.toInt();
- }
- file.close();
-
- if( pid == -1){
- qDebug("Interface: Could not get pid of dhcpc deamon.");
- return false;
- }
-
- // Get the start running time of the deamon
- fileName = (QString("/proc/%1/stat").arg(pid));
- file.setName(fileName);
- stream.setDevice( &file );
- if (!file.open(IO_ReadOnly)){
- qDebug(QString("Interface: Can't open file: %1").arg(fileName).latin1());
- return false;
- }
- while ( !stream.eof() ) {
- line = stream.readLine();
- }
- file.close();
- long time = 0;
- // Grab the start time
- // pid com state ppid pgrp session tty_nr tpgid flags
- sscanf(line.latin1(), "%*d %*s %*c %*d %*d %*d %*d %*d %*u "
- // minflt cminflt majflt cmajflt utime stime cutime cstime priority
- "%*u %*u %*u %*u %*u %*u %*d %*d %*d "
- // nice 0 itrealvalue starttime
- "%*d %*d %*d %lu", (long*) &time);
- time = time/100;
-
- QDateTime datetime(QDateTime::currentDateTime());
-
- // Get the uptime of the computer.
- QFile f("/proc/uptime");
- if ( f.open(IO_ReadOnly) ) { // file opened successfully
- QTextStream t( &f ); // use a text stream
- int sec = 0;
- t >> sec;
- datetime = datetime.addSecs((-1*sec));
- f.close();
- }
- else{
- qDebug("Interface: Can't open /proc/uptime to retrive uptime.");
- return false;
- }
-
- datetime = datetime.addSecs(time);
- //qDebug(QString("Interface: %1 %2").arg(datetime.toString()).arg(pid).latin1());
-
- // Calculate the start and renew times
- leaseObtained = datetime.toString();
-
- // Calculate the start and renew times
- datetime = datetime.addSecs(leaseTime);
- leaseExpires = datetime.toString();
-
- dhcp = true;
-
- emit(updateInterface(this));
- return true;
-}
-
-// interface.cpp
-
diff --git a/noncore/settings/networksettings/interface.h b/noncore/settings/networksettings/interface.h
deleted file mode 100644
index dc9c6d3..0000000
--- a/noncore/settings/networksettings/interface.h
+++ b/dev/null
@@ -1,71 +0,0 @@
-#ifndef INTERFACE_H
-#define INTERFACE_H
-
-#include <qstring.h>
-#include <qobject.h>
-
-class Module;
-
-class Interface : public QObject{
- Q_OBJECT
-
-signals:
- void updateInterface(Interface *i);
-
-public:
- Interface(QObject * parent=0, const char * name= "unknown", bool status = false);
- virtual ~Interface(){};
-
- virtual QString getInterfaceName(){ QString n(this->name()); return n; };
-
- virtual bool getStatus(){ return status; };
- virtual void setStatus(bool newStatus);
-
- virtual bool isAttached(){ return attached; };
- virtual void setAttached(bool isAttached=false);
-
- virtual QString getHardwareName(){ return hardwareName; };
- virtual void setHardwareName(QString name="Unknown");
-
- virtual Module* getModuleOwner(){ return moduleOwner; };
- virtual void setModuleOwner(Module *owner=NULL);
-
- // inet information.
- QString getMacAddress(){ return macAddress; };
- QString getIp(){ return ip; };
- QString getSubnetMask(){ return subnetMask; };
- QString getBroadcast(){ return broadcast; };
- bool isDhcp(){ return dhcp; };
- QString getDhcpServerIp(){ return dhcpServerIp; };
- QString getLeaseObtained(){ return leaseObtained; };
- QString getLeaseExpires(){ return leaseExpires; };
-
-public slots:
- bool refresh();
- void start();
- void stop();
- void restart();
-
-private:
- // Interface information
- bool status;
- bool attached;
- QString hardwareName;
- Module *moduleOwner;
-
- // Network information
- QString macAddress;
- QString ip;
- QString broadcast;
- QString subnetMask;
- bool dhcp;
- QString dhcpServerIp;
- QString leaseObtained;
- QString leaseExpires;
-
-};
-
-#endif
-
-// interface.h
-
diff --git a/noncore/settings/networksettings/interfaceadvanced.ui b/noncore/settings/networksettings/interfaceadvanced.ui
deleted file mode 100644
index 0ec67c2..0000000
--- a/noncore/settings/networksettings/interfaceadvanced.ui
+++ b/dev/null
@@ -1,344 +0,0 @@
-<!DOCTYPE UI><UI>
-<class>InterfaceAdvanced</class>
-<widget>
- <class>QWidget</class>
- <property stdset="1">
- <name>name</name>
- <cstring>InterfaceAdvanced</cstring>
- </property>
- <property stdset="1">
- <name>geometry</name>
- <rect>
- <x>0</x>
- <y>0</y>
- <width>214</width>
- <height>286</height>
- </rect>
- </property>
- <property stdset="1">
- <name>maximumSize</name>
- <size>
- <width>240</width>
- <height>32767</height>
- </size>
- </property>
- <property stdset="1">
- <name>caption</name>
- <string>Advanced Interface Information</string>
- </property>
- <grid>
- <property stdset="1">
- <name>margin</name>
- <number>11</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget row="1" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel1</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>MAC Address</string>
- </property>
- </widget>
- <widget row="0" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>interfaceName</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>eth0</string>
- </property>
- </widget>
- <widget row="2" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel3</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>IP Address</string>
- </property>
- </widget>
- <widget row="1" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>macAddressLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>00:00:00:00:00:00</string>
- </property>
- </widget>
- <widget row="0" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel7</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Interface</string>
- </property>
- </widget>
- <widget row="4" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel4</cstring>
- </property>
- <property stdset="1">
- <name>enabled</name>
- <bool>true</bool>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Subnet Mask</string>
- </property>
- </widget>
- <widget row="2" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>ipAddressLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>0.0.0.0</string>
- </property>
- </widget>
- <widget row="4" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>subnetMaskLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>0.0.0.0</string>
- </property>
- </widget>
- <widget row="3" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel2</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Broadcast</string>
- </property>
- </widget>
- <widget row="3" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>broadcastLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- </widget>
- <widget row="5" column="0" rowspan="1" colspan="2" >
- <class>QGroupBox</class>
- <property stdset="1">
- <name>name</name>
- <cstring>dhcpInformation</cstring>
- </property>
- <property stdset="1">
- <name>title</name>
- <string>DHCP Information</string>
- </property>
- <grid>
- <property stdset="1">
- <name>margin</name>
- <number>11</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget row="0" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel6</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>DHCP Server</string>
- </property>
- </widget>
- <widget row="2" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>leaseExpiresLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string></string>
- </property>
- </widget>
- <widget row="1" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>leaseObtainedLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string></string>
- </property>
- </widget>
- <widget row="2" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel9</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Lease Expires</string>
- </property>
- </widget>
- <widget row="1" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel8</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Lease Obtained</string>
- </property>
- </widget>
- <widget row="0" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>dhcpServerLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string></string>
- </property>
- </widget>
- </grid>
- </widget>
- <spacer row="6" column="1" >
- <property>
- <name>name</name>
- <cstring>Spacer2</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Vertical</enum>
- </property>
- <property stdset="1">
- <name>sizeType</name>
- <enum>Expanding</enum>
- </property>
- <property>
- <name>sizeHint</name>
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </grid>
-</widget>
-<customwidgets>
- <customwidget>
- <class>QWidget</class>
- <header location="local">qwidget.h</header>
- <sizehint>
- <width>100</width>
- <height>100</height>
- </sizehint>
- <container>0</container>
- <sizepolicy>
- <hordata>7</hordata>
- <verdata>7</verdata>
- </sizepolicy>
- <pixmap>image0</pixmap>
- </customwidget>
-</customwidgets>
-<images>
- <image>
- <name>image0</name>
- <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
- </image>
-</images>
-</UI>
diff --git a/noncore/settings/networksettings/interfaceedit.cpp b/noncore/settings/networksettings/interfaceedit.cpp
deleted file mode 100644
index 25599ef..0000000
--- a/noncore/settings/networksettings/interfaceedit.cpp
+++ b/dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-** Form implementation generated from reading ui file 'interfaceedit.ui'
-**
-** Created: Mon Sep 23 12:18:55 2002
-** by: The User Interface Compiler (uic)
-**
-** WARNING! All changes made in this file will be lost!
-****************************************************************************/
-#include "interfaceedit.h"
-
-#include <qcheckbox.h>
-#include <qcombobox.h>
-#include <qframe.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qspinbox.h>
-#include "qwidget.h"
-#include <qlayout.h>
-#include <qvariant.h>
-#include <qtooltip.h>
-#include <qwhatsthis.h>
-
-/*
- * Constructs a InterfaceConfiguration which is a child of 'parent', with the
- * name 'name' and widget flags set to 'f'
- */
-InterfaceConfiguration::InterfaceConfiguration( QWidget* parent, const char* name, WFlags fl )
- : QWidget( parent, name, fl )
-{
- if ( !name )
- setName( "InterfaceConfiguration" );
- resize( 177, 306 );
- setCaption( tr( "Interface Configuration" ) );
- InterfaceConfigurationLayout = new QGridLayout( this );
- InterfaceConfigurationLayout->setSpacing( 6 );
- InterfaceConfigurationLayout->setMargin( 11 );
-
- profile = new QComboBox( FALSE, this, "profile" );
- profile->insertItem( tr( "All" ) );
-
- InterfaceConfigurationLayout->addWidget( profile, 2, 1 );
-
- TextLabel1 = new QLabel( this, "TextLabel1" );
- TextLabel1->setText( tr( "Profile:" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel1, 2, 0 );
-
- Line1 = new QFrame( this, "Line1" );
- Line1->setFrameStyle( QFrame::HLine | QFrame::Sunken );
-
- InterfaceConfigurationLayout->addMultiCellWidget( Line1, 1, 1, 0, 1 );
-
- CheckBox3 = new QCheckBox( this, "CheckBox3" );
- CheckBox3->setText( tr( "Automaticly bring up" ) );
-
- InterfaceConfigurationLayout->addMultiCellWidget( CheckBox3, 0, 0, 0, 1 );
-
- dhcpCheckBox = new QCheckBox( this, "dhcpCheckBox" );
- dhcpCheckBox->setText( tr( "DHCP" ) );
-
- InterfaceConfigurationLayout->addMultiCellWidget( dhcpCheckBox, 3, 3, 0, 1 );
-
- TextLabel3_3_2 = new QLabel( this, "TextLabel3_3_2" );
- TextLabel3_3_2->setText( tr( "Lease Hours" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel3_3_2, 4, 0 );
-
- SpinBox1_2 = new QSpinBox( this, "SpinBox1_2" );
- SpinBox1_2->setMaxValue( 336 );
- SpinBox1_2->setMinValue( 1 );
- SpinBox1_2->setValue( 24 );
-
- InterfaceConfigurationLayout->addWidget( SpinBox1_2, 4, 1 );
- QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
- InterfaceConfigurationLayout->addItem( spacer, 11, 1 );
-
- TextLabel4 = new QLabel( this, "TextLabel4" );
- TextLabel4->setText( tr( "IP Address" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel4, 6, 0 );
-
- ipAddressEdit = new QLineEdit( this, "ipAddressEdit" );
-
- InterfaceConfigurationLayout->addWidget( ipAddressEdit, 6, 1 );
-
- TextLabel5 = new QLabel( this, "TextLabel5" );
- TextLabel5->setText( tr( "Subnet Mask" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel5, 7, 0 );
-
- firstDNSLineEdit = new QLineEdit( this, "firstDNSLineEdit" );
-
- InterfaceConfigurationLayout->addWidget( firstDNSLineEdit, 9, 1 );
-
- TextLabel3 = new QLabel( this, "TextLabel3" );
- TextLabel3->setText( tr( "Second DNS" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel3, 10, 0 );
-
- subnetMaskEdit = new QLineEdit( this, "subnetMaskEdit" );
-
- InterfaceConfigurationLayout->addWidget( subnetMaskEdit, 7, 1 );
-
- gatewayEdit = new QLineEdit( this, "gatewayEdit" );
-
- InterfaceConfigurationLayout->addWidget( gatewayEdit, 8, 1 );
-
- TextLabel7 = new QLabel( this, "TextLabel7" );
- TextLabel7->setText( tr( "Gateway" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel7, 8, 0 );
-
- TextLabel2 = new QLabel( this, "TextLabel2" );
- TextLabel2->setText( tr( "First DNS" ) );
-
- InterfaceConfigurationLayout->addWidget( TextLabel2, 9, 0 );
-
- secondDNSLineEdit = new QLineEdit( this, "secondDNSLineEdit" );
-
- InterfaceConfigurationLayout->addWidget( secondDNSLineEdit, 10, 1 );
-
- GroupBox2 = new QGroupBox( this, "GroupBox2" );
- GroupBox2->setTitle( tr( "Static Ip Configuration" ) );
-
- InterfaceConfigurationLayout->addMultiCellWidget( GroupBox2, 5, 5, 0, 1 );
-
- // signals and slots connections
- connect( dhcpCheckBox, SIGNAL( toggled(bool) ), SpinBox1_2, SLOT( setEnabled(bool) ) );
- connect( dhcpCheckBox, SIGNAL( toggled(bool) ), GroupBox2, SLOT( setDisabled(bool) ) );
-}
-
-/*
- * Destroys the object and frees any allocated resources
- */
-InterfaceConfiguration::~InterfaceConfiguration()
-{
- // no need to delete child widgets, Qt does it all for us
-}
-
diff --git a/noncore/settings/networksettings/interfaceedit.h b/noncore/settings/networksettings/interfaceedit.h
deleted file mode 100644
index a65c030..0000000
--- a/noncore/settings/networksettings/interfaceedit.h
+++ b/dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-** Form interface generated from reading ui file 'interfaceedit.ui'
-**
-** Created: Mon Sep 23 12:18:55 2002
-** by: The User Interface Compiler (uic)
-**
-** WARNING! All changes made in this file will be lost!
-****************************************************************************/
-#ifndef INTERFACECONFIGURATION_H
-#define INTERFACECONFIGURATION_H
-
-#include <qvariant.h>
-#include <qwidget.h>
-class QVBoxLayout;
-class QHBoxLayout;
-class QGridLayout;
-class QCheckBox;
-class QComboBox;
-class QFrame;
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QSpinBox;
-
-class InterfaceConfiguration : public QWidget
-{
- Q_OBJECT
-
-public:
- InterfaceConfiguration( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
- ~InterfaceConfiguration();
-
- QComboBox* profile;
- QLabel* TextLabel1;
- QFrame* Line1;
- QCheckBox* CheckBox3;
- QCheckBox* dhcpCheckBox;
- QLabel* TextLabel3_3_2;
- QSpinBox* SpinBox1_2;
- QLabel* TextLabel4;
- QLineEdit* ipAddressEdit;
- QLabel* TextLabel5;
- QLineEdit* firstDNSLineEdit;
- QLabel* TextLabel3;
- QLineEdit* subnetMaskEdit;
- QLineEdit* gatewayEdit;
- QLabel* TextLabel7;
- QLabel* TextLabel2;
- QLineEdit* secondDNSLineEdit;
- QGroupBox* GroupBox2;
-
-protected:
- QGridLayout* InterfaceConfigurationLayout;
-};
-
-#endif // INTERFACECONFIGURATION_H
diff --git a/noncore/settings/networksettings/interfaceinformation.ui b/noncore/settings/networksettings/interfaceinformation.ui
deleted file mode 100644
index 2838d19..0000000
--- a/noncore/settings/networksettings/interfaceinformation.ui
+++ b/dev/null
@@ -1,343 +0,0 @@
-<!DOCTYPE UI><UI>
-<class>InterfaceInformation</class>
-<widget>
- <class>QWidget</class>
- <property stdset="1">
- <name>name</name>
- <cstring>InterfaceInformation</cstring>
- </property>
- <property stdset="1">
- <name>geometry</name>
- <rect>
- <x>0</x>
- <y>0</y>
- <width>219</width>
- <height>255</height>
- </rect>
- </property>
- <property stdset="1">
- <name>caption</name>
- <string>Interface Information</string>
- </property>
- <grid>
- <property stdset="1">
- <name>margin</name>
- <number>11</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget row="4" column="0" rowspan="1" colspan="2" >
- <class>QLayoutWidget</class>
- <property stdset="1">
- <name>name</name>
- <cstring>Layout1</cstring>
- </property>
- <grid>
- <property stdset="1">
- <name>margin</name>
- <number>0</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget row="1" column="0" >
- <class>QPushButton</class>
- <property stdset="1">
- <name>name</name>
- <cstring>refreshButton</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>&amp;Refresh</string>
- </property>
- </widget>
- <widget row="0" column="1" >
- <class>QPushButton</class>
- <property stdset="1">
- <name>name</name>
- <cstring>stopButton</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>S&amp;top</string>
- </property>
- </widget>
- <widget row="1" column="1" >
- <class>QPushButton</class>
- <property stdset="1">
- <name>name</name>
- <cstring>restartButton</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>R&amp;estart</string>
- </property>
- </widget>
- <widget row="0" column="0" >
- <class>QPushButton</class>
- <property stdset="1">
- <name>name</name>
- <cstring>startButton</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>&amp;Start</string>
- </property>
- </widget>
- </grid>
- </widget>
- <widget row="0" column="0" >
- <class>Line</class>
- <property stdset="1">
- <name>name</name>
- <cstring>Line1</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Horizontal</enum>
- </property>
- </widget>
- <widget row="0" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel22</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>IP Address</string>
- </property>
- </widget>
- <widget row="1" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel23</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Subnet Mask</string>
- </property>
- </widget>
- <widget row="2" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel21</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>MAC Address</string>
- </property>
- </widget>
- <widget row="3" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel24</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>MShape</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>MShadow</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Broadcast</string>
- </property>
- </widget>
- <widget row="1" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>subnetMaskLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>0.0.0.0</string>
- </property>
- </widget>
- <widget row="2" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>macAddressLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>00:00:00:00:00:00</string>
- </property>
- </widget>
- <widget row="3" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>broadcastLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string></string>
- </property>
- </widget>
- <widget row="0" column="1" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>ipAddressLabel</cstring>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Panel</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>0.0.0.0</string>
- </property>
- </widget>
- <spacer row="7" column="1" >
- <property>
- <name>name</name>
- <cstring>Spacer18</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Vertical</enum>
- </property>
- <property stdset="1">
- <name>sizeType</name>
- <enum>Expanding</enum>
- </property>
- <property>
- <name>sizeHint</name>
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget row="6" column="0" rowspan="1" colspan="2" >
- <class>QLayoutWidget</class>
- <property stdset="1">
- <name>name</name>
- <cstring>Layout2</cstring>
- </property>
- <hbox>
- <property stdset="1">
- <name>margin</name>
- <number>0</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <spacer>
- <property>
- <name>name</name>
- <cstring>Spacer10</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Horizontal</enum>
- </property>
- <property stdset="1">
- <name>sizeType</name>
- <enum>Expanding</enum>
- </property>
- <property>
- <name>sizeHint</name>
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget>
- <class>QPushButton</class>
- <property stdset="1">
- <name>name</name>
- <cstring>advancedButton</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>View &amp;Advanced Information</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget row="5" column="0" rowspan="1" colspan="2" >
- <class>Line</class>
- <property stdset="1">
- <name>name</name>
- <cstring>Line5</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Horizontal</enum>
- </property>
- </widget>
- </grid>
-</widget>
-<customwidgets>
- <customwidget>
- <class>QWidget</class>
- <header location="local">qwidget.h</header>
- <sizehint>
- <width>100</width>
- <height>100</height>
- </sizehint>
- <container>0</container>
- <sizepolicy>
- <hordata>7</hordata>
- <verdata>7</verdata>
- </sizepolicy>
- <pixmap>image0</pixmap>
- </customwidget>
-</customwidgets>
-<images>
- <image>
- <name>image0</name>
- <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
- </image>
-</images>
-<tabstops>
- <tabstop>startButton</tabstop>
- <tabstop>stopButton</tabstop>
- <tabstop>refreshButton</tabstop>
- <tabstop>restartButton</tabstop>
- <tabstop>advancedButton</tabstop>
-</tabstops>
-</UI>
diff --git a/noncore/settings/networksettings/interfaceinformationimp.cpp b/noncore/settings/networksettings/interfaceinformationimp.cpp
deleted file mode 100644
index 43483fb..0000000
--- a/noncore/settings/networksettings/interfaceinformationimp.cpp
+++ b/dev/null
@@ -1,70 +0,0 @@
-#include "interfaceinformationimp.h"
-#include "interfaceadvanced.h"
-
-#include <qpushbutton.h>
-#include <qlabel.h>
-#include <qgroupbox.h>
-#include <assert.h>
-
-/**
- * Constructor for the InterfaceInformationImp class. This class pretty much
- * just display's information about the interface that is passed to it.
- */
-InterfaceInformationImp::InterfaceInformationImp(QWidget *parent, const char *name, Interface *i, WFlags f):InterfaceInformation(parent, name, f){
- assert(i);
-
- interface = i;
- connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *)));
- updateInterface(interface);
- connect(startButton, SIGNAL(clicked()), interface, SLOT(start()));
- connect(stopButton, SIGNAL(clicked()), interface, SLOT(stop()));
- connect(restartButton, SIGNAL(clicked()), interface, SLOT(restart()));
- connect(refreshButton, SIGNAL(clicked()), interface, SLOT(refresh()));
- connect(advancedButton, SIGNAL(clicked()), this, SLOT(advanced()));
-
-}
-
-/**
- * Update the interface information and buttons.
- * @param Intarface *i the interface to update (should be the one we already
- * know about).
- */
-void InterfaceInformationImp::updateInterface(Interface *i){
- if(interface->getStatus()){
- startButton->setEnabled(false);
- stopButton->setEnabled(true);
- restartButton->setEnabled(true);
- }
- else{
- startButton->setEnabled(true);
- stopButton->setEnabled(false);
- restartButton->setEnabled(false);
- }
- macAddressLabel->setText(interface->getMacAddress());
- ipAddressLabel->setText(interface->getIp());
- subnetMaskLabel->setText(interface->getSubnetMask());
- broadcastLabel->setText(interface->getBroadcast());
-}
-
-/**
- * Create the advanced widget. Fill it with the current interface's information.
- * Display it.
- */
-void InterfaceInformationImp::advanced(){
- InterfaceAdvanced *a = new InterfaceAdvanced(0, "InterfaceAdvanced");
- a->interfaceName->setText(interface->getInterfaceName());
- a->macAddressLabel->setText(interface->getMacAddress());
- a->ipAddressLabel->setText(interface->getIp());
- a->subnetMaskLabel->setText(interface->getSubnetMask());
- a->broadcastLabel->setText(interface->getBroadcast());
- a->dhcpServerLabel->setText(interface->getDhcpServerIp());
- a->leaseObtainedLabel->setText(interface->getLeaseObtained());
- a->leaseExpiresLabel->setText(interface->getLeaseExpires());
- a->dhcpInformation->setEnabled(interface->isDhcp());
-
- a->showMaximized();
- a->show();
-}
-
-// infoimp.cpp
-
diff --git a/noncore/settings/networksettings/interfaceinformationimp.h b/noncore/settings/networksettings/interfaceinformationimp.h
deleted file mode 100644
index 42213cc..0000000
--- a/noncore/settings/networksettings/interfaceinformationimp.h
+++ b/dev/null
@@ -1,27 +0,0 @@
-#ifndef INTERFACEINFORMATIONIMP_H
-#define INTERFACEINFORMATIONIMP_H
-
-#include "interfaceinformation.h"
-#include "interface.h"
-
-class InterfaceInformationImp : public InterfaceInformation {
-
-Q_OBJECT
-
-public:
- InterfaceInformationImp(QWidget *parent=0, const char *name=0, Interface *i=0, WFlags f=0);
- ~InterfaceInformationImp(){};
-
-private slots:
- void advanced();
- void updateInterface(Interface *i);
-
-private:
- Interface *interface;
-
-};
-
-#endif
-
-// addserviceimp.h
-
diff --git a/noncore/settings/networksettings/interfaces.cpp b/noncore/settings/networksettings/interfaces.cpp
deleted file mode 100644
index 377a6db..0000000
--- a/noncore/settings/networksettings/interfaces.cpp
+++ b/dev/null
@@ -1,638 +0,0 @@
-#include "interfaces.h"
-
-#include <qfile.h>
-#include <qtextstream.h>
-#include <qregexp.h>
-
-#define AUTO "auto"
-#define IFACE "iface"
-#define MAPPING "mapping"
-
-/**
- * Constructor. Reads in the interfaces file and then split the file up by
- * the \n for interfaces variable.
- * @param useInterfacesFile if an interface file other then the default is
- * desired to be used it should be passed in.
- */
-Interfaces::Interfaces(QString useInterfacesFile){
- acceptedFamily.append(INTERFACES_FAMILY_INET);
- acceptedFamily.append(INTERFACES_FAMILY_IPX);
- acceptedFamily.append(INTERFACES_FAMILY_INET6);
-
- interfacesFile = useInterfacesFile;
- QFile file(interfacesFile);
- if (!file.open(IO_ReadOnly)){
- qDebug(QString("Interfaces: Can't open file: %1 for reading.").arg(interfacesFile).latin1());
- currentIface = interfaces.end();
- currentMapping = interfaces.end();
- return;
- }
- QTextStream stream( &file );
- QString line;
- while ( !stream.eof() ) {
- line += stream.readLine();
- line += "\n";
- }
- file.close();
- interfaces = QStringList::split("\n", line, true);
-
- currentIface = interfaces.end();
- currentMapping = interfaces.end();
-}
-
-
-/**
- * Get a list of all interfaces in the interface file. Usefull for
- * hardware that is not currently connected such as an 802.11b card
- * not plugged in, but configured for when it is plugged in.
- * @return Return string list of interfaces.
- **/
-QStringList Interfaces::getInterfaceList(){
- QStringList list;
- for ( QStringList::Iterator it = interfaces.begin(); it != interfaces.end(); ++it ) {
- QString line = (*it).simplifyWhiteSpace();
- if(line.contains(IFACE) && line.at(0) != '#'){
- line = line.mid(QString(IFACE).length() +1, line.length());
- line = line.simplifyWhiteSpace();
- int findSpace = line.find(" ");
- if( findSpace >= 0){
- line = line.mid(0, findSpace);
- list.append(line);
- }
- }
- }
- return list;
-}
-
-/**
- * Find out if interface is in an "auto" group or not.
- * Report any duplicates such as eth0 being in two differnt auto's
- * @param interface interface to check to see if it is on or not.
- * @return true is interface is in auto
- */
-bool Interfaces::isAuto(QString interface){
- QStringList autoLines = interfaces.grep(QRegExp(AUTO));
- QStringList awi = autoLines.grep(QRegExp(interface));
- if(awi.count() > 1)
- qDebug(QString("Interfaces: Found more then auto group with interface: %1.").arg(interface).latin1());
- if(awi.count() < 1)
- return false;
- return true;
-}
-
-/**
- * Attempt to set the auto option for interface to setAuto.
- * @param interface the interface to set
- * @param setAuto the value to set interface to.
- * @return false if already set to setAuto.
- * */
-bool Interfaces::setAuto(QString interface, bool setAuto){
- // Don't need to set it if it is already set.
- if(isAuto(interface) == setAuto)
- return false;
-
- bool changed = false;
- for ( QStringList::Iterator it = interfaces.begin(); it != interfaces.end(); ++it ) {
- if((*it).contains(AUTO)){
- //We know that they are not in any group so let add to this auto.
- if(setAuto){
- (*it) = (*it) += " " + interface;
- // Don't care to have such thins as: auto eth0 lo usb0
- (*it) = (*it).simplifyWhiteSpace();
- changed = true;
- break;
- }
- else{
- if((*it).contains(interface)){
- (*it) = (*it).replace(QRegExp(interface), "");
- // clean up
- QString line = (*it).simplifyWhiteSpace();
- line = line.replace(QRegExp(" "),"");
- if(line == AUTO)
- (*it) = "";
- changed = true;
- // Don't break because we want to make sure we remove all cases.
- }
- }
- }
- }
- if(changed == false){
- if(setAuto == true)
- interfaces.append(QString(AUTO" %1").arg(interface));
- else{
- qDebug(QString("Interfaces: Can't set interface %1 auto to false sense it is already false.").arg(interface).latin1());
- }
- }
- return true;
-}
-
-/**
- * Set the current interface to interface. This needs to be done before you
- * can call getFamily(), getMethod, and get/setOption().
- * @param interface the name of the interface to set. All whitespace is
- * removed from the interface name.
- * @return bool true if it is successfull.
- */
-bool Interfaces::setInterface(QString interface){
- interface = interface.simplifyWhiteSpace();
- interface = interface.replace(QRegExp(" "), "");
- return setStanza(IFACE, interface, currentIface);
-}
-
-/**
- * A quick helper funtion to see if the current interface is set.
- * @return bool true if set, false otherwise.
- */
-bool Interfaces::isInterfaceSet(){
- return (currentIface != interfaces.end());
-}
-
-/**
- * Add a new interface of with the settings - family and method
- * @param interface the name of the interface to set. All whitespace is
- * removed from the interface name.
- * @param family the family of this interface inet or inet, ipx or inet6
- * Must of one of the families defined in interfaces.h
- * @param method for the family. see interfaces man page for family methods.
- * @return true if successfull.
- */
-bool Interfaces::addInterface(QString interface, QString family, QString method){
- if(acceptedFamily.contains(family)==0)
- return false;
- interface = interface.simplifyWhiteSpace();
- interface = interface.replace(QRegExp(" "), "");
- interfaces.append("");
- interfaces.append(QString(IFACE " %1 %2 %3").arg(interface).arg(family).arg(method));
- return true;
-}
-
-/**
- * Copies interface with name interface to name newInterface
- * @param newInterface name of the new interface.
- * @return bool true if successfull
- */
-bool Interfaces::copyInterface(QString interface, QString newInterface){
- if(!setInterface(interface)) return false;
-
- QStringList::Iterator it = currentIface;
- it++;
-
- bool error;
- addInterface(newInterface, getInterfaceFamily(error), getInterfaceMethod(error));
- if(!setInterface(newInterface)) return false;
- QStringList::Iterator newIface = currentIface;
- newIface++;
-
- for ( it; it != interfaces.end(); ++it ){
- if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)))
- break;
- newIface = interfaces.insert(newIface, *it);
- }
-
- return true;
-}
-
-/**
- * Remove the currently selected interface and all of its options.
- * @return bool if successfull or not.
- */
-bool Interfaces::removeInterface(){
- if(currentIface == interfaces.end())
- return false;
- (*currentIface) = "";
- return removeAllInterfaceOptions();
-}
-
-/**
- * Gets the hardware name of the interface that is currently selected.
- * @return QString name of the hardware interface (eth0, usb2, wlan1...).
- * @param error set to true if any error occurs, false otherwise.
- */
-QString Interfaces::getInterfaceName(bool &error){
- if(currentIface == interfaces.end()){
- error = true;
- return QString();
- }
- QString line = (*currentIface);
- line = line.mid(QString(IFACE).length() +1, line.length());
- line = line.simplifyWhiteSpace();
- int findSpace = line.find(" ");
- if( findSpace < 0){
- error = true;
- return QString();
- }
- error = false;
- return line.mid(0, findSpace);
-}
-
-/**
- * Gets the family name of the interface that is currently selected.
- * @return QString name of the family (inet, inet6, ipx).
- * @param error set to true if any error occurs, false otherwise.
- */
-QString Interfaces::getInterfaceFamily(bool &error){
- QString name = getInterfaceName(error);
- if(error){
- error = true;
- return QString();
- }
- QString line = (*currentIface);
- line = line.mid(QString(IFACE).length() +1, line.length());
- line = line.mid(name.length()+1, line.length());
- line = line.simplifyWhiteSpace();
- int findSpace = line.find(" ");
- if( findSpace < 0){
- error = true;
- return QString();
- }
- error = false;
- return line.mid(0, findSpace);
-}
-
-/**
- * Gets the method of the interface that is currently selected.
- * @return QString name of the method such as staic or dhcp.
- * See the man page of interfaces for possible methods depending on the family.
- * @param error set to true if any error occurs, false otherwise.
- */
-QString Interfaces::getInterfaceMethod(bool &error){
- QString name = getInterfaceName(error);
- if(error){
- error = true;
- return QString();
- }
- QString family = getInterfaceFamily(error);
- if(error){
- error = true;
- return QString();
- }
- QString line = (*currentIface);
- line = line.mid(QString(IFACE).length()+1, line.length());
- line = line.mid(name.length()+1, line.length());
- line = line.mid(family.length()+1, line.length());
- line = line.simplifyWhiteSpace();
- error = false;
- return line;
-}
-
-/**
- * Sets the interface name to newName.
- * @param newName the new name of the interface. All whitespace is removed.
- * @return bool true if successfull.
- */
-bool Interfaces::setInterfaceName(QString newName){
- if(currentIface == interfaces.end())
- return false;
- newName = newName.simplifyWhiteSpace();
- newName = newName.replace(QRegExp(" "), "");
- bool returnValue = false;
- (*currentIface) = QString("iface %1 %2 %3").arg(newName).arg(getInterfaceFamily(returnValue)).arg(getInterfaceMethod(returnValue));
- return !returnValue;
-}
-
-/**
- * Sets the interface family to newName.
- * @param newName the new name of the interface. Must be one of the families
- * defined in the interfaces.h file.
- * @return bool true if successfull.
- */
-bool Interfaces::setInterfaceFamily(QString newName){
- if(currentIface == interfaces.end())
- return false;
- if(acceptedFamily.contains(newName)==0)
- return false;
- bool returnValue = false;
- (*currentIface) = QString("iface %1 %2 %3").arg(getInterfaceName(returnValue)).arg(newName).arg(getInterfaceMethod(returnValue));
- return !returnValue;
-}
-
-/**
- * Sets the interface method to newName
- * @param newName the new name of the interface
- * @return bool true if successfull.
- */
-bool Interfaces::setInterfaceMethod(QString newName){
- if(currentIface == interfaces.end())
- return false;
- bool returnValue = false;
- (*currentIface) = QString("iface %1 %2 %3").arg(getInterfaceName(returnValue)).arg(getInterfaceFamily(returnValue)).arg(newName);
- return !returnValue;
-}
-
-/**
- * Get a value for an option in the currently selected interface. For example
- * calling getInterfaceOption("address") on the following stanza would
- * return 192.168.1.1.
- * iface eth0 static
- * address 192.168.1.1
- * @param option the options to get the value.
- * @param error set to true if any error occurs, false otherwise.
- * @return QString the options value. QString::null if error == true
- */
-QString Interfaces::getInterfaceOption(QString option, bool &error){
- return getOption(currentIface, option, error);
-}
-
-/**
- * Set a value for an option in the currently selected interface. If option
- * doesn't exist then it is added along with the value.
- * @param option the options to set the value.
- * @param value the value that option should be set to.
- * @param error set to true if any error occurs, false otherwise.
- * @return QString the options value. QString::null if error == true
- */
-bool Interfaces::setInterfaceOption(QString option, QString value){
- return setOption(currentIface, option, value);
-}
-
-/**
- * Removes a value for an option in the currently selected interface.
- * @param option the options to set the value.
- * @param value the value that option should be set to.
- * @param error set to true if any error occurs, false otherwise.
- * @return QString the options value. QString::null if error == true
- */
-bool Interfaces::removeInterfaceOption(QString option, QString value){
- return removeOption(currentIface, option, value);
-}
-
-/**
- * Removes all of the options from the currently selected interface.
- * @return bool error if if successfull
- */
-bool Interfaces::removeAllInterfaceOptions(){
- return removeAllOptions(currentIface);
-}
-
-/**
- * Set the current map to interface's map. This needs to be done before you
- * can call addMapping(), set/getMap(), and get/setScript().
- * @param interface the name of the interface to set. All whitespace is
- * removed from the interface name.
- * @return bool true if it is successfull.
- */
-bool Interfaces::setMapping(QString interface){
- interface = interface.simplifyWhiteSpace();
- interface = interface.replace(QRegExp(" "), "");
- return setStanza(MAPPING, interface, currentMapping);
-}
-
-/**
- * Adds a new Mapping to the interfaces file with interfaces.
- * @param interface the name(s) of the interfaces to set to this mapping
- */
-void Interfaces::addMapping(QString option){
- interfaces.append("");
- interfaces.append(QString(MAPPING " %1").arg(option));
-}
-
-/**
- * Remove the currently selected map and all of its options.
- * @return bool if successfull or not.
- */
-bool Interfaces::removeMapping(){
- if(currentMapping == interfaces.end())
- return false;
- (*currentMapping) = "";
- return removeAllOptions(currentMapping);
-}
-
-/**
- * Set a map option within a mapping.
- * @param map map to use
- * @param value value to go with map
- * @return bool true if it is successfull.
- */
-bool Interfaces::setMap(QString map, QString value){
- return setOption(currentMapping, map, value);
-}
-
-/**
- * Removes a map option within a mapping.
- * @param map map to use
- * @param value value to go with map
- * @return bool true if it is successfull.
- */
-bool Interfaces::removeMap(QString map, QString value){
- return removeOption(currentMapping, map, value);
-}
-
-/**
- * Get a map value within a mapping.
- * @param map map to get value of
- * @param bool true if it is successfull.
- * @return value that goes to the map
- */
-QString Interfaces::getMap(QString map, bool &error){
- return getOption(currentMapping, map, error);
-}
-
-/**
- * Sets a script value of the current mapping to argument.
- * @param argument the script name.
- * @return true if successfull.
- */
-bool Interfaces::setScript(QString argument){
- return setOption(currentMapping, "script", argument);
-}
-
-/**
- * @param error true if could not retrieve the current script argument.
- * @return QString the argument of the script for the current mapping.
- */
-QString Interfaces::getScript(bool &error){
- return getOption(currentMapping, "script", error);
-}
-
-/**
- * Helper function used to parse through the QStringList and put pointers in
- * the correct place.
- * @param stanza The stanza (auto, iface, mapping) to look for.
- * @param option string that must be in the stanza's main line.
- * @param interator interator to place at location of stanza if successfull.
- * @return bool true if the stanza is found.
- */
-bool Interfaces::setStanza(QString stanza, QString option, QStringList::Iterator &iterator){
- bool found = false;
- iterator = interfaces.end();
- for ( QStringList::Iterator it = interfaces.begin(); it != interfaces.end(); ++it ) {
- QString line = (*it).simplifyWhiteSpace();
- if(line.contains(stanza) && line.contains(option) && line.at(0) != '#'){
- uint point = line.find(option);
- bool valid = true;
- if(point > 0){
- // There are more chars in the line. check +1
- if(line.at(point-1) != ' ')
- valid = false;
- }
- point += option.length();
- if(point < line.length()-1){
- // There are more chars in the line. check -1
- if(line.at(point) != ' ')
- valid = false;
- }
- if(valid){
- if(found == true){
- qDebug(QString("Interfaces: Found multiple stanza's for search: %1 %2").arg(stanza).arg(option).latin1());
- }
- found = true;
- iterator = it;
- }
- }
- }
- return found;
-}
-
-/**
- * Sets a value of an option in a stanza
- * @param start the start of the stanza
- * @param option the option to use when setting value.
- * @return bool true if successfull, false otherwise.
- */
-bool Interfaces::setOption(QStringList::Iterator start, QString option, QString value){
- if(start == interfaces.end())
- return false;
-
- bool found = false;
- for ( QStringList::Iterator it = start; it != interfaces.end(); ++it ) {
- if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)) && it != start){
- if(!found && value != ""){
- // Got to the end of the stanza without finding it, so append it.
- interfaces.insert(--it, QString("\t%1 %2").arg(option).arg(value));
- }
- found = true;
- break;
- }
- if((*it).contains(option) && it != start && (*it).at(0) != '#'){
- // Found it in stanza so replace it.
- if(found)
- qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1());
- found = true;
- (*it) = QString("\t%1 %2").arg(option).arg(value);
- }
- }
- if(!found){
- QStringList::Iterator p = start;
- interfaces.insert(++p, QString("\t%1 %2").arg(option).arg(value));
- found = true;
- }
- return found;
-}
-/**
- * Removes a option in a stanza
- * @param start the start of the stanza
- * @param option the option to use when setting value.
- * @return bool true if successfull, false otherwise.
- */
-bool Interfaces::removeOption(QStringList::Iterator start, QString option, QString value){
- if(start == interfaces.end())
- return false;
-
- bool found = false;
- for ( QStringList::Iterator it = start; it != interfaces.end(); ++it ) {
- if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)) && it != start){
- // got to the end without finding it
- break;
- }
- if((*it).contains(option) && (*it).contains(value) && it != start && (*it).at(0) != '#'){
- // Found it in stanza so replace it.
- if(found)
- qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1());
- found = true;
- (*it) = "";
- }
- }
- return found;
-}
-
-/**
- * Removes all options in a stanza
- * @param start the start of the stanza
- * @return bool true if successfull, false otherwise.
- */
-bool Interfaces::removeAllOptions(QStringList::Iterator start){
- if(start == interfaces.end())
- return false;
-
- QStringList::Iterator it = start;
- it = ++it;
- for (it; it != interfaces.end(); ++it ) {
- if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)) && it != start){
- break;
- }
- it = interfaces.remove(it);
- it = --it;
- }
- // Leave a space between this interface and the next.
- interfaces.insert(it, QString(""));
- return true;
-}
-
-/**
- * Gets a value of an option in a stanza
- * @param start the start of the stanza
- * @param option the option to use when getting the value.
- * @param bool true if errors false otherwise.
- * @return QString the value of option QString::null() if error == true.
- */
-QString Interfaces::getOption(QStringList::Iterator start, QString option, bool &error){
- if(start == interfaces.end()){
- error = false;
- return QString();
- }
-
- QString value;
- bool found = false;
- for ( QStringList::Iterator it = start; it != interfaces.end(); ++it ) {
- if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)) && it != start){
- break;
- }
- if((*it).contains(option) && (*it).at(0) != '#'){
- if(found)
- qDebug(QString("Interfaces: Get Options found more then one value: %1 for option: %2 in stanza %3").arg((*it)).arg(option).arg((*start)).latin1());
- found = true;
- QString line = (*it).simplifyWhiteSpace();
- int space = line.find(" ", option.length());
- if(space != -1)
- value = line.mid(space+1, line.length());
- else
- qDebug(QString("Interfaces: Option %1 with no value").arg(option).latin1());
- }
- }
- error = !found;
- return value;
-}
-
-/**
- * Write out the interfaces file to the file passed into the constructor.
- * Removes any excess blank lines over 1 line long.
- * @return bool true if successfull, false if not.
- */
-bool Interfaces::write(){
- QFile::remove(interfacesFile);
- QFile file(interfacesFile);
-
- if (!file.open(IO_ReadWrite)){
- qDebug(QString("Interfaces: Can't open file: %1 for writing.").arg(interfacesFile).latin1());
- return false;
- }
- QTextStream stream( &file );
- int whiteSpaceCount = 0;
- for ( QStringList::Iterator it = interfaces.begin(); it != interfaces.end(); ++it ) {
- QString line = (*it).simplifyWhiteSpace();
- line = line.replace(QRegExp(" "),"");
- if(line.length() == 0)
- whiteSpaceCount++;
- else
- whiteSpaceCount = 0;
- if(whiteSpaceCount < 2){
- qDebug((*it).latin1());
- stream << (*it) << '\n';
- }
- }
- file.close();
- return true;
-}
-
-// interfaces.cpp
-
diff --git a/noncore/settings/networksettings/interfaces.h b/noncore/settings/networksettings/interfaces.h
deleted file mode 100644
index e09ea71..0000000
--- a/noncore/settings/networksettings/interfaces.h
+++ b/dev/null
@@ -1,76 +0,0 @@
-#ifndef INTERFACES_H
-#define INTERFACES_H
-
-#include <qstring.h>
-#include <qstringlist.h>
-
-#define INTERFACES_LOOPBACK "loopback"
-
-#define INTERFACES_FAMILY_INET "inet"
-#define INTERFACES_FAMILY_IPX "ipx"
-#define INTERFACES_FAMILY_INET6 "inet6"
-
-#define INTERFACES_METHOD_DHCP "dhcp"
-#define INTERFACES_METHOD_STATIC "static"
-#define INTERFACES_METHOD_PPP "ppp"
-
-/**
- * This class provides a clean frontend for parsing the network interfaces file.
- * It provides helper functions to minipulate the options within the file.
- * See the interfaces man page for the syntax rules.
- */
-class Interfaces {
-
-public:
- Interfaces(QString useInterfacesFile = "/etc/network/interfaces");
- QStringList getInterfaceList();
-
- bool isAuto(QString interface);
- bool setAuto(QString interface, bool setAuto);
-
- bool removeInterface();
- bool addInterface(QString interface, QString family, QString method);
- bool copyInterface(QString oldInterface, QString newInterface);
- bool setInterface(QString interface);
- bool isInterfaceSet();
- QString getInterfaceName(bool &error);
- bool setInterfaceName(QString newName);
- QString getInterfaceFamily(bool &error);
- bool setInterfaceFamily(QString newName);
- QString getInterfaceMethod(bool &error);
- bool setInterfaceMethod(QString newName);
- QString getInterfaceOption(QString option, bool &error);
- bool setInterfaceOption(QString option, QString value);
- bool removeInterfaceOption(QString option, QString value);
- bool removeAllInterfaceOptions();
-
- bool setMapping(QString interface);
- bool removeMapping();
- void addMapping(QString options);
- bool setMap(QString map, QString value);
- bool removeMap(QString map, QString value);
- QString getMap(QString map, bool &error);
- bool setScript(QString);
- QString getScript(bool &error);
-
- bool write();
-
-private:
- bool setStanza(QString stanza, QString option,QStringList::Iterator &iterator);
- bool setOption(QStringList::Iterator start, QString option, QString value);
- bool removeOption(QStringList::Iterator start, QString option, QString value);
- QString getOption(QStringList::Iterator start, QString option, bool &error);
- bool removeAllOptions(QStringList::Iterator start);
-
- QString interfacesFile;
- QStringList interfaces;
- QStringList::Iterator currentIface;
- QStringList::Iterator currentMapping;
-
- QStringList acceptedFamily;
-};
-
-#endif
-
-// interfaces
-
diff --git a/noncore/settings/networksettings/interfacesetup.ui b/noncore/settings/networksettings/interfacesetup.ui
deleted file mode 100644
index 0c834fe..0000000
--- a/noncore/settings/networksettings/interfacesetup.ui
+++ b/dev/null
@@ -1,284 +0,0 @@
-<!DOCTYPE UI><UI>
-<class>InterfaceSetup</class>
-<widget>
- <class>QDialog</class>
- <property stdset="1">
- <name>name</name>
- <cstring>InterfaceSetup</cstring>
- </property>
- <property stdset="1">
- <name>geometry</name>
- <rect>
- <x>0</x>
- <y>0</y>
- <width>290</width>
- <height>280</height>
- </rect>
- </property>
- <property stdset="1">
- <name>caption</name>
- <string>Interface Configuration</string>
- </property>
- <vbox>
- <property stdset="1">
- <name>margin</name>
- <number>11</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget>
- <class>QCheckBox</class>
- <property stdset="1">
- <name>name</name>
- <cstring>autoStart</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Automatically bring up</string>
- </property>
- </widget>
- <widget>
- <class>QLayoutWidget</class>
- <property stdset="1">
- <name>name</name>
- <cstring>Layout9</cstring>
- </property>
- <hbox>
- <property stdset="1">
- <name>margin</name>
- <number>0</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget>
- <class>QCheckBox</class>
- <property stdset="1">
- <name>name</name>
- <cstring>dhcpCheckBox</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>DHCP</string>
- </property>
- <property stdset="1">
- <name>checked</name>
- <bool>true</bool>
- </property>
- </widget>
- <widget>
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>leaseHoursLabel</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Requested Lease</string>
- </property>
- </widget>
- <widget>
- <class>QSpinBox</class>
- <property stdset="1">
- <name>name</name>
- <cstring>leaseTime</cstring>
- </property>
- <property stdset="1">
- <name>suffix</name>
- <string> hours</string>
- </property>
- <property stdset="1">
- <name>maxValue</name>
- <number>87600</number>
- </property>
- <property stdset="1">
- <name>minValue</name>
- <number>1</number>
- </property>
- <property stdset="1">
- <name>value</name>
- <number>168</number>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget>
- <class>QGroupBox</class>
- <property stdset="1">
- <name>name</name>
- <cstring>staticGroupBox</cstring>
- </property>
- <property stdset="1">
- <name>enabled</name>
- <bool>false</bool>
- </property>
- <property stdset="1">
- <name>frameShape</name>
- <enum>Box</enum>
- </property>
- <property stdset="1">
- <name>frameShadow</name>
- <enum>Sunken</enum>
- </property>
- <property stdset="1">
- <name>title</name>
- <string>Static Ip Configuration</string>
- </property>
- <grid>
- <property stdset="1">
- <name>margin</name>
- <number>11</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget row="1" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel5</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Subnet Mask</string>
- </property>
- </widget>
- <widget row="2" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>gatewayEdit</cstring>
- </property>
- </widget>
- <widget row="1" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>subnetMaskEdit</cstring>
- </property>
- </widget>
- <widget row="0" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>ipAddressEdit</cstring>
- </property>
- </widget>
- <widget row="3" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel2</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>First DNS</string>
- </property>
- </widget>
- <widget row="0" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel4</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>IP Address</string>
- </property>
- </widget>
- <widget row="2" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel1_2</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Gateway</string>
- </property>
- </widget>
- <widget row="4" column="0" >
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel3</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Second DNS</string>
- </property>
- </widget>
- <widget row="3" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>firstDNSLineEdit</cstring>
- </property>
- </widget>
- <widget row="4" column="1" >
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>secondDNSLineEdit</cstring>
- </property>
- </widget>
- </grid>
- </widget>
- <spacer>
- <property>
- <name>name</name>
- <cstring>Spacer9</cstring>
- </property>
- <property stdset="1">
- <name>orientation</name>
- <enum>Vertical</enum>
- </property>
- <property stdset="1">
- <name>sizeType</name>
- <enum>Expanding</enum>
- </property>
- <property>
- <name>sizeHint</name>
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </vbox>
-</widget>
-<connections>
- <connection>
- <sender>dhcpCheckBox</sender>
- <signal>toggled(bool)</signal>
- <receiver>leaseHoursLabel</receiver>
- <slot>setEnabled(bool)</slot>
- </connection>
- <connection>
- <sender>dhcpCheckBox</sender>
- <signal>toggled(bool)</signal>
- <receiver>leaseTime</receiver>
- <slot>setEnabled(bool)</slot>
- </connection>
- <connection>
- <sender>dhcpCheckBox</sender>
- <signal>toggled(bool)</signal>
- <receiver>staticGroupBox</receiver>
- <slot>setDisabled(bool)</slot>
- </connection>
-</connections>
-<tabstops>
- <tabstop>autoStart</tabstop>
- <tabstop>dhcpCheckBox</tabstop>
- <tabstop>leaseTime</tabstop>
- <tabstop>ipAddressEdit</tabstop>
- <tabstop>subnetMaskEdit</tabstop>
- <tabstop>gatewayEdit</tabstop>
- <tabstop>firstDNSLineEdit</tabstop>
- <tabstop>secondDNSLineEdit</tabstop>
-</tabstops>
-</UI>
diff --git a/noncore/settings/networksettings/interfacesetupimp.cpp b/noncore/settings/networksettings/interfacesetupimp.cpp
deleted file mode 100644
index a8731a9..0000000
--- a/noncore/settings/networksettings/interfacesetupimp.cpp
+++ b/dev/null
@@ -1,147 +0,0 @@
-#include "interfacesetupimp.h"
-#include "interface.h"
-#include "interfaces.h"
-
-#include <qcombobox.h>
-#include <qcheckbox.h>
-#include <qlineedit.h>
-#include <qspinbox.h>
-#include <qgroupbox.h>
-#include <qlabel.h>
-
-#include <qmessagebox.h>
-
-#include <assert.h>
-
-#define DNSSCRIPT "interfacednsscript"
-
-/**
- * Constuctor. Set up the connection and load the first profile.
- */
-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();
- bool error = false;
- if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
- staticGroupBox->hide();
- dhcpCheckBox->hide();
- leaseTime->hide();
- leaseHoursLabel->hide();
- }
-}
-
-/**
- * Save the current settings, then write out the interfaces file and close.
- */
-void InterfaceSetupImp::accept(){
- if(!saveSettings())
- return;
- interfaces->write();
- QDialog::accept();
-}
-
-/**
- * Save the settings for the current Interface.
- * @return bool true if successfull, false otherwise
- */
-bool InterfaceSetupImp::saveSettings(){
- // eh can't really do anything about it other then return. :-D
- if(!interfaces->isInterfaceSet())
- return true;
-
- bool error = false;
- // Loopback case
- if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
- interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
- return true;
- }
-
- if(!dhcpCheckBox->isChecked() && (ipAddressEdit->text().isEmpty() || subnetMaskEdit->text().isEmpty() || firstDNSLineEdit->text().isEmpty())){
- QMessageBox::information(this, "Empy Fields.", "Please fill in address, subnet,\n gateway and the first dns entries.", "Ok");
- return false;
- }
- interfaces->removeAllInterfaceOptions();
-
- // DHCP
- if(dhcpCheckBox->isChecked()){
- interfaces->setInterfaceMethod(INTERFACES_METHOD_DHCP);
- interfaces->setInterfaceOption("leasehours", QString("%1").arg(leaseTime->value()));
- interfaces->setInterfaceOption("leasetime", QString("%1").arg(leaseTime->value()*60*60));
- }
- else{
- interfaces->setInterfaceMethod("static");
- interfaces->setInterfaceOption("address", ipAddressEdit->text());
- interfaces->setInterfaceOption("netmask", subnetMaskEdit->text());
- interfaces->setInterfaceOption("gateway", gatewayEdit->text());
- QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text();
- interfaces->setInterfaceOption("up "DNSSCRIPT" add ", dns);
- interfaces->setInterfaceOption("down "DNSSCRIPT" remove ", dns);
- }
-
- // IP Information
- interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
- return true;
-}
-
-/**
- * The Profile has changed.
- * @profile the new profile.
- */
-void InterfaceSetupImp::setProfile(const QString &profile){
- QString newInterfaceName = interface->getInterfaceName();
- if(profile.length() > 0)
- newInterfaceName += "_" + profile;
- // See if we have to make a interface.
- if(!interfaces->setInterface(newInterfaceName)){
- // Add making for this new interface if need too
- if(profile != ""){
- interfaces->copyInterface(interface->getInterfaceName(), newInterfaceName);
- if(!interfaces->setMapping(interface->getInterfaceName())){
- interfaces->addMapping(interface->getInterfaceName());
- if(!interfaces->setMapping(interface->getInterfaceName())){
- qDebug("InterfaceSetupImp: Added Mapping, but still can't set.");
- return;
- }
- }
- interfaces->setMap("map", newInterfaceName);
- interfaces->setScript("getprofile.sh");
- }
- else{
- interfaces->addInterface(newInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP);
- if(!interfaces->setInterface(newInterfaceName)){
- qDebug("InterfaceSetupImp: Added interface, but still can't set.");
- return;
- }
- }
- }
-
- // We must have a valid interface to get this far so read some settings.
-
- // DHCP
- bool error = false;
- if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP)
- dhcpCheckBox->setChecked(true);
- else
- dhcpCheckBox->setChecked(false);
- leaseTime->setValue(interfaces->getInterfaceOption("leasehours", error).toInt());
- if(error)
- leaseTime->setValue(interfaces->getInterfaceOption("leasetime", error).toInt()/60/60);
- if(error)
- leaseTime->setValue(24);
-
- // IP Information
- autoStart->setChecked(interfaces->isAuto(interface->getInterfaceName()));
- QString dns = interfaces->getInterfaceOption("up interfacednsscript add", error);
- if(dns.contains(" ")){
- firstDNSLineEdit->setText(dns.mid(0, dns.find(" ")));
- secondDNSLineEdit->setText(dns.mid(dns.find(" ")+1, dns.length()));
- }
- ipAddressEdit->setText(interfaces->getInterfaceOption("address", error));
- subnetMaskEdit->setText(interfaces->getInterfaceOption("netmask", error));
- gatewayEdit->setText(interfaces->getInterfaceOption("gateway", error));
-}
-
-
-// interfacesetup.cpp
-
diff --git a/noncore/settings/networksettings/interfacesetupimp.h b/noncore/settings/networksettings/interfacesetupimp.h
deleted file mode 100644
index a0bec32..0000000
--- a/noncore/settings/networksettings/interfacesetupimp.h
+++ b/dev/null
@@ -1,31 +0,0 @@
-#ifndef INTERFACESETUPIMP_H
-#define INTERFACESETUPIMP_H
-
-#include "interfacesetup.h"
-
-class Interface;
-class Interfaces;
-
-class InterfaceSetupImp : public InterfaceSetup {
- Q_OBJECT
-
-public:
- InterfaceSetupImp( QWidget* parent = 0, const char* name = 0, Interface *i=0, bool modal = FALSE, WFlags fl = 0);
-
-protected slots:
- void accept();
-
-public slots:
- void setProfile(const QString &profile);
-
-private:
- bool saveSettings();
- Interfaces *interfaces;
- Interface *interface;
-
-};
-
-#endif
-
-// interfacesetupimp.h
-
diff --git a/noncore/settings/networksettings/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindowimp.cpp
index f9ca83b..b9fff56 100644
--- a/noncore/settings/networksettings/mainwindowimp.cpp
+++ b/noncore/settings/networksettings/mainwindowimp.cpp
@@ -1,558 +1,544 @@
#include "mainwindowimp.h"
#include "addconnectionimp.h"
#include "interfaceinformationimp.h"
#include "interfacesetupimp.h"
#include "interfaces.h"
#include "module.h"
#include "kprocess.h"
#include <qpushbutton.h>
-#include <qtabwidget.h>
#include <qlistbox.h>
#include <qlineedit.h>
#include <qlistview.h>
#include <qheader.h>
#include <qlabel.h>
#include <qmainwindow.h>
#include <qmessagebox.h>
#include <qpe/config.h>
#include <qpe/qlibrary.h>
#include <qpe/resource.h>
#include <qpe/qpeapplication.h>
#include <qlist.h>
#include <qdir.h>
#include <qfile.h>
#include <qtextstream.h>
#define TEMP_ALL "/tmp/ifconfig-a"
#define TEMP_UP "/tmp/ifconfig"
#define DEFAULT_SCHEME "/var/lib/pcmcia/scheme"
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(setCurrentProfileButton, SIGNAL(clicked()), this, SLOT(changeProfile()));
connect(newProfile, SIGNAL(textChanged(const QString&)), this, SLOT(newProfileChanged(const QString&)));
// Load connections.
loadModules(QPEApplication::qpeDir() + "/plugins/networksetup");
getInterfaceList();
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));
currentProfileLabel->setText(cfg.readEntry("CurrentProfile", "All"));
advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false);
scheme = cfg.readEntry("SchemeFile", DEFAULT_SCHEME);
QFile file(scheme);
if ( file.open(IO_ReadOnly) ) { // file opened successfully
QTextStream stream( &file ); // use a text stream
while ( !stream.eof() ) { // until end of file...
QString line = stream.readLine(); // line of text excluding '\n'
if(line.contains("SCHEME")){
line = line.mid(7, line.length());
currentProfileLabel->setText(line);
break;
}
}
file.close();
}
}
/**
* Deconstructor. Save profiles. Delete loaded libraries.
*/
MainWindowImp::~MainWindowImp(){
// Save profiles.
Config cfg("NetworkSetup");
cfg.setGroup("General");
cfg.writeEntry("Profiles", profiles.join(" "));
// Delete all interfaces that don't have owners.
QMap<Interface*, QListViewItem*>::Iterator iIt;
for( iIt = items.begin(); iIt != items.end(); ++iIt ){
if(iIt.key()->getModuleOwner() == NULL)
delete iIt.key();
}
// Delete Modules and Libraries
QMap<Module*, QLibrary*>::Iterator it;
for( it = libraries.begin(); it != libraries.end(); ++it ){
delete it.key();
// I wonder why I can't delete the libraries
+ // What fucking shit this is.
//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(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")){
loadPlugin(path + "/" + fi->fileName());
}
++it;
}
}
/**
* Attempt to load a function and resolve a function.
* @param pluginFileName - the name of the file in which to attempt to load
* @param resolveString - function pointer to resolve
* @return pointer to the function with name resolveString or NULL
*/
Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString){
//qDebug(QString("MainWindowImp::loadPlugin: %1").arg(pluginFileName).latin1());
QLibrary *lib = new QLibrary(pluginFileName);
void *functionPointer = lib->resolve(resolveString);
if( !functionPointer ){
qDebug(QString("MainWindowImp: File: %1 is not a plugin, but though was.").arg(pluginFileName).latin1());
delete lib;
return NULL;
}
// Try to get an object.
Module *object = ((Module* (*)()) functionPointer)();
if(object == NULL){
qDebug("MainWindowImp: Couldn't create object, but did load library!");
delete lib;
return NULL;
}
// Store for deletion later
libraries.insert(object, lib);
return object;
}
/**
* The Add button was clicked. Bring up the add dialog and if OK is hit
* load the plugin and append it to the list
*/
void MainWindowImp::addClicked(){
QMap<Module*, QLibrary*>::Iterator it;
QMap<QString, QString> list;
QMap<QString, Module*> newInterfaceOwners;
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;
}
AddConnectionImp addNewConnection(this, "AddConnectionImp", true);
addNewConnection.addConnections(list);
addNewConnection.showMaximized();
if(QDialog::Accepted == addNewConnection.exec()){
QListViewItem *item = addNewConnection.registeredServicesList->currentItem();
if(!item)
return;
for( it = libraries.begin(); it != libraries.end(); ++it ){
if(it.key()){
Interface *i = (it.key())->addNewInterface(item->text(0));
if(i){
interfaceNames.insert(i->getInterfaceName(), i);
updateInterface(i);
}
}
}
}
}
/**
* Prompt the user to see if they really want to do this.
* If they do then remove from the list and unload.
*/
void MainWindowImp::removeClicked(){
QListViewItem *item = connectionList->currentItem();
if(!item) {
QMessageBox::information(this, "Sorry","Please select an interface First.", "Ok");
return;
}
Interface *i = interfaceItems[item];
if(i->getModuleOwner() == NULL){
QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", "Ok");
}
else{
if(!i->getModuleOwner()->remove(i))
QMessageBox::information(this, "Error", "Unable to remove.", "Ok");
else{
QMessageBox::information(this, "Success", "Interface was removed.", "Ok");
// TODO memory managment....
// who deletes the interface?
}
}
}
/**
* 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.
+ * If the interface has a module owner then request its configure.
*/
void MainWindowImp::configureClicked(){
QListViewItem *item = connectionList->currentItem();
if(!item){
QMessageBox::information(this, "Sorry","Please select an interface first.", QMessageBox::Ok);
return;
}
QString currentProfile = currentProfileLabel->text();
if(profilesList->count() <= 1 || currentProfile == "All"){
currentProfile = "";
}
Interface *i = interfaceItems[item];
if(i->getModuleOwner()){
i->getModuleOwner()->setProfile(currentProfile);
- QTabWidget *tabWidget = NULL;
- QWidget *moduleConfigure = i->getModuleOwner()->configure(i, &tabWidget);
+ QWidget *moduleConfigure = i->getModuleOwner()->configure(i);
if(moduleConfigure != NULL){
- if(tabWidget != NULL){
- InterfaceSetupImp *configure = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, false, Qt::WDestructiveClose);
- configure->setProfile(currentProfile);
- tabWidget->insertTab(configure, "TCP/IP");
- }
moduleConfigure->showMaximized();
moduleConfigure->show();
return;
}
}
- InterfaceSetupImp *configure = new InterfaceSetupImp(0, "InterfaceSetupImp", i, false, Qt::WDestructiveClose);
- configure->setProfile(currentProfile);
+ InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(0, "InterfaceSetupImp", i, true, Qt::WDestructiveClose);
+ //configure->setProfile(currentProfile);
configure->showMaximized();
configure->show();
}
/**
* 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.
+ * If the interface has a module owner then request its configure.
*/
void MainWindowImp::informationClicked(){
QListViewItem *item = connectionList->currentItem();
if(!item){
QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok);
return;
}
Interface *i = interfaceItems[item];
if(!i->isAttached()){
QMessageBox::information(this, "Sorry","No information about\na disconnected interface.", QMessageBox::Ok);
return;
}
QStringList list;
for(uint i = 0; i < profilesList->count(); i++){
list.append(profilesList->text(i));
}
if(i->getModuleOwner()){
- QTabWidget *tabWidget = NULL;
- QWidget *moduleInformation = i->getModuleOwner()->information(i, &tabWidget);
+ QWidget *moduleInformation = i->getModuleOwner()->information(i);
if(moduleInformation != NULL){
- if(tabWidget != NULL){
- InterfaceInformationImp *information = new InterfaceInformationImp(tabWidget, "InterfaceSetupImp", i, true);
- tabWidget->insertTab(information, "TCP/IP");
- }
moduleInformation->showMaximized();
moduleInformation->show();
return;
}
}
-
InterfaceInformationImp *information = new InterfaceInformationImp(0, "InterfaceSetupImp", i, true);
information->showMaximized();
information->show();
}
/**
* Aquire the list of active interfaces from ifconfig
* Call ifconfig and ifconfig -a
*/
void MainWindowImp::getInterfaceList(){
KShellProcess *processAll = new KShellProcess();
*processAll << "/sbin/ifconfig" << "-a" << " > " TEMP_ALL;
connect(processAll, SIGNAL(processExited(KProcess *)),
this, SLOT(jobDone(KProcess *)));
threads.insert(processAll, TEMP_ALL);
KShellProcess *process = new KShellProcess();
*process << "/sbin/ifconfig" << " > " TEMP_UP;
connect(process, SIGNAL(processExited(KProcess *)),
this, SLOT(jobDone(KProcess *)));
threads.insert(process, TEMP_UP);
processAll->start(KShellProcess::NotifyOnExit);
process->start(KShellProcess::NotifyOnExit);
}
void MainWindowImp::jobDone(KProcess *process){
QString fileName = threads[process];
threads.remove(process);
delete process;
QFile file(fileName);
if (!file.open(IO_ReadOnly)){
qDebug(QString("MainWindowImp: Can't open file: %1").arg(fileName).latin1());
return;
}
QTextStream stream( &file );
QString line;
while ( !stream.eof() ) {
line = stream.readLine();
int space = line.find(" ");
if(space > 1){
// We have found an interface
QString interfaceName = line.mid(0, space);
Interface *i;
// We have found an interface
//qDebug(QString("MainWindowImp: Found Interface: %1").arg(line).latin1());
// See if we already have it
if(interfaceNames.find(interfaceName) == interfaceNames.end()){
if(fileName == TEMP_ALL)
i = new Interface(this, interfaceName, false);
else
i = new Interface(this, interfaceName, true);
i->setAttached(true);
QString hardName = "Ethernet";
int hardwareName = line.find("Link encap:");
int macAddress = line.find("HWaddr");
if(macAddress == -1)
macAddress = line.length();
if(hardwareName != -1)
i->setHardwareName(line.mid(hardwareName+11, macAddress-(hardwareName+11)) );
interfaceNames.insert(i->getInterfaceName(), i);
updateInterface(i);
connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *)));
}
// It was an interface we already had.
else{
if(fileName != TEMP_ALL)
(interfaceNames[interfaceName])->setStatus(true);
}
}
}
file.close();
QFile::remove(fileName);
if(threads.count() == 0){
Interfaces i;
QStringList list = i.getInterfaceList();
QMap<QString, Interface*>::Iterator it;
for ( QStringList::Iterator ni = list.begin(); ni != list.end(); ++ni ) {
bool found = false;
for( it = interfaceNames.begin(); it != interfaceNames.end(); ++it ){
if(it.key() == (*ni))
found = true;
}
if(!found){
if(!(*ni).contains("_")){
Interface *i = new Interface(this, *ni, false);
i->setAttached(false);
i->setHardwareName("Disconnected");
interfaceNames.insert(i->getInterfaceName(), i);
updateInterface(i);
connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *)));
}
}
}
}
}
/**
* Update this interface. If no QListViewItem exists create one.
* @param Interface* pointer to the interface that needs to be updated.
*/
void MainWindowImp::updateInterface(Interface *i){
if(!advancedUserMode){
if(i->getInterfaceName() == "lo")
return;
}
QListViewItem *item = NULL;
// Find the interface, making it if needed.
if(items.find(i) == items.end()){
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 ){
if(it.key()->isOwner(i))
i->setModuleOwner(it.key());
}
items.insert(i, item);
interfaceItems.insert(item, i);
}
else
item = items[i];
// Update the icons and information
item->setPixmap(0, (Resource::loadPixmap(i->getStatus() ? "up": "down")));
QString typeName = "lan";
if(i->getHardwareName().contains("Local Loopback"))
typeName = "lo";
if(i->getInterfaceName().contains("irda"))
typeName = "irda";
if(i->getInterfaceName().contains("wlan"))
typeName = "wlan";
if(i->getInterfaceName().contains("usb"))
typeName = "usb";
if(!i->isAttached())
typeName = "connect_no";
// Actually try to use the Module
if(i->getModuleOwner() != NULL)
typeName = i->getModuleOwner()->getPixmapName(i);
item->setPixmap(1, (Resource::loadPixmap(typeName)));
item->setText(2, i->getHardwareName());
item->setText(3, QString("(%1)").arg(i->getInterfaceName()));
item->setText(4, (i->getStatus()) ? i->getIp() : QString(""));
}
void MainWindowImp::newProfileChanged(const QString& newText){
if(newText.length() > 0)
newProfileButton->setEnabled(true);
else
newProfileButton->setEnabled(false);
}
/**
* Adds a new profile to the list of profiles.
* Don't add profiles that already exists.
* Appends to the list and QStringList
*/
void MainWindowImp::addProfile(){
QString newProfileName = newProfile->text();
if(profiles.grep(newProfileName).count() > 0){
QMessageBox::information(this, "Can't Add","Profile already exists.", "Ok");
return;
}
profiles.append(newProfileName);
profilesList->insertItem(newProfileName);
}
/**
* Removes the currently selected profile in the combo.
* Doesn't delete if there are less then 2 profiles.
*/
void MainWindowImp::removeProfile(){
if(profilesList->count() <= 1){
QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", "Ok");
return;
}
QString profileToRemove = profilesList->currentText();
if(profileToRemove == "All"){
QMessageBox::information(this, "Can't remove.","Can't remove default.", "Ok");
return;
}
// Can't remove the curent profile
if(profileToRemove == currentProfileLabel->text()){
QMessageBox::information(this, "Can't remove.",QString("%1 is the current profile.").arg(profileToRemove), "Ok");
return;
}
if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok){
profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), ""));
profilesList->clear();
for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
profilesList->insertItem((*it));
// Remove any interface settings and mappings.
Interfaces interfaces;
// Go through them one by one
QMap<Interface*, QListViewItem*>::Iterator it;
for( it = items.begin(); it != items.end(); ++it ){
QString interfaceName = it.key()->getInterfaceName();
qDebug(interfaceName.latin1());
if(interfaces.setInterface(interfaceName + "_" + profileToRemove)){
interfaces.removeInterface();
if(interfaces.setMapping(interfaceName)){
if(profilesList->count() == 1)
interfaces.removeMapping();
else{
interfaces.removeMap("map", interfaceName + "_" + profileToRemove);
}
}
interfaces.write();
break;
}
}
}
}
/**
* A new profile has been selected, change.
* @param newProfile the new profile.
*/
void MainWindowImp::changeProfile(){
if(profilesList->currentItem() == -1){
QMessageBox::information(this, "Can't Change.","Please select a profile.", "Ok");
return;
}
QString newProfile = profilesList->text(profilesList->currentItem());
if(newProfile != currentProfileLabel->text()){
currentProfileLabel->setText(newProfile);
QFile::remove(scheme);
QFile file(scheme);
if ( file.open(IO_ReadWrite) ) {
QTextStream stream( &file );
stream << QString("SCHEME=%1").arg(newProfile);
file.close();
}
// 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();
}
}
}
}
// mainwindowimp.cpp
diff --git a/noncore/settings/networksettings/module.h b/noncore/settings/networksettings/module.h
index 96db5b3..92b125a 100644
--- a/noncore/settings/networksettings/module.h
+++ b/noncore/settings/networksettings/module.h
@@ -1,88 +1,86 @@
#ifndef NETCONF_MODULE_H
#define NETCONF_MODULE_H
#include <qobject.h>
#include <qlist.h>
#include <qmap.h>
#include "interface.h"
class QWidget;
class QTabWidget;
class Module : QObject{
signals:
void updateInterface(Interface *i);
public:
Module(){};
/**
* The current profile has been changed and the module should do any
* neccesary changes also.
* @param newProfile what the profile should be changed to.
*/
virtual void setProfile(QString newProfile) = 0;
/**
* 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 *) = 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; };
/**
- * Create, set tabWiget and return the WLANConfigure Module
+ * Create and return the WLANConfigure Module
* @param Interface *i the interface to configure.
- * @param tabWidget a pointer to the tab widget that this configure has.
- * @return QWidget* pointer to the tab widget in this modules configure.
+ * @return QWidget* pointer to this modules configure.
*/
- virtual QWidget *configure(Interface *, QTabWidget **){ return NULL; } ;
+ virtual QWidget *configure(Interface *){ return NULL; } ;
/**
- * Create, set tabWiget and return the Information Module
+ * Create, and return the Information Module
* @param Interface *i the interface to get info on.
- * @param tabWidget a pointer to the tab widget that this information has.
- * @return QWidget* pointer to the tab widget in this modules info.
+ * @return QWidget* pointer to this modules info.
*/
- virtual QWidget *information(Interface *, QTabWidget **){ return NULL; };
+ virtual QWidget *information(Interface *){ 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;
/**
* 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;
};
#endif
// module.h
diff --git a/noncore/settings/networksettings/networksetup.pro b/noncore/settings/networksettings/networksetup.pro
index f09db93..9f28fbd 100644
--- a/noncore/settings/networksettings/networksetup.pro
+++ b/noncore/settings/networksettings/networksetup.pro
@@ -1,11 +1,11 @@
-DESTDIR = $(OPIEDIR)/bin
+#DESTDIR = $(OPIEDIR)/bin
TEMPLATE = app
#CONFIG = qt warn_on debug
CONFIG = qt warn_on release
-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 += $(OPIEDIR)/include
-DEPENDPATH += $(OPIEDIR)/include
-LIBS += -lqpe
-INTERFACES = mainwindow.ui addconnection.ui interfaceinformation.ui interfaceadvanced.ui interfacesetup.ui
+HEADERS = mainwindowimp.h addconnectionimp.h defaultmodule.h kprocctrl.h module.h kprocess.h
+SOURCES = main.cpp mainwindowimp.cpp addconnectionimp.cpp kprocctrl.cpp kprocess.cpp
+INCLUDEPATH += $(OPIEDIR)/include interfaces/
+DEPENDPATH += $(OPIEDIR)/include interfaces/ wlan
+LIBS += -lqpe -Linterfaces -linterfaces
+INTERFACES = mainwindow.ui addconnection.ui
TARGET = networksetup
diff --git a/noncore/settings/networksettings/wlan/wextensions.cpp b/noncore/settings/networksettings/wlan/wextensions.cpp
index e545bd1..eb6fc42 100644
--- a/noncore/settings/networksettings/wlan/wextensions.cpp
+++ b/noncore/settings/networksettings/wlan/wextensions.cpp
@@ -1,175 +1,175 @@
#include "wextensions.h"
#include <qfile.h>
#include <qtextstream.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <math.h>
#define PROCNETWIRELESS "/proc/net/wireless"
#define IW_LOWER 0
#define IW_UPPER 256
/**
* Constructor. Sets hasWirelessExtensions
*/
-WExtensions::WExtensions(QString interfaceName){
+WExtensions::WExtensions(QString interfaceName): hasWirelessExtensions(false){
interface = interfaceName;
fd = socket( AF_INET, SOCK_DGRAM, 0 );
+ if(fd == -1)
+ return;
const char* buffer[200];
memset( &iwr, 0, sizeof( iwr ) );
iwr.u.essid.pointer = (caddr_t) buffer;
iwr.u.essid.length = IW_ESSID_MAX_SIZE;
iwr.u.essid.flags = 0;
// check if it is an IEEE 802.11 standard conform
// wireless device by sending SIOCGIWESSID
// which also gives back the Extended Service Set ID
// (see IEEE 802.11 for more information)
const char* iname = interface.latin1();
strcpy( iwr.ifr_ifrn.ifrn_name, (const char *)iname );
if ( 0 == ioctl( fd, SIOCGIWESSID, &iwr ) )
hasWirelessExtensions = true;
- else
- hasWirelessExtensions = false;
}
/**
* @return QString the station name of the access point.
*/
QString WExtensions::station(){
if(!hasWirelessExtensions)
return QString();
const char* buffer[200];
iwr.u.data.pointer = (caddr_t) buffer;
iwr.u.data.length = IW_ESSID_MAX_SIZE;
iwr.u.data.flags = 0;
if ( 0 == ioctl( fd, SIOCGIWNICKN, &iwr )){
iwr.u.data.pointer[(unsigned int) iwr.u.data.length-1] = '\0';
return QString(iwr.u.data.pointer);
}
return QString();
}
/**
* @return QString the essid of the host 802.11 access point.
*/
QString WExtensions::essid(){
if(!hasWirelessExtensions)
return QString();
if ( 0 == ioctl( fd, SIOCGIWESSID, &iwr )){
iwr.u.essid.pointer[(unsigned int) iwr.u.essid.length-1] = '\0';
return QString(iwr.u.essid.pointer);
}
return QString();
}
/**
* @return QString the mode of interface
*/
QString WExtensions::mode(){
if(!hasWirelessExtensions)
return QString();
if ( 0 == ioctl( fd, SIOCGIWMODE, &iwr ) )
return QString("%1").arg(iwr.u.mode == IW_MODE_ADHOC ? "Ad-Hoc" : "Managed");
return QString();
}
/**
* Get the frequency that the interface is running at.
* @return int the frequency that the interfacae is running at.
*/
double WExtensions::frequency(){
if(!hasWirelessExtensions)
return 0;
if ( 0 == ioctl( fd, SIOCGIWFREQ, &iwr ))
return (double( iwr.u.freq.m ) * pow( 10, iwr.u.freq.e ) / 1000000000);
return 0;
}
/***
* Get the current rate that the card is transmiting at.
*/
double WExtensions::rate(){
if(!hasWirelessExtensions)
return 0;
if(0 == ioctl(fd, SIOCGIWRATE, &iwr)){
return ((double)iwr.u.bitrate.value)/1000000;
}
return 0;
}
/**
* @return QString the AccessPoint that the interface is connected to.
*/
QString WExtensions::ap(){
if(!hasWirelessExtensions)
return QString();
if ( 0 == ioctl( fd, SIOCGIWAP, &iwr )){
QString ap;
ap = ap.sprintf( "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X",
iwr.u.ap_addr.sa_data[0]&0xff,
iwr.u.ap_addr.sa_data[1]&0xff,
iwr.u.ap_addr.sa_data[2]&0xff,
iwr.u.ap_addr.sa_data[3]&0xff,
iwr.u.ap_addr.sa_data[4]&0xff,
iwr.u.ap_addr.sa_data[5]&0xff );
return ap;
}
else return QString();
}
/**
* Get the stats for interfaces
* @param signal the signal strength of interface
* @param noise the noise level of the interface
* @param quality the quality level of the interface
* @return bool true if successfull
*/
bool WExtensions::stats(int &signal, int &noise, int &quality){
// gather link quality from /proc/net/wireless
if(!QFile::exists(PROCNETWIRELESS))
return false;
char c;
QString status;
QString name;
QFile wfile( PROCNETWIRELESS );
if(!wfile.open( IO_ReadOnly ))
return false;
QTextStream wstream( &wfile );
wstream.readLine(); // skip the first two lines
wstream.readLine(); // because they only contain headers
while(!wstream.atEnd()){
wstream >> name >> status >> quality >> c >> signal >> c >> noise;
if(name == QString("%1:").arg(interface)){
if ( quality > 92 )
qDebug( "WIFIAPPLET: D'oh! Quality %d > estimated max!\n", quality );
if ( ( signal > IW_UPPER ) || ( signal < IW_LOWER ) )
qDebug( "WIFIAPPLET: Doh! Strength %d > estimated max!\n", signal );
if ( ( noise > IW_UPPER ) || ( noise < IW_LOWER ) )
qDebug( "WIFIAPPLET: Doh! Noise %d > estimated max!\n", noise );
//qDebug(QString("q:%1, s:%2, n:%3").arg(quality).arg(signal).arg(noise).latin1());
signal = ( ( signal-IW_LOWER ) * 100 ) / IW_UPPER;
noise = ( ( noise-IW_LOWER ) * 100 ) / IW_UPPER;
quality = ( quality*100 ) / 92;
return true;
}
}
qDebug("WExtensions::statsCard no longer present.");
quality = -1;
signal = IW_LOWER;
noise = IW_LOWER;
return false;
}
// wextensions.cpp
diff --git a/noncore/settings/networksettings/wlan/wlan.pro b/noncore/settings/networksettings/wlan/wlan.pro
index f28feb2..23fc39a 100644
--- a/noncore/settings/networksettings/wlan/wlan.pro
+++ b/noncore/settings/networksettings/wlan/wlan.pro
@@ -1,12 +1,12 @@
TEMPLATE = lib
CONFIG += qt warn_on release
#CONFIG += qt warn_on debug
DESTDIR = $(OPIEDIR)/plugins/networksetup
HEADERS = wlanimp.h infoimp.h wlanmodule.h wextensions.h
SOURCES = wlanimp.cpp infoimp.cpp wlanmodule.cpp wextensions.cpp
-INCLUDEPATH += $(OPIEDIR)/include ../
+INCLUDEPATH += $(OPIEDIR)/include ../ ../interfaces/
DEPENDPATH += $(OPIEDIR)/include
-LIBS += -lqpe
+LIBS += -lqpe -L../interfaces/ -linterfaces
INTERFACES = wlan.ui info.ui
TARGET = wlanplugin
VERSION = 1.0.0
diff --git a/noncore/settings/networksettings/wlan/wlanimp.cpp b/noncore/settings/networksettings/wlan/wlanimp.cpp
index 45952b9..7c902e0 100644
--- a/noncore/settings/networksettings/wlan/wlanimp.cpp
+++ b/noncore/settings/networksettings/wlan/wlanimp.cpp
@@ -1,234 +1,244 @@
#include "wlanimp.h"
/* Config class */
#include <qpe/config.h>
/* Global namespace */
#include <qpe/global.h>
/* system() */
#include <stdlib.h>
#include <qfile.h>
#include <qdir.h>
#include <qtextstream.h>
#include <qmessagebox.h>
#include <qlineedit.h>
#include <qspinbox.h>
#include <qradiobutton.h>
#include <qcheckbox.h>
#include <qregexp.h>
+#include <qpe/config.h>
+#include <qtabwidget.h>
+#include "interfacesetupimp.h"
-WLANImp::WLANImp( QWidget* parent, const char* name, bool modal, WFlags fl):WLAN(parent, name, modal, fl){
+WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl):WLAN(parent, name, modal, fl){
config = new Config("wireless");
+ interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i);//, Qt::WDestructiveClose);
+ //configure->setProfile(currentProfile);
+ tabWidget->insertTab(interfaceSetup, "TCP/IP");
+
readConfig();
+
}
WLANImp::~WLANImp( ){
delete config;
}
void WLANImp::readConfig()
{
qWarning( "WLANImp::readConfig() called." );
config->setGroup( "Properties" );
QString ssid = config->readEntry( "SSID", "any" );
if( ssid == "any" || ssid == "ANY" ){
essNon->setChecked( true );
} else {
essSpecific->setChecked( true );
essSpecificLineEdit->setText( ssid );
}
QString mode = config->readEntry( "Mode", "Managed" );
if( mode == "adhoc" ) {
network802->setChecked( true );
} else {
networkInfrastructure->setChecked( true );
}
networkChannel->setValue( config->readNumEntry( "CHANNEL", 1 ) );
// config->readEntry( "RATE", "auto" );
config->readEntry( "dot11PrivacyInvoked" ) == "true" ? wepEnabled->setChecked( true ) : wepEnabled->setChecked( false );
config->readEntry( "AuthType", "opensystem" );
config->readEntry( "PRIV_KEY128", "false" ) == "false" ? key40->setChecked( true ) : key128->setChecked( true );
int defaultkey = config->readNumEntry( "dot11WEPDefaultKeyID", 0 );
switch( defaultkey ){
case 0:
keyRadio0->setChecked( true );
break;
case 1:
keyRadio1->setChecked( true );
break;
case 2:
keyRadio2->setChecked( true );
break;
case 3:
keyRadio3->setChecked( true );
break;
}
keyLineEdit0->setText(config->readEntry( "dot11WEPDefaultKey0" ));
keyLineEdit1->setText(config->readEntry( "dot11WEPDefaultKey1" ));
keyLineEdit2->setText(config->readEntry( "dot11WEPDefaultKey2" ));
keyLineEdit3->setText(config->readEntry( "dot11WEPDefaultKey3" ));
return;
}
bool WLANImp::writeConfig()
{
qWarning( "WLANImp::writeConfig() called." );
config->setGroup( "Properties" );
if( essNon->isChecked() ) {
config->writeEntry( "SSID", "any" );
} else {
config->writeEntry( "SSID", essSpecificLineEdit->text() );
}
if( networkInfrastructure->isChecked() ){
config->writeEntry( "Mode", "Managed" );
} else if( network802->isChecked() ){
config->writeEntry( "Mode", "adhoc" );
}
config->writeEntry( "CHANNEL", networkChannel->value() );
// config->readEntry( "RATE", "auto" );
wepEnabled->isChecked() ? config->writeEntry( "dot11PrivacyInvoked", "true" ) : config->writeEntry( "dot11PrivacyInvoked", "false" );
authOpen->isChecked() ? config->writeEntry( "AuthType", "opensystem" ) : config->writeEntry( "AuthType", "sharedkey" );
key40->isChecked() ? config->writeEntry( "PRIV_KEY128", "false" ) : config->writeEntry( "PRIV_KEY128", "true" );
if( keyRadio0->isChecked() ){
config->writeEntry( "dot11WEPDefaultKeyID", 0 );
} else if( keyRadio1->isChecked() ){
config->writeEntry( "dot11WEPDefaultKeyID", 1 );
} else if( keyRadio2->isChecked() ){
config->writeEntry( "dot11WEPDefaultKeyID", 2 );
} else if( keyRadio3->isChecked() ){
config->writeEntry( "dot11WEPDefaultKeyID", 3 );
}
config->writeEntry( "dot11WEPDefaultKey0", keyLineEdit0->text() );
config->writeEntry( "dot11WEPDefaultKey1", keyLineEdit1->text() );
config->writeEntry( "dot11WEPDefaultKey2", keyLineEdit2->text() );
config->writeEntry( "dot11WEPDefaultKey3", keyLineEdit3->text() );
return true;
return writeWirelessOpts( );
}
/**
*/
void WLANImp::accept()
{
- if ( writeConfig() )
+ if ( writeConfig() ){
+ interfaceSetup->saveChanges();
QDialog::accept();
+ }
}
bool WLANImp::writeWirelessOpts( QString scheme )
{
qWarning( "WLANImp::writeWirelessOpts entered." );
QString prev = "/etc/pcmcia/wireless.opts";
QFile prevFile(prev);
if ( !prevFile.open( IO_ReadOnly ) )
return false;
QString tmp = "/etc/pcmcia/wireless.opts-qpe-new";
QFile tmpFile(tmp);
if ( !tmpFile.open( IO_WriteOnly ) )
return false;
bool retval = true;
QTextStream in( &prevFile );
QTextStream out( &tmpFile );
config->setGroup("Properties");
QString line;
bool found=false;
bool done=false;
while ( !in.atEnd() ) {
QString line = in.readLine();
QString wline = line.simplifyWhiteSpace();
if ( !done ) {
if ( found ) {
// skip existing entry for this scheme, and write our own.
if ( wline == ";;" ) {
found = false;
continue;
} else {
continue;
}
} else {
if ( wline.left(scheme.length()+7) == scheme + ",*,*,*)" ) {
found=true;
continue; // skip this line
} else if ( wline == "esac" || wline == "*,*,*,*)" ) {
// end - add new entry
// Not all fields have a GUI, but all are supported
// in the letwork configuration files.
static const char* txtfields[] = {
0
};
QString readmode = config->readEntry( "Mode", "Managed" );
QString mode;
if( readmode == "Managed" ){
mode = readmode;
} else if( readmode == "adhoc" ){
mode = "Ad-Hoc";
}
QString key;
if( wepEnabled->isChecked() ){
int defaultkey = config->readNumEntry( "dot11WEPDefaultKeyID", 0 );
switch( defaultkey ){
case 0:
key += keyLineEdit0->text();
break;
case 1:
key += keyLineEdit1->text();
break;
case 2:
key += keyLineEdit2->text();
break;
case 3:
key += keyLineEdit3->text();
break;
}
if( config->readEntry( "AuthType", "opensystem" ) == "opensystem")
key += " open";
}
out << scheme << ",*,*,*)" << "\n"
<< " ESSID=" << Global::shellQuote( config->readEntry( "SSID", "any" ) ) << "\n"
<< " MODE=" << mode << "\n"
<< " KEY=" << Global::shellQuote( key ) << "\n"
<< " RATE=" << "auto" << "\n"
;
if( mode != "Managed" )
out << " CHANNEL=" << config->readNumEntry( "CHANNEL", 1 ) << "\n";
const char** f = txtfields;
while (*f) {
out << " " << *f << "=" << config->readEntry(*f,"") << "\n";
++f;
}
out << " ;;\n";
done = true;
}
}
}
out << line << "\n";
}
prevFile.close();
tmpFile.close();
QString initpath;
//system("cardctl suspend");
if( QDir("/etc/rc.d/init.d").exists() ){
initpath = "/etc/rc.d/init.d";
} else if( QDir("/etc/init.d").exists() ){
initpath = "/etc/init.d";
}
if( initpath )
system(QString("%1/pcmcia stop").arg(initpath));
if( system( "mv " + tmp + " " + prev ) )
retval = false;
//#ifdef USE_SCHEMES
// if ( retval )
// SchemeChanger::changeScheme(scheme);
//#endif
//system("cardctl resume");
if( initpath )
system(QString("%1/pcmcia start").arg(initpath));
return retval;
}
diff --git a/noncore/settings/networksettings/wlan/wlanimp.h b/noncore/settings/networksettings/wlan/wlanimp.h
index 59b7c59..608d681 100644
--- a/noncore/settings/networksettings/wlan/wlanimp.h
+++ b/noncore/settings/networksettings/wlan/wlanimp.h
@@ -1,27 +1,31 @@
#ifndef WLANIMP_H
#define WLANIMP_H
#include "wlan.h"
-#include <qpe/config.h>
+class InterfaceSetupImp;
+class Interface;
+class Config;
class WLANImp : public WLAN {
Q_OBJECT
public:
- WLANImp( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+ WLANImp( QWidget* parent = 0, const char* name = 0, Interface *i=0, bool modal = FALSE, WFlags fl = 0 );
~WLANImp( );
protected:
void accept();
private:
void readConfig();
bool writeConfig();
bool writeWirelessOpts( QString scheme = "*" );
bool writeWlanngOpts( QString scheme = "*" );
Config* config;
+ InterfaceSetupImp *interfaceSetup;
+
};
#endif
diff --git a/noncore/settings/networksettings/wlan/wlanmodule.cpp b/noncore/settings/networksettings/wlan/wlanmodule.cpp
index 9ab3b76..c8becb0 100644
--- a/noncore/settings/networksettings/wlan/wlanmodule.cpp
+++ b/noncore/settings/networksettings/wlan/wlanmodule.cpp
@@ -1,112 +1,112 @@
#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(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, 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.
+ * Create, and return the WLANConfigure Module
+ * @return QWidget* pointer to this modules configure.
*/
-QWidget *WLANModule::configure(Interface *, QTabWidget **tabWidget){
- WLANImp *wlanconfig = new WLANImp(0, "WlanConfig", false, Qt::WDestructiveClose);
- (*tabWidget) = wlanconfig->tabWidget;
+QWidget *WLANModule::configure(Interface *i){
+ WLANImp *wlanconfig = new WLANImp(0, "WlanConfig", i, false, Qt::WDestructiveClose);
return wlanconfig;
}
/**
- * 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.
+ * Create, and return the Information Module
+ * @return QWidget* pointer to this modules info.
*/
-QWidget *WLANModule::information(Interface *i, QTabWidget **tabWidget){
+QWidget *WLANModule::information(Interface *i){
WExtensions we(i->getInterfaceName());
if(!we.doesHaveWirelessExtensions())
return NULL;
WlanInfoImp *info = new WlanInfoImp(0, i->getInterfaceName(), Qt::WDestructiveClose);
- (*tabWidget) = info->tabWidget;
+ InterfaceInformationImp *information = new InterfaceInformationImp(info->tabWidget, "InterfaceSetupImp", i);
+ info->tabWidget->insertTab(information, "TCP/IP");
return info;
}
/**
* 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(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;
}
// wlanmodule.cpp
diff --git a/noncore/settings/networksettings/wlan/wlanmodule.h b/noncore/settings/networksettings/wlan/wlanmodule.h
index 1418ce8..a81ccff 100644
--- a/noncore/settings/networksettings/wlan/wlanmodule.h
+++ b/noncore/settings/networksettings/wlan/wlanmodule.h
@@ -1,41 +1,41 @@
#ifndef WLAN_MODULE_H
#define WLAN_MODULE_H
#include "module.h"
class WLANModule : Module{
signals:
void updateInterface(Interface *i);
public:
WLANModule();
~WLANModule();
virtual void setProfile(QString newProfile);
virtual bool isOwner(Interface *);
- virtual QWidget *configure(Interface *i, QTabWidget **tabWidget);
- virtual QWidget *information(Interface *i, QTabWidget **tabWidget);
+ virtual QWidget *configure(Interface *i);
+ virtual QWidget *information(Interface *i);
virtual QList<Interface> getInterfaces();
virtual void possibleNewInterfaces(QMap<QString, QString> &){};
virtual Interface *addNewInterface(QString name);
virtual bool remove(Interface* i);
virtual QString getPixmapName(Interface* i);
private:
QList<Interface> list;
QString profile;
};
extern "C"
{
void* create_plugin() {
return new WLANModule();
}
};
#endif
// wlanmodule.h