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

btconfigwidget.cpp

Go to the documentation of this file.
00001 #include "btconfigwidget.h"
00002 #include "iolayerbase.h"
00003 #include "comboboxhelper.h"
00004 
00005 #include <qlabel.h>
00006 #include <qlayout.h>
00007 #include <qlineedit.h>
00008 #include <qcombobox.h>
00009 #include <qhbox.h>
00010 #include <qradiobutton.h>
00011 
00012 
00013 
00014 
00015 BTConfigWidget::BTConfigWidget( const QString& name,
00016                                 QWidget* parent,
00017                                 const char* na )
00018     : ProfileDialogConnectionWidget( name, parent, na ) {
00019 
00020     m_lay = new QVBoxLayout( this );
00021 
00022     m_device = new QLabel( tr( "Device" ), this );
00023     QHBox *deviceBox = new QHBox( this );
00024     m_devRadio = new QRadioButton( deviceBox );
00025     connect( m_devRadio, SIGNAL( toggled(bool) ), this, SLOT( slotDevRadio(bool) ) );
00026     m_deviceCmb = new QComboBox( deviceBox );
00027     m_deviceCmb->setEditable( TRUE );
00028 
00029     QLabel *macLabel = new QLabel( this );
00030     macLabel->setText( tr( "Or peer mac address" ) );
00031     QHBox *macBox = new QHBox( this );
00032     m_macRadio = new QRadioButton( macBox );
00033     connect( m_macRadio, SIGNAL( toggled(bool) ), this, SLOT( slotMacRadio(bool) ) );
00034     m_mac = new QLineEdit( macBox );
00035 
00036     m_base = new IOLayerBase(this, "base");
00037 
00038     m_lay->addWidget( m_device );
00039     m_lay->addWidget( deviceBox );
00040     m_lay->addWidget( macLabel );
00041     m_lay->addWidget( macBox );
00042     m_lay->addWidget( m_base );
00043 
00044     m_deviceCmb->insertItem( "/dev/ttyU0" );
00045     m_deviceCmb->insertItem( "/dev/ttyU1" );
00046 }
00047 
00048 BTConfigWidget::~BTConfigWidget() {
00049 
00050 }
00051 void BTConfigWidget::load( const Profile& prof ) {
00052     int rad_flow = prof.readNumEntry("Flow");
00053     int rad_parity = prof.readNumEntry("Parity");
00054     int speed = prof.readNumEntry("Speed");
00055     QString mac = prof.readEntry("Mac");
00056 
00057     if (!mac.isEmpty() ) {
00058         m_mac->setText( mac );
00059     } else {
00060         m_devRadio->setChecked( true );
00061     }
00062 
00063     if (rad_flow == 1) {
00064         m_base->setFlow( IOLayerBase::Hardware );
00065     } else if (rad_flow == 2) {
00066         m_base->setFlow( IOLayerBase::Software );
00067     } else if (rad_flow == 0) {
00068          m_base->setFlow( IOLayerBase::None );
00069     }
00070 
00071     if (rad_parity == 1) {
00072         m_base->setParity( IOLayerBase::Even );
00073     } else if ( rad_parity == 2 ) {
00074         m_base->setParity( IOLayerBase::Odd );
00075     } else {
00076         m_base->setParity( IOLayerBase::NonePar );
00077     }
00078 
00079     switch( speed ) {
00080     case 115200:
00081         m_base->setSpeed(IOLayerBase::Baud_115200 );
00082         break;
00083     case 57600:
00084         m_base->setSpeed( IOLayerBase::Baud_57600  );
00085         break;
00086     case 38400:
00087         m_base->setSpeed(IOLayerBase::Baud_38400  );
00088         break;
00089     case 19200:
00090         m_base->setSpeed( IOLayerBase::Baud_19200  );
00091         break;
00092     case 4800:
00093         m_base->setSpeed( IOLayerBase::Baud_4800  );
00094         break;
00095     case 2400:
00096         m_base->setSpeed( IOLayerBase::Baud_2400  );
00097         break;
00098     case 1200:
00099         m_base->setSpeed( IOLayerBase::Baud_1200  );
00100         break;
00101     case 9600:
00102     default:
00103         m_base->setSpeed(IOLayerBase::Baud_9600 );
00104         break;
00105     }
00106 
00107     if ( prof.readEntry("Device").isEmpty() ) return;
00108     ComboboxHelper::setCurrent( prof.readEntry("Device"), m_deviceCmb );
00109 
00110 }
00111 /*
00112  * save speed,
00113  * flow,
00114  * parity
00115  */
00116 void BTConfigWidget::save( Profile& prof ) {
00117     int flow, parity, speed;
00118     flow = parity = speed = 0;
00119     prof.writeEntry("Device", m_deviceCmb->currentText() );
00120 
00121 
00122     switch( m_base->flow() ) {
00123     case IOLayerBase::None:
00124         flow = 0;
00125         break;
00126     case IOLayerBase::Software:
00127         flow = 2;
00128         break;
00129     case IOLayerBase::Hardware:
00130         flow = 1;
00131         break;
00132     }
00133 
00134     switch( m_base->parity() ) {
00135     case IOLayerBase::Odd:
00136         parity = 2;
00137         break;
00138     case IOLayerBase::Even:
00139         parity = 1;
00140         break;
00141     case IOLayerBase::NonePar:
00142         parity = 0;
00143         break;
00144     }
00145 
00146     switch( m_base->speed() ) {
00147     case IOLayerBase::Baud_115200:
00148         speed = 115200;
00149         break;
00150     case IOLayerBase::Baud_57600:
00151         speed = 57600;
00152         break;
00153     case IOLayerBase::Baud_38400:
00154         speed = 38400;
00155         break;
00156     case IOLayerBase::Baud_19200:
00157         speed = 19200;
00158         break;
00159     case IOLayerBase::Baud_4800:
00160         speed = 4800;
00161         break;
00162     case IOLayerBase::Baud_2400:
00163         speed = 2400;
00164         break;
00165     case IOLayerBase::Baud_1200:
00166         speed = 1200;
00167         break;
00168     default:
00169     case IOLayerBase::Baud_9600:
00170         speed = 9600;
00171         break;
00172     }
00173 
00174     prof.writeEntry("Flow",  flow);
00175     prof.writeEntry("Parity", parity);
00176     prof.writeEntry("Speed",  speed);
00177     prof.writeEntry("Mac", m_mac->text() );
00178 }
00179 
00180 void BTConfigWidget::slotMacRadio( bool on  ) {
00181     if ( on ) {
00182         m_devRadio->setChecked( false );
00183         m_deviceCmb->setEnabled( false );
00184         m_mac->setEnabled( true );
00185     } else {
00186         m_devRadio->setChecked( true );
00187     }
00188 }
00189 
00190 void BTConfigWidget::slotDevRadio( bool on  ) {
00191     if ( on ) {
00192         m_macRadio->setChecked( false );
00193         m_deviceCmb->setEnabled( true );
00194         m_mac->setEnabled( false );
00195     } else {
00196         m_macRadio->setChecked( true );
00197     }
00198 }

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