summaryrefslogtreecommitdiff
path: root/noncore/settings/networksettings/wlan/wlanimp.cpp
Unidiff
Diffstat (limited to 'noncore/settings/networksettings/wlan/wlanimp.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings/wlan/wlanimp.cpp82
1 files changed, 37 insertions, 45 deletions
diff --git a/noncore/settings/networksettings/wlan/wlanimp.cpp b/noncore/settings/networksettings/wlan/wlanimp.cpp
index 87a9716..488911b 100644
--- a/noncore/settings/networksettings/wlan/wlanimp.cpp
+++ b/noncore/settings/networksettings/wlan/wlanimp.cpp
@@ -87,49 +87,38 @@ void WLANImp::parseSettingFile(){
87 } 87 }
88 else{ 88 else{
89 network802->setChecked( true ); 89 network802->setChecked( true );
90 networkInfrastructure->setChecked( false ); 90 networkInfrastructure->setChecked( false );
91 } 91 }
92 } 92 }
93 if(line.contains("KEY0="))
94 keyLineEdit0->setText(line.mid(5, line.length()));
95 if(line.contains("KEY1="))
96 keyLineEdit1->setText(line.mid(5, line.length()));
97 if(line.contains("KEY2="))
98 keyLineEdit2->setText(line.mid(5, line.length()));
99 if(line.contains("KEY3="))
100 keyLineEdit3->setText(line.mid(5, line.length()));
101
93 if(line.contains("KEY=")){ 102 if(line.contains("KEY=")){
94 line.at(0) != '#' ? wepEnabled->setChecked(true) : wepEnabled->setChecked(false); 103 wepEnabled->setChecked(true);
95 int s = line.find("KEY="); 104 QString key;
96 line = line.mid(s+4, line.length()); 105 if(line.right(5) == (" open")){
97 // Find first Key 106 key = line.mid(4, line.length()-5);
98 s = line.find("[1]");
99 if(s != -1){
100 keyLineEdit0->setText(line.mid(0, s));
101 line = line.mid(s+3, line.length());
102 }
103 s = line.find("[2]");
104 if(s != -1){
105 keyLineEdit1->setText(line.mid(0, s));
106 line = line.mid(s+3, line.length());
107 }
108 s = line.find("[3]");
109 if(s != -1){
110 keyLineEdit2->setText(line.mid(0, s));
111 line = line.mid(s+3, line.length());
112 }
113 s = line.find("[4]");
114 if(s != -1){
115 keyLineEdit3->setText(line.mid(0, s));
116 line = line.mid(s+3, line.length());
117 }
118 if(line.contains("key [1]")) keyRadio0->setChecked(true);
119 if(line.contains("key [2]")) keyRadio1->setChecked(true);
120 if(line.contains("key [3]")) keyRadio2->setChecked(true);
121 if(line.contains("key [4]")) keyRadio3->setChecked(true);
122 if(line.contains("open")){
123 authOpen->setChecked(true); 107 authOpen->setChecked(true);
124 authShared->setChecked(false); 108 authShared->setChecked(false);
125 } 109 }
126 else{ 110 else{
127 authOpen->setChecked(false); 111 authOpen->setChecked(false);
128 authShared->setChecked(true); 112 authShared->setChecked(true);
113 key = line.mid(4, line.length());
129 } 114 }
115 if(key == keyLineEdit0->text()) keyRadio0->setChecked(true);
116 if(key == keyLineEdit1->text()) keyRadio1->setChecked(true);
117 if(key == keyLineEdit2->text()) keyRadio2->setChecked(true);
118 if(key == keyLineEdit3->text()) keyRadio3->setChecked(true);
130 } 119 }
131 if(line.contains("CHANNEL=")){ 120 if(line.contains("CHANNEL=")){
132 networkChannel->setValue(line.mid(line.find("CHANNEL=")+8, line.length()).toInt()); 121 networkChannel->setValue(line.mid(line.find("CHANNEL=")+8, line.length()).toInt());
133 } 122 }
134 } 123 }
135 } 124 }
@@ -164,27 +153,28 @@ void WLANImp::changeAndSaveSettingFile(){
164 output = false; 153 output = false;
165 154
166 if(!line.contains("esac")) 155 if(!line.contains("esac"))
167 stream << line << "\n"; 156 stream << line << "\n";
168 157
169 stream << "\tESSID=" << (essNon->isChecked() == true ? QString("any") : essSpecificLineEdit->text()) << '\n'; 158 stream << "\tESSID=" << (essNon->isChecked() == true ? QString("any") : essSpecificLineEdit->text()) << '\n';
170 stream << "\tMODE=" << (networkInfrastructure->isChecked() == true ? "Managed" : "AdHoc") << '\n'; 159 stream << "\tMODE=" << (networkInfrastructure->isChecked() == true ? "Managed" : "ad-hoc") << '\n';
171 if(!wepEnabled->isChecked()) 160
172 stream << "#"; 161 stream << "\tKEY0=" << keyLineEdit0->text() << "\n";
173 stream << "\tKEY="; 162 stream << "\tKEY1=" << keyLineEdit1->text() << "\n";
174 stream << keyLineEdit0->text() << " [1]"; 163 stream << "\tKEY2=" << keyLineEdit2->text() << "\n";
175 stream << keyLineEdit1->text() << " [2]"; 164 stream << "\tKEY3=" << keyLineEdit3->text() << "\n";
176 stream << keyLineEdit2->text() << " [3]"; 165
177 stream << keyLineEdit3->text() << " [4]"; 166 if(wepEnabled->isChecked()){
178 stream << " key ["; 167 stream << "\tKEY=";
179 if(keyRadio0->isChecked()) stream << "1]"; 168 if(keyRadio0->isChecked()) stream << keyLineEdit0->text();
180 if(keyRadio1->isChecked()) stream << "2]"; 169 if(keyRadio1->isChecked()) stream << keyLineEdit1->text();
181 if(keyRadio2->isChecked()) stream << "3]"; 170 if(keyRadio2->isChecked()) stream << keyLineEdit2->text();
182 if(keyRadio3->isChecked()) stream << "4]"; 171 if(keyRadio3->isChecked()) stream << keyLineEdit3->text();
183 if(authOpen->isChecked()) stream << " open"; 172 if(authOpen->isChecked()) stream << " open";
184 stream << "\n"; 173 stream << "\n";
174 }
185 stream << "\tCHANNEL=" << networkChannel->value() << "\n"; 175 stream << "\tCHANNEL=" << networkChannel->value() << "\n";
186 stream << "\tRATE=auto\n"; 176 stream << "\tRATE=auto\n";
187 if(line.contains("esac")) 177 if(line.contains("esac"))
188 stream << line << "\n"; 178 stream << line << "\n";
189 } 179 }
190 if(line.contains(";;")) 180 if(line.contains(";;"))
@@ -211,13 +201,15 @@ void WLANImp::accept(){
211 // Ok settings are good here, save 201 // Ok settings are good here, save
212 changeAndSaveSettingFile(); 202 changeAndSaveSettingFile();
213 203
214 // Try to save the interfaces settings. 204 // Try to save the interfaces settings.
215 if(!interfaceSetup->saveChanges()) 205 if(!interfaceSetup->saveChanges())
216 return; 206 return;
217 207
208 QDialog::accept();
209 return;
218 // Restart the device now that the settings have changed 210 // Restart the device now that the settings have changed
219 QString initpath; 211 QString initpath;
220 if( QDir("/etc/rc.d/init.d").exists() ) 212 if( QDir("/etc/rc.d/init.d").exists() )
221 initpath = "/etc/rc.d/init.d"; 213 initpath = "/etc/rc.d/init.d";
222 else if( QDir("/etc/init.d").exists() ) 214 else if( QDir("/etc/init.d").exists() )
223 initpath = "/etc/init.d"; 215 initpath = "/etc/init.d";