6 files changed, 20 insertions, 16 deletions
diff --git a/noncore/net/networksetup/interfaces/interfacesetupimp.cpp b/noncore/net/networksetup/interfaces/interfacesetupimp.cpp index 550e909..a19aaeb 100644 --- a/noncore/net/networksetup/interfaces/interfacesetupimp.cpp +++ b/noncore/net/networksetup/interfaces/interfacesetupimp.cpp @@ -1,126 +1,127 @@ #include "interfacesetupimp.h" #include "interface.h" #include "interfaces.h" #include <qdialog.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 "changedns" /** * Constuctor. Set up the connection and load the first profile. */ 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(); } } /** * Save the current settings, then write out the interfaces file and close. */ -void InterfaceSetupImp::saveChanges(){ +bool InterfaceSetupImp::saveChanges(){ if(!saveSettings()) - return; + return false; interfaces->write(); + return true; } /** * 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())){ - QMessageBox::information(this, "Not Saved.", "Please fill in address, subnet,\n and gateway entries.", "Ok"); + QMessageBox::information(this, "Not Saved.", "Please fill in the IP address and\n subnet 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()); 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); } } // 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; qDebug("InterfaceSetupImp::setProfile"); // 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; diff --git a/noncore/net/networksetup/interfaces/interfacesetupimp.h b/noncore/net/networksetup/interfaces/interfacesetupimp.h index 3bbf34e..a88e190 100644 --- a/noncore/net/networksetup/interfaces/interfacesetupimp.h +++ b/noncore/net/networksetup/interfaces/interfacesetupimp.h @@ -1,55 +1,56 @@ #ifndef INTERFACESETUPIMP_H #define INTERFACESETUPIMP_H #include "interfacesetup.h" #include <qdialog.h> class Interface; class Interfaces; class InterfaceSetupImp : public InterfaceSetup { Q_OBJECT public: InterfaceSetupImp( QWidget* parent = 0, const char* name = 0, Interface *i=0, WFlags fl = 0); - void saveChanges(); + bool saveChanges(); public slots: void setProfile(const QString &profile); bool saveSettings(); + private: Interfaces *interfaces; Interface *interface; }; #include <qlayout.h> class InterfaceSetupImpDialog : public QDialog { Q_OBJECT public: InterfaceSetupImpDialog(QWidget* parent = 0, const char* name = 0, Interface *i=0, bool modal = false, WFlags fl = 0) : QDialog(parent, name, modal, fl){ QVBoxLayout *InterfaceSetupLayout = new QVBoxLayout( this ); setCaption("Interface Setup"); interfaceSetup = new InterfaceSetupImp(this, "InterfaceSetup",i,fl); InterfaceSetupLayout->addWidget( interfaceSetup ); }; void setProfile(QString &profile){ interfaceSetup->setProfile(profile);}; private: InterfaceSetupImp *interfaceSetup; protected slots: void accept(){ - interfaceSetup->saveChanges(); - QDialog::accept(); + if(interfaceSetup->saveChanges()) + QDialog::accept(); }; }; #endif // interfacesetupimp.h diff --git a/noncore/net/networksetup/wlan/wlanimp.cpp b/noncore/net/networksetup/wlan/wlanimp.cpp index 74bf390..01d7e36 100644 --- a/noncore/net/networksetup/wlan/wlanimp.cpp +++ b/noncore/net/networksetup/wlan/wlanimp.cpp @@ -60,130 +60,130 @@ void WLANImp::readConfig() 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 writeWirelessOpts( ); } /** */ void WLANImp::accept() { if ( writeConfig() ){ - interfaceSetup->saveChanges(); - QDialog::accept(); + if(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: diff --git a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp index 550e909..a19aaeb 100644 --- a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp +++ b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp @@ -1,126 +1,127 @@ #include "interfacesetupimp.h" #include "interface.h" #include "interfaces.h" #include <qdialog.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 "changedns" /** * Constuctor. Set up the connection and load the first profile. */ 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(); } } /** * Save the current settings, then write out the interfaces file and close. */ -void InterfaceSetupImp::saveChanges(){ +bool InterfaceSetupImp::saveChanges(){ if(!saveSettings()) - return; + return false; interfaces->write(); + return true; } /** * 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())){ - QMessageBox::information(this, "Not Saved.", "Please fill in address, subnet,\n and gateway entries.", "Ok"); + QMessageBox::information(this, "Not Saved.", "Please fill in the IP address and\n subnet 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()); 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); } } // 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; qDebug("InterfaceSetupImp::setProfile"); // 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; diff --git a/noncore/settings/networksettings/interfaces/interfacesetupimp.h b/noncore/settings/networksettings/interfaces/interfacesetupimp.h index 3bbf34e..a88e190 100644 --- a/noncore/settings/networksettings/interfaces/interfacesetupimp.h +++ b/noncore/settings/networksettings/interfaces/interfacesetupimp.h @@ -1,55 +1,56 @@ #ifndef INTERFACESETUPIMP_H #define INTERFACESETUPIMP_H #include "interfacesetup.h" #include <qdialog.h> class Interface; class Interfaces; class InterfaceSetupImp : public InterfaceSetup { Q_OBJECT public: InterfaceSetupImp( QWidget* parent = 0, const char* name = 0, Interface *i=0, WFlags fl = 0); - void saveChanges(); + bool saveChanges(); public slots: void setProfile(const QString &profile); bool saveSettings(); + private: Interfaces *interfaces; Interface *interface; }; #include <qlayout.h> class InterfaceSetupImpDialog : public QDialog { Q_OBJECT public: InterfaceSetupImpDialog(QWidget* parent = 0, const char* name = 0, Interface *i=0, bool modal = false, WFlags fl = 0) : QDialog(parent, name, modal, fl){ QVBoxLayout *InterfaceSetupLayout = new QVBoxLayout( this ); setCaption("Interface Setup"); interfaceSetup = new InterfaceSetupImp(this, "InterfaceSetup",i,fl); InterfaceSetupLayout->addWidget( interfaceSetup ); }; void setProfile(QString &profile){ interfaceSetup->setProfile(profile);}; private: InterfaceSetupImp *interfaceSetup; protected slots: void accept(){ - interfaceSetup->saveChanges(); - QDialog::accept(); + if(interfaceSetup->saveChanges()) + QDialog::accept(); }; }; #endif // interfacesetupimp.h diff --git a/noncore/settings/networksettings/wlan/wlanimp.cpp b/noncore/settings/networksettings/wlan/wlanimp.cpp index 74bf390..01d7e36 100644 --- a/noncore/settings/networksettings/wlan/wlanimp.cpp +++ b/noncore/settings/networksettings/wlan/wlanimp.cpp @@ -60,130 +60,130 @@ void WLANImp::readConfig() 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 writeWirelessOpts( ); } /** */ void WLANImp::accept() { if ( writeConfig() ){ - interfaceSetup->saveChanges(); - QDialog::accept(); + if(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: |