summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-console/modemconfigwidget.cpp
authorharlekin <harlekin>2002-10-12 15:44:01 (UTC)
committer harlekin <harlekin>2002-10-12 15:44:01 (UTC)
commite6b92ad451dba66f4eb5000a41b96eb2ee203dce (patch) (side-by-side diff)
tree07caa3f11d59c96858dd374d6b7cff90dbe3915e /noncore/apps/opie-console/modemconfigwidget.cpp
parent83aed438ec060307bf5562d91bd8b61fe60f860b (diff)
downloadopie-e6b92ad451dba66f4eb5000a41b96eb2ee203dce.zip
opie-e6b92ad451dba66f4eb5000a41b96eb2ee203dce.tar.gz
opie-e6b92ad451dba66f4eb5000a41b96eb2ee203dce.tar.bz2
some more stuff - modem config, bluetooth.. -, not finished
Diffstat (limited to 'noncore/apps/opie-console/modemconfigwidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/modemconfigwidget.cpp187
1 files changed, 187 insertions, 0 deletions
diff --git a/noncore/apps/opie-console/modemconfigwidget.cpp b/noncore/apps/opie-console/modemconfigwidget.cpp
new file mode 100644
index 0000000..0968f62
--- a/dev/null
+++ b/noncore/apps/opie-console/modemconfigwidget.cpp
@@ -0,0 +1,187 @@
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qcombobox.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qhbox.h>
+
+#include "iolayerbase.h"
+#include "modemconfigwidget.h"
+#include "atconfigdialog.h"
+#include "dialdialog.h"
+
+namespace {
+ void setCurrent( const QString& str, QComboBox* bo ) {
+ uint b = bo->count();
+ for (uint i = 0; i < bo->count(); i++ ) {
+ if ( bo->text(i) == str ) {
+ bo->setCurrentItem( i );
+ return;
+ }
+ }
+ bo->insertItem( str );
+ bo->setCurrentItem( b );
+ }
+}
+
+ModemConfigWidget::ModemConfigWidget( const QString& name,
+ QWidget* parent,
+ const char* na )
+ : ProfileDialogConnectionWidget( name, parent, na ) {
+
+ m_lay = new QVBoxLayout(this );
+ m_device = new QLabel(tr("Modem is attached to:"), this );
+ m_deviceCmb = new QComboBox(this );
+ m_deviceCmb->setEditable( TRUE );
+
+ QLabel* telLabel = new QLabel( this );
+ telLabel->setText( tr("Enter telefon number here:") );
+ m_telNumber = new QLineEdit( this );
+ QHBox *buttonBox = new QHBox( this );
+ QPushButton *atButton = new QPushButton( buttonBox );
+ atButton->setText( tr("AT commands") );
+ connect( atButton, SIGNAL( clicked() ), this, SLOT( slotAT() ) );
+
+ QPushButton *dialButton = new QPushButton( buttonBox );
+ dialButton->setText( tr("Enter number") );
+ connect( dialButton, SIGNAL( clicked() ), this, SLOT( slotDial() ) );
+
+
+ m_base = new IOLayerBase(this, "base");
+
+ m_lay->addWidget( m_device );
+ m_lay->addWidget( m_deviceCmb );
+ m_lay->addWidget( telLabel );
+ m_lay->addWidget( m_telNumber );
+ m_lay->addWidget( buttonBox );
+ m_lay->addWidget( m_base );
+
+ m_deviceCmb->insertItem( "/dev/ttyS0" );
+ m_deviceCmb->insertItem( "/dev/ttyS1" );
+ m_deviceCmb->insertItem( "/dev/ttyS2" );
+
+
+}
+
+ModemConfigWidget::~ModemConfigWidget() {
+
+}
+void ModemConfigWidget::load( const Profile& prof ) {
+
+ int rad_flow = prof.readNumEntry("Flow");
+ int rad_parity = prof.readNumEntry("Parity");
+ int speed = prof.readNumEntry("Speed");
+ QString number = prof.readEntry("Number");
+
+ if (!number.isEmpty() ) {
+ m_telNumber->setText( number );
+ }
+
+ if (rad_flow == 1) {
+ m_base->setFlow( IOLayerBase::Hardware );
+ } else if (rad_flow == 2) {
+ m_base->setFlow( IOLayerBase::Software );
+ } else if (rad_flow == 0) {
+ m_base->setFlow( IOLayerBase::None );
+ }
+
+ if (rad_parity == 1) {
+ m_base->setParity( IOLayerBase::Even );
+ } else {
+ m_base->setParity( IOLayerBase::Odd );
+ }
+
+ switch( speed ) {
+ case 115200:
+ m_base->setSpeed(IOLayerBase::Baud_115200 );
+ break;
+ case 57600:
+ m_base->setSpeed( IOLayerBase::Baud_57600 );
+ break;
+ case 38400:
+ m_base->setSpeed(IOLayerBase::Baud_38400 );
+ break;
+ case 19200:
+ m_base->setSpeed( IOLayerBase::Baud_19200 );
+ break;
+ case 9600:
+ default:
+ m_base->setSpeed(IOLayerBase::Baud_9600 );
+ break;
+ }
+
+ if ( prof.readEntry("Device").isEmpty() ) return;
+ setCurrent( prof.readEntry("Device"), m_deviceCmb );
+
+}
+/*
+ * save speed,
+ * flow,
+ * parity
+ */
+void ModemConfigWidget::save( Profile& prof ) {
+ int flow, parity, speed;
+ prof.writeEntry("Device", m_deviceCmb->currentText() );
+
+
+ switch( m_base->flow() ) {
+ case IOLayerBase::None:
+ flow = 0;
+ break;
+ case IOLayerBase::Software:
+ flow = 2;
+ break;
+ case IOLayerBase::Hardware:
+ flow = 1;
+ break;
+ }
+
+ switch( m_base->parity() ) {
+ case IOLayerBase::Odd:
+ parity = 2;
+ break;
+ case IOLayerBase::Even:
+ parity = 1;
+ break;
+ }
+
+ switch( m_base->speed() ) {
+ case IOLayerBase::Baud_115200:
+ speed = 115200;
+ break;
+ case IOLayerBase::Baud_57600:
+ speed = 57600;
+ break;
+ case IOLayerBase::Baud_38400:
+ speed = 38400;
+ break;
+ case IOLayerBase::Baud_19200:
+ speed = 19200;
+ break;
+ case IOLayerBase::Baud_9600:
+ speed = 9600;
+ break;
+ }
+
+ prof.writeEntry("Flow", flow);
+ prof.writeEntry("Parity", parity);
+ prof.writeEntry("Speed", speed);
+ prof.writeEntry("Number", m_telNumber->text() );
+}
+
+void ModemConfigWidget::slotAT() {
+ ATConfigDialog conf( this, "ATConfig", true );
+ conf.readConfig();
+ conf.showMaximized();
+ if ( conf.exec() == QDialog::Accepted ) {
+ conf.writeConfig();
+ }
+}
+
+void ModemConfigWidget::slotDial() {
+ DialDialog dial( this, "DialConfig", true );
+ dial.showMaximized();
+ if ( dial.exec() == QDialog::Accepted ) {
+ m_telNumber->setText( dial.number() );
+ }
+}