summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (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
@@ -1214,10 +1214,10 @@ bool ConnectWidget::execppp() {
if(_ifaceppp->data()->subnetmask() != "0.0.0.0")
command += " netmask " + _ifaceppp->data()->subnetmask();
- if(_ifaceppp->data()->flowcontrol() != "None") {
- if(_ifaceppp->data()->flowcontrol() == "CRTSCTS")
+ if(_ifaceppp->data()->flowcontrol() != PPPData::FlowNone) {
+ if(_ifaceppp->data()->flowcontrol() == PPPData::FlowHardware)
command += " crtscts";
else
command += " xonxoff";
}
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
@@ -191,19 +191,12 @@ ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name )
QWhatsThis::add(baud_label,tmp);
QWhatsThis::add(baud_c,tmp);
- for(int i=0; i <= enter->count()-1; i++)
- {
- if(_pppdata->enter() == enter->text(i))
- enter->setCurrentItem(i);
- }
-
tl->addRowSpacing(5, 10);
//Modem Lock File
modemlockfile = new QCheckBox(tr("&Use lock file"), this);
-
modemlockfile->setChecked(_pppdata->modemLockFile());
// connect(modemlockfile, SIGNAL(toggled(bool)),
// SLOT(modemlockfilechanged(bool)));
tl->addMultiCellWidget(modemlockfile, 6, 6, 0, 1);
@@ -239,26 +232,17 @@ ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name )
"<i>CONNECT</i> response from your modem. The\n"
"recommended value is 30 seconds."));
//set stuff from gpppdata
- for(int i=0; i <= enter->count()-1; i++)
- {
- if(_pppdata->enter() == enter->text(i))
- enter->setCurrentItem(i);
- }
+ enter->setCurrentItem( static_cast<int>(_pppdata->enter()) );
+ flowcontrol->setCurrentItem( static_cast<int>( _pppdata->flowcontrol() ) );
for(int i=0; i <= modemdevice->count()-1; i++)
{
if(_pppdata->modemDevice() == modemdevice->text(i))
modemdevice->setCurrentItem(i);
}
- for(int i=0; i <= flowcontrol->count()-1; i++)
- {
- if(_pppdata->flowcontrol() == flowcontrol->text(i))
- flowcontrol->setCurrentItem(i);
- }
-
//set the modem speed
for(int i=0; i < baud_c->count(); i++)
if(baud_c->text(i) == _pppdata->speed())
baud_c->setCurrentItem(i);
@@ -337,10 +321,10 @@ bool ModemWidget::save()
return false;
_pppdata->setDevname( modemname->text() );
_pppdata->setModemDevice( modemdevice->currentText() );
- _pppdata->setFlowcontrol(flowcontrol->currentText());
- _pppdata->setFlowcontrol(flowcontrol->currentText());
+ _pppdata->setFlowcontrol(static_cast<PPPData::FlowControl>(flowcontrol->currentItem()));
+ _pppdata->setEnter( static_cast<PPPData::LineTermination>(enter->currentItem()));
_pppdata->setSpeed(baud_c->currentText());
_pppdata->setModemLockFile( modemlockfile->isChecked());
_pppdata->setModemTimeout( modemtimeout->value() );
return true;
@@ -349,17 +333,18 @@ bool ModemWidget::save()
void ModemWidget::slotBeforeModemQuery()
{
m_oldModemDev = _pppdata->modemDevice();
- m_oldFlowControl = _pppdata->flowcontrol();
+ m_oldFlowControl = static_cast<int>( _pppdata->flowcontrol() );
m_oldSpeed = _pppdata->speed();
m_oldModemLock = _pppdata->modemLockFile();
m_oldModemTimeout = _pppdata->modemTimeout();
+ m_oldLineEnd = static_cast<int>( _pppdata->enter() );
_pppdata->setModemDevice( modemdevice->currentText() );
- _pppdata->setFlowcontrol(flowcontrol->currentText());
- _pppdata->setFlowcontrol(flowcontrol->currentText());
+ _pppdata->setFlowcontrol(static_cast<PPPData::FlowControl>(flowcontrol->currentItem()));
+ _pppdata->setEnter(static_cast<PPPData::LineTermination>(enter->currentItem()));
_pppdata->setSpeed(baud_c->currentText());
_pppdata->setModemLockFile( modemlockfile->isChecked());
_pppdata->setModemTimeout( modemtimeout->value() );
}
@@ -367,9 +352,10 @@ void ModemWidget::slotBeforeModemQuery()
void ModemWidget::slotAfterModemQuery()
{
_pppdata->setModemDevice( m_oldModemDev );
- _pppdata->setFlowcontrol( m_oldFlowControl );
+ _pppdata->setFlowcontrol( static_cast<PPPData::FlowControl>(m_oldFlowControl) );
+ _pppdata->setEnter( static_cast<PPPData::LineTermination>(m_oldLineEnd) );
_pppdata->setSpeed( m_oldSpeed );
_pppdata->setModemLockFile( m_oldModemLock );
_pppdata->setModemTimeout( m_oldModemTimeout );
}
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
@@ -80,11 +80,11 @@ private:
QCheckBox *modemlockfile;
PPPData *_pppdata;
private:
- QString m_oldModemDev, m_oldFlowControl, m_oldSpeed;
+ QString m_oldModemDev, m_oldSpeed;
bool m_oldModemLock;
- int m_oldModemTimeout;
+ int m_oldModemTimeout, m_oldFlowControl, m_oldLineEnd;
};
class ModemWidget2 : public QWidget {
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
@@ -224,10 +224,10 @@ bool Modem::opentty() {
tty.c_lflag &= ~ICANON; // non-canonical mode
tty.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHOKE);
- if(_pppdata->flowcontrol() != "None") {
- if(_pppdata->flowcontrol() == "CRTSCTS") {
+ if(_pppdata->flowcontrol() != PPPData::FlowNone) {
+ if(_pppdata->flowcontrol() == PPPData::FlowHardware) {
tty.c_cflag |= CRTSCTS;
}
else {
tty.c_iflag |= IXON | IXOFF;
@@ -354,17 +354,21 @@ bool Modem::writeLine(const char *buf) {
int len = strlen(buf);
char *b = new char[len+2];
memcpy(b, buf, len);
// different modems seem to need different line terminations
- QString term = _pppdata->enter();
- if(term == "LF")
+ switch( _pppdata->enter() ) {
+ case PPPData::EndLF:
b[len++]='\n';
- else if(term == "CR")
+ break;
+ case PPPData::EndCR:
b[len++]='\r';
- else if(term == "CR/LF") {
+ break;
+ case PPPData::EndCRLF:
b[len++]='\r';
b[len++]='\n';
+ break;
}
+
int l = len;
while(l) {
int wr = write(modemfd, &b[len-l], l);
if(wr < 0) {
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
@@ -386,14 +386,14 @@ bool PPPData::setModemDevice(const QString &n) {
return true; //FIXME
}
-const QString PPPData::flowcontrol() {
- return readConfig(modemGroup(), FLOWCONTROL_KEY, "CRTSCTS");
+enum PPPData::FlowControl PPPData::flowcontrol() {
+ return static_cast<FlowControl>(readNumConfig(modemGroup(), FLOWCONTROL_KEY, FlowHardware));
}
-void PPPData::setFlowcontrol(const QString &n) {
+void PPPData::setFlowcontrol(enum FlowControl n) {
writeConfig(modemGroup(), FLOWCONTROL_KEY, n);
}
@@ -719,14 +719,14 @@ void PPPData::setModemAnswerResp(const QString &n) {
writeConfig(modemGroup(), ANSWERRESP_KEY, n);
}
-const QString PPPData::enter() {
- return readConfig(modemGroup(), ENTER_KEY, "CR");
+enum PPPData::LineTermination PPPData::enter(){
+ return static_cast<PPPData::LineTermination>(readNumConfig(modemGroup(), ENTER_KEY, EndCR));
}
-void PPPData::setEnter(const QString &n) {
+void PPPData::setEnter(enum PPPData::LineTermination n) {
writeConfig(modemGroup(), ENTER_KEY, n);
}
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
@@ -164,8 +164,19 @@ public:
PPPData();
~PPPData() {};
enum { NumInitStrings = 2 };
+ enum LineTermination {
+ EndCR,
+ EndLF,
+ EndCRLF
+ };
+
+ enum FlowControl {
+ FlowHardware,
+ FlowSoftware,
+ FlowNone
+ };
// general functions
void save();
void cancel();
@@ -221,10 +232,10 @@ public:
// void set_dock_into_panel(bool set);
// bool get_dock_into_panel();
- const QString enter();
- void setEnter(const QString &);
+ enum LineTermination enter();
+ void setEnter(enum LineTermination);
QString pppdVersion();
bool pppdVersionMin(int ver, int mod, int patch);
@@ -252,10 +263,10 @@ public:
const QString modemDevice();
bool setModemDevice(const QString &);
- const QString flowcontrol();
- void setFlowcontrol(const QString &);
+ enum FlowControl flowcontrol();
+ void setFlowcontrol(enum FlowControl);
int modemTimeout();
void setModemTimeout(int);