summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-console/default.cpp5
-rw-r--r--noncore/apps/opie-console/iolayerbase.cpp28
-rw-r--r--noncore/apps/opie-console/iolayerbase.h4
-rw-r--r--noncore/apps/opie-console/mainwindow.cpp1
-rw-r--r--noncore/apps/opie-console/opie-console.pro6
-rw-r--r--noncore/apps/opie-console/profileeditordialog.cpp4
-rw-r--r--noncore/apps/opie-console/profilemanager.cpp9
-rw-r--r--noncore/apps/opie-console/serialconfigwidget.cpp135
-rw-r--r--noncore/apps/opie-console/serialconfigwidget.h27
9 files changed, 209 insertions, 10 deletions
diff --git a/noncore/apps/opie-console/default.cpp b/noncore/apps/opie-console/default.cpp
index 4ab4695..d9a0557 100644
--- a/noncore/apps/opie-console/default.cpp
+++ b/noncore/apps/opie-console/default.cpp
@@ -1,14 +1,15 @@
#include "io_serial.h"
#include "sz_transfer.h"
+#include "serialconfigwidget.h"
#include "terminalwidget.h"
#include "default.h"
extern "C" {
// FILE Transfer Stuff
FileTransferLayer* newSZTransfer(IOLayer* lay) {
return new SzTransfer( SzTransfer::SZ, lay );
}
FileTransferLayer* newSYTransfer(IOLayer* lay) {
return new SzTransfer( SzTransfer::SY, lay );
}
@@ -19,26 +20,26 @@ extern "C" {
// Layer stuff
IOLayer* newSerialLayer( const Profile& prof) {
return new IOSerial( prof );
}
IOLayer* newBTLayer( const Profile& ) {
return 0l;
}
IOLayer* newIrDaLayer( const Profile& ) {
return 0l;
}
// Connection Widgets
- ProfileDialogWidget* newSerialWidget(const QString& str, QWidget* ) {
- return 0l;
+ ProfileDialogWidget* newSerialWidget(const QString& str, QWidget* wid) {
+ return new SerialConfigWidget(str, wid );
}
ProfileDialogWidget* newIrDaWidget( const QString& str, QWidget* wid) {
return newSerialWidget(str, wid);
}
ProfileDialogWidget* newBTWidget( const QString& str, QWidget* wid) {
return newSerialWidget(str, wid );
}
// Terminal Widget(s)
ProfileDialogWidget* newTerminalWidget(const QString& na, QWidget* wid) {
return new TerminalWidget(na, wid,0 );
}
diff --git a/noncore/apps/opie-console/iolayerbase.cpp b/noncore/apps/opie-console/iolayerbase.cpp
index 1e164fe..99b6cc1 100644
--- a/noncore/apps/opie-console/iolayerbase.cpp
+++ b/noncore/apps/opie-console/iolayerbase.cpp
@@ -26,25 +26,25 @@ namespace {
id_baud_9600
};
}
IOLayerBase::IOLayerBase( QWidget* par, const char* name )
: QWidget( par, name )
{
m_speedLabel = new QLabel(tr("Speed"), this );
m_speedBox = new QComboBox(this );
- m_groupFlow = new QButtonGroup(tr("Flow control") );
+ m_groupFlow = new QButtonGroup(tr("Flow control"),this );
m_flowHw = new QRadioButton(tr("Hardware"), m_groupFlow );
m_flowSw = new QRadioButton(tr("Software"), m_groupFlow );
m_groupParity = new QButtonGroup(tr("Parity"), this );
m_parityOdd = new QRadioButton(tr("Odd"), m_groupParity );
m_parityEven = new QRadioButton(tr("Even"), m_groupParity );
m_lroot = new QVBoxLayout(this );
m_lroot->add(m_speedLabel );
m_lroot->add(m_speedBox );
m_lroot->setStretchFactor(m_speedLabel, 1);
m_lroot->setStretchFactor(m_speedBox, 1 );
@@ -104,20 +104,46 @@ void IOLayerBase::setSpeed( Speed sp ) {
index = id_baud_38400;
break;
case Baud_19200:
index = id_baud_19200;
break;
case Baud_9600:
index = id_baud_9600;
break;
}
m_speedBox->setCurrentItem(index );
}
IOLayerBase::Flow IOLayerBase::flow()const {
+ if (m_flowHw->isChecked() ) {
+ qWarning("Hardware flow");
return Hardware;
+ }else {
+ qWarning("Software");
+ return Software;
+ }
}
IOLayerBase::Parity IOLayerBase::parity()const {
+ if (m_parityOdd->isChecked() )
return Odd;
+ else
+ return Even;
+
}
IOLayerBase::Speed IOLayerBase::speed()const{
+ switch( m_speedBox->currentItem() ) {
+ case id_baud_115200:
+ return Baud_115200;
+ break;
+ case id_baud_57600:
+ return Baud_57600;
+ break;
+ case id_baud_38400:
+ return Baud_38400;
+ break;
+ case id_baud_19200:
+ return Baud_19200;
+ break;
+ case id_baud_9600:
return Baud_9600;
+ break;
+ }
}
diff --git a/noncore/apps/opie-console/iolayerbase.h b/noncore/apps/opie-console/iolayerbase.h
index 7ef3f4d..151a04b 100644
--- a/noncore/apps/opie-console/iolayerbase.h
+++ b/noncore/apps/opie-console/iolayerbase.h
@@ -4,26 +4,26 @@
#include <qwidget.h>
class QLabel;
class QComboBox;
class QVBoxLayout;
class QButtonGroup;
class QRadioButton;
class QHBoxLayout;
class IOLayerBase : public QWidget {
Q_OBJECT
public:
- enum Flow { Software, Hardware };
- enum Parity{ Odd, Even };
+ enum Flow { Hardware, Software };
+ enum Parity{ Odd =2 , Even =1 };
enum Speed{ Baud_115200,
Baud_57600,
Baud_38400,
Baud_19200,
Baud_9600 };
IOLayerBase( QWidget* base, const char* name = 0l);
~IOLayerBase();
void setFlow( Flow flo );
void setParity( Parity par );
void setSpeed( Speed speed );
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp
index a414bdb..3531478 100644
--- a/noncore/apps/opie-console/mainwindow.cpp
+++ b/noncore/apps/opie-console/mainwindow.cpp
@@ -156,24 +156,25 @@ void MainWindow::slotTerminate() {
m_curSession = 0l;
/* FIXME move to the next session */
}
void MainWindow::slotConfigure() {
qWarning("configure");
ConfigDialog conf( manager()->all(), factory() );
conf.showMaximized();
int ret = conf.exec();
if ( QDialog::Accepted == ret ) {
+ qWarning("conf %d", conf.list().count() );
manager()->setProfiles( conf.list() );
populateProfiles();
}
}
void MainWindow::slotClose() {
}
void MainWindow::slotProfile( int ) {
}
diff --git a/noncore/apps/opie-console/opie-console.pro b/noncore/apps/opie-console/opie-console.pro
index 9e25e8f..ea6d759 100644
--- a/noncore/apps/opie-console/opie-console.pro
+++ b/noncore/apps/opie-console/opie-console.pro
@@ -17,45 +17,47 @@ HEADERS = io_layer.h io_serial.h \
widget.h \
vt102emulation.h \
common.h \
history.h \
screen.h \
keytrans.h \
widget_layer.h \
transferdialog.h \
profiledialogwidget.h \
profileeditordialog.h \
default.h \
terminalwidget.h \
- iolayerbase.h
+ iolayerbase.h \
+ serialconfigwidget.h
SOURCES = io_layer.cpp io_serial.cpp \
file_layer.cpp sz_transfer.cpp \
main.cpp \
metafactory.cpp \
session.cpp \
mainwindow.cpp \
profile.cpp \
profileconfig.cpp \
profilemanager.cpp \
tabwidget.cpp \
configdialog.cpp \
emulation_layer.cpp \
widget.cpp \
vt102emulation.cpp \
history.cpp \
screen.cpp \
keytrans.cpp \
widget_layer.cpp \
transferdialog.cpp \
profiledialogwidget.cpp \
profileeditordialog.cpp \
default.cpp \
terminalwidget.cpp \
- iolayerbase.cpp
+ iolayerbase.cpp \
+ serialconfigwidget.cpp
INTERFACES = configurebase.ui editbase.ui
INCLUDEPATH += $(OPIEDIR)/include
DEPENDPATH += $(OPIEDIR)/include
LIBS += -lqpe -lopie
TARGET = opie-console
diff --git a/noncore/apps/opie-console/profileeditordialog.cpp b/noncore/apps/opie-console/profileeditordialog.cpp
index c5c6248..faf9c39 100644
--- a/noncore/apps/opie-console/profileeditordialog.cpp
+++ b/noncore/apps/opie-console/profileeditordialog.cpp
@@ -169,27 +169,29 @@ QCString ProfileEditorDialog::profType()const
for(QStringList::Iterator it = w.begin(); it != w.end(); it++)
if(device_box->currentText() == m_fact->name((*it))) return (*it);
*/
return QCString();
}
/*
* we need to switch the widget
*/
void ProfileEditorDialog::slotConActivated( const QString& str ) {
delete m_con;
m_con = m_fact->newConnectionPlugin( str, m_tabCon );
- if (m_con )
+ if (m_con ) {
+ m_con->load(m_prof );
m_layCon->addWidget( m_con );
}
+}
/*
* we need to switch the widget
*/
void ProfileEditorDialog::slotTermActivated( const QString& str ) {
delete m_term;
m_term = m_fact->newTerminalPlugin( str, m_tabTerm );
qWarning("past");
if (m_term) {
m_term->load(m_prof );
m_layTerm->addWidget( m_term );
}
diff --git a/noncore/apps/opie-console/profilemanager.cpp b/noncore/apps/opie-console/profilemanager.cpp
index 6ad08b5..e66ebcc 100644
--- a/noncore/apps/opie-console/profilemanager.cpp
+++ b/noncore/apps/opie-console/profilemanager.cpp
@@ -1,12 +1,16 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <qfile.h>
#include <qpe/config.h>
#include "metafactory.h"
#include "profileconfig.h"
#include "profilemanager.h"
ProfileManager::ProfileManager( MetaFactory* fact )
: m_fact( fact )
{
}
@@ -21,24 +25,25 @@ void ProfileManager::load() {
QStringList::Iterator it;
/*
* for each profile
*/
for ( it = groups.begin(); it != groups.end(); ++it ) {
qWarning("group " + (*it) );
conf.setGroup( (*it) );
Profile prof;
prof.setName( conf.readEntry("name") );
prof.setIOLayer( conf.readEntry("iolayer").utf8() );
prof.setTerminalName( conf.readEntry("term").utf8() );
+ qWarning(" %s %s", conf.readEntry("iolayer").latin1(), prof.ioLayerName().data() );
prof.setBackground( conf.readNumEntry("back") );
prof.setForeground( conf.readNumEntry("fore") );
prof.setTerminal( conf.readNumEntry("terminal") );
prof.setConf( conf.items( (*it) ) );
/* now add it */
m_list.append( prof );
}
}
void ProfileManager::clear() {
m_list.clear();
@@ -51,31 +56,31 @@ Session* ProfileManager::fromProfile( const Profile& prof) {
session->setName( prof.name() );
session->setIOLayer(m_fact->newIOLayer(prof.ioLayerName(),
prof) );
/*
* FIXME
* load emulation
* load widget?
* set colors + fonts
*/
return session;
}
void ProfileManager::save( ) {
+ QFile::remove( (QString(getenv("HOME") )+ "/Settings/opie-console-profiles.conf" ) );
ProfileConfig conf("opie-console-profiles");
- conf.clearAll();
Profile::ValueList::Iterator it;
for (it = m_list.begin(); it != m_list.end(); ++it ) {
conf.setGroup( (*it).name() );
conf.writeEntry( "name", (*it).name() );
- conf.writeEntry( "ioplayer", QString::fromUtf8( (*it).ioLayerName() ) );
+ conf.writeEntry( "iolayer", QString::fromUtf8( (*it).ioLayerName() ) );
conf.writeEntry( "term", QString::fromUtf8( (*it).terminalName() ) );
conf.writeEntry( "back", (*it).background() );
conf.writeEntry( "fore", (*it).foreground() );
conf.writeEntry( "terminal", (*it).terminal() );
/* now the config stuff */
QMap<QString, QString> map = (*it).conf();
QMap<QString, QString>::Iterator it;
for ( it = map.begin(); it != map.end(); ++it ) {
conf.writeEntry( it.key(), it.data() );
}
}
}
diff --git a/noncore/apps/opie-console/serialconfigwidget.cpp b/noncore/apps/opie-console/serialconfigwidget.cpp
new file mode 100644
index 0000000..a427302
--- a/dev/null
+++ b/noncore/apps/opie-console/serialconfigwidget.cpp
@@ -0,0 +1,135 @@
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qcombobox.h>
+
+#include "iolayerbase.h"
+#include "serialconfigwidget.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 );
+ }
+
+
+}
+
+SerialConfigWidget::SerialConfigWidget( const QString& name,
+ QWidget* parent,
+ const char* na )
+ : ProfileDialogConnectionWidget( name, parent, na ) {
+
+ m_lay = new QVBoxLayout(this );
+ m_device = new QLabel(tr("Device"), this );
+ m_deviceCmb = new QComboBox(this );
+ m_deviceCmb->setEditable( TRUE );
+
+ m_base = new IOLayerBase(this, "base");
+
+ m_lay->addWidget( m_device );
+ m_lay->addWidget( m_deviceCmb );
+ m_lay->addWidget( m_base );
+
+ m_deviceCmb->insertItem( "/dev/ttyS0" );
+ m_deviceCmb->insertItem( "/dev/ttyS1" );
+ m_deviceCmb->insertItem( "/dev/ttySA0");
+ m_deviceCmb->insertItem( "/dev/ttySA1");
+
+}
+SerialConfigWidget::~SerialConfigWidget() {
+
+}
+void SerialConfigWidget::load( const Profile& prof ) {
+ int rad_flow = prof.readNumEntry("Flow");
+ int rad_parity = prof.readNumEntry("Parity");
+ int speed = prof.readNumEntry("Speed");
+
+ if (rad_flow == 0)
+ m_base->setFlow( IOLayerBase::Hardware );
+ else
+ m_base->setFlow( IOLayerBase::Software );
+
+ 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 SerialConfigWidget::save( Profile& prof ) {
+ int flow, parity, speed;
+ prof.writeEntry("Device", m_deviceCmb->currentText() );
+
+ switch( m_base->flow() ) {
+ case IOLayerBase::Software:
+ flow = 1;
+ break;
+ case IOLayerBase::Hardware:
+ flow = 0;
+ 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);
+}
diff --git a/noncore/apps/opie-console/serialconfigwidget.h b/noncore/apps/opie-console/serialconfigwidget.h
new file mode 100644
index 0000000..8b5c8aa
--- a/dev/null
+++ b/noncore/apps/opie-console/serialconfigwidget.h
@@ -0,0 +1,27 @@
+#ifndef OPIE_SERIAL_CONFIG_WIDGET_H
+#define OPIE_SERIAL_CONFIG_WIDGET_H
+
+#include "profiledialogwidget.h"
+
+class QVBoxLayout;
+class QLabel;
+class QComboBox;
+class IOLayerBase;
+class SerialConfigWidget : public ProfileDialogConnectionWidget {
+ Q_OBJECT
+public:
+ SerialConfigWidget( const QString& name, QWidget* parent, const char* name = 0l );
+ ~SerialConfigWidget();
+
+ void load( const Profile& );
+ void save( Profile& );
+private:
+ QVBoxLayout* m_lay;
+ QLabel* m_device;
+ QComboBox* m_deviceCmb;
+ IOLayerBase* m_base;
+
+};
+
+
+#endif