summaryrefslogtreecommitdiff
authorzecke <zecke>2004-10-14 00:39:47 (UTC)
committer zecke <zecke>2004-10-14 00:39:47 (UTC)
commitb17b6c77af35b610d236321279d3f18eb3060c90 (patch) (unidiff)
tree4ff66b2060c91373f86f3fd14890dcb8e98babb6
parent9cc9ed1e746477c59b1fd3d572cdce052f0ccf85 (diff)
downloadopie-b17b6c77af35b610d236321279d3f18eb3060c90.zip
opie-b17b6c77af35b610d236321279d3f18eb3060c90.tar.gz
opie-b17b6c77af35b610d236321279d3f18eb3060c90.tar.bz2
-Make ModemQuery to use the 'current' configuration
-Todo make FlowControl, LineTermination lwork across locales for safe and restore
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings/ppp/devices.cpp7
-rw-r--r--noncore/settings/networksettings/ppp/general.cpp34
-rw-r--r--noncore/settings/networksettings/ppp/general.h17
3 files changed, 55 insertions, 3 deletions
diff --git a/noncore/settings/networksettings/ppp/devices.cpp b/noncore/settings/networksettings/ppp/devices.cpp
index e2c67d8..c658227 100644
--- a/noncore/settings/networksettings/ppp/devices.cpp
+++ b/noncore/settings/networksettings/ppp/devices.cpp
@@ -1,219 +1,224 @@
1/* 1/*
2 * kPPP: A pppd front end for the KDE project 2 * kPPP: A pppd front end for the KDE project
3 * 3 *
4 * $Id$ 4 * $Id$
5 * 5 *
6 * Copyright (C) 1997 Bernd Johannes Wuebben 6 * Copyright (C) 1997 Bernd Johannes Wuebben
7 * wuebben@math.cornell.edu 7 * wuebben@math.cornell.edu
8 * 8 *
9 * based on EzPPP: 9 * based on EzPPP:
10 * Copyright (C) 1997 Jay Painter 10 * Copyright (C) 1997 Jay Painter
11 * 11 *
12 * This program is free software; you can redistribute it and/or 12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Library General Public 13 * modify it under the terms of the GNU Library General Public
14 * License as published by the Free Software Foundation; either 14 * License as published by the Free Software Foundation; either
15 * version 2 of the License, or (at your option) any later version. 15 * version 2 of the License, or (at your option) any later version.
16 * 16 *
17 * This program is distributed in the hope that it will be useful, 17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Library General Public License for more details. 20 * Library General Public License for more details.
21 * 21 *
22 * You should have received a copy of the GNU Library General Public 22 * You should have received a copy of the GNU Library General Public
23 * License along with this program; if not, write to the Free 23 * License along with this program; if not, write to the Free
24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 */ 25 */
26 26
27#include "interfaceppp.h" 27#include "interfaceppp.h"
28#include "devices.h" 28#include "devices.h"
29#include "authwidget.h" 29#include "authwidget.h"
30#include "pppdata.h" 30#include "pppdata.h"
31#include "edit.h" 31#include "edit.h"
32#include "general.h" 32#include "general.h"
33 33
34/* OPIE */ 34/* OPIE */
35#include <opie2/odebug.h> 35#include <opie2/odebug.h>
36#include <qpe/qpeapplication.h> 36#include <qpe/qpeapplication.h>
37using namespace Opie::Core; 37using namespace Opie::Core;
38 38
39/* QT */ 39/* QT */
40#include <qdir.h> 40#include <qdir.h>
41#include <qlayout.h> 41#include <qlayout.h>
42#include <qtabwidget.h> 42#include <qtabwidget.h>
43#include <qtabdialog.h> 43#include <qtabdialog.h>
44#include <qwhatsthis.h> 44#include <qwhatsthis.h>
45#include <qmessagebox.h> 45#include <qmessagebox.h>
46#include <qapplication.h> 46#include <qapplication.h>
47#include <qbuttongroup.h> 47#include <qbuttongroup.h>
48#include <qmessagebox.h> 48#include <qmessagebox.h>
49#include <qvgroupbox.h> 49#include <qvgroupbox.h>
50 50
51/* STD */ 51/* STD */
52#include <stdlib.h> 52#include <stdlib.h>
53 53
54 54
55void parseargs(char* buf, char** args); 55void parseargs(char* buf, char** args);
56 56
57DevicesWidget::DevicesWidget( InterfacePPP* ip, QWidget *parent, const char *name, WFlags f ) 57DevicesWidget::DevicesWidget( InterfacePPP* ip, QWidget *parent, const char *name, WFlags f )
58 : ChooserWidget(ip->data(), parent, name, f) 58 : ChooserWidget(ip->data(), parent, name, f)
59{ 59{
60 _ifaceppp = ip; 60 _ifaceppp = ip;
61 QWhatsThis::add(edit_b, tr("Allows you to modify the selected device")); 61 QWhatsThis::add(edit_b, tr("Allows you to modify the selected device"));
62 QWhatsThis::add(new_b, tr("Create a new device") ); 62 QWhatsThis::add(new_b, tr("Create a new device") );
63 63
64 QWhatsThis::add(copy_b, 64 QWhatsThis::add(copy_b,
65 tr("Makes a copy of the selected device. All\n" 65 tr("Makes a copy of the selected device. All\n"
66 "settings of the selected device are copied\n" 66 "settings of the selected device are copied\n"
67 "to a new device, that you can modify to fit your\n" 67 "to a new device, that you can modify to fit your\n"
68 "needs")); 68 "needs"));
69 QWhatsThis::add(delete_b, 69 QWhatsThis::add(delete_b,
70 tr("<p>Deletes the selected device\n\n" 70 tr("<p>Deletes the selected device\n\n"
71 "<font color=\"red\"><b>Use with care!</b></font>")); 71 "<font color=\"red\"><b>Use with care!</b></font>"));
72 72
73 copy_b->setEnabled( false ); //FIXME 73 copy_b->setEnabled( false ); //FIXME
74// delete_b->setEnabled( false ); //FIXME 74// delete_b->setEnabled( false ); //FIXME
75 75
76 QStringList tmp = _pppdata->getDevicesNamesList(); 76 QStringList tmp = _pppdata->getDevicesNamesList();
77 odebug << "DevicesWidget::DevicesWidget got devices " << tmp.join("--").latin1() << "" << oendl; 77 odebug << "DevicesWidget::DevicesWidget got devices " << tmp.join("--").latin1() << "" << oendl;
78 listListbox->insertStringList(tmp); 78 listListbox->insertStringList(tmp);
79 79
80 for (uint i = 0; i < listListbox->count(); i++){ 80 for (uint i = 0; i < listListbox->count(); i++){
81 odebug << "listListbox->text(i) " << listListbox->text(i).latin1() << " == _pppdata->devname() " << _pppdata->devname().latin1() << "" << oendl; 81 odebug << "listListbox->text(i) " << listListbox->text(i).latin1() << " == _pppdata->devname() " << _pppdata->devname().latin1() << "" << oendl;
82 if ( listListbox->text(i) == _pppdata->devname() ) 82 if ( listListbox->text(i) == _pppdata->devname() )
83 listListbox->setCurrentItem( i ); 83 listListbox->setCurrentItem( i );
84 } 84 }
85} 85}
86 86
87 87
88 88
89void DevicesWidget::slotListBoxSelect(int idx) { 89void DevicesWidget::slotListBoxSelect(int idx) {
90 _pppdata->setDevice( listListbox->text(idx) ); 90 _pppdata->setDevice( listListbox->text(idx) );
91 delete_b->setEnabled((bool)(idx != -1)); 91 delete_b->setEnabled((bool)(idx != -1));
92 edit_b->setEnabled((bool)(idx != -1)); 92 edit_b->setEnabled((bool)(idx != -1));
93//FIXME copy_b->setEnabled((bool)(idx != -1)); 93//FIXME copy_b->setEnabled((bool)(idx != -1));
94} 94}
95 95
96void DevicesWidget::edit() { 96void DevicesWidget::edit() {
97 _pppdata->setDevice(listListbox->text(listListbox->currentItem())); 97 _pppdata->setDevice(listListbox->text(listListbox->currentItem()));
98 98
99 int result = doTab(); 99 int result = doTab();
100 100
101 if(result == QDialog::Accepted) { 101 if(result == QDialog::Accepted) {
102 listListbox->changeItem(_pppdata->devname(),listListbox->currentItem()); 102 listListbox->changeItem(_pppdata->devname(),listListbox->currentItem());
103 _pppdata->save(); 103 _pppdata->save();
104 } 104 }
105} 105}
106 106
107 107
108void DevicesWidget::create() { 108void DevicesWidget::create() {
109 109
110// if(listListbox->count() == MAX_ACCOUNTS) { 110// if(listListbox->count() == MAX_ACCOUNTS) {
111// QMessageBox::information(this, "sorry", 111// QMessageBox::information(this, "sorry",
112// tr("Maximum number of accounts reached.")); 112// tr("Maximum number of accounts reached."));
113// return; 113// return;
114// } 114// }
115 115
116 int result; 116 int result;
117 if (_pppdata->newdevice() == -1){ 117 if (_pppdata->newdevice() == -1){
118 return; 118 return;
119 } 119 }
120 result = doTab(); 120 result = doTab();
121 121
122 if(result == QDialog::Accepted) { 122 if(result == QDialog::Accepted) {
123 listListbox->insertItem(_pppdata->devname()); 123 listListbox->insertItem(_pppdata->devname());
124 listListbox->setSelected(listListbox->findItem(_pppdata->devname()),true ); 124 listListbox->setSelected(listListbox->findItem(_pppdata->devname()),true );
125 125
126 _pppdata->save(); 126 _pppdata->save();
127 } else 127 } else
128 _pppdata->deleteDevice(); 128 _pppdata->deleteDevice();
129} 129}
130 130
131 131
132void DevicesWidget::copy() { 132void DevicesWidget::copy() {
133// if(listListbox->count() == MAX_ACCOUNTS) { 133// if(listListbox->count() == MAX_ACCOUNTS) {
134// QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached.")); 134// QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached."));
135// return; 135// return;
136// } 136// }
137 137
138 if(listListbox->currentItem()<0) { 138 if(listListbox->currentItem()<0) {
139 QMessageBox::information(this, "sorry", tr("No devices selected.")); 139 QMessageBox::information(this, "sorry", tr("No devices selected."));
140 return; 140 return;
141 } 141 }
142 142
143 _pppdata->copydevice(listListbox->currentText()); 143 _pppdata->copydevice(listListbox->currentText());
144 144
145 listListbox->insertItem(_pppdata->devname()); 145 listListbox->insertItem(_pppdata->devname());
146 _pppdata->save(); 146 _pppdata->save();
147} 147}
148 148
149 149
150void DevicesWidget::remove() { 150void DevicesWidget::remove() {
151 151
152 QString s = tr("Are you sure you want to delete\nthe device \"%1\"?") 152 QString s = tr("Are you sure you want to delete\nthe device \"%1\"?")
153 .arg(listListbox->text(listListbox->currentItem())); 153 .arg(listListbox->text(listListbox->currentItem()));
154 154
155 if(QMessageBox::warning(this,tr("Confirm"),s, 155 if(QMessageBox::warning(this,tr("Confirm"),s,
156 QMessageBox::Yes,QMessageBox::No 156 QMessageBox::Yes,QMessageBox::No
157 ) != QMessageBox::Yes) 157 ) != QMessageBox::Yes)
158 return; 158 return;
159 159
160 if(_pppdata->deleteDevice(listListbox->text(listListbox->currentItem()))) 160 if(_pppdata->deleteDevice(listListbox->text(listListbox->currentItem())))
161 listListbox->removeItem(listListbox->currentItem()); 161 listListbox->removeItem(listListbox->currentItem());
162 162
163 163
164// _pppdata->save(); 164// _pppdata->save();
165 165
166 166
167 slotListBoxSelect(listListbox->currentItem()); 167 slotListBoxSelect(listListbox->currentItem());
168 168
169} 169}
170 170
171 171
172int DevicesWidget::doTab(){ 172int DevicesWidget::doTab(){
173 QDialog *dlg = new QDialog( 0, "newDevice", true, Qt::WStyle_ContextHelp ); 173 QDialog *dlg = new QDialog( 0, "newDevice", true, Qt::WStyle_ContextHelp );
174 QVBoxLayout *layout = new QVBoxLayout( dlg ); 174 QVBoxLayout *layout = new QVBoxLayout( dlg );
175 layout->setSpacing( 0 ); 175 layout->setSpacing( 0 );
176 layout->setMargin( 1 ); 176 layout->setMargin( 1 );
177 177
178 QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" ); 178 QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" );
179 layout->addWidget( tabWindow ); 179 layout->addWidget( tabWindow );
180 180
181 bool isnew; 181 bool isnew;
182 182
183 if(_pppdata->devname().isEmpty()) { 183 if(_pppdata->devname().isEmpty()) {
184 dlg->setCaption(tr("New Device")); 184 dlg->setCaption(tr("New Device"));
185 isnew = true; 185 isnew = true;
186 } else { 186 } else {
187 QString tit = tr("Edit Device: "); 187 QString tit = tr("Edit Device: ");
188 tit += _pppdata->devname(); 188 tit += _pppdata->devname();
189 dlg->setCaption(tit); 189 dlg->setCaption(tit);
190 isnew = false; 190 isnew = false;
191 } 191 }
192 192
193 modem1 = new ModemWidget( _pppdata, tabWindow, "modem1" ); 193 modem1 = new ModemWidget( _pppdata, tabWindow, "modem1" );
194 tabWindow->addTab( modem1, tr("&Device") ); 194 tabWindow->addTab( modem1, tr("&Device") );
195 modem2 = new ModemWidget2( _pppdata, _ifaceppp, tabWindow, "modem2" ); 195 modem2 = new ModemWidget2( _pppdata, _ifaceppp, tabWindow, "modem2" );
196 tabWindow->addTab( modem2, tr("&Modem") ); 196 tabWindow->addTab( modem2, tr("&Modem") );
197 197
198 connect(modem2, SIGNAL(sig_beforeQueryModem()),
199 modem1, SLOT(slotBeforeModemQuery()));
200 connect(modem2, SIGNAL(sig_afterQueryModem()),
201 modem1, SLOT(slotAfterModemQuery()));
202
198 int result = 0; 203 int result = 0;
199 bool ok = false; 204 bool ok = false;
200 205
201 while (!ok){ 206 while (!ok){
202 result = QPEApplication::execDialog( dlg ); 207 result = QPEApplication::execDialog( dlg );
203 ok = true; 208 ok = true;
204 209
205 if(result == QDialog::Accepted) { 210 if(result == QDialog::Accepted) {
206 if (!modem1->save()){ 211 if (!modem1->save()){
207 QMessageBox::critical(this, "error", tr( "You must enter a unique device name")); 212 QMessageBox::critical(this, tr("Error"), tr( "You must enter a unique device name"));
208 ok = false; 213 ok = false;
209 }else{ 214 }else{
210 modem2->save(); 215 modem2->save();
211 } 216 }
212 } 217 }
213 } 218 }
214 219
215 delete dlg; 220 delete dlg;
216 221
217 return result; 222 return result;
218} 223}
219 224
diff --git a/noncore/settings/networksettings/ppp/general.cpp b/noncore/settings/networksettings/ppp/general.cpp
index 40ba19b..5e2a04f 100644
--- a/noncore/settings/networksettings/ppp/general.cpp
+++ b/noncore/settings/networksettings/ppp/general.cpp
@@ -33,496 +33,526 @@
33/* OPIE */ 33/* OPIE */
34#include <opie2/odebug.h> 34#include <opie2/odebug.h>
35#include <qpe/config.h> 35#include <qpe/config.h>
36#include <qpe/qpeapplication.h> 36#include <qpe/qpeapplication.h>
37using namespace Opie::Core; 37using namespace Opie::Core;
38 38
39/* QT */ 39/* QT */
40#include <qcheckbox.h> 40#include <qcheckbox.h>
41#include <qcombobox.h> 41#include <qcombobox.h>
42#include <qlabel.h> 42#include <qlabel.h>
43#include <qlayout.h> 43#include <qlayout.h>
44#include <qpushbutton.h> 44#include <qpushbutton.h>
45#include <qslider.h> 45#include <qslider.h>
46#include <qspinbox.h> 46#include <qspinbox.h>
47#include <qwhatsthis.h> 47#include <qwhatsthis.h>
48 48
49/* STD */ 49/* STD */
50#include <termios.h> 50#include <termios.h>
51#include <string.h> 51#include <string.h>
52 52
53 53
54ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name ) 54ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name )
55 : QWidget(parent, name), _pppdata(pd) 55 : QWidget(parent, name), _pppdata(pd)
56{ 56{
57 int k; 57 int k;
58 58
59 QGridLayout *tl = new QGridLayout(this, 8, 2, 0 );//, KDialog::spacingHint()); 59 QGridLayout *tl = new QGridLayout(this, 8, 2, 0 );//, KDialog::spacingHint());
60 60
61 QLabel *label1; 61 QLabel *label1;
62 62
63 label1 = new QLabel(tr("Modem &name:"), this); 63 label1 = new QLabel(tr("Modem &name:"), this);
64 tl->addWidget(label1, 0, 0); 64 tl->addWidget(label1, 0, 0);
65 65
66 modemname = new QLineEdit(this, "modemName"); 66 modemname = new QLineEdit(this, "modemName");
67 modemname->setText( _pppdata->devname() ); 67 modemname->setText( _pppdata->devname() );
68 label1->setBuddy(modemname); 68 label1->setBuddy(modemname);
69 tl->addWidget(modemname, 0, 1); 69 tl->addWidget(modemname, 0, 1);
70 70
71 label1 = new QLabel(tr("Modem de&vice:"), this); 71 label1 = new QLabel(tr("Modem de&vice:"), this);
72 tl->addWidget(label1, 1, 0); 72 tl->addWidget(label1, 1, 0);
73 73
74 modemdevice = new QComboBox(false, this); 74 modemdevice = new QComboBox(false, this);
75 modemdevice->setEditable( true ); 75 modemdevice->setEditable( true );
76 modemdevice->setDuplicatesEnabled ( false ); 76 modemdevice->setDuplicatesEnabled ( false );
77 modemdevice->setInsertionPolicy( QComboBox::AtTop ); 77 modemdevice->setInsertionPolicy( QComboBox::AtTop );
78 label1->setBuddy(modemdevice); 78 label1->setBuddy(modemdevice);
79 79
80 Config cfg("NetworkSetupPPP"); 80 Config cfg("NetworkSetupPPP");
81 cfg.setGroup("Devices_General"); 81 cfg.setGroup("Devices_General");
82 QStringList devs = cfg.readListEntry("devices",','); 82 QStringList devs = cfg.readListEntry("devices",',');
83 if (devs.isEmpty()) devs << "/dev/modem" << "/dev/ircomm0" << "/dev/ttyS0"; 83 if (devs.isEmpty()) devs << "/dev/modem" << "/dev/ircomm0" << "/dev/ttyS0";
84 modemdevice->insertStringList( devs ); 84 modemdevice->insertStringList( devs );
85 tl->addWidget(modemdevice, 1, 1); 85 tl->addWidget(modemdevice, 1, 1);
86 86
87 // connect(modemdevice, SIGNAL(activated(int)), 87 // connect(modemdevice, SIGNAL(activated(int)),
88 // SLOT(setmodemdc(int))); 88 // SLOT(setmodemdc(int)));
89 // connect(modemdevice, SIGNAL(textChanged(const QString&) ), 89 // connect(modemdevice, SIGNAL(textChanged(const QString&) ),
90 // SLOT( setmodemdc(const QString&) ) ); 90 // SLOT( setmodemdc(const QString&) ) );
91 91
92 QString tmp = tr("This specifies the serial port your modem is attached \n" 92 QString tmp = tr("This specifies the serial port your modem is attached \n"
93 "to. On Linux/x86, typically this is either /dev/ttyS0 \n" 93 "to. On Linux/x86, typically this is either /dev/ttyS0 \n"
94 "(COM1 under DOS) or /dev/ttyS1 (COM2 under DOS).\n" 94 "(COM1 under DOS) or /dev/ttyS1 (COM2 under DOS).\n"
95 "\n" 95 "\n"
96 "If you have an internal ISDN card with AT command\n" 96 "If you have an internal ISDN card with AT command\n"
97 "emulation (most cards under Linux support this), you\n" 97 "emulation (most cards under Linux support this), you\n"
98 "should select one of the /dev/ttyIx devices."); 98 "should select one of the /dev/ttyIx devices.");
99 99
100 QWhatsThis::add(label1,tmp); 100 QWhatsThis::add(label1,tmp);
101 QWhatsThis::add(modemdevice,tmp); 101 QWhatsThis::add(modemdevice,tmp);
102 102
103 103
104 label1 = new QLabel(tr("&Flow control:"), this); 104 label1 = new QLabel(tr("&Flow control:"), this);
105 tl->addWidget(label1, 2, 0); 105 tl->addWidget(label1, 2, 0);
106 106
107 flowcontrol = new QComboBox(false, this); 107 flowcontrol = new QComboBox(false, this);
108 label1->setBuddy(flowcontrol); 108 label1->setBuddy(flowcontrol);
109 flowcontrol->insertItem(tr("Hardware [CRTSCTS]")); 109 flowcontrol->insertItem(tr("Hardware [CRTSCTS]"));
110 flowcontrol->insertItem(tr("Software [XON/XOFF]")); 110 flowcontrol->insertItem(tr("Software [XON/XOFF]"));
111 flowcontrol->insertItem(tr("None")); 111 flowcontrol->insertItem(tr("None"));
112 tl->addWidget(flowcontrol, 2, 1); 112 tl->addWidget(flowcontrol, 2, 1);
113 // connect(flowcontrol, SIGNAL(activated(int)), 113 // connect(flowcontrol, SIGNAL(activated(int)),
114 // SLOT(setflowcontrol(int))); 114 // SLOT(setflowcontrol(int)));
115 115
116 tmp = tr("<p>Specifies how the serial port and modem\n" 116 tmp = tr("<p>Specifies how the serial port and modem\n"
117 "communicate. You should not change this unless\n" 117 "communicate. You should not change this unless\n"
118 "you know what you are doing.\n" 118 "you know what you are doing.\n"
119 "\n" 119 "\n"
120 "<b>Default</b>: CRTSCTS"); 120 "<b>Default</b>: CRTSCTS");
121 121
122 QWhatsThis::add(label1,tmp); 122 QWhatsThis::add(label1,tmp);
123 QWhatsThis::add(flowcontrol,tmp); 123 QWhatsThis::add(flowcontrol,tmp);
124 124
125 QLabel *labelenter = new QLabel(tr("&Line termination:"), this); 125 QLabel *labelenter = new QLabel(tr("&Line termination:"), this);
126 tl->addWidget(labelenter, 3, 0); 126 tl->addWidget(labelenter, 3, 0);
127 127
128 enter = new QComboBox(false, this); 128 enter = new QComboBox(false, this);
129 labelenter->setBuddy(enter); 129 labelenter->setBuddy(enter);
130 enter->insertItem("CR"); 130 enter->insertItem("CR");
131 enter->insertItem("LF"); 131 enter->insertItem("LF");
132 enter->insertItem("CR/LF"); 132 enter->insertItem("CR/LF");
133 tl->addWidget(enter, 3, 1); 133 tl->addWidget(enter, 3, 1);
134 // connect(enter, SIGNAL(activated(int)), SLOT(setenter(int))); 134 // connect(enter, SIGNAL(activated(int)), SLOT(setenter(int)));
135 tmp = tr("<p>Specifies how AT commands are sent to your\n" 135 tmp = tr("<p>Specifies how AT commands are sent to your\n"
136 "modem. Most modems will work fine with the\n" 136 "modem. Most modems will work fine with the\n"
137 "default <i>CR/LF</i>. If your modem does not react\n" 137 "default <i>CR/LF</i>. If your modem does not react\n"
138 "to the init string, you should try different\n" 138 "to the init string, you should try different\n"
139 "settings here\n" 139 "settings here\n"
140 "\n" 140 "\n"
141 "<b>Default</b>: CR/LF"); 141 "<b>Default</b>: CR/LF");
142 142
143 QWhatsThis::add(labelenter,tmp); 143 QWhatsThis::add(labelenter,tmp);
144 QWhatsThis::add(enter, tmp); 144 QWhatsThis::add(enter, tmp);
145 145
146 QLabel *baud_label = new QLabel(tr("Co&nnection speed:"), this); 146 QLabel *baud_label = new QLabel(tr("Co&nnection speed:"), this);
147 tl->addWidget(baud_label, 4, 0); 147 tl->addWidget(baud_label, 4, 0);
148 baud_c = new QComboBox(this); 148 baud_c = new QComboBox(this);
149 baud_label->setBuddy(baud_c); 149 baud_label->setBuddy(baud_c);
150 150
151 static const char *baudrates[] = 151 static const char *baudrates[] =
152 { 152 {
153 153
154#ifdef B460800 154#ifdef B460800
155 "460800", 155 "460800",
156#endif 156#endif
157 157
158#ifdef B230400 158#ifdef B230400
159 "230400", 159 "230400",
160#endif 160#endif
161 161
162#ifdef B115200 162#ifdef B115200
163 "115200", 163 "115200",
164#endif 164#endif
165 165
166#ifdef B57600 166#ifdef B57600
167 "57600", 167 "57600",
168#endif 168#endif
169 169
170 "38400", 170 "38400",
171 "19200", 171 "19200",
172 "9600", 172 "9600",
173 "2400", 173 "2400",
174 0 174 0
175 }; 175 };
176 176
177 for(k = 0; baudrates[k]; k++) 177 for(k = 0; baudrates[k]; k++)
178 baud_c->insertItem(baudrates[k]); 178 baud_c->insertItem(baudrates[k]);
179 179
180 baud_c->setCurrentItem(3); 180 baud_c->setCurrentItem(3);
181 // connect(baud_c, SIGNAL(activated(int)), 181 // connect(baud_c, SIGNAL(activated(int)),
182 // this, SLOT(speed_selection(int))); 182 // this, SLOT(speed_selection(int)));
183 tl->addWidget(baud_c, 4, 1); 183 tl->addWidget(baud_c, 4, 1);
184 184
185 tmp = tr("Specifies the speed your modem and the serial\n" 185 tmp = tr("Specifies the speed your modem and the serial\n"
186 "port talk to each other. You should begin with\n" 186 "port talk to each other. You should begin with\n"
187 "the default of 38400 bits/sec. If everything\n" 187 "the default of 38400 bits/sec. If everything\n"
188 "works you can try to increase this value, but to\n" 188 "works you can try to increase this value, but to\n"
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++) 195 for(int i=0; i <= enter->count()-1; i++)
196 { 196 {
197 if(_pppdata->enter() == enter->text(i)) 197 if(_pppdata->enter() == enter->text(i))
198 enter->setCurrentItem(i); 198 enter->setCurrentItem(i);
199 } 199 }
200 200
201 tl->addRowSpacing(5, 10); 201 tl->addRowSpacing(5, 10);
202 202
203 //Modem Lock File 203 //Modem Lock File
204 modemlockfile = new QCheckBox(tr("&Use lock file"), this); 204 modemlockfile = new QCheckBox(tr("&Use lock file"), this);
205 205
206 modemlockfile->setChecked(_pppdata->modemLockFile()); 206 modemlockfile->setChecked(_pppdata->modemLockFile());
207 // connect(modemlockfile, SIGNAL(toggled(bool)), 207 // connect(modemlockfile, SIGNAL(toggled(bool)),
208 // SLOT(modemlockfilechanged(bool))); 208 // SLOT(modemlockfilechanged(bool)));
209 tl->addMultiCellWidget(modemlockfile, 6, 6, 0, 1); 209 tl->addMultiCellWidget(modemlockfile, 6, 6, 0, 1);
210 // l12->addStretch(1); 210 // l12->addStretch(1);
211 QWhatsThis::add(modemlockfile, 211 QWhatsThis::add(modemlockfile,
212 tr("<p>To prevent other programs from accessing the\n" 212 tr("<p>To prevent other programs from accessing the\n"
213 "modem while a connection is established, a\n" 213 "modem while a connection is established, a\n"
214 "file can be created to indicate that the modem\n" 214 "file can be created to indicate that the modem\n"
215 "is in use. On Linux an example file would be\n" 215 "is in use. On Linux an example file would be\n"
216 "<tt>/var/lock/LCK..ttyS1</tt>\n" 216 "<tt>/var/lock/LCK..ttyS1</tt>\n"
217 "Here you can select whether this locking will\n" 217 "Here you can select whether this locking will\n"
218 "be done.\n" 218 "be done.\n"
219 "\n" 219 "\n"
220 "<b>Default</b>: On")); 220 "<b>Default</b>: On"));
221 221
222 // Modem Timeout Line Edit Box 222 // Modem Timeout Line Edit Box
223 QHBoxLayout *timeoutLayout = new QHBoxLayout( this ); 223 QHBoxLayout *timeoutLayout = new QHBoxLayout( this );
224 QLabel *timeoutlabel = new QLabel( tr("Modem timeout:") ,this, "timeout" ); 224 QLabel *timeoutlabel = new QLabel( tr("Modem timeout:") ,this, "timeout" );
225 modemtimeout = new QSpinBox( 1, 120, 1, this, "modemTimeout" ); 225 modemtimeout = new QSpinBox( 1, 120, 1, this, "modemTimeout" );
226 // modemtimeout = new KIntNumInput(_pppdata->modemTimeout(), this); 226 // modemtimeout = new KIntNumInput(_pppdata->modemTimeout(), this);
227 // modemtimeout->setLabel(tr("Modem &timeout:")); 227 // modemtimeout->setLabel(tr("Modem &timeout:"));
228 // modemtimeout->setRange(1, 120, 1); 228 // modemtimeout->setRange(1, 120, 1);
229 modemtimeout->setSuffix(tr(" sec")); 229 modemtimeout->setSuffix(tr(" sec"));
230 modemtimeout->setValue( _pppdata->modemTimeout() ); 230 modemtimeout->setValue( _pppdata->modemTimeout() );
231 // connect(modemtimeout, SIGNAL(valueChanged(int)), 231 // connect(modemtimeout, SIGNAL(valueChanged(int)),
232 // SLOT(modemtimeoutchanged(int))); 232 // SLOT(modemtimeoutchanged(int)));
233 timeoutLayout->addWidget(timeoutlabel); 233 timeoutLayout->addWidget(timeoutlabel);
234 timeoutLayout->addWidget(modemtimeout); 234 timeoutLayout->addWidget(modemtimeout);
235 tl->addMultiCellLayout(timeoutLayout, 7, 7, 0, 1); 235 tl->addMultiCellLayout(timeoutLayout, 7, 7, 0, 1);
236 236
237 QWhatsThis::add(modemtimeout, 237 QWhatsThis::add(modemtimeout,
238 tr("This specifies how long <i>kppp</i> waits for a\n" 238 tr("This specifies how long <i>kppp</i> waits for a\n"
239 "<i>CONNECT</i> response from your modem. The\n" 239 "<i>CONNECT</i> response from your modem. The\n"
240 "recommended value is 30 seconds.")); 240 "recommended value is 30 seconds."));
241 241
242 //set stuff from gpppdata 242 //set stuff from gpppdata
243 for(int i=0; i <= enter->count()-1; i++) 243 for(int i=0; i <= enter->count()-1; i++)
244 { 244 {
245 if(_pppdata->enter() == enter->text(i)) 245 if(_pppdata->enter() == enter->text(i))
246 enter->setCurrentItem(i); 246 enter->setCurrentItem(i);
247 } 247 }
248 248
249 for(int i=0; i <= modemdevice->count()-1; i++) 249 for(int i=0; i <= modemdevice->count()-1; i++)
250 { 250 {
251 if(_pppdata->modemDevice() == modemdevice->text(i)) 251 if(_pppdata->modemDevice() == modemdevice->text(i))
252 modemdevice->setCurrentItem(i); 252 modemdevice->setCurrentItem(i);
253 } 253 }
254 254
255 for(int i=0; i <= flowcontrol->count()-1; i++) 255 for(int i=0; i <= flowcontrol->count()-1; i++)
256 { 256 {
257 if(_pppdata->flowcontrol() == flowcontrol->text(i)) 257 if(_pppdata->flowcontrol() == flowcontrol->text(i))
258 flowcontrol->setCurrentItem(i); 258 flowcontrol->setCurrentItem(i);
259 } 259 }
260 260
261 //set the modem speed 261 //set the modem speed
262 for(int i=0; i < baud_c->count(); i++) 262 for(int i=0; i < baud_c->count(); i++)
263 if(baud_c->text(i) == _pppdata->speed()) 263 if(baud_c->text(i) == _pppdata->speed())
264 baud_c->setCurrentItem(i); 264 baud_c->setCurrentItem(i);
265 265
266 tl->setRowStretch(1, 1); 266 tl->setRowStretch(1, 1);
267} 267}
268 268
269ModemWidget::~ModemWidget() 269ModemWidget::~ModemWidget()
270{ 270{
271 QStringList devs; 271 QStringList devs;
272 272
273 for (int i=0;i<modemdevice->count();i++) 273 for (int i=0;i<modemdevice->count();i++)
274 { 274 {
275 QString s = modemdevice->text(i); 275 QString s = modemdevice->text(i);
276 s.simplifyWhiteSpace(); 276 s.simplifyWhiteSpace();
277 if (! s.isEmpty() ) devs << s; 277 if (! s.isEmpty() ) devs << s;
278 } 278 }
279 279
280 280
281 QString edited = modemdevice->currentText(); 281 QString edited = modemdevice->currentText();
282 if ( !( edited ).isEmpty() ) 282 if ( !( edited ).isEmpty() )
283 { 283 {
284 edited.simplifyWhiteSpace(); 284 edited.simplifyWhiteSpace();
285 if ( devs.contains( edited ) == 0 ) 285 if ( devs.contains( edited ) == 0 )
286 { 286 {
287 devs << edited; 287 devs << edited;
288 } 288 }
289 _pppdata->setModemDevice( edited );
290 } 289 }
291 290
292 291
293 Config cfg("NetworkSetupPPP"); 292 Config cfg("NetworkSetupPPP");
294 cfg.setGroup("Devices_General"); 293 cfg.setGroup("Devices_General");
295 cfg.writeEntry("devices",devs,','); 294 cfg.writeEntry("devices",devs,',');
296 295
297} 296}
298 297
299// void ModemWidget::speed_selection(int) { 298// void ModemWidget::speed_selection(int) {
300// _pppdata->setSpeed(baud_c->text(baud_c->currentItem())); 299// _pppdata->setSpeed(baud_c->text(baud_c->currentItem()));
301// } 300// }
302 301
303 302
304// void ModemWidget::setenter(int ) { 303// void ModemWidget::setenter(int ) {
305// _pppdata->setEnter(enter->text(enter->currentItem())); 304// _pppdata->setEnter(enter->text(enter->currentItem()));
306// } 305// }
307 306
308 307
309// void ModemWidget::setmodemdc(int i) { 308// void ModemWidget::setmodemdc(int i) {
310// _pppdata->setModemDevice(modemdevice->text(i)); 309// _pppdata->setModemDevice(modemdevice->text(i));
311// } 310// }
312 311
313// void ModemWidget::setmodemdc( const QString &string ) { 312// void ModemWidget::setmodemdc( const QString &string ) {
314// _pppdata->setModemDevice( string ); 313// _pppdata->setModemDevice( string );
315// } 314// }
316 315
317// void ModemWidget::setflowcontrol(int i) { 316// void ModemWidget::setflowcontrol(int i) {
318// _pppdata->setFlowcontrol(flowcontrol->text(i)); 317// _pppdata->setFlowcontrol(flowcontrol->text(i));
319// } 318// }
320 319
321 320
322// void ModemWidget::modemlockfilechanged(bool set) { 321// void ModemWidget::modemlockfilechanged(bool set) {
323// _pppdata->setModemLockFile(set); 322// _pppdata->setModemLockFile(set);
324// } 323// }
325 324
326 325
327// void ModemWidget::modemtimeoutchanged(int n) { 326// void ModemWidget::modemtimeoutchanged(int n) {
328// _pppdata->setModemTimeout(n); 327// _pppdata->setModemTimeout(n);
329// } 328// }
330 329
331 330
332 331
333bool ModemWidget::save() 332bool ModemWidget::save()
334{ 333{
335 //first check to make sure that the device name is unique! 334 //first check to make sure that the device name is unique!
336 if(modemname->text().isEmpty() || 335 if(modemname->text().isEmpty() ||
337 !_pppdata->isUniqueDevname(modemname->text())) 336 !_pppdata->isUniqueDevname(modemname->text()))
338 return false; 337 return false;
339 338
340 odebug << "ModemWidget::save saving modem1 data" << oendl;
341 _pppdata->setDevname( modemname->text() ); 339 _pppdata->setDevname( modemname->text() );
342 _pppdata->setModemDevice( modemdevice->currentText() ); 340 _pppdata->setModemDevice( modemdevice->currentText() );
343 _pppdata->setFlowcontrol(flowcontrol->currentText()); 341 _pppdata->setFlowcontrol(flowcontrol->currentText());
344 _pppdata->setFlowcontrol(flowcontrol->currentText()); 342 _pppdata->setFlowcontrol(flowcontrol->currentText());
345 _pppdata->setSpeed(baud_c->currentText()); 343 _pppdata->setSpeed(baud_c->currentText());
346 _pppdata->setModemLockFile( modemlockfile->isChecked()); 344 _pppdata->setModemLockFile( modemlockfile->isChecked());
347 _pppdata->setModemTimeout( modemtimeout->value() ); 345 _pppdata->setModemTimeout( modemtimeout->value() );
348 return true; 346 return true;
349 347
350} 348}
351 349
350void ModemWidget::slotBeforeModemQuery()
351{
352 m_oldModemDev = _pppdata->modemDevice();
353 m_oldFlowControl = _pppdata->flowcontrol();
354 m_oldSpeed = _pppdata->speed();
355 m_oldModemLock = _pppdata->modemLockFile();
356 m_oldModemTimeout = _pppdata->modemTimeout();
357
358
359 _pppdata->setModemDevice( modemdevice->currentText() );
360 _pppdata->setFlowcontrol(flowcontrol->currentText());
361 _pppdata->setFlowcontrol(flowcontrol->currentText());
362 _pppdata->setSpeed(baud_c->currentText());
363 _pppdata->setModemLockFile( modemlockfile->isChecked());
364 _pppdata->setModemTimeout( modemtimeout->value() );
365}
366
367
368void ModemWidget::slotAfterModemQuery()
369{
370 _pppdata->setModemDevice( m_oldModemDev );
371 _pppdata->setFlowcontrol( m_oldFlowControl );
372 _pppdata->setSpeed( m_oldSpeed );
373 _pppdata->setModemLockFile( m_oldModemLock );
374 _pppdata->setModemTimeout( m_oldModemTimeout );
375}
376
377
352ModemWidget2::ModemWidget2( PPPData *pd, InterfacePPP *ip, QWidget *parent, 378ModemWidget2::ModemWidget2( PPPData *pd, InterfacePPP *ip, QWidget *parent,
353 const char *name) 379 const char *name)
354 : QWidget(parent, name), _pppdata(pd), _ifaceppp(ip) 380 : QWidget(parent, name), _pppdata(pd), _ifaceppp(ip)
355{ 381{
356 QVBoxLayout *l1 = new QVBoxLayout(this, 0 );//, KDialog::spacingHint()); 382 QVBoxLayout *l1 = new QVBoxLayout(this, 0 );//, KDialog::spacingHint());
357 383
358 384
359 waitfordt = new QCheckBox(tr("&Wait for dial tone before dialing"), this); 385 waitfordt = new QCheckBox(tr("&Wait for dial tone before dialing"), this);
360 waitfordt->setChecked(_pppdata->waitForDialTone()); 386 waitfordt->setChecked(_pppdata->waitForDialTone());
361 // connect(waitfordt, SIGNAL(toggled(bool)), SLOT(waitfordtchanged(bool))); 387 // connect(waitfordt, SIGNAL(toggled(bool)), SLOT(waitfordtchanged(bool)));
362 l1->addWidget(waitfordt); 388 l1->addWidget(waitfordt);
363 QWhatsThis::add(waitfordt, 389 QWhatsThis::add(waitfordt,
364 tr("<p>Normally the modem waits for a dial tone\n" 390 tr("<p>Normally the modem waits for a dial tone\n"
365 "from your phone line, indicating that it can\n" 391 "from your phone line, indicating that it can\n"
366 "start to dial a number. If your modem does not\n" 392 "start to dial a number. If your modem does not\n"
367 "recognize this sound, or your local phone system\n" 393 "recognize this sound, or your local phone system\n"
368 "does not emit such a tone, uncheck this option\n" 394 "does not emit such a tone, uncheck this option\n"
369 "\n" 395 "\n"
370 "<b>Default:</b>: On")); 396 "<b>Default:</b>: On"));
371 397
372 QHBoxLayout *waitLayout = new QHBoxLayout( this ); 398 QHBoxLayout *waitLayout = new QHBoxLayout( this );
373 QLabel *waitLabel = new QLabel( tr("Busy wait:"), this, "busyWait" ); 399 QLabel *waitLabel = new QLabel( tr("Busy wait:"), this, "busyWait" );
374 busywait = new QSpinBox( 0, 300, 5, this, "busyWait" ); 400 busywait = new QSpinBox( 0, 300, 5, this, "busyWait" );
375 // busywait = new KIntNumInput(_pppdata->busyWait(), this); 401 // busywait = new KIntNumInput(_pppdata->busyWait(), this);
376 // busywait->setLabel(tr("B&usy wait:")); 402 // busywait->setLabel(tr("B&usy wait:"));
377 // busywait->setRange(0, 300, 5, true); 403 // busywait->setRange(0, 300, 5, true);
378 busywait->setSuffix(tr(" sec")); 404 busywait->setSuffix(tr(" sec"));
379 // connect(busywait, SIGNAL(valueChanged(int)), SLOT(busywaitchanged(int))); 405 // connect(busywait, SIGNAL(valueChanged(int)), SLOT(busywaitchanged(int)));
380 waitLayout->addWidget(waitLabel); 406 waitLayout->addWidget(waitLabel);
381 waitLayout->addWidget(busywait); 407 waitLayout->addWidget(busywait);
382 l1->addLayout( waitLayout ); 408 l1->addLayout( waitLayout );
383 409
384 QWhatsThis::add(busywait, 410 QWhatsThis::add(busywait,
385 tr("Specifies the number of seconds to wait before\n" 411 tr("Specifies the number of seconds to wait before\n"
386 "redial if all dialed numbers are busy. This is\n" 412 "redial if all dialed numbers are busy. This is\n"
387 "necessary because some modems get stuck if the\n" 413 "necessary because some modems get stuck if the\n"
388 "same number is busy too often.\n" 414 "same number is busy too often.\n"
389 "\n" 415 "\n"
390 "The default is 0 seconds, you should not change\n" 416 "The default is 0 seconds, you should not change\n"
391 "this unless you need to.")); 417 "this unless you need to."));
392 418
393 l1->addSpacing(10); 419 l1->addSpacing(10);
394 420
395 QHBoxLayout *hbl = new QHBoxLayout; 421 QHBoxLayout *hbl = new QHBoxLayout;
396 hbl->setSpacing(2);//KDialog::spacingHint()); 422 hbl->setSpacing(2);//KDialog::spacingHint());
397 423
398 QLabel *volumeLabel = new QLabel(tr("Modem &volume:"), this); 424 QLabel *volumeLabel = new QLabel(tr("Modem &volume:"), this);
399 hbl->addWidget(volumeLabel); 425 hbl->addWidget(volumeLabel);
400 volume = new QSlider(0, 2, 1, _pppdata->volume(), 426 volume = new QSlider(0, 2, 1, _pppdata->volume(),
401 QSlider::Horizontal, this); 427 QSlider::Horizontal, this);
402 volumeLabel->setBuddy(volume); 428 volumeLabel->setBuddy(volume);
403 volume->setTickmarks(QSlider::Below); 429 volume->setTickmarks(QSlider::Below);
404 hbl->addWidget(volume); 430 hbl->addWidget(volume);
405 431
406 l1->addLayout(hbl); 432 l1->addLayout(hbl);
407 433
408 // connect(volume, SIGNAL(valueChanged(int)), 434 // connect(volume, SIGNAL(valueChanged(int)),
409 // this, SLOT(volumeChanged(int))); 435 // this, SLOT(volumeChanged(int)));
410 QString tmp = tr("Most modems have a speaker which makes\n" 436 QString tmp = tr("Most modems have a speaker which makes\n"
411 "a lot of noise when dialing. Here you can\n" 437 "a lot of noise when dialing. Here you can\n"
412 "either turn this completely off or select a\n" 438 "either turn this completely off or select a\n"
413 "lower volume.\n" 439 "lower volume.\n"
414 "\n" 440 "\n"
415 "If this does not work for your modem,\n" 441 "If this does not work for your modem,\n"
416 "you must modify the modem volume command."); 442 "you must modify the modem volume command.");
417 443
418 QWhatsThis::add(volumeLabel,tmp); 444 QWhatsThis::add(volumeLabel,tmp);
419 QWhatsThis::add(volume, tmp); 445 QWhatsThis::add(volume, tmp);
420 446
421 l1->addSpacing(20); 447 l1->addSpacing(20);
422 448
423#if 0 449#if 0
424 chkbox1 = new QCheckBox(tr("Modem asserts CD line"), this); 450 chkbox1 = new QCheckBox(tr("Modem asserts CD line"), this);
425 chkbox1->setChecked(_pppdata->UseCDLine()); 451 chkbox1->setChecked(_pppdata->UseCDLine());
426 connect(chkbox1,SIGNAL(toggled(bool)), 452 connect(chkbox1,SIGNAL(toggled(bool)),
427 this,SLOT(use_cdline_toggled(bool))); 453 this,SLOT(use_cdline_toggled(bool)));
428 l12->addWidget(chkbox1); 454 l12->addWidget(chkbox1);
429 l12->addStretch(1); 455 l12->addStretch(1);
430 l1->addStretch(1); 456 l1->addStretch(1);
431 QWhatsThis::add(chkbox1, 457 QWhatsThis::add(chkbox1,
432 tr("This controls how <i>kppp</i> detects that the modem\n" 458 tr("This controls how <i>kppp</i> detects that the modem\n"
433 "is not responding. Unless you are having\n" 459 "is not responding. Unless you are having\n"
434 "problems with this, do not modify this setting.\n" 460 "problems with this, do not modify this setting.\n"
435 "\n" 461 "\n"
436 "<b>Default</b>: Off")); 462 "<b>Default</b>: Off"));
437#endif 463#endif
438 464
439 modemcmds = new QPushButton(tr("Mod&em Commands..."), this); 465 modemcmds = new QPushButton(tr("Mod&em Commands..."), this);
440 QWhatsThis::add(modemcmds, 466 QWhatsThis::add(modemcmds,
441 tr("Allows you to change the AT command for\n" 467 tr("Allows you to change the AT command for\n"
442 "your modem.")); 468 "your modem."));
443 469
444 modeminfo_button = new QPushButton(tr("&Query Modem..."), this); 470 modeminfo_button = new QPushButton(tr("&Query Modem..."), this);
445 QWhatsThis::add(modeminfo_button, 471 QWhatsThis::add(modeminfo_button,
446 tr("Most modems support the ATI command set to\n" 472 tr("Most modems support the ATI command set to\n"
447 "find out vendor and revision of your modem.\n" 473 "find out vendor and revision of your modem.\n"
448 "\n" 474 "\n"
449 "Press this button to query your modem for\n" 475 "Press this button to query your modem for\n"
450 "this information. It can be useful to help\n" 476 "this information. It can be useful to help\n"
451 "you setup the modem")); 477 "you setup the modem"));
452 478
453 // terminal_button = new QPushButton(tr("&Terminal..."), this); 479 // terminal_button = new QPushButton(tr("&Terminal..."), this);
454 // QWhatsThis::add(terminal_button, 480 // QWhatsThis::add(terminal_button,
455 // tr("Opens the built-in terminal program. You\n" 481 // tr("Opens the built-in terminal program. You\n"
456 // "can use this if you want to play around\n" 482 // "can use this if you want to play around\n"
457 // "with your modem's AT command set")); 483 // "with your modem's AT command set"));
458 484
459 QHBoxLayout *hbox = new QHBoxLayout(); 485 QHBoxLayout *hbox = new QHBoxLayout();
460 l1->addLayout(hbox); 486 l1->addLayout(hbox);
461 hbox->addStretch(1); 487 hbox->addStretch(1);
462 QVBoxLayout *vbox = new QVBoxLayout(); 488 QVBoxLayout *vbox = new QVBoxLayout();
463 hbox->addLayout(vbox); 489 hbox->addLayout(vbox);
464 490
465 vbox->addWidget(modemcmds); 491 vbox->addWidget(modemcmds);
466 vbox->addWidget(modeminfo_button); 492 vbox->addWidget(modeminfo_button);
467 // vbox->addWidget(terminal_button); 493 // vbox->addWidget(terminal_button);
468 494
469 hbox->addStretch(1); 495 hbox->addStretch(1);
470 l1->addStretch(1); 496 l1->addStretch(1);
471 497
472 connect(modemcmds, SIGNAL(clicked()), 498 connect(modemcmds, SIGNAL(clicked()),
473 SLOT(modemcmdsbutton())); 499 SLOT(modemcmdsbutton()));
474 connect(modeminfo_button, SIGNAL(clicked()), 500 connect(modeminfo_button, SIGNAL(clicked()),
475 SLOT(query_modem())); 501 SLOT(query_modem()));
476 // connect(terminal_button, SIGNAL(clicked()), 502 // connect(terminal_button, SIGNAL(clicked()),
477 // SLOT(terminal())); 503 // SLOT(terminal()));
478} 504}
479 505
480 506
481void ModemWidget2::modemcmdsbutton() 507void ModemWidget2::modemcmdsbutton()
482{ 508{
483 ModemCommands mc(_ifaceppp->data(), this, "commands" , true, Qt::WStyle_ContextHelp); 509 ModemCommands mc(_ifaceppp->data(), this, "commands" , true, Qt::WStyle_ContextHelp);
484 510
485 QPEApplication::execDialog( &mc ); 511 QPEApplication::execDialog( &mc );
486} 512}
487 513
488 514
489void ModemWidget2::query_modem() 515void ModemWidget2::query_modem()
490{ 516{
517 emit sig_beforeQueryModem();
518
491 ModemTransfer mt(_ifaceppp->modem(), this); 519 ModemTransfer mt(_ifaceppp->modem(), this);
492 mt.exec(); 520 mt.exec();
521
522 emit sig_afterQueryModem();
493} 523}
494 524
495 525
496// void ModemWidget2::terminal() { 526// void ModemWidget2::terminal() {
497// MiniTerm terminal(NULL,NULL); 527// MiniTerm terminal(NULL,NULL);
498// terminal.exec(); 528// terminal.exec();
499// } 529// }
500 530
501 531
502// #if 0 532// #if 0
503// void ModemWidget2::use_cdline_toggled(bool on) { 533// void ModemWidget2::use_cdline_toggled(bool on) {
504// _pppdata->setUseCDLine(on); 534// _pppdata->setUseCDLine(on);
505// } 535// }
506// #endif 536// #endif
507 537
508// void ModemWidget2::waitfordtchanged(bool b) { 538// void ModemWidget2::waitfordtchanged(bool b) {
509// _pppdata->setWaitForDialTone((int)b); 539// _pppdata->setWaitForDialTone((int)b);
510// } 540// }
511 541
512// void ModemWidget2::busywaitchanged(int n) { 542// void ModemWidget2::busywaitchanged(int n) {
513// _pppdata->setbusyWait(n); 543// _pppdata->setbusyWait(n);
514// } 544// }
515 545
516 546
517// void ModemWidget2::volumeChanged(int v) { 547// void ModemWidget2::volumeChanged(int v) {
518// _pppdata->setVolume(v); 548// _pppdata->setVolume(v);
519// } 549// }
520 550
521bool ModemWidget2::save() 551bool ModemWidget2::save()
522{ 552{
523 _pppdata->setWaitForDialTone(waitfordt->isChecked()); 553 _pppdata->setWaitForDialTone(waitfordt->isChecked());
524 _pppdata->setbusyWait(busywait->value()); 554 _pppdata->setbusyWait(busywait->value());
525 _pppdata->setVolume(volume->value()); 555 _pppdata->setVolume(volume->value());
526 return true; 556 return true;
527} 557}
528 558
diff --git a/noncore/settings/networksettings/ppp/general.h b/noncore/settings/networksettings/ppp/general.h
index f43f241..a4dece4 100644
--- a/noncore/settings/networksettings/ppp/general.h
+++ b/noncore/settings/networksettings/ppp/general.h
@@ -1,108 +1,125 @@
1/* 1/*
2 * 2 *
3 * kPPP: A pppd front end for the KDE project 3 * kPPP: A pppd front end for the KDE project
4 * 4 *
5 * $Id$ 5 * $Id$
6 * 6 *
7 * Copyright (C) 1997 Bernd Johannes Wuebben 7 * Copyright (C) 1997 Bernd Johannes Wuebben
8 * wuebben@math.cornell.edu 8 * wuebben@math.cornell.edu
9 * 9 *
10 * 10 *
11 * This program is free software; you can redistribute it and/or 11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU Library General Public 12 * modify it under the terms of the GNU Library General Public
13 * License as published by the Free Software Foundation; either 13 * License as published by the Free Software Foundation; either
14 * version 2 of the License, or (at your option) any later version. 14 * version 2 of the License, or (at your option) any later version.
15 * 15 *
16 * This program is distributed in the hope that it will be useful, 16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * Library General Public License for more details. 19 * Library General Public License for more details.
20 * 20 *
21 * You should have received a copy of the GNU Library General Public 21 * You should have received a copy of the GNU Library General Public
22 * License along with this program; if not, write to the Free 22 * License along with this program; if not, write to the Free
23 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 23 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 */ 24 */
25 25
26#ifndef _GENERAL_H_ 26#ifndef _GENERAL_H_
27#define _GENERAL_H_ 27#define _GENERAL_H_
28 28
29#include <qwidget.h> 29#include <qwidget.h>
30 30
31class QSlider; 31class QSlider;
32class QSpinBox; 32class QSpinBox;
33class QCombobox; 33class QCombobox;
34class QLabel; 34class QLabel;
35class QCheckBox; 35class QCheckBox;
36class QComboBox; 36class QComboBox;
37class PPPData; 37class PPPData;
38class InterfacePPP; 38class InterfacePPP;
39class QLineEdit; 39class QLineEdit;
40 40
41class ModemWidget : public QWidget { 41class ModemWidget : public QWidget {
42 Q_OBJECT 42 Q_OBJECT
43public: 43public:
44 ModemWidget(PPPData*, QWidget *parent=0, const char *name=0 ); 44 ModemWidget(PPPData*, QWidget *parent=0, const char *name=0 );
45 ~ModemWidget(); 45 ~ModemWidget();
46 46
47 bool save(); 47 bool save();
48 48
49private slots:
50 /*
51 * temporarily commit configuration so queryModem
52 * will use 'current' settings
53 */
54 void slotBeforeModemQuery();
55 void slotAfterModemQuery();
56
49/* private slots: */ 57/* private slots: */
50 /* void setmodemdc(int); */ 58 /* void setmodemdc(int); */
51/* void setmodemdc(const QString &); */ 59/* void setmodemdc(const QString &); */
52 /* void setflowcontrol(int); */ 60 /* void setflowcontrol(int); */
53 /* void modemtimeoutchanged(int); */ 61 /* void modemtimeoutchanged(int); */
54 /* void modemlockfilechanged(bool); */ 62 /* void modemlockfilechanged(bool); */
55 /* void setenter(int); */ 63 /* void setenter(int); */
56/* void speed_selection(int); */ 64/* void speed_selection(int); */
57 65
58private: 66private:
59 QComboBox *enter; 67 QComboBox *enter;
60 /* QLabel *label1; */ 68 /* QLabel *label1; */
61 /* QLabel *label2; */ 69 /* QLabel *label2; */
62 /* QLabel *labeltmp; */ 70 /* QLabel *labeltmp; */
63 /* QLabel *labelenter; */ 71 /* QLabel *labelenter; */
64 QLineEdit *modemname; 72 QLineEdit *modemname;
65 QComboBox *modemdevice; 73 QComboBox *modemdevice;
66 QComboBox *flowcontrol; 74 QComboBox *flowcontrol;
67 75
68 QComboBox *baud_c; 76 QComboBox *baud_c;
69 QLabel *baud_label; 77 QLabel *baud_label;
70 78
71 QSpinBox *modemtimeout; 79 QSpinBox *modemtimeout;
72 QCheckBox *modemlockfile; 80 QCheckBox *modemlockfile;
73 PPPData *_pppdata; 81 PPPData *_pppdata;
82
83private:
84 QString m_oldModemDev, m_oldFlowControl, m_oldSpeed;
85 bool m_oldModemLock;
86 int m_oldModemTimeout;
74}; 87};
75 88
76 89
77class ModemWidget2 : public QWidget { 90class ModemWidget2 : public QWidget {
78 Q_OBJECT 91 Q_OBJECT
79public: 92public:
80 ModemWidget2( PPPData*, InterfacePPP*, QWidget *parent=0, const char *name=0 ); 93 ModemWidget2( PPPData*, InterfacePPP*, QWidget *parent=0, const char *name=0 );
81 bool save(); 94 bool save();
82 95
96signals:
97 void sig_beforeQueryModem();
98 void sig_afterQueryModem();
99
83private slots: 100private slots:
84/* void waitfordtchanged(bool); */ 101/* void waitfordtchanged(bool); */
85 /* void busywaitchanged(int); */ 102 /* void busywaitchanged(int); */
86 // void use_cdline_toggled(bool); 103 // void use_cdline_toggled(bool);
87 void modemcmdsbutton(); 104 void modemcmdsbutton();
88 // void terminal(); 105 // void terminal();
89 void query_modem(); 106 void query_modem();
90 // void volumeChanged(int); 107 // void volumeChanged(int);
91 108
92private: 109private:
93 QLabel *labeltmp; 110 QLabel *labeltmp;
94 QPushButton *modemcmds; 111 QPushButton *modemcmds;
95 QPushButton *modeminfo_button; 112 QPushButton *modeminfo_button;
96 // QPushButton *terminal_button; 113 // QPushButton *terminal_button;
97 // QFrame *fline; 114 // QFrame *fline;
98 QCheckBox *waitfordt; 115 QCheckBox *waitfordt;
99 QSpinBox *busywait; 116 QSpinBox *busywait;
100 QCheckBox *chkbox1; 117 QCheckBox *chkbox1;
101 QSlider *volume; 118 QSlider *volume;
102 PPPData *_pppdata; 119 PPPData *_pppdata;
103 InterfacePPP *_ifaceppp; 120 InterfacePPP *_ifaceppp;
104}; 121};
105 122
106#endif 123#endif
107 124
108 125