00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include <qlayout.h>
00028 #include <qslider.h>
00029 #include <qbuttongroup.h>
00030 #include <qscrollview.h>
00031 #include <qapplication.h>
00032 #include <stdlib.h>
00033 #include "modemcmds.h"
00034 #include "pppdata.h"
00035
00036 #define ADJUSTEDIT(e) //e->setText("XXXXXXXXqy"); e->setMinimumSize(e->sizeHint()); e->setText(""); e->setMaxLength(MODEMSTR_SIZE);
00037
00038
00039 #define FORMATSLIDERLABEL(l) //l->setFixedWidth(l->sizeHint().width()); l->setFixedHeight(QLineEdit(dummyWidget).sizeHint().height()); l->setAlignment(AlignCenter); l->setFrameStyle(QFrame::WinPanel|QFrame::Sunken); l->setLineWidth(2);
00040
00041 ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name , bool modal, WFlags f)
00042 : QDialog( parent, name, modal, f ), _pppdata(pd)
00043 {
00044 setCaption(QObject::tr("Edit Modem Commands"));
00045
00046 const int GRIDROWS = 22;
00047 int row = 0;
00048
00049 QVBoxLayout *main = new QVBoxLayout( this );
00050 QScrollView *sv = new QScrollView( this );
00051 QWidget *mainW = new QWidget( sv->viewport() );
00052 sv->setResizePolicy( QScrollView::AutoOneFit );
00053 sv->setHScrollBarMode( QScrollView::AlwaysOff );
00054 sv->setFrameShape( QFrame::NoFrame );
00055 sv->addChild( mainW );
00056 main->addWidget( sv );
00057
00058 mainW->setMaximumWidth( QApplication::desktop()->width() - 10 );
00059
00060
00061 QVBoxLayout *tl = new QVBoxLayout( mainW, 10, 4);
00062
00063
00064 QGridLayout *l1 = new QGridLayout(GRIDROWS, 4);
00065 tl->addLayout(l1);
00066 box = new QGroupBox(mainW, "box");
00067 box->setMargin( 0 );
00068 l1->addMultiCellWidget(box, row++, GRIDROWS, 0, 3);
00069
00070
00071 QHBoxLayout *l2 = new QHBoxLayout;
00072 l1->addLayout(l2, row, 2);
00073 lpreinitslider = new QLabel("MMMM", mainW);
00074 FORMATSLIDERLABEL(lpreinitslider);
00075
00076 QSlider *preinitslider = new QSlider(0, 600, 1, 0,
00077 QSlider::Horizontal, mainW);
00078
00079 connect(preinitslider, SIGNAL(valueChanged(int)),
00080 lpreinitslider, SLOT(setNum(int)));
00081 l2->addWidget(lpreinitslider, 0);
00082 l2->addWidget(preinitslider, 1);
00083
00084 lpreinit = new QLabel(QObject::tr("Pre-init delay (sec/100):"), mainW);
00085 l1->addWidget(lpreinit, row++, 1);
00086
00087 for(int i = 0; i < PPPData::NumInitStrings; i++) {
00088 initstr[i] = new QLineEdit(mainW);
00089 QLabel *initLabel = new QLabel(QObject::tr("Initialization string %1:").arg(i + 1),
00090 mainW);
00091 ADJUSTEDIT(initstr[i]);
00092 l1->addWidget(initLabel, row, 1);
00093 l1->addWidget(initstr[i], row++, 2);
00094 }
00095
00096 QHBoxLayout *l3 = new QHBoxLayout;
00097 l1->addLayout(l3, row, 2);
00098 linitslider = new QLabel("MMMM", mainW);
00099 FORMATSLIDERLABEL(linitslider);
00100 QSlider *initslider = new QSlider(1, 300, 1, 0,
00101 QSlider::Horizontal, mainW);
00102
00103 connect(initslider, SIGNAL(valueChanged(int)),
00104 linitslider, SLOT(setNum(int)));
00105 l3->addWidget(linitslider, 0);
00106 l3->addWidget(initslider, 1);
00107
00108 label3 = new QLabel(QObject::tr("Post-init delay (sec/100):"), mainW);
00109 l1->addWidget(label3, row++, 1);
00110
00111
00112 QHBoxLayout *l4 = new QHBoxLayout;
00113 l1->addLayout(l4, row, 2);
00114 ldurationslider = new QLabel("MMMM", mainW);
00115 FORMATSLIDERLABEL(ldurationslider);
00116 QSlider *durationslider = new QSlider(1, 255, 1, 0,
00117 QSlider::Horizontal, mainW);
00118
00119 connect(durationslider, SIGNAL(valueChanged(int)),
00120 ldurationslider, SLOT(setNum(int)));
00121 l4->addWidget(ldurationslider, 0);
00122 l4->addWidget(durationslider, 1);
00123
00124 lduration = new QLabel(QObject::tr("Dialing speed (sec/100):"), mainW);
00125 l1->addWidget(lduration, row++, 1);
00126
00127
00128 initresp = new QLineEdit(mainW);
00129 label2 = new QLabel(QObject::tr("Init response:"), mainW);
00130 ADJUSTEDIT(initresp);
00131 l1->addWidget(label2, row, 1);
00132 l1->addWidget(initresp, row++, 2);
00133
00134 nodetectdialtone = new QLineEdit(mainW);
00135 lnodetectdialtone = new QLabel(QObject::tr("No dial tone detection:"), mainW);
00136 ADJUSTEDIT(nodetectdialtone);
00137 l1->addWidget(lnodetectdialtone, row, 1);
00138 l1->addWidget(nodetectdialtone, row++, 2);
00139
00140 dialstr = new QLineEdit(mainW);
00141 label4 = new QLabel(QObject::tr("Dial string:"),mainW);
00142 ADJUSTEDIT(dialstr);
00143 l1->addWidget(label4, row, 1);
00144 l1->addWidget(dialstr, row++, 2);
00145
00146 connectresp = new QLineEdit(mainW);
00147 label5 = new QLabel(QObject::tr("Connect response:"), mainW);
00148 ADJUSTEDIT(connectresp);
00149 l1->addWidget(label5, row, 1);
00150 l1->addWidget(connectresp, row++, 2);
00151
00152 busyresp = new QLineEdit(mainW);
00153 label6 = new QLabel(QObject::tr("Busy response:"), mainW);
00154 ADJUSTEDIT(busyresp);
00155 l1->addWidget(label6, row, 1);
00156 l1->addWidget(busyresp, row++, 2);
00157
00158 nocarrierresp = new QLineEdit(mainW);
00159 label7 = new QLabel(QObject::tr("No carrier response:"), mainW);
00160 ADJUSTEDIT(nocarrierresp);
00161 l1->addWidget(label7, row, 1);
00162 l1->addWidget(nocarrierresp, row++, 2);
00163
00164 nodialtoneresp = new QLineEdit(mainW);
00165 label8 = new QLabel(QObject::tr("No dial tone response:"), mainW);
00166 ADJUSTEDIT(nodialtoneresp);
00167 l1->addWidget(label8, row, 1);
00168 l1->addWidget(nodialtoneresp, row++, 2);
00169
00170 hangupstr = new QLineEdit(mainW);
00171 label9 = new QLabel(QObject::tr("Hangup string:"), mainW);
00172 ADJUSTEDIT(hangupstr);
00173 l1->addWidget(label9, row, 1);
00174 l1->addWidget(hangupstr, row++, 2);
00175
00176 hangupresp = new QLineEdit(mainW);
00177 label10 = new QLabel(QObject::tr("Hangup response:"), mainW);
00178 ADJUSTEDIT(hangupresp);
00179 l1->addWidget(label10, row, 1);
00180 l1->addWidget(hangupresp, row++, 2);
00181
00182 answerstr = new QLineEdit(mainW);
00183 label11 = new QLabel(QObject::tr("Answer string:"), mainW);
00184 ADJUSTEDIT(answerstr);
00185 l1->addWidget(label11, row, 1);
00186 l1->addWidget(answerstr, row++, 2);
00187
00188 ringresp = new QLineEdit(mainW);
00189 label12 = new QLabel(QObject::tr("Ring response:"), mainW);
00190 ADJUSTEDIT(ringresp);
00191 l1->addWidget(label12, row, 1);
00192 l1->addWidget(ringresp, row++, 2);
00193
00194 answerresp = new QLineEdit(mainW);
00195 label13 = new QLabel(QObject::tr("Answer response:"), mainW);
00196 ADJUSTEDIT(answerresp);
00197 l1->addWidget(label13, row, 1);
00198 l1->addWidget(answerresp, row++, 2);
00199
00200 escapestr = new QLineEdit(mainW);
00201 label14 = new QLabel(QObject::tr("Escape string:"), mainW);
00202 ADJUSTEDIT(escapestr);
00203 l1->addWidget(label14, row, 1);
00204 l1->addWidget(escapestr, row++, 2);
00205
00206 escaperesp = new QLineEdit(mainW);
00207 label15 = new QLabel(QObject::tr("Escape response:"), mainW);
00208 ADJUSTEDIT(escaperesp);
00209 l1->addWidget(label15, row, 1);
00210 l1->addWidget(escaperesp, row++, 2);
00211
00212 QHBoxLayout *l5 = new QHBoxLayout;
00213 l1->addLayout(l5, row, 2);
00214 lslider = new QLabel("MMMM", mainW);
00215 FORMATSLIDERLABEL(lslider);
00216
00217 QSlider *slider = new QSlider(0, 255, 1, 0,
00218 QSlider::Horizontal, mainW);
00219
00220 connect(slider, SIGNAL(valueChanged(int)),
00221 lslider, SLOT(setNum(int)));
00222 l5->addWidget(lslider, 0);
00223 l5->addWidget(slider, 1);
00224
00225 label16 = new QLabel(QObject::tr("Guard time (sec/50):"), mainW);
00226 l1->addWidget(label16, row++, 1);
00227
00228 QLabel *l = new QLabel(QObject::tr("Volume off/low/high:"), mainW);
00229 l1->addWidget(l, row, 1);
00230 QHBoxLayout *l6 = new QHBoxLayout;
00231 l1->addLayout(l6, row++, 2);
00232 volume_off = new QLineEdit(mainW);
00233
00234
00235 volume_medium = new QLineEdit(mainW);
00236
00237
00238 volume_high = new QLineEdit(mainW);
00239
00240
00241 l6->addWidget(volume_off);
00242 l6->addWidget(volume_medium);
00243 l6->addWidget(volume_high);
00244
00245 initstr[0]->setFocus();
00246
00247 l1->addColSpacing(0, 10);
00248 l1->addColSpacing(3, 10);
00249 l1->addRowSpacing(0, 5);
00250 l1->addRowSpacing(GRIDROWS, 5);
00251
00252
00253 preinitslider->setValue(_pppdata->modemPreInitDelay());
00254 lpreinitslider->setNum(_pppdata->modemPreInitDelay());
00255 for(int i = 0; i < PPPData::NumInitStrings; i++)
00256 initstr[i]->setText(_pppdata->modemInitStr(i));
00257 initslider->setValue(_pppdata->modemInitDelay());
00258 linitslider->setNum(_pppdata->modemInitDelay());
00259 initresp->setText(_pppdata->modemInitResp());
00260
00261 durationslider->setValue(_pppdata->modemToneDuration());
00262 ldurationslider->setNum(_pppdata->modemToneDuration());
00263
00264 nodetectdialtone->setText(_pppdata->modemNoDialToneDetectionStr());
00265 dialstr->setText(_pppdata->modemDialStr());
00266 connectresp->setText(_pppdata->modemConnectResp());
00267 busyresp->setText(_pppdata->modemBusyResp());
00268 nocarrierresp->setText(_pppdata->modemNoCarrierResp());
00269 nodialtoneresp->setText(_pppdata->modemNoDialtoneResp());
00270
00271 escapestr->setText(_pppdata->modemEscapeStr());
00272 escaperesp->setText(_pppdata->modemEscapeResp());
00273
00274 hangupstr->setText(_pppdata->modemHangupStr());
00275 hangupresp->setText(_pppdata->modemHangupResp());
00276
00277 answerstr->setText(_pppdata->modemAnswerStr());
00278 ringresp->setText(_pppdata->modemRingResp());
00279 answerresp->setText(_pppdata->modemAnswerResp());
00280
00281 slider->setValue(_pppdata->modemEscapeGuardTime());
00282 lslider->setNum(_pppdata->modemEscapeGuardTime());
00283
00284 volume_off->setText(_pppdata->volumeOff());
00285 volume_medium->setText(_pppdata->volumeMedium());
00286 volume_high->setText(_pppdata->volumeHigh());
00287 }
00288
00289
00290 void ModemCommands::slotOk() {
00291 _pppdata->setModemPreInitDelay(lpreinitslider->text().toInt());
00292 for(int i = 0; i < PPPData::NumInitStrings; i++)
00293 _pppdata->setModemInitStr(i, initstr[i]->text());
00294 _pppdata->setModemInitResp(initresp->text());
00295 _pppdata->setModemInitDelay(linitslider->text().toInt());
00296
00297 _pppdata->setModemToneDuration(ldurationslider->text().toInt());
00298 _pppdata->setModemNoDialToneDetectionStr(nodetectdialtone->text());
00299 _pppdata->setModemDialStr(dialstr->text());
00300 _pppdata->setModemConnectResp(connectresp->text());
00301 _pppdata->setModemBusyResp(busyresp->text());
00302 _pppdata->setModemNoCarrierResp(nocarrierresp->text());
00303 _pppdata->setModemNoDialtoneResp(nodialtoneresp->text());
00304
00305 _pppdata->setModemEscapeStr(escapestr->text());
00306 _pppdata->setModemEscapeResp(escaperesp->text());
00307 _pppdata->setModemEscapeGuardTime(lslider->text().toInt());
00308 _pppdata->setModemHangupStr(hangupstr->text());
00309 _pppdata->setModemHangupResp(hangupresp->text());
00310
00311 _pppdata->setModemAnswerStr(answerstr->text());
00312 _pppdata->setModemRingResp(ringresp->text());
00313 _pppdata->setModemAnswerResp(answerresp->text());
00314
00315 _pppdata->setVolumeHigh(volume_high->text());
00316 _pppdata->setVolumeMedium(volume_medium->text());
00317 _pppdata->setVolumeOff(volume_off->text());
00318
00319 _pppdata->save();
00320 QDialog::accept();
00321 }
00322
00323 void ModemCommands::accept()
00324 {
00325 slotOk();
00326 }
00327
00328
00329 void ModemCommands::slotCancel() {
00330 reject();
00331 }
00332
00333