1 | /* |
2 | * kPPP: A front end for pppd for the KDE project |
3 | * |
4 | * $Id$ |
5 | * |
6 | * Copyright (C) 1997 Bernd Johannes Wuebben |
7 | * wuebben@math.cornell.edu |
8 | * |
9 | * based on EzPPP: |
10 | * Copyright (C) 1997 Jay Painter |
11 | * |
12 | * This library is free software; you can redistribute it and/or |
13 | * modify it under the terms of the GNU Library General Public |
14 | * License as published by the Free Software Foundation; either |
15 | * version 2 of the License, or (at your option) any later version. |
16 | * |
17 | * This library is distributed in the hope that it will be useful, |
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
20 | * Library General Public License for more details. |
21 | * |
22 | * You should have received a copy of the GNU Library General Public |
23 | * License along with dummyWidget program; if not, write to the Free |
24 | * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
25 | */ |
26 | |
27 | #include <qlayout.h> |
28 | #include <qslider.h> |
29 | //Added by qt3to4: |
30 | #include <QVBoxLayout> |
31 | #include <QHBoxLayout> |
32 | #include <QGridLayout> |
33 | #include <stdlib.h> |
34 | #include <klocale.h> |
35 | #include "modemcmds.h" |
36 | #include "pppdata.h" |
37 | #include <kwindowsystem.h> |
38 | #include <QFrame> |
39 | #include <QApplication> |
40 | #include <q3groupbox.h> |
41 | #include <qlineedit.h> |
42 | #include <qpushbutton.h> |
43 | #include <qlabel.h> |
44 | #include <kiconloader.h> |
45 | |
46 | |
47 | #define ADJUSTEDIT(e) e->setText("XXXXXXXXqy"); e->setMinimumSize(e->sizeHint()); e->setFixedHeight(e->sizeHint().height()); e->setText(""); e->setMaxLength(MODEMSTR_SIZE); |
48 | |
49 | // a little trick to make the label look like a disabled lineedit |
50 | #define FORMATSLIDERLABEL(l) l->setFixedWidth(l->sizeHint().width()); l->setFixedHeight(QLineEdit(dummyWidget).sizeHint().height()); l->setAlignment(Qt::AlignCenter); l->setFrameStyle(QFrame::WinPanel|QFrame::Sunken); l->setLineWidth(2); |
51 | |
52 | ModemCommands::ModemCommands(QWidget *parent, const char *name) |
53 | : KDialog(parent) |
54 | { |
55 | setObjectName(name); |
56 | setCaption( i18n("Edit Modem Commands" ) ); |
57 | setButtons( Ok|Cancel ); |
58 | setDefaultButton( Ok ); |
59 | setModal( true ); |
60 | KWindowSystem::setIcons(winId(), qApp->windowIcon().pixmap(IconSize(KIconLoader::Desktop),IconSize(KIconLoader::Desktop)), qApp->windowIcon().pixmap(IconSize(KIconLoader::Small),IconSize(KIconLoader::Small))); |
61 | QWidget *dummyWidget = new QWidget(this); |
62 | setMainWidget(dummyWidget); |
63 | |
64 | const int GRIDROWS = 22; |
65 | int row = 0; |
66 | |
67 | // toplevel layout |
68 | QVBoxLayout *tl = new QVBoxLayout(dummyWidget); |
69 | tl->setSpacing(4); |
70 | tl->setMargin(10); |
71 | |
72 | // add grid + frame |
73 | QGridLayout *l1 = new QGridLayout(); |
74 | tl->addLayout(l1); |
75 | box = new Q3GroupBox(dummyWidget, "box" ); |
76 | l1->addWidget(box, row++, 0, GRIDROWS + 1, 4); |
77 | |
78 | // put slider and label into a separate H-Box |
79 | QHBoxLayout *l2 = new QHBoxLayout; |
80 | l1->addLayout(l2, row, 2); |
81 | lpreinitslider = new QLabel("MMMM" , dummyWidget); |
82 | FORMATSLIDERLABEL(lpreinitslider); |
83 | |
84 | preinitslider = new QSlider(Qt::Horizontal, dummyWidget); |
85 | preinitslider->setMinimum(0); |
86 | preinitslider->setMaximum(300); |
87 | preinitslider->setPageStep(1); |
88 | preinitslider->setValue(0); |
89 | |
90 | preinitslider->setFixedHeight(preinitslider->sizeHint().height()); |
91 | connect(preinitslider, SIGNAL(valueChanged(int)), |
92 | lpreinitslider, SLOT(setNum(int))); |
93 | l2->addWidget(lpreinitslider, 0); |
94 | l2->addWidget(preinitslider, 1); |
95 | |
96 | lpreinit = new QLabel(i18n("Pre-init delay (sec/100):" ), dummyWidget); |
97 | l1->addWidget(lpreinit, row++, 1); |
98 | |
99 | for(int i = 0; i < PPPData::NumInitStrings; i++) { |
100 | initstr[i] = new QLineEdit(dummyWidget); |
101 | QLabel *initLabel = new QLabel(i18n("Initialization string %1:" , i + 1), |
102 | dummyWidget); |
103 | ADJUSTEDIT(initstr[i]); |
104 | l1->addWidget(initLabel, row, 1); |
105 | l1->addWidget(initstr[i], row++, 2); |
106 | } |
107 | |
108 | QHBoxLayout *l3 = new QHBoxLayout; |
109 | l1->addLayout(l3, row, 2); |
110 | linitslider = new QLabel("MMMM" , dummyWidget); |
111 | FORMATSLIDERLABEL(linitslider); |
112 | initslider = new QSlider(Qt::Horizontal, dummyWidget); |
113 | initslider->setMinimum(1); |
114 | initslider->setMaximum(300); |
115 | initslider->setPageStep(1); |
116 | initslider->setValue(1); // was zero before the Qt4 port. |
117 | |
118 | initslider->setFixedHeight(initslider->sizeHint().height()); |
119 | connect(initslider, SIGNAL(valueChanged(int)), |
120 | linitslider, SLOT(setNum(int))); |
121 | l3->addWidget(linitslider, 0); |
122 | l3->addWidget(initslider, 1); |
123 | |
124 | label3 = new QLabel(i18n("Post-init delay (sec/100):" ), dummyWidget); |
125 | l1->addWidget(label3, row++, 1); |
126 | |
127 | /* Set ATS11 (Dial tone duration) between 0-255 (Default ~ 70) */ |
128 | QHBoxLayout *l4 = new QHBoxLayout; |
129 | l1->addLayout(l4, row, 2); |
130 | ldurationslider = new QLabel("MMMM" , dummyWidget); |
131 | FORMATSLIDERLABEL(ldurationslider); |
132 | durationslider = new QSlider(Qt::Horizontal, dummyWidget); |
133 | durationslider->setMinimum(1); |
134 | durationslider->setMaximum(255); |
135 | durationslider->setPageStep(1); |
136 | durationslider->setValue(1); // was 0 before the Qt4 port |
137 | |
138 | durationslider->setFixedHeight(durationslider->sizeHint().height()); |
139 | connect(durationslider, SIGNAL(valueChanged(int)), |
140 | ldurationslider, SLOT(setNum(int))); |
141 | l4->addWidget(ldurationslider, 0); |
142 | l4->addWidget(durationslider, 1); |
143 | |
144 | lduration = new QLabel(i18n("Dialing speed (sec/100):" ), dummyWidget); |
145 | l1->addWidget(lduration, row++, 1); |
146 | |
147 | |
148 | initresp = new QLineEdit(dummyWidget); |
149 | label2 = new QLabel(i18n("Init &response:" ), dummyWidget); |
150 | label2->setBuddy(initresp); |
151 | ADJUSTEDIT(initresp); |
152 | l1->addWidget(label2, row, 1); |
153 | l1->addWidget(initresp, row++, 2); |
154 | |
155 | nodetectdialtone = new QLineEdit(dummyWidget); |
156 | lnodetectdialtone = new QLabel(i18n("No di&al tone detection:" ), dummyWidget); |
157 | lnodetectdialtone->setBuddy(nodetectdialtone); |
158 | ADJUSTEDIT(nodetectdialtone); |
159 | l1->addWidget(lnodetectdialtone, row, 1); |
160 | l1->addWidget(nodetectdialtone, row++, 2); |
161 | |
162 | dialstr = new QLineEdit(dummyWidget); |
163 | label4 = new QLabel(i18n("Dial &string:" ),dummyWidget); |
164 | label4->setBuddy(dialstr); |
165 | ADJUSTEDIT(dialstr); |
166 | l1->addWidget(label4, row, 1); |
167 | l1->addWidget(dialstr, row++, 2); |
168 | |
169 | connectresp = new QLineEdit(dummyWidget); |
170 | label5 = new QLabel(i18n("Co&nnect response:" ), dummyWidget); |
171 | label5->setBuddy(connectresp); |
172 | ADJUSTEDIT(connectresp); |
173 | l1->addWidget(label5, row, 1); |
174 | l1->addWidget(connectresp, row++, 2); |
175 | |
176 | busyresp = new QLineEdit(dummyWidget); |
177 | label6 = new QLabel(i18n("Busy response:" ), dummyWidget); |
178 | ADJUSTEDIT(busyresp); |
179 | l1->addWidget(label6, row, 1); |
180 | l1->addWidget(busyresp, row++, 2); |
181 | |
182 | nocarrierresp = new QLineEdit(dummyWidget); |
183 | label7 = new QLabel(i18n("No carr&ier response:" ), dummyWidget); |
184 | label7->setBuddy(nocarrierresp); |
185 | ADJUSTEDIT(nocarrierresp); |
186 | l1->addWidget(label7, row, 1); |
187 | l1->addWidget(nocarrierresp, row++, 2); |
188 | |
189 | nodialtoneresp = new QLineEdit(dummyWidget); |
190 | label8 = new QLabel(i18n("No dial tone response:" ), dummyWidget); |
191 | ADJUSTEDIT(nodialtoneresp); |
192 | l1->addWidget(label8, row, 1); |
193 | l1->addWidget(nodialtoneresp, row++, 2); |
194 | |
195 | hangupstr = new QLineEdit(dummyWidget); |
196 | label9 = new QLabel(i18n("&Hangup string:" ), dummyWidget); |
197 | label9->setBuddy(hangupstr); |
198 | ADJUSTEDIT(hangupstr); |
199 | l1->addWidget(label9, row, 1); |
200 | l1->addWidget(hangupstr, row++, 2); |
201 | |
202 | hangupresp = new QLineEdit(dummyWidget); |
203 | label10 = new QLabel(i18n("Hangup response:" ), dummyWidget); |
204 | ADJUSTEDIT(hangupresp); |
205 | l1->addWidget(label10, row, 1); |
206 | l1->addWidget(hangupresp, row++, 2); |
207 | |
208 | answerstr = new QLineEdit(dummyWidget); |
209 | label11 = new QLabel(i18n("Answ&er string:" ), dummyWidget); |
210 | label11->setBuddy(answerstr); |
211 | ADJUSTEDIT(answerstr); |
212 | l1->addWidget(label11, row, 1); |
213 | l1->addWidget(answerstr, row++, 2); |
214 | |
215 | ringresp = new QLineEdit(dummyWidget); |
216 | label12 = new QLabel(i18n("Ring response:" ), dummyWidget); |
217 | ADJUSTEDIT(ringresp); |
218 | l1->addWidget(label12, row, 1); |
219 | l1->addWidget(ringresp, row++, 2); |
220 | |
221 | answerresp = new QLineEdit(dummyWidget); |
222 | label13 = new QLabel(i18n("Ans&wer response:" ), dummyWidget); |
223 | label13->setBuddy(answerresp); |
224 | ADJUSTEDIT(answerresp); |
225 | l1->addWidget(label13, row, 1); |
226 | l1->addWidget(answerresp, row++, 2); |
227 | |
228 | dlpresp = new QLineEdit(dummyWidget); |
229 | label17 = new QLabel(i18n("DLP response:" ), dummyWidget); |
230 | ADJUSTEDIT(dlpresp); |
231 | l1->addWidget(label17, row, 1); |
232 | l1->addWidget(dlpresp, row++, 2); |
233 | |
234 | escapestr = new QLineEdit(dummyWidget); |
235 | label14 = new QLabel(i18n("Escape strin&g:" ), dummyWidget); |
236 | label14->setBuddy(escapestr); |
237 | ADJUSTEDIT(escapestr); |
238 | l1->addWidget(label14, row, 1); |
239 | l1->addWidget(escapestr, row++, 2); |
240 | |
241 | escaperesp = new QLineEdit(dummyWidget); |
242 | label15 = new QLabel(i18n("Escape response:" ), dummyWidget); |
243 | ADJUSTEDIT(escaperesp); |
244 | l1->addWidget(label15, row, 1); |
245 | l1->addWidget(escaperesp, row++, 2); |
246 | |
247 | QHBoxLayout *l5 = new QHBoxLayout; |
248 | l1->addLayout(l5, row, 2); |
249 | lslider = new QLabel("MMMM" , dummyWidget); |
250 | FORMATSLIDERLABEL(lslider); |
251 | |
252 | slider = new QSlider(Qt::Horizontal, dummyWidget); |
253 | slider->setMinimum(0); |
254 | slider->setMaximum(255); |
255 | slider->setPageStep(1); |
256 | slider->setValue(0); |
257 | |
258 | slider->setFixedHeight(slider->sizeHint().height()); |
259 | connect(slider, SIGNAL(valueChanged(int)), |
260 | lslider, SLOT(setNum(int))); |
261 | l5->addWidget(lslider, 0); |
262 | l5->addWidget(slider, 1); |
263 | |
264 | label16 = new QLabel(i18n("Guard time (sec/50):" ), dummyWidget); |
265 | l1->addWidget(label16, row++, 1); |
266 | |
267 | QLabel *l = new QLabel(i18n("Volume off/low/high:" ), dummyWidget); |
268 | l1->addWidget(l, row, 1); |
269 | QHBoxLayout *l6 = new QHBoxLayout; |
270 | l1->addLayout(l6, row++, 2); |
271 | volume_off = new QLineEdit(dummyWidget); |
272 | volume_off->setFixedHeight(volume_off->sizeHint().height()); |
273 | volume_off->setMinimumWidth((int)(volume_off->sizeHint().width() / 2)); |
274 | volume_medium = new QLineEdit(dummyWidget); |
275 | volume_medium->setFixedHeight(volume_medium->sizeHint().height()); |
276 | volume_medium->setMinimumWidth((int)(volume_medium->sizeHint().width() / 2)); |
277 | volume_high = new QLineEdit(dummyWidget); |
278 | volume_high->setFixedHeight(volume_high->sizeHint().height()); |
279 | volume_high->setMinimumWidth((int)(volume_high->sizeHint().width() / 2)); |
280 | l6->addWidget(volume_off); |
281 | l6->addWidget(volume_medium); |
282 | l6->addWidget(volume_high); |
283 | |
284 | initstr[0]->setFocus(); |
285 | |
286 | l1->addItem(new QSpacerItem(10,0), 0, 0); |
287 | l1->addItem(new QSpacerItem(10,0), 0, 3); |
288 | l1->addItem(new QSpacerItem(0, 5), 0, 0); |
289 | l1->addItem(new QSpacerItem(0, 5), GRIDROWS, 0); |
290 | |
291 | //set stuff from gpppdata |
292 | preinitslider->setValue(gpppdata.modemPreInitDelay()); |
293 | lpreinitslider->setNum(gpppdata.modemPreInitDelay()); |
294 | for(int i = 0; i < PPPData::NumInitStrings; i++) |
295 | initstr[i]->setText(gpppdata.modemInitStr(i)); |
296 | initslider->setValue(gpppdata.modemInitDelay()); |
297 | linitslider->setNum(gpppdata.modemInitDelay()); |
298 | initresp->setText(gpppdata.modemInitResp()); |
299 | |
300 | durationslider->setValue(gpppdata.modemToneDuration()); |
301 | ldurationslider->setNum(gpppdata.modemToneDuration()); |
302 | |
303 | nodetectdialtone->setText(gpppdata.modemNoDialToneDetectionStr()); |
304 | dialstr->setText(gpppdata.modemDialStr()); |
305 | dlpresp->setText(gpppdata.modemDLPResp()); |
306 | |
307 | connectresp->setText(gpppdata.modemConnectResp()); |
308 | busyresp->setText(gpppdata.modemBusyResp()); |
309 | nocarrierresp->setText(gpppdata.modemNoCarrierResp()); |
310 | nodialtoneresp->setText(gpppdata.modemNoDialtoneResp()); |
311 | |
312 | escapestr->setText(gpppdata.modemEscapeStr()); |
313 | escaperesp->setText(gpppdata.modemEscapeResp()); |
314 | |
315 | hangupstr->setText(gpppdata.modemHangupStr()); |
316 | hangupresp->setText(gpppdata.modemHangupResp()); |
317 | |
318 | answerstr->setText(gpppdata.modemAnswerStr()); |
319 | ringresp->setText(gpppdata.modemRingResp()); |
320 | answerresp->setText(gpppdata.modemAnswerResp()); |
321 | |
322 | slider->setValue(gpppdata.modemEscapeGuardTime()); |
323 | lslider->setNum(gpppdata.modemEscapeGuardTime()); |
324 | |
325 | volume_off->setText(gpppdata.volumeOff()); |
326 | volume_medium->setText(gpppdata.volumeMedium()); |
327 | volume_high->setText(gpppdata.volumeHigh()); |
328 | |
329 | // Save the data, so if it not exist we save the default |
330 | gpppdata.save(); |
331 | connect(this,SIGNAL(okClicked()),this,SLOT(slotOk())); |
332 | connect(this,SIGNAL(cancelClicked()),this,SLOT(slotCancel())); |
333 | } |
334 | |
335 | |
336 | void ModemCommands::slotOk() { |
337 | gpppdata.setModemPreInitDelay(lpreinitslider->text().toInt()); |
338 | for(int i = 0; i < PPPData::NumInitStrings; i++) |
339 | gpppdata.setModemInitStr(i, initstr[i]->text()); |
340 | gpppdata.setModemInitResp(initresp->text()); |
341 | gpppdata.setModemInitDelay(linitslider->text().toInt()); |
342 | |
343 | gpppdata.setModemToneDuration(ldurationslider->text().toInt()); |
344 | gpppdata.setModemNoDialToneDetectionStr(nodetectdialtone->text()); |
345 | gpppdata.setModemDialStr(dialstr->text()); |
346 | gpppdata.setModemDLPResp(dlpresp->text()); |
347 | |
348 | gpppdata.setModemConnectResp(connectresp->text()); |
349 | gpppdata.setModemBusyResp(busyresp->text()); |
350 | gpppdata.setModemNoCarrierResp(nocarrierresp->text()); |
351 | gpppdata.setModemNoDialtoneResp(nodialtoneresp->text()); |
352 | |
353 | gpppdata.setModemEscapeStr(escapestr->text()); |
354 | gpppdata.setModemEscapeResp(escaperesp->text()); |
355 | gpppdata.setModemEscapeGuardTime(lslider->text().toInt()); |
356 | gpppdata.setModemHangupStr(hangupstr->text()); |
357 | gpppdata.setModemHangupResp(hangupresp->text()); |
358 | |
359 | gpppdata.setModemAnswerStr(answerstr->text()); |
360 | gpppdata.setModemRingResp(ringresp->text()); |
361 | gpppdata.setModemAnswerResp(answerresp->text()); |
362 | |
363 | gpppdata.setVolumeHigh(volume_high->text()); |
364 | gpppdata.setVolumeMedium(volume_medium->text()); |
365 | gpppdata.setVolumeOff(volume_off->text()); |
366 | |
367 | gpppdata.save(); |
368 | accept(); |
369 | } |
370 | |
371 | |
372 | void ModemCommands::slotCancel() { |
373 | //set stuff from gpppdata |
374 | preinitslider->setValue(gpppdata.modemPreInitDelay()); |
375 | lpreinitslider->setNum(gpppdata.modemPreInitDelay()); |
376 | for(int i = 0; i < PPPData::NumInitStrings; i++) |
377 | initstr[i]->setText(gpppdata.modemInitStr(i)); |
378 | initslider->setValue(gpppdata.modemInitDelay()); |
379 | linitslider->setNum(gpppdata.modemInitDelay()); |
380 | initresp->setText(gpppdata.modemInitResp()); |
381 | |
382 | durationslider->setValue(gpppdata.modemToneDuration()); |
383 | ldurationslider->setNum(gpppdata.modemToneDuration()); |
384 | |
385 | nodetectdialtone->setText(gpppdata.modemNoDialToneDetectionStr()); |
386 | dialstr->setText(gpppdata.modemDialStr()); |
387 | dlpresp->setText(gpppdata.modemDLPResp()); |
388 | |
389 | connectresp->setText(gpppdata.modemConnectResp()); |
390 | busyresp->setText(gpppdata.modemBusyResp()); |
391 | nocarrierresp->setText(gpppdata.modemNoCarrierResp()); |
392 | nodialtoneresp->setText(gpppdata.modemNoDialtoneResp()); |
393 | |
394 | escapestr->setText(gpppdata.modemEscapeStr()); |
395 | escaperesp->setText(gpppdata.modemEscapeResp()); |
396 | |
397 | hangupstr->setText(gpppdata.modemHangupStr()); |
398 | hangupresp->setText(gpppdata.modemHangupResp()); |
399 | |
400 | answerstr->setText(gpppdata.modemAnswerStr()); |
401 | ringresp->setText(gpppdata.modemRingResp()); |
402 | answerresp->setText(gpppdata.modemAnswerResp()); |
403 | |
404 | slider->setValue(gpppdata.modemEscapeGuardTime()); |
405 | lslider->setNum(gpppdata.modemEscapeGuardTime()); |
406 | |
407 | volume_off->setText(gpppdata.volumeOff()); |
408 | volume_medium->setText(gpppdata.volumeMedium()); |
409 | volume_high->setText(gpppdata.volumeHigh()); |
410 | reject(); |
411 | } |
412 | |
413 | #include "modemcmds.moc" |
414 | |