summaryrefslogtreecommitdiff
path: root/noncore/settings
authorzecke <zecke>2004-10-14 01:44:27 (UTC)
committer zecke <zecke>2004-10-14 01:44:27 (UTC)
commit474150327729d63706b89a54414ead68acd83fc9 (patch) (unidiff)
tree633f60754361699393e484c4ef774947f46aafa8 /noncore/settings
parenta1aed5edd5ccef77d79ccdd2d74f5c029d037617 (diff)
downloadopie-474150327729d63706b89a54414ead68acd83fc9.zip
opie-474150327729d63706b89a54414ead68acd83fc9.tar.gz
opie-474150327729d63706b89a54414ead68acd83fc9.tar.bz2
-FlowControl and LineTermination are saved and activated by numerical
value now. This makes it work across different translations -Switch code to use new PPPData::enter() and PPPData::flowcontrol()
Diffstat (limited to 'noncore/settings') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/networksettings/ppp/connect.cpp4
-rw-r--r--noncore/settings/networksettings/ppp/general.cpp34
-rw-r--r--noncore/settings/networksettings/ppp/general.h4
-rw-r--r--noncore/settings/networksettings/ppp/modem.cpp16
-rw-r--r--noncore/settings/networksettings/ppp/pppdata.cpp12
-rw-r--r--noncore/settings/networksettings/ppp/pppdata.h19
6 files changed, 45 insertions, 44 deletions
diff --git a/noncore/settings/networksettings/ppp/connect.cpp b/noncore/settings/networksettings/ppp/connect.cpp
index 128877a..8981e01 100644
--- a/noncore/settings/networksettings/ppp/connect.cpp
+++ b/noncore/settings/networksettings/ppp/connect.cpp
@@ -1212,14 +1212,14 @@ bool ConnectWidget::execppp() {
1212 command += _ifaceppp->data()->gateway(); 1212 command += _ifaceppp->data()->gateway();
1213 } 1213 }
1214 1214
1215 if(_ifaceppp->data()->subnetmask() != "0.0.0.0") 1215 if(_ifaceppp->data()->subnetmask() != "0.0.0.0")
1216 command += " netmask " + _ifaceppp->data()->subnetmask(); 1216 command += " netmask " + _ifaceppp->data()->subnetmask();
1217 1217
1218 if(_ifaceppp->data()->flowcontrol() != "None") { 1218 if(_ifaceppp->data()->flowcontrol() != PPPData::FlowNone) {
1219 if(_ifaceppp->data()->flowcontrol() == "CRTSCTS") 1219 if(_ifaceppp->data()->flowcontrol() == PPPData::FlowHardware)
1220 command += " crtscts"; 1220 command += " crtscts";
1221 else 1221 else
1222 command += " xonxoff"; 1222 command += " xonxoff";
1223 } 1223 }
1224 1224
1225 if(_ifaceppp->data()->defaultroute()) 1225 if(_ifaceppp->data()->defaultroute())
diff --git a/noncore/settings/networksettings/ppp/general.cpp b/noncore/settings/networksettings/ppp/general.cpp
index 5e2a04f..9457173 100644
--- a/noncore/settings/networksettings/ppp/general.cpp
+++ b/noncore/settings/networksettings/ppp/general.cpp
@@ -189,23 +189,16 @@ ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name )
189 "no more than 115200 bits/sec (unless you know\n" 189 "no more than 115200 bits/sec (unless you know\n"
190 "that your serial port supports higher speeds)."); 190 "that your serial port supports higher speeds).");
191 191
192 QWhatsThis::add(baud_label,tmp); 192 QWhatsThis::add(baud_label,tmp);
193 QWhatsThis::add(baud_c,tmp); 193 QWhatsThis::add(baud_c,tmp);
194 194
195 for(int i=0; i <= enter->count()-1; i++)
196 {
197 if(_pppdata->enter() == enter->text(i))
198 enter->setCurrentItem(i);
199 }
200
201 tl->addRowSpacing(5, 10); 195 tl->addRowSpacing(5, 10);
202 196
203 //Modem Lock File 197 //Modem Lock File
204 modemlockfile = new QCheckBox(tr("&Use lock file"), this); 198 modemlockfile = new QCheckBox(tr("&Use lock file"), this);
205
206 modemlockfile->setChecked(_pppdata->modemLockFile()); 199 modemlockfile->setChecked(_pppdata->modemLockFile());
207 // connect(modemlockfile, SIGNAL(toggled(bool)), 200 // connect(modemlockfile, SIGNAL(toggled(bool)),
208 // SLOT(modemlockfilechanged(bool))); 201 // SLOT(modemlockfilechanged(bool)));
209 tl->addMultiCellWidget(modemlockfile, 6, 6, 0, 1); 202 tl->addMultiCellWidget(modemlockfile, 6, 6, 0, 1);
210 // l12->addStretch(1); 203 // l12->addStretch(1);
211 QWhatsThis::add(modemlockfile, 204 QWhatsThis::add(modemlockfile,
@@ -237,30 +230,21 @@ ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name )
237 QWhatsThis::add(modemtimeout, 230 QWhatsThis::add(modemtimeout,
238 tr("This specifies how long <i>kppp</i> waits for a\n" 231 tr("This specifies how long <i>kppp</i> waits for a\n"
239 "<i>CONNECT</i> response from your modem. The\n" 232 "<i>CONNECT</i> response from your modem. The\n"
240 "recommended value is 30 seconds.")); 233 "recommended value is 30 seconds."));
241 234
242 //set stuff from gpppdata 235 //set stuff from gpppdata
243 for(int i=0; i <= enter->count()-1; i++) 236 enter->setCurrentItem( static_cast<int>(_pppdata->enter()) );
244 { 237 flowcontrol->setCurrentItem( static_cast<int>( _pppdata->flowcontrol() ) );
245 if(_pppdata->enter() == enter->text(i))
246 enter->setCurrentItem(i);
247 }
248 238
249 for(int i=0; i <= modemdevice->count()-1; i++) 239 for(int i=0; i <= modemdevice->count()-1; i++)
250 { 240 {
251 if(_pppdata->modemDevice() == modemdevice->text(i)) 241 if(_pppdata->modemDevice() == modemdevice->text(i))
252 modemdevice->setCurrentItem(i); 242 modemdevice->setCurrentItem(i);
253 } 243 }
254 244
255 for(int i=0; i <= flowcontrol->count()-1; i++)
256 {
257 if(_pppdata->flowcontrol() == flowcontrol->text(i))
258 flowcontrol->setCurrentItem(i);
259 }
260
261 //set the modem speed 245 //set the modem speed
262 for(int i=0; i < baud_c->count(); i++) 246 for(int i=0; i < baud_c->count(); i++)
263 if(baud_c->text(i) == _pppdata->speed()) 247 if(baud_c->text(i) == _pppdata->speed())
264 baud_c->setCurrentItem(i); 248 baud_c->setCurrentItem(i);
265 249
266 tl->setRowStretch(1, 1); 250 tl->setRowStretch(1, 1);
@@ -335,43 +319,45 @@ bool ModemWidget::save()
335 if(modemname->text().isEmpty() || 319 if(modemname->text().isEmpty() ||
336 !_pppdata->isUniqueDevname(modemname->text())) 320 !_pppdata->isUniqueDevname(modemname->text()))
337 return false; 321 return false;
338 322
339 _pppdata->setDevname( modemname->text() ); 323 _pppdata->setDevname( modemname->text() );
340 _pppdata->setModemDevice( modemdevice->currentText() ); 324 _pppdata->setModemDevice( modemdevice->currentText() );
341 _pppdata->setFlowcontrol(flowcontrol->currentText()); 325 _pppdata->setFlowcontrol(static_cast<PPPData::FlowControl>(flowcontrol->currentItem()));
342 _pppdata->setFlowcontrol(flowcontrol->currentText()); 326 _pppdata->setEnter( static_cast<PPPData::LineTermination>(enter->currentItem()));
343 _pppdata->setSpeed(baud_c->currentText()); 327 _pppdata->setSpeed(baud_c->currentText());
344 _pppdata->setModemLockFile( modemlockfile->isChecked()); 328 _pppdata->setModemLockFile( modemlockfile->isChecked());
345 _pppdata->setModemTimeout( modemtimeout->value() ); 329 _pppdata->setModemTimeout( modemtimeout->value() );
346 return true; 330 return true;
347 331
348} 332}
349 333
350void ModemWidget::slotBeforeModemQuery() 334void ModemWidget::slotBeforeModemQuery()
351{ 335{
352 m_oldModemDev = _pppdata->modemDevice(); 336 m_oldModemDev = _pppdata->modemDevice();
353 m_oldFlowControl = _pppdata->flowcontrol(); 337 m_oldFlowControl = static_cast<int>( _pppdata->flowcontrol() );
354 m_oldSpeed = _pppdata->speed(); 338 m_oldSpeed = _pppdata->speed();
355 m_oldModemLock = _pppdata->modemLockFile(); 339 m_oldModemLock = _pppdata->modemLockFile();
356 m_oldModemTimeout = _pppdata->modemTimeout(); 340 m_oldModemTimeout = _pppdata->modemTimeout();
341 m_oldLineEnd = static_cast<int>( _pppdata->enter() );
357 342
358 343
359 _pppdata->setModemDevice( modemdevice->currentText() ); 344 _pppdata->setModemDevice( modemdevice->currentText() );
360 _pppdata->setFlowcontrol(flowcontrol->currentText()); 345 _pppdata->setFlowcontrol(static_cast<PPPData::FlowControl>(flowcontrol->currentItem()));
361 _pppdata->setFlowcontrol(flowcontrol->currentText()); 346 _pppdata->setEnter(static_cast<PPPData::LineTermination>(enter->currentItem()));
362 _pppdata->setSpeed(baud_c->currentText()); 347 _pppdata->setSpeed(baud_c->currentText());
363 _pppdata->setModemLockFile( modemlockfile->isChecked()); 348 _pppdata->setModemLockFile( modemlockfile->isChecked());
364 _pppdata->setModemTimeout( modemtimeout->value() ); 349 _pppdata->setModemTimeout( modemtimeout->value() );
365} 350}
366 351
367 352
368void ModemWidget::slotAfterModemQuery() 353void ModemWidget::slotAfterModemQuery()
369{ 354{
370 _pppdata->setModemDevice( m_oldModemDev ); 355 _pppdata->setModemDevice( m_oldModemDev );
371 _pppdata->setFlowcontrol( m_oldFlowControl ); 356 _pppdata->setFlowcontrol( static_cast<PPPData::FlowControl>(m_oldFlowControl) );
357 _pppdata->setEnter( static_cast<PPPData::LineTermination>(m_oldLineEnd) );
372 _pppdata->setSpeed( m_oldSpeed ); 358 _pppdata->setSpeed( m_oldSpeed );
373 _pppdata->setModemLockFile( m_oldModemLock ); 359 _pppdata->setModemLockFile( m_oldModemLock );
374 _pppdata->setModemTimeout( m_oldModemTimeout ); 360 _pppdata->setModemTimeout( m_oldModemTimeout );
375} 361}
376 362
377 363
diff --git a/noncore/settings/networksettings/ppp/general.h b/noncore/settings/networksettings/ppp/general.h
index a4dece4..0bb3136 100644
--- a/noncore/settings/networksettings/ppp/general.h
+++ b/noncore/settings/networksettings/ppp/general.h
@@ -78,15 +78,15 @@ private:
78 78
79 QSpinBox *modemtimeout; 79 QSpinBox *modemtimeout;
80 QCheckBox *modemlockfile; 80 QCheckBox *modemlockfile;
81 PPPData *_pppdata; 81 PPPData *_pppdata;
82 82
83private: 83private:
84 QString m_oldModemDev, m_oldFlowControl, m_oldSpeed; 84 QString m_oldModemDev, m_oldSpeed;
85 bool m_oldModemLock; 85 bool m_oldModemLock;
86 int m_oldModemTimeout; 86 int m_oldModemTimeout, m_oldFlowControl, m_oldLineEnd;
87}; 87};
88 88
89 89
90class ModemWidget2 : public QWidget { 90class ModemWidget2 : public QWidget {
91 Q_OBJECT 91 Q_OBJECT
92public: 92public:
diff --git a/noncore/settings/networksettings/ppp/modem.cpp b/noncore/settings/networksettings/ppp/modem.cpp
index 79f015b..7b2e2a3 100644
--- a/noncore/settings/networksettings/ppp/modem.cpp
+++ b/noncore/settings/networksettings/ppp/modem.cpp
@@ -222,14 +222,14 @@ bool Modem::opentty() {
222 tty.c_cflag |= CLOCAL; // ignore modem status lines 222 tty.c_cflag |= CLOCAL; // ignore modem status lines
223 tty.c_iflag = IGNBRK | IGNPAR /* | ISTRIP */ ; 223 tty.c_iflag = IGNBRK | IGNPAR /* | ISTRIP */ ;
224 tty.c_lflag &= ~ICANON; // non-canonical mode 224 tty.c_lflag &= ~ICANON; // non-canonical mode
225 tty.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHOKE); 225 tty.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHOKE);
226 226
227 227
228 if(_pppdata->flowcontrol() != "None") { 228 if(_pppdata->flowcontrol() != PPPData::FlowNone) {
229 if(_pppdata->flowcontrol() == "CRTSCTS") { 229 if(_pppdata->flowcontrol() == PPPData::FlowHardware) {
230 tty.c_cflag |= CRTSCTS; 230 tty.c_cflag |= CRTSCTS;
231 } 231 }
232 else { 232 else {
233 tty.c_iflag |= IXON | IXOFF; 233 tty.c_iflag |= IXON | IXOFF;
234 tty.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */ 234 tty.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */
235 tty.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */ 235 tty.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */
@@ -352,21 +352,25 @@ bool Modem::writeChar(unsigned char c) {
352 352
353bool Modem::writeLine(const char *buf) { 353bool Modem::writeLine(const char *buf) {
354 int len = strlen(buf); 354 int len = strlen(buf);
355 char *b = new char[len+2]; 355 char *b = new char[len+2];
356 memcpy(b, buf, len); 356 memcpy(b, buf, len);
357 // different modems seem to need different line terminations 357 // different modems seem to need different line terminations
358 QString term = _pppdata->enter(); 358 switch( _pppdata->enter() ) {
359 if(term == "LF") 359 case PPPData::EndLF:
360 b[len++]='\n'; 360 b[len++]='\n';
361 else if(term == "CR") 361 break;
362 case PPPData::EndCR:
362 b[len++]='\r'; 363 b[len++]='\r';
363 else if(term == "CR/LF") { 364 break;
365 case PPPData::EndCRLF:
364 b[len++]='\r'; 366 b[len++]='\r';
365 b[len++]='\n'; 367 b[len++]='\n';
368 break;
366 } 369 }
370
367 int l = len; 371 int l = len;
368 while(l) { 372 while(l) {
369 int wr = write(modemfd, &b[len-l], l); 373 int wr = write(modemfd, &b[len-l], l);
370 if(wr < 0) { 374 if(wr < 0) {
371 // TODO do something meaningful with the error code (or ignore it 375 // TODO do something meaningful with the error code (or ignore it
372 oerr << "write() in Modem::writeLine failed" << oendl; 376 oerr << "write() in Modem::writeLine failed" << oendl;
diff --git a/noncore/settings/networksettings/ppp/pppdata.cpp b/noncore/settings/networksettings/ppp/pppdata.cpp
index eb03ef4..1491ea2 100644
--- a/noncore/settings/networksettings/ppp/pppdata.cpp
+++ b/noncore/settings/networksettings/ppp/pppdata.cpp
@@ -384,18 +384,18 @@ bool PPPData::setModemDevice(const QString &n) {
384 odebug << "Setting modem dev to >" << n.latin1() << "<" << oendl; 384 odebug << "Setting modem dev to >" << n.latin1() << "<" << oendl;
385 writeConfig(modemGroup(), MODEMDEV_KEY, n); 385 writeConfig(modemGroup(), MODEMDEV_KEY, n);
386 return true; //FIXME 386 return true; //FIXME
387} 387}
388 388
389 389
390const QString PPPData::flowcontrol() { 390enum PPPData::FlowControl PPPData::flowcontrol() {
391 return readConfig(modemGroup(), FLOWCONTROL_KEY, "CRTSCTS"); 391 return static_cast<FlowControl>(readNumConfig(modemGroup(), FLOWCONTROL_KEY, FlowHardware));
392} 392}
393 393
394 394
395void PPPData::setFlowcontrol(const QString &n) { 395void PPPData::setFlowcontrol(enum FlowControl n) {
396 writeConfig(modemGroup(), FLOWCONTROL_KEY, n); 396 writeConfig(modemGroup(), FLOWCONTROL_KEY, n);
397} 397}
398 398
399 399
400const QString PPPData::speed() { 400const QString PPPData::speed() {
401 QString s = readConfig(modemGroup(), SPEED_KEY, "57600"); 401 QString s = readConfig(modemGroup(), SPEED_KEY, "57600");
@@ -717,18 +717,18 @@ const QString PPPData::modemAnswerResp() {
717 717
718void PPPData::setModemAnswerResp(const QString &n) { 718void PPPData::setModemAnswerResp(const QString &n) {
719 writeConfig(modemGroup(), ANSWERRESP_KEY, n); 719 writeConfig(modemGroup(), ANSWERRESP_KEY, n);
720} 720}
721 721
722 722
723const QString PPPData::enter() { 723enum PPPData::LineTermination PPPData::enter(){
724 return readConfig(modemGroup(), ENTER_KEY, "CR"); 724 return static_cast<PPPData::LineTermination>(readNumConfig(modemGroup(), ENTER_KEY, EndCR));
725} 725}
726 726
727 727
728void PPPData::setEnter(const QString &n) { 728void PPPData::setEnter(enum PPPData::LineTermination n) {
729 writeConfig(modemGroup(), ENTER_KEY, n); 729 writeConfig(modemGroup(), ENTER_KEY, n);
730} 730}
731 731
732 732
733// 733//
734// functions to set/return account information 734// functions to set/return account information
diff --git a/noncore/settings/networksettings/ppp/pppdata.h b/noncore/settings/networksettings/ppp/pppdata.h
index d1cbeb5..d731b62 100644
--- a/noncore/settings/networksettings/ppp/pppdata.h
+++ b/noncore/settings/networksettings/ppp/pppdata.h
@@ -162,12 +162,23 @@ class Config;
162class PPPData { 162class PPPData {
163public: 163public:
164 PPPData(); 164 PPPData();
165 ~PPPData() {}; 165 ~PPPData() {};
166 166
167 enum { NumInitStrings = 2 }; 167 enum { NumInitStrings = 2 };
168 enum LineTermination {
169 EndCR,
170 EndLF,
171 EndCRLF
172 };
173
174 enum FlowControl {
175 FlowHardware,
176 FlowSoftware,
177 FlowNone
178 };
168 179
169 // general functions 180 // general functions
170 void save(); 181 void save();
171 void cancel(); 182 void cancel();
172 183
173 QStringList getAccountList(); 184 QStringList getAccountList();
@@ -219,14 +230,14 @@ public:
219// void set_iconify_on_connect(bool set); 230// void set_iconify_on_connect(bool set);
220// bool get_iconify_on_connect(); 231// bool get_iconify_on_connect();
221 232
222// void set_dock_into_panel(bool set); 233// void set_dock_into_panel(bool set);
223// bool get_dock_into_panel(); 234// bool get_dock_into_panel();
224 235
225 const QString enter(); 236 enum LineTermination enter();
226 void setEnter(const QString &); 237 void setEnter(enum LineTermination);
227 238
228 QString pppdVersion(); 239 QString pppdVersion();
229 bool pppdVersionMin(int ver, int mod, int patch); 240 bool pppdVersionMin(int ver, int mod, int patch);
230 241
231 int pppdTimeout(); 242 int pppdTimeout();
232 void setpppdTimeout(int); 243 void setpppdTimeout(int);
@@ -250,14 +261,14 @@ public:
250// bool setModemName(const QString &); 261// bool setModemName(const QString &);
251// bool changeModemName(const QString &); 262// bool changeModemName(const QString &);
252 263
253 const QString modemDevice(); 264 const QString modemDevice();
254 bool setModemDevice(const QString &); 265 bool setModemDevice(const QString &);
255 266
256 const QString flowcontrol(); 267 enum FlowControl flowcontrol();
257 void setFlowcontrol(const QString &); 268 void setFlowcontrol(enum FlowControl);
258 269
259 int modemTimeout(); 270 int modemTimeout();
260 void setModemTimeout(int); 271 void setModemTimeout(int);
261 272
262 int modemToneDuration(); 273 int modemToneDuration();
263 void setModemToneDuration(int); 274 void setModemToneDuration(int);