Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

modemcmds.cpp

Go to the documentation of this file.
00001 /*
00002  *            kPPP: A front end for pppd for the KDE project
00003  *
00004  * $Id: modemcmds.cpp,v 1.5 2005/03/01 20:04:21 zecke Exp $
00005  *
00006  * Copyright (C) 1997 Bernd Johannes Wuebben
00007  * wuebben@math.cornell.edu
00008  *
00009  * based on EzPPP:
00010  * Copyright (C) 1997  Jay Painter
00011  *
00012  * This library is free software; you can redistribute it and/or
00013  * modify it under the terms of the GNU Library General Public
00014  * License as published by the Free Software Foundation; either
00015  * version 2 of the License, or (at your option) any later version.
00016  *
00017  * This library is distributed in the hope that it will be useful,
00018  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00020  * Library General Public License for more details.
00021  *
00022  * You should have received a copy of the GNU Library General Public
00023  * License along with dummyWidget program; if not, write to the Free
00024  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
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->setFixedHeight(e->sizeHint().height());*/ e->setText(""); e->setMaxLength(MODEMSTR_SIZE);
00037 
00038 // a little trick to make the label look like a disabled lineedit
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   // evil hack
00058   mainW->setMaximumWidth( QApplication::desktop()->width() - 10 );
00059 
00060   // toplevel layout
00061   QVBoxLayout *tl = new QVBoxLayout( mainW, 10, 4);
00062 
00063   // add grid + frame
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   // put slider and label into a separate H-Box
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 //  preinitslider->setFixedHeight(preinitslider->sizeHint().height());
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 //  initslider->setFixedHeight(initslider->sizeHint().height());
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   /* Set ATS11 (Dial tone duration) between 0-255 (Default ~ 70) */
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 //  durationslider->setFixedHeight(durationslider->sizeHint().height());
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 //  slider->setFixedHeight(slider->sizeHint().height());
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 //  volume_off->setFixedHeight(volume_off->sizeHint().height());
00234   // volume_off->setMinimumWidth((int)(volume_off->sizeHint().width() / 2));
00235   volume_medium = new QLineEdit(mainW);
00236 //  volume_medium->setFixedHeight(volume_medium->sizeHint().height());
00237   // volume_medium->setMinimumWidth((int)(volume_medium->sizeHint().width() / 2));
00238   volume_high = new QLineEdit(mainW);
00239   // volume_high->setFixedHeight(volume_high->sizeHint().height());
00240   // volume_high->setMinimumWidth((int)(volume_high->sizeHint().width() / 2));
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   //set stuff from gpppdata
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 //#include "modemcmds.moc"

Generated on Sat Nov 5 16:17:50 2005 for OPIE by  doxygen 1.4.2