summaryrefslogtreecommitdiff
path: root/noncore/settings
authorbenmeyer <benmeyer>2002-10-18 16:27:02 (UTC)
committer benmeyer <benmeyer>2002-10-18 16:27:02 (UTC)
commit12851a09a2761ca6e189f080e9ca69bf4974302f (patch) (unidiff)
tree1b9a368fc5e424d4bf60f4c582b87b23a975c26a /noncore/settings
parent47e60a8dc20f46dd00b9405f7fde122792018627 (diff)
downloadopie-12851a09a2761ca6e189f080e9ca69bf4974302f.zip
opie-12851a09a2761ca6e189f080e9ca69bf4974302f.tar.gz
opie-12851a09a2761ca6e189f080e9ca69bf4974302f.tar.bz2
Can now remove mapping and is done so automagicly when you delete a profile
Diffstat (limited to 'noncore/settings') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings/interfaces.cpp64
-rw-r--r--noncore/settings/networksettings/interfaces.h4
-rw-r--r--noncore/settings/networksettings/interfacesetupimp.cpp1
-rw-r--r--noncore/settings/networksettings/mainwindowimp.cpp38
-rw-r--r--noncore/settings/networksettings/mainwindowimp.h1
5 files changed, 93 insertions, 15 deletions
diff --git a/noncore/settings/networksettings/interfaces.cpp b/noncore/settings/networksettings/interfaces.cpp
index 0927258..9155890 100644
--- a/noncore/settings/networksettings/interfaces.cpp
+++ b/noncore/settings/networksettings/interfaces.cpp
@@ -335,8 +335,7 @@ QString Interfaces::getInterfaceOption(QString option, bool &error){
335 335
336/** 336/**
337 * Set a value for an option in the currently selected interface. If option 337 * Set a value for an option in the currently selected interface. If option
338 * doesn't exist then it is added along with the value. If value is set to an 338 * doesn't exist then it is added along with the value.
339 * empty string then option is removed.
340 * @param option the options to set the value. 339 * @param option the options to set the value.
341 * @param value the value that option should be set to. 340 * @param value the value that option should be set to.
342 * @param error set to true if any error occurs, false otherwise. 341 * @param error set to true if any error occurs, false otherwise.
@@ -347,6 +346,17 @@ bool Interfaces::setInterfaceOption(QString option, QString value){
347} 346}
348 347
349/** 348/**
349 * Removes a value for an option in the currently selected interface.
350 * @param option the options to set the value.
351 * @param value the value that option should be set to.
352 * @param error set to true if any error occurs, false otherwise.
353 * @return QString the options value. QString::null if error == true
354 */
355bool Interfaces::removeInterfaceOption(QString option, QString value){
356 return removeOption(currentIface, option, value);
357}
358
359/**
350 * Removes all of the options from the currently selected interface. 360 * Removes all of the options from the currently selected interface.
351 * @return bool error if if successfull 361 * @return bool error if if successfull
352 */ 362 */
@@ -377,6 +387,17 @@ void Interfaces::addMapping(QString option){
377} 387}
378 388
379/** 389/**
390 * Remove the currently selected map and all of its options.
391 * @return bool if successfull or not.
392 */
393bool Interfaces::removeMapping(){
394 if(currentMapping == interfaces.end())
395 return false;
396 (*currentMapping) = "";
397 return removeAllOptions(currentMapping);
398}
399
400/**
380 * Set a map option within a mapping. 401 * Set a map option within a mapping.
381 * @param map map to use 402 * @param map map to use
382 * @param value value to go with map 403 * @param value value to go with map
@@ -387,6 +408,16 @@ bool Interfaces::setMap(QString map, QString value){
387} 408}
388 409
389/** 410/**
411 * Removes a map option within a mapping.
412 * @param map map to use
413 * @param value value to go with map
414 * @return bool true if it is successfull.
415 */
416bool Interfaces::removeMap(QString map, QString value){
417 return removeOption(currentMapping, map, value);
418}
419
420/**
390 * Get a map value within a mapping. 421 * Get a map value within a mapping.
391 * @param map map to get value of 422 * @param map map to get value of
392 * @param bool true if it is successfull. 423 * @param bool true if it is successfull.
@@ -477,9 +508,6 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
477 if(found) 508 if(found)
478 qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1()); 509 qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1());
479 found = true; 510 found = true;
480 if(value == "")
481 (*it) = "";
482 else
483 (*it) = QString("\t%1 %2").arg(option).arg(value); 511 (*it) = QString("\t%1 %2").arg(option).arg(value);
484 } 512 }
485 } 513 }
@@ -490,6 +518,32 @@ bool Interfaces::setOption(QStringList::Iterator start, QString option, QString
490 } 518 }
491 return found; 519 return found;
492} 520}
521/**
522 * Removes a option in a stanza
523 * @param start the start of the stanza
524 * @param option the option to use when setting value.
525 * @return bool true if successfull, false otherwise.
526 */
527bool Interfaces::removeOption(QStringList::Iterator start, QString option, QString value){
528 if(start == interfaces.end())
529 return false;
530
531 bool found = false;
532 for ( QStringList::Iterator it = start; it != interfaces.end(); ++it ) {
533 if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)) && it != start){
534 // got to the end without finding it
535 break;
536 }
537 if((*it).contains(option) && (*it).contains(value) &&it != start){
538 // Found it in stanza so replace it.
539 if(found)
540 qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1());
541 found = true;
542 (*it) = "";
543 }
544 }
545 return found;
546}
493 547
494/** 548/**
495 * Removes all options in a stanza 549 * Removes all options in a stanza
diff --git a/noncore/settings/networksettings/interfaces.h b/noncore/settings/networksettings/interfaces.h
index 7cf04f0..e09ea71 100644
--- a/noncore/settings/networksettings/interfaces.h
+++ b/noncore/settings/networksettings/interfaces.h
@@ -41,11 +41,14 @@ public:
41 bool setInterfaceMethod(QString newName); 41 bool setInterfaceMethod(QString newName);
42 QString getInterfaceOption(QString option, bool &error); 42 QString getInterfaceOption(QString option, bool &error);
43 bool setInterfaceOption(QString option, QString value); 43 bool setInterfaceOption(QString option, QString value);
44 bool removeInterfaceOption(QString option, QString value);
44 bool removeAllInterfaceOptions(); 45 bool removeAllInterfaceOptions();
45 46
46 bool setMapping(QString interface); 47 bool setMapping(QString interface);
48 bool removeMapping();
47 void addMapping(QString options); 49 void addMapping(QString options);
48 bool setMap(QString map, QString value); 50 bool setMap(QString map, QString value);
51 bool removeMap(QString map, QString value);
49 QString getMap(QString map, bool &error); 52 QString getMap(QString map, bool &error);
50 bool setScript(QString); 53 bool setScript(QString);
51 QString getScript(bool &error); 54 QString getScript(bool &error);
@@ -55,6 +58,7 @@ public:
55private: 58private:
56 bool setStanza(QString stanza, QString option,QStringList::Iterator &iterator); 59 bool setStanza(QString stanza, QString option,QStringList::Iterator &iterator);
57 bool setOption(QStringList::Iterator start, QString option, QString value); 60 bool setOption(QStringList::Iterator start, QString option, QString value);
61 bool removeOption(QStringList::Iterator start, QString option, QString value);
58 QString getOption(QStringList::Iterator start, QString option, bool &error); 62 QString getOption(QStringList::Iterator start, QString option, bool &error);
59 bool removeAllOptions(QStringList::Iterator start); 63 bool removeAllOptions(QStringList::Iterator start);
60 64
diff --git a/noncore/settings/networksettings/interfacesetupimp.cpp b/noncore/settings/networksettings/interfacesetupimp.cpp
index bdbdfde..1327726 100644
--- a/noncore/settings/networksettings/interfacesetupimp.cpp
+++ b/noncore/settings/networksettings/interfacesetupimp.cpp
@@ -92,7 +92,6 @@ void InterfaceSetupImp::setProfile(const QString &profile){
92 QString newInterfaceName = interface->getInterfaceName(); 92 QString newInterfaceName = interface->getInterfaceName();
93 if(profile.length() > 0) 93 if(profile.length() > 0)
94 newInterfaceName += "_" + profile; 94 newInterfaceName += "_" + profile;
95 qDebug( newInterfaceName.latin1());
96 // See if we have to make a interface. 95 // See if we have to make a interface.
97 if(!interfaces->setInterface(newInterfaceName)){ 96 if(!interfaces->setInterface(newInterfaceName)){
98 // Add making for this new interface if need too 97 // Add making for this new interface if need too
diff --git a/noncore/settings/networksettings/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindowimp.cpp
index 9f07f0d..01063c2 100644
--- a/noncore/settings/networksettings/mainwindowimp.cpp
+++ b/noncore/settings/networksettings/mainwindowimp.cpp
@@ -32,7 +32,8 @@
32#define TEMP_ALL "/tmp/ifconfig-a" 32#define TEMP_ALL "/tmp/ifconfig-a"
33#define TEMP_UP "/tmp/ifconfig" 33#define TEMP_UP "/tmp/ifconfig"
34 34
35#define SCHEME "/var/lib/pcmcia/scheme" 35#define DEFAULT_SCHEME "/var/lib/pcmcia/scheme"
36
36MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true), advancedUserMode(false){ 37MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, true), advancedUserMode(false){
37 connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked())); 38 connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked()));
38 connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked())); 39 connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked()));
@@ -56,8 +57,9 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
56 profilesList->insertItem((*it)); 57 profilesList->insertItem((*it));
57 currentProfileLabel->setText(cfg.readEntry("CurrentProfile", "All")); 58 currentProfileLabel->setText(cfg.readEntry("CurrentProfile", "All"));
58 advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false); 59 advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false);
60 scheme = cfg.readEntry("SchemeFile", DEFAULT_SCHEME);
59 61
60 QFile file(SCHEME); 62 QFile file(scheme);
61 if ( file.open(IO_ReadOnly) ) { // file opened successfully 63 if ( file.open(IO_ReadOnly) ) { // file opened successfully
62 QTextStream stream( &file ); // use a text stream 64 QTextStream stream( &file ); // use a text stream
63 while ( !stream.eof() ) { // until end of file... 65 while ( !stream.eof() ) { // until end of file...
@@ -95,7 +97,7 @@ MainWindowImp::~MainWindowImp(){
95 * and attempts to load them 97 * and attempts to load them
96 */ 98 */
97void MainWindowImp::loadModules(QString path){ 99void MainWindowImp::loadModules(QString path){
98 qDebug(path.latin1()); 100 //qDebug(path.latin1());
99 QDir d(path); 101 QDir d(path);
100 if(!d.exists()) 102 if(!d.exists())
101 return; 103 return;
@@ -120,7 +122,7 @@ void MainWindowImp::loadModules(QString path){
120 * @return pointer to the function with name resolveString or NULL 122 * @return pointer to the function with name resolveString or NULL
121 */ 123 */
122Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString){ 124Module* MainWindowImp::loadPlugin(QString pluginFileName, QString resolveString){
123 qDebug(QString("MainWindowImp::loadPlugin: %1").arg(pluginFileName).latin1()); 125 //qDebug(QString("MainWindowImp::loadPlugin: %1").arg(pluginFileName).latin1());
124 QLibrary *lib = new QLibrary(pluginFileName); 126 QLibrary *lib = new QLibrary(pluginFileName);
125 void *functionPointer = lib->resolve(resolveString); 127 void *functionPointer = lib->resolve(resolveString);
126 if( !functionPointer ){ 128 if( !functionPointer ){
@@ -490,10 +492,28 @@ void MainWindowImp::removeProfile(){
490 profilesList->clear(); 492 profilesList->clear();
491 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it) 493 for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
492 profilesList->insertItem((*it)); 494 profilesList->insertItem((*it));
493 }
494 495
495 // Remove any interface settings and mappings. 496 // Remove any interface settings and mappings.
496 //TODO 497 Interfaces interfaces;
498 // Go through them one by one
499 QMap<Interface*, QListViewItem*>::Iterator it;
500 for( it = items.begin(); it != items.end(); ++it ){
501 QString interfaceName = it.key()->getInterfaceName();
502 qDebug(interfaceName.latin1());
503 if(interfaces.setInterface(interfaceName + "_" + profileToRemove)){
504 interfaces.removeInterface();
505 if(interfaces.setMapping(interfaceName)){
506 if(profilesList->count() == 1)
507 interfaces.removeMapping();
508 else{
509 interfaces.removeMap("map", interfaceName + "_" + profileToRemove);
510 }
511 }
512 interfaces.write();
513 break;
514 }
515 }
516 }
497} 517}
498 518
499/** 519/**
@@ -508,8 +528,8 @@ void MainWindowImp::changeProfile(){
508 QString newProfile = profilesList->text(profilesList->currentItem()); 528 QString newProfile = profilesList->text(profilesList->currentItem());
509 if(newProfile != currentProfileLabel->text()){ 529 if(newProfile != currentProfileLabel->text()){
510 currentProfileLabel->setText(newProfile); 530 currentProfileLabel->setText(newProfile);
511 QFile::remove(SCHEME); 531 QFile::remove(scheme);
512 QFile file(SCHEME); 532 QFile file(scheme);
513 if ( file.open(IO_ReadWrite) ) { 533 if ( file.open(IO_ReadWrite) ) {
514 QTextStream stream( &file ); 534 QTextStream stream( &file );
515 stream << QString("SCHEME=%1").arg(newProfile); 535 stream << QString("SCHEME=%1").arg(newProfile);
diff --git a/noncore/settings/networksettings/mainwindowimp.h b/noncore/settings/networksettings/mainwindowimp.h
index c67c161..e5284b4 100644
--- a/noncore/settings/networksettings/mainwindowimp.h
+++ b/noncore/settings/networksettings/mainwindowimp.h
@@ -50,6 +50,7 @@ private:
50 QStringList profiles; 50 QStringList profiles;
51 51
52 bool advancedUserMode; 52 bool advancedUserMode;
53 QString scheme;
53}; 54};
54 55
55#endif 56#endif