summaryrefslogtreecommitdiff
authorbenmeyer <benmeyer>2002-11-08 17:16:58 (UTC)
committer benmeyer <benmeyer>2002-11-08 17:16:58 (UTC)
commit56a6d067a51d741eb9be1912b69325bdd424dd84 (patch) (side-by-side diff)
treee8db80af083fc44d31042e342726ecfcbbcce4d5
parente0db2259cc26cab12c6f1131b82dd867c454a3ff (diff)
downloadopie-56a6d067a51d741eb9be1912b69325bdd424dd84.zip
opie-56a6d067a51d741eb9be1912b69325bdd424dd84.tar.gz
opie-56a6d067a51d741eb9be1912b69325bdd424dd84.tar.bz2
More optimizations, 1 memory leak fixed
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/networksetup/interfaces/interfaces.cpp77
-rw-r--r--noncore/net/networksetup/interfaces/interfaces.h5
-rw-r--r--noncore/net/networksetup/interfaces/interfacesetupimp.cpp103
-rw-r--r--noncore/net/networksetup/interfaces/interfacesetupimp.h4
-rw-r--r--noncore/settings/networksettings/interfaces/interfaces.cpp77
-rw-r--r--noncore/settings/networksettings/interfaces/interfaces.h5
-rw-r--r--noncore/settings/networksettings/interfaces/interfacesetupimp.cpp103
-rw-r--r--noncore/settings/networksettings/interfaces/interfacesetupimp.h4
8 files changed, 186 insertions, 192 deletions
diff --git a/noncore/net/networksetup/interfaces/interfaces.cpp b/noncore/net/networksetup/interfaces/interfaces.cpp
index 708f399..e49998e 100644
--- a/noncore/net/networksetup/interfaces/interfaces.cpp
+++ b/noncore/net/networksetup/interfaces/interfaces.cpp
@@ -4,6 +4,7 @@
#include <qtextstream.h>
#include <qregexp.h>
+// The three stanza's
#define AUTO "auto"
#define IFACE "iface"
#define MAPPING "mapping"
@@ -102,13 +103,12 @@ bool Interfaces::setAuto(const QString &interface, bool setAuto){
changed = true;
break;
}
+ // else see if we need to remove from this one
else{
if((*it).contains(interface)){
(*it) = (*it).replace(QRegExp(interface), "");
- // clean up
- QString line = (*it).simplifyWhiteSpace();
- line = line.replace(QRegExp(" "),"");
- if(line == AUTO)
+ // if AUTO is the only thing left clear the line
+ if(((*it).simplifyWhiteSpace()).replace(QRegExp(" "),"") == AUTO)
(*it) = "";
changed = true;
// Don't break because we want to make sure we remove all cases.
@@ -116,13 +116,9 @@ bool Interfaces::setAuto(const QString &interface, bool setAuto){
}
}
}
- 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());
- }
- }
+ // In the case where there is no AUTO field add one.
+ if(!changed && setAuto)
+ interfaces.append(QString(AUTO" %1").arg(interface));
return true;
}
@@ -157,7 +153,7 @@ bool Interfaces::isInterfaceSet(){
* @return true if successfull.
*/
bool Interfaces::addInterface(const QString &interface, const QString &family, const QString &method){
- if(acceptedFamily.contains(family)==0)
+ if(0 == acceptedFamily.contains(family))
return false;
QString newInterface = interface.simplifyWhiteSpace();
newInterface = newInterface.replace(QRegExp(" "), "");
@@ -172,17 +168,23 @@ bool Interfaces::addInterface(const QString &interface, const QString &family, c
* @return bool true if successfull
*/
bool Interfaces::copyInterface(const QString &interface, const QString &newInterface){
- if(!setInterface(interface)) return false;
-
+ if(!setInterface(interface))
+ return false;
+
+ // Store the old interface and bump past the stanza line.
QStringList::Iterator it = currentIface;
it++;
+ // Add the new interface
bool error;
addInterface(newInterface, getInterfaceFamily(error), getInterfaceMethod(error));
- if(!setInterface(newInterface)) return false;
+ if(!setInterface(newInterface))
+ return false;
+
QStringList::Iterator newIface = currentIface;
newIface++;
-
+
+ // Copy all of the lines
for ( ; it != interfaces.end(); ++it ){
if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)))
break;
@@ -197,10 +199,7 @@ bool Interfaces::copyInterface(const QString &interface, const QString &newInter
* @return bool if successfull or not.
*/
bool Interfaces::removeInterface(){
- if(currentIface == interfaces.end())
- return false;
- (*currentIface) = "";
- return removeAllInterfaceOptions();
+ return removeStanza(currentIface);
}
/**
@@ -232,10 +231,8 @@ QString Interfaces::getInterfaceName(bool &error){
*/
QString Interfaces::getInterfaceFamily(bool &error){
QString name = getInterfaceName(error);
- if(error){
- error = true;
+ if(error)
return QString();
- }
QString line = (*currentIface);
line = line.mid(QString(IFACE).length() +1, line.length());
line = line.mid(name.length()+1, line.length());
@@ -257,15 +254,11 @@ QString Interfaces::getInterfaceFamily(bool &error){
*/
QString Interfaces::getInterfaceMethod(bool &error){
QString name = getInterfaceName(error);
- if(error){
- error = true;
+ if(error)
return QString();
- }
QString family = getInterfaceFamily(error);
- if(error){
- error = true;
+ if(error)
return QString();
- }
QString line = (*currentIface);
line = line.mid(QString(IFACE).length()+1, line.length());
line = line.mid(name.length()+1, line.length());
@@ -391,10 +384,7 @@ void Interfaces::addMapping(const QString &option){
* @return bool if successfull or not.
*/
bool Interfaces::removeMapping(){
- if(currentMapping == interfaces.end())
- return false;
- (*currentMapping) = "";
- return removeAllOptions(currentMapping);
+ return removeStanza(currentMapping);
}
/**
@@ -520,6 +510,19 @@ bool Interfaces::setOption(const QStringList::Iterator &start, const QString &op
}
return found;
}
+
+/**
+ * Removes a stanza and all of its options
+ * @param stanza the stanza to remove
+ * @return bool true if successfull.
+ */
+bool Interfaces::removeStanza(QStringList::Iterator &stanza){
+ if(stanza == interfaces.end())
+ return false;
+ (*stanza) = "";
+ return removeAllOptions(stanza);
+}
+
/**
* Removes a option in a stanza
* @param start the start of the stanza
@@ -591,14 +594,14 @@ QString Interfaces::getOption(const QStringList::Iterator &start, const QString
}
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());
+ qDebug(QString("Interfaces: getOption 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)
+ if(space != -1){
value = line.mid(space+1, line.length());
- else
- qDebug(QString("Interfaces: Option %1 with no value").arg(option).latin1());
+ break;
+ }
}
}
error = !found;
diff --git a/noncore/net/networksetup/interfaces/interfaces.h b/noncore/net/networksetup/interfaces/interfaces.h
index 26abb73..5a8feb6 100644
--- a/noncore/net/networksetup/interfaces/interfaces.h
+++ b/noncore/net/networksetup/interfaces/interfaces.h
@@ -28,7 +28,7 @@ public:
bool isAuto(const QString &interface);
bool setAuto(const QString &interface, bool setAuto);
- bool removeInterface();
+ inline bool removeInterface();
bool addInterface(const QString &interface, const QString &family, const QString &method);
bool copyInterface(const QString &oldInterface, const QString &newInterface);
bool setInterface(QString interface);
@@ -45,7 +45,7 @@ public:
inline bool removeAllInterfaceOptions();
bool setMapping(const QString &interface);
- bool removeMapping();
+ inline bool removeMapping();
inline void addMapping(const QString &options);
inline bool setMap(const QString &map, const QString &value);
inline bool removeMap(const QString &map, const QString &value);
@@ -60,6 +60,7 @@ private:
bool setOption(const QStringList::Iterator &start, const QString &option, const QString &value);
bool removeOption(const QStringList::Iterator &start, const QString &option, const QString &value);
QString getOption(const QStringList::Iterator &start, const QString &option, bool &error);
+ bool removeStanza(QStringList::Iterator &stanza);
bool removeAllOptions(const QStringList::Iterator &start);
QString interfacesFile;
diff --git a/noncore/net/networksetup/interfaces/interfacesetupimp.cpp b/noncore/net/networksetup/interfaces/interfacesetupimp.cpp
index 3b1a4de..4818e37 100644
--- a/noncore/net/networksetup/interfaces/interfacesetupimp.cpp
+++ b/noncore/net/networksetup/interfaces/interfacesetupimp.cpp
@@ -1,9 +1,6 @@
#include "interfacesetupimp.h"
#include "interface.h"
-#include "interfaces.h"
-#include <qdialog.h>
-#include <qcombobox.h>
#include <qcheckbox.h>
#include <qlineedit.h>
#include <qspinbox.h>
@@ -12,25 +9,12 @@
#include <qmessagebox.h>
-#include <assert.h>
-
#define DNSSCRIPT "changedns"
/**
- * Constuctor. Set up the connection and load the first profile.
+ * Constuctor. Set up the connection. A profile must be set.
*/
-InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, WFlags fl) : InterfaceSetup(parent, name, fl){
- assert(parent);
- assert(i);
- interface = i;
- interfaces = new Interfaces();
- bool error = false;
- if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
- staticGroupBox->hide();
- dhcpCheckBox->hide();
- leaseTime->hide();
- leaseHoursLabel->hide();
- }
+InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, WFlags fl) : InterfaceSetup(parent, name, fl), interface(i){
}
/**
@@ -39,7 +23,7 @@ InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interfac
bool InterfaceSetupImp::saveChanges(){
if(!saveSettings())
return false;
- interfaces->write();
+ interfaces.write();
return true;
}
@@ -49,13 +33,13 @@ bool InterfaceSetupImp::saveChanges(){
*/
bool InterfaceSetupImp::saveSettings(){
// eh can't really do anything about it other then return. :-D
- if(!interfaces->isInterfaceSet())
+ if(!interfaces.isInterfaceSet())
return true;
bool error = false;
// Loopback case
- if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
- interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
+ if(interfaces.getInterfaceMethod(error) == INTERFACES_LOOPBACK){
+ interfaces.setAuto(interface->getInterfaceName(), autoStart->isChecked());
return true;
}
@@ -63,59 +47,68 @@ bool InterfaceSetupImp::saveSettings(){
QMessageBox::information(this, "Not Saved.", "Please fill in the IP address and\n subnet entries.", QMessageBox::Ok);
return false;
}
- interfaces->removeAllInterfaceOptions();
+ 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));
+ 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());
+ interfaces.setInterfaceMethod("static");
+ interfaces.setInterfaceOption("address", ipAddressEdit->text());
+ interfaces.setInterfaceOption("netmask", subnetMaskEdit->text());
+ interfaces.setInterfaceOption("gateway", gatewayEdit->text());
if(!firstDNSLineEdit->text().isEmpty() || !secondDNSLineEdit->text().isEmpty()){
QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text();
- interfaces->setInterfaceOption("up "DNSSCRIPT" -a ", dns);
- interfaces->setInterfaceOption("down "DNSSCRIPT" -r ", dns);
+ interfaces.setInterfaceOption("up "DNSSCRIPT" -a ", dns);
+ interfaces.setInterfaceOption("down "DNSSCRIPT" -r ", dns);
}
}
// IP Information
- interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
+ interfaces.setAuto(interface->getInterfaceName(), autoStart->isChecked());
return true;
}
/**
* The Profile has changed.
- * @profile the new profile.
+ * @param QString profile the new profile.
*/
void InterfaceSetupImp::setProfile(const QString &profile){
+ /*
+ bool error = false;
+ if(interfaces.getInterfaceMethod(error) == INTERFACES_LOOPBACK){
+ staticGroupBox->hide();
+ dhcpCheckBox->hide();
+ leaseTime->hide();
+ leaseHoursLabel->hide();
+ }
+ */
+
QString newInterfaceName = interface->getInterfaceName();
if(profile.length() > 0)
newInterfaceName += "_" + profile;
- qDebug("InterfaceSetupImp::setProfile");
// See if we have to make a interface.
- if(!interfaces->setInterface(newInterfaceName)){
+ 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.");
+ 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 setInterface.");
return;
}
}
- interfaces->setMap("map", newInterfaceName);
- interfaces->setScript("getprofile.sh");
+ 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.");
+ interfaces.addInterface(newInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP);
+ if(!interfaces.setInterface(newInterfaceName)){
+ qDebug("InterfaceSetupImp: Added interface, but still can't setInterface.");
return;
}
}
@@ -125,28 +118,28 @@ void InterfaceSetupImp::setProfile(const QString &profile){
// DHCP
bool error = false;
- if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP)
+ if(interfaces.getInterfaceMethod(error) == INTERFACES_METHOD_DHCP)
dhcpCheckBox->setChecked(true);
else
dhcpCheckBox->setChecked(false);
- leaseTime->setValue(interfaces->getInterfaceOption("leasehours", error).toInt());
+ leaseTime->setValue(interfaces.getInterfaceOption("leasehours", error).toInt());
if(error)
- leaseTime->setValue(interfaces->getInterfaceOption("leasetime", error).toInt()/60/60);
+ 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 "DNSSCRIPT" -a", error);
+ autoStart->setChecked(interfaces.isAuto(interface->getInterfaceName()));
+ QString dns = interfaces.getInterfaceOption("up "DNSSCRIPT" -a", 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));
-}
+ 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/interfaces/interfacesetupimp.h b/noncore/net/networksetup/interfaces/interfacesetupimp.h
index 60933aa..9ec526c 100644
--- a/noncore/net/networksetup/interfaces/interfacesetupimp.h
+++ b/noncore/net/networksetup/interfaces/interfacesetupimp.h
@@ -2,10 +2,10 @@
#define INTERFACESETUPIMP_H
#include "interfacesetup.h"
+#include "interfaces.h"
#include <qdialog.h>
class Interface;
-class Interfaces;
class InterfaceSetupImp : public InterfaceSetup {
Q_OBJECT
@@ -19,7 +19,7 @@ public slots:
bool saveSettings();
private:
- Interfaces *interfaces;
+ Interfaces interfaces;
Interface *interface;
};
diff --git a/noncore/settings/networksettings/interfaces/interfaces.cpp b/noncore/settings/networksettings/interfaces/interfaces.cpp
index 708f399..e49998e 100644
--- a/noncore/settings/networksettings/interfaces/interfaces.cpp
+++ b/noncore/settings/networksettings/interfaces/interfaces.cpp
@@ -4,6 +4,7 @@
#include <qtextstream.h>
#include <qregexp.h>
+// The three stanza's
#define AUTO "auto"
#define IFACE "iface"
#define MAPPING "mapping"
@@ -102,13 +103,12 @@ bool Interfaces::setAuto(const QString &interface, bool setAuto){
changed = true;
break;
}
+ // else see if we need to remove from this one
else{
if((*it).contains(interface)){
(*it) = (*it).replace(QRegExp(interface), "");
- // clean up
- QString line = (*it).simplifyWhiteSpace();
- line = line.replace(QRegExp(" "),"");
- if(line == AUTO)
+ // if AUTO is the only thing left clear the line
+ if(((*it).simplifyWhiteSpace()).replace(QRegExp(" "),"") == AUTO)
(*it) = "";
changed = true;
// Don't break because we want to make sure we remove all cases.
@@ -116,13 +116,9 @@ bool Interfaces::setAuto(const QString &interface, bool setAuto){
}
}
}
- 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());
- }
- }
+ // In the case where there is no AUTO field add one.
+ if(!changed && setAuto)
+ interfaces.append(QString(AUTO" %1").arg(interface));
return true;
}
@@ -157,7 +153,7 @@ bool Interfaces::isInterfaceSet(){
* @return true if successfull.
*/
bool Interfaces::addInterface(const QString &interface, const QString &family, const QString &method){
- if(acceptedFamily.contains(family)==0)
+ if(0 == acceptedFamily.contains(family))
return false;
QString newInterface = interface.simplifyWhiteSpace();
newInterface = newInterface.replace(QRegExp(" "), "");
@@ -172,17 +168,23 @@ bool Interfaces::addInterface(const QString &interface, const QString &family, c
* @return bool true if successfull
*/
bool Interfaces::copyInterface(const QString &interface, const QString &newInterface){
- if(!setInterface(interface)) return false;
-
+ if(!setInterface(interface))
+ return false;
+
+ // Store the old interface and bump past the stanza line.
QStringList::Iterator it = currentIface;
it++;
+ // Add the new interface
bool error;
addInterface(newInterface, getInterfaceFamily(error), getInterfaceMethod(error));
- if(!setInterface(newInterface)) return false;
+ if(!setInterface(newInterface))
+ return false;
+
QStringList::Iterator newIface = currentIface;
newIface++;
-
+
+ // Copy all of the lines
for ( ; it != interfaces.end(); ++it ){
if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)))
break;
@@ -197,10 +199,7 @@ bool Interfaces::copyInterface(const QString &interface, const QString &newInter
* @return bool if successfull or not.
*/
bool Interfaces::removeInterface(){
- if(currentIface == interfaces.end())
- return false;
- (*currentIface) = "";
- return removeAllInterfaceOptions();
+ return removeStanza(currentIface);
}
/**
@@ -232,10 +231,8 @@ QString Interfaces::getInterfaceName(bool &error){
*/
QString Interfaces::getInterfaceFamily(bool &error){
QString name = getInterfaceName(error);
- if(error){
- error = true;
+ if(error)
return QString();
- }
QString line = (*currentIface);
line = line.mid(QString(IFACE).length() +1, line.length());
line = line.mid(name.length()+1, line.length());
@@ -257,15 +254,11 @@ QString Interfaces::getInterfaceFamily(bool &error){
*/
QString Interfaces::getInterfaceMethod(bool &error){
QString name = getInterfaceName(error);
- if(error){
- error = true;
+ if(error)
return QString();
- }
QString family = getInterfaceFamily(error);
- if(error){
- error = true;
+ if(error)
return QString();
- }
QString line = (*currentIface);
line = line.mid(QString(IFACE).length()+1, line.length());
line = line.mid(name.length()+1, line.length());
@@ -391,10 +384,7 @@ void Interfaces::addMapping(const QString &option){
* @return bool if successfull or not.
*/
bool Interfaces::removeMapping(){
- if(currentMapping == interfaces.end())
- return false;
- (*currentMapping) = "";
- return removeAllOptions(currentMapping);
+ return removeStanza(currentMapping);
}
/**
@@ -520,6 +510,19 @@ bool Interfaces::setOption(const QStringList::Iterator &start, const QString &op
}
return found;
}
+
+/**
+ * Removes a stanza and all of its options
+ * @param stanza the stanza to remove
+ * @return bool true if successfull.
+ */
+bool Interfaces::removeStanza(QStringList::Iterator &stanza){
+ if(stanza == interfaces.end())
+ return false;
+ (*stanza) = "";
+ return removeAllOptions(stanza);
+}
+
/**
* Removes a option in a stanza
* @param start the start of the stanza
@@ -591,14 +594,14 @@ QString Interfaces::getOption(const QStringList::Iterator &start, const QString
}
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());
+ qDebug(QString("Interfaces: getOption 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)
+ if(space != -1){
value = line.mid(space+1, line.length());
- else
- qDebug(QString("Interfaces: Option %1 with no value").arg(option).latin1());
+ break;
+ }
}
}
error = !found;
diff --git a/noncore/settings/networksettings/interfaces/interfaces.h b/noncore/settings/networksettings/interfaces/interfaces.h
index 26abb73..5a8feb6 100644
--- a/noncore/settings/networksettings/interfaces/interfaces.h
+++ b/noncore/settings/networksettings/interfaces/interfaces.h
@@ -28,7 +28,7 @@ public:
bool isAuto(const QString &interface);
bool setAuto(const QString &interface, bool setAuto);
- bool removeInterface();
+ inline bool removeInterface();
bool addInterface(const QString &interface, const QString &family, const QString &method);
bool copyInterface(const QString &oldInterface, const QString &newInterface);
bool setInterface(QString interface);
@@ -45,7 +45,7 @@ public:
inline bool removeAllInterfaceOptions();
bool setMapping(const QString &interface);
- bool removeMapping();
+ inline bool removeMapping();
inline void addMapping(const QString &options);
inline bool setMap(const QString &map, const QString &value);
inline bool removeMap(const QString &map, const QString &value);
@@ -60,6 +60,7 @@ private:
bool setOption(const QStringList::Iterator &start, const QString &option, const QString &value);
bool removeOption(const QStringList::Iterator &start, const QString &option, const QString &value);
QString getOption(const QStringList::Iterator &start, const QString &option, bool &error);
+ bool removeStanza(QStringList::Iterator &stanza);
bool removeAllOptions(const QStringList::Iterator &start);
QString interfacesFile;
diff --git a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp
index 3b1a4de..4818e37 100644
--- a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp
+++ b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp
@@ -1,9 +1,6 @@
#include "interfacesetupimp.h"
#include "interface.h"
-#include "interfaces.h"
-#include <qdialog.h>
-#include <qcombobox.h>
#include <qcheckbox.h>
#include <qlineedit.h>
#include <qspinbox.h>
@@ -12,25 +9,12 @@
#include <qmessagebox.h>
-#include <assert.h>
-
#define DNSSCRIPT "changedns"
/**
- * Constuctor. Set up the connection and load the first profile.
+ * Constuctor. Set up the connection. A profile must be set.
*/
-InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, WFlags fl) : InterfaceSetup(parent, name, fl){
- assert(parent);
- assert(i);
- interface = i;
- interfaces = new Interfaces();
- bool error = false;
- if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
- staticGroupBox->hide();
- dhcpCheckBox->hide();
- leaseTime->hide();
- leaseHoursLabel->hide();
- }
+InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interface *i, WFlags fl) : InterfaceSetup(parent, name, fl), interface(i){
}
/**
@@ -39,7 +23,7 @@ InterfaceSetupImp::InterfaceSetupImp(QWidget* parent, const char* name, Interfac
bool InterfaceSetupImp::saveChanges(){
if(!saveSettings())
return false;
- interfaces->write();
+ interfaces.write();
return true;
}
@@ -49,13 +33,13 @@ bool InterfaceSetupImp::saveChanges(){
*/
bool InterfaceSetupImp::saveSettings(){
// eh can't really do anything about it other then return. :-D
- if(!interfaces->isInterfaceSet())
+ if(!interfaces.isInterfaceSet())
return true;
bool error = false;
// Loopback case
- if(interfaces->getInterfaceMethod(error) == INTERFACES_LOOPBACK){
- interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
+ if(interfaces.getInterfaceMethod(error) == INTERFACES_LOOPBACK){
+ interfaces.setAuto(interface->getInterfaceName(), autoStart->isChecked());
return true;
}
@@ -63,59 +47,68 @@ bool InterfaceSetupImp::saveSettings(){
QMessageBox::information(this, "Not Saved.", "Please fill in the IP address and\n subnet entries.", QMessageBox::Ok);
return false;
}
- interfaces->removeAllInterfaceOptions();
+ 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));
+ 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());
+ interfaces.setInterfaceMethod("static");
+ interfaces.setInterfaceOption("address", ipAddressEdit->text());
+ interfaces.setInterfaceOption("netmask", subnetMaskEdit->text());
+ interfaces.setInterfaceOption("gateway", gatewayEdit->text());
if(!firstDNSLineEdit->text().isEmpty() || !secondDNSLineEdit->text().isEmpty()){
QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text();
- interfaces->setInterfaceOption("up "DNSSCRIPT" -a ", dns);
- interfaces->setInterfaceOption("down "DNSSCRIPT" -r ", dns);
+ interfaces.setInterfaceOption("up "DNSSCRIPT" -a ", dns);
+ interfaces.setInterfaceOption("down "DNSSCRIPT" -r ", dns);
}
}
// IP Information
- interfaces->setAuto(interface->getInterfaceName(), autoStart->isChecked());
+ interfaces.setAuto(interface->getInterfaceName(), autoStart->isChecked());
return true;
}
/**
* The Profile has changed.
- * @profile the new profile.
+ * @param QString profile the new profile.
*/
void InterfaceSetupImp::setProfile(const QString &profile){
+ /*
+ bool error = false;
+ if(interfaces.getInterfaceMethod(error) == INTERFACES_LOOPBACK){
+ staticGroupBox->hide();
+ dhcpCheckBox->hide();
+ leaseTime->hide();
+ leaseHoursLabel->hide();
+ }
+ */
+
QString newInterfaceName = interface->getInterfaceName();
if(profile.length() > 0)
newInterfaceName += "_" + profile;
- qDebug("InterfaceSetupImp::setProfile");
// See if we have to make a interface.
- if(!interfaces->setInterface(newInterfaceName)){
+ 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.");
+ 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 setInterface.");
return;
}
}
- interfaces->setMap("map", newInterfaceName);
- interfaces->setScript("getprofile.sh");
+ 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.");
+ interfaces.addInterface(newInterfaceName, INTERFACES_FAMILY_INET, INTERFACES_METHOD_DHCP);
+ if(!interfaces.setInterface(newInterfaceName)){
+ qDebug("InterfaceSetupImp: Added interface, but still can't setInterface.");
return;
}
}
@@ -125,28 +118,28 @@ void InterfaceSetupImp::setProfile(const QString &profile){
// DHCP
bool error = false;
- if(interfaces->getInterfaceMethod(error) == INTERFACES_METHOD_DHCP)
+ if(interfaces.getInterfaceMethod(error) == INTERFACES_METHOD_DHCP)
dhcpCheckBox->setChecked(true);
else
dhcpCheckBox->setChecked(false);
- leaseTime->setValue(interfaces->getInterfaceOption("leasehours", error).toInt());
+ leaseTime->setValue(interfaces.getInterfaceOption("leasehours", error).toInt());
if(error)
- leaseTime->setValue(interfaces->getInterfaceOption("leasetime", error).toInt()/60/60);
+ 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 "DNSSCRIPT" -a", error);
+ autoStart->setChecked(interfaces.isAuto(interface->getInterfaceName()));
+ QString dns = interfaces.getInterfaceOption("up "DNSSCRIPT" -a", 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));
-}
+ 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/interfaces/interfacesetupimp.h b/noncore/settings/networksettings/interfaces/interfacesetupimp.h
index 60933aa..9ec526c 100644
--- a/noncore/settings/networksettings/interfaces/interfacesetupimp.h
+++ b/noncore/settings/networksettings/interfaces/interfacesetupimp.h
@@ -2,10 +2,10 @@
#define INTERFACESETUPIMP_H
#include "interfacesetup.h"
+#include "interfaces.h"
#include <qdialog.h>
class Interface;
-class Interfaces;
class InterfaceSetupImp : public InterfaceSetup {
Q_OBJECT
@@ -19,7 +19,7 @@ public slots:
bool saveSettings();
private:
- Interfaces *interfaces;
+ Interfaces interfaces;
Interface *interface;
};