summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/btconfigwidget.cpp140
-rw-r--r--noncore/apps/opie-console/btconfigwidget.h29
-rw-r--r--noncore/apps/opie-console/default.cpp14
-rw-r--r--noncore/apps/opie-console/io_irda.cpp60
-rw-r--r--noncore/apps/opie-console/io_irda.h46
-rw-r--r--noncore/apps/opie-console/iolayerbase.cpp16
-rw-r--r--noncore/apps/opie-console/iolayerbase.h4
-rw-r--r--noncore/apps/opie-console/irdaconfigwidget.cpp141
-rw-r--r--noncore/apps/opie-console/irdaconfigwidget.h29
-rw-r--r--noncore/apps/opie-console/opie-console.pro9
-rw-r--r--noncore/apps/opie-console/profileeditordialog.cpp2
-rw-r--r--noncore/apps/opie-console/profileeditorplugins.cpp21
-rw-r--r--noncore/apps/opie-console/serialconfigwidget.cpp14
-rw-r--r--noncore/apps/opie-console/widget_layer.h4
14 files changed, 498 insertions, 31 deletions
diff --git a/noncore/apps/opie-console/btconfigwidget.cpp b/noncore/apps/opie-console/btconfigwidget.cpp
new file mode 100644
index 0000000..acc4811
--- a/dev/null
+++ b/noncore/apps/opie-console/btconfigwidget.cpp
@@ -0,0 +1,140 @@
1#include <qlabel.h>
2#include <qlayout.h>
3#include <qcombobox.h>
4
5#include "iolayerbase.h"
6#include "btconfigwidget.h"
7
8namespace {
9 void setCurrent( const QString& str, QComboBox* bo ) {
10 uint b = bo->count();
11 for (uint i = 0; i < bo->count(); i++ ) {
12 if ( bo->text(i) == str ) {
13 bo->setCurrentItem( i );
14 return;
15 }
16 }
17 bo->insertItem( str );
18 bo->setCurrentItem( b );
19 }
20}
21
22BTConfigWidget::BTConfigWidget( const QString& name,
23 QWidget* parent,
24 const char* na )
25 : ProfileDialogConnectionWidget( name, parent, na ) {
26
27 m_lay = new QVBoxLayout(this );
28 m_device = new QLabel(tr("Device"), this );
29 m_deviceCmb = new QComboBox(this );
30 m_deviceCmb->setEditable( TRUE );
31
32 m_base = new IOLayerBase(this, "base");
33
34 m_lay->addWidget( m_device );
35 m_lay->addWidget( m_deviceCmb );
36 m_lay->addWidget( m_base );
37
38 m_deviceCmb->insertItem( "/dev/ttyU0" );
39 m_deviceCmb->insertItem( "/dev/ttyU1" );
40}
41
42BTConfigWidget::~BTConfigWidget() {
43
44}
45void BTConfigWidget::load( const Profile& prof ) {
46 int rad_flow = prof.readNumEntry("Flow");
47 int rad_parity = prof.readNumEntry("Parity");
48 int speed = prof.readNumEntry("Speed");
49
50
51 if (rad_flow == 1) {
52 m_base->setFlow( IOLayerBase::Hardware );
53 } else if (rad_flow == 2) {
54 m_base->setFlow( IOLayerBase::Software );
55 } else if (rad_flow == 0) {
56 m_base->setFlow( IOLayerBase::None );
57 }
58
59 if (rad_parity == 1) {
60 m_base->setParity( IOLayerBase::Even );
61 } else {
62 m_base->setParity( IOLayerBase::Odd );
63 }
64
65 switch( speed ) {
66 case 115200:
67 m_base->setSpeed(IOLayerBase::Baud_115200 );
68 break;
69 case 57600:
70 m_base->setSpeed( IOLayerBase::Baud_57600 );
71 break;
72 case 38400:
73 m_base->setSpeed(IOLayerBase::Baud_38400 );
74 break;
75 case 19200:
76 m_base->setSpeed( IOLayerBase::Baud_19200 );
77 break;
78 case 9600:
79 default:
80 m_base->setSpeed(IOLayerBase::Baud_9600 );
81 break;
82 }
83
84 if ( prof.readEntry("Device").isEmpty() ) return;
85 setCurrent( prof.readEntry("Device"), m_deviceCmb );
86
87}
88/*
89 * save speed,
90 * flow,
91 * parity
92 */
93void BTConfigWidget::save( Profile& prof ) {
94 int flow, parity, speed;
95 prof.writeEntry("Device", m_deviceCmb->currentText() );
96
97
98 switch( m_base->flow() ) {
99 case IOLayerBase::None:
100 flow = 0;
101 break;
102 case IOLayerBase::Software:
103 flow = 2;
104 break;
105 case IOLayerBase::Hardware:
106 flow = 1;
107 break;
108 }
109
110 switch( m_base->parity() ) {
111 case IOLayerBase::Odd:
112 parity = 2;
113 break;
114 case IOLayerBase::Even:
115 parity = 1;
116 break;
117 }
118
119 switch( m_base->speed() ) {
120 case IOLayerBase::Baud_115200:
121 speed = 115200;
122 break;
123 case IOLayerBase::Baud_57600:
124 speed = 57600;
125 break;
126 case IOLayerBase::Baud_38400:
127 speed = 38400;
128 break;
129 case IOLayerBase::Baud_19200:
130 speed = 19200;
131 break;
132 case IOLayerBase::Baud_9600:
133 speed = 9600;
134 break;
135 }
136
137 prof.writeEntry("Flow", flow);
138 prof.writeEntry("Parity", parity);
139 prof.writeEntry("Speed", speed);
140}
diff --git a/noncore/apps/opie-console/btconfigwidget.h b/noncore/apps/opie-console/btconfigwidget.h
new file mode 100644
index 0000000..64190ad
--- a/dev/null
+++ b/noncore/apps/opie-console/btconfigwidget.h
@@ -0,0 +1,29 @@
1#ifndef OPIE_BT_CONFIG_WIDGET_H
2#define OPIE_BT_CONFIG_WIDGET_H
3
4#include "profiledialogwidget.h"
5
6class QVBoxLayout;
7class QLabel;
8class QComboBox;
9class IOLayerBase;
10class BTConfigWidget : public ProfileDialogConnectionWidget {
11
12 Q_OBJECT
13
14public:
15 BTConfigWidget( const QString& name, QWidget* parent, const char* name = 0l );
16 ~BTConfigWidget();
17
18 void load( const Profile& );
19 void save( Profile& );
20private:
21 QVBoxLayout* m_lay;
22 QLabel* m_device;
23 QComboBox* m_deviceCmb;
24 IOLayerBase* m_base;
25
26};
27
28
29#endif
diff --git a/noncore/apps/opie-console/default.cpp b/noncore/apps/opie-console/default.cpp
index da6f3e2..62f02f5 100644
--- a/noncore/apps/opie-console/default.cpp
+++ b/noncore/apps/opie-console/default.cpp
@@ -1,74 +1,76 @@
1#include "io_serial.h" 1#include "io_serial.h"
2#include "sz_transfer.h" 2#include "sz_transfer.h"
3#include "serialconfigwidget.h" 3#include "serialconfigwidget.h"
4#include "irdaconfigwidget.h"
5#include "btconfigwidget.h"
4#include "terminalwidget.h" 6#include "terminalwidget.h"
5#include "vt102emulation.h" 7#include "vt102emulation.h"
6 8
7#include "default.h" 9#include "default.h"
8 10
9extern "C" { 11extern "C" {
10 // FILE Transfer Stuff 12 // FILE Transfer Stuff
11 FileTransferLayer* newSZTransfer(IOLayer* lay) { 13 FileTransferLayer* newSZTransfer(IOLayer* lay) {
12 return new SzTransfer( SzTransfer::SZ, lay ); 14 return new SzTransfer( SzTransfer::SZ, lay );
13 } 15 }
14 FileTransferLayer* newSYTransfer(IOLayer* lay) { 16 FileTransferLayer* newSYTransfer(IOLayer* lay) {
15 return new SzTransfer( SzTransfer::SY, lay ); 17 return new SzTransfer( SzTransfer::SY, lay );
16 } 18 }
17 FileTransferLayer* newSXTransfer(IOLayer* lay) { 19 FileTransferLayer* newSXTransfer(IOLayer* lay) {
18 return new SzTransfer( SzTransfer::SX, lay ); 20 return new SzTransfer( SzTransfer::SX, lay );
19 } 21 }
20 22
21 // Layer stuff 23 // Layer stuff
22 IOLayer* newSerialLayer( const Profile& prof) { 24 IOLayer* newSerialLayer( const Profile& prof) {
23 return new IOSerial( prof ); 25 return new IOSerial( prof );
24 } 26 }
25 IOLayer* newBTLayer( const Profile& ) { 27 IOLayer* newBTLayer( const Profile& ) {
26 return 0l; 28 return 0l;
27 } 29 }
28 IOLayer* newIrDaLayer( const Profile& ) { 30 IOLayer* newIrDaLayer( const Profile& ) {
29 return 0l; 31 return 0l;
30 } 32 }
31 33
32 // Connection Widgets 34 // Connection Widgets
33 ProfileDialogWidget* newSerialWidget(const QString& str, QWidget* wid) { 35 ProfileDialogWidget* newSerialWidget( const QString& str, QWidget* wid ) {
34 return new SerialConfigWidget(str, wid ); 36 return new SerialConfigWidget( str, wid );
35 } 37 }
36 ProfileDialogWidget* newIrDaWidget( const QString& str, QWidget* wid) { 38 ProfileDialogWidget* newIrDaWidget( const QString& str, QWidget* wid ) {
37 return newSerialWidget(str, wid); 39 return new IrdaConfigWidget( str, wid );
38 } 40 }
39 ProfileDialogWidget* newBTWidget( const QString& str, QWidget* wid) { 41 ProfileDialogWidget* newBTWidget( const QString& str, QWidget* wid ) {
40 return newSerialWidget(str, wid ); 42 return new BTConfigWidget(str, wid );
41 } 43 }
42 44
43 // Terminal Widget(s) 45 // Terminal Widget(s)
44 ProfileDialogWidget* newTerminalWidget(const QString& na, QWidget* wid) { 46 ProfileDialogWidget* newTerminalWidget(const QString& na, QWidget* wid) {
45 return new TerminalWidget(na, wid,0 ); 47 return new TerminalWidget(na, wid,0 );
46 } 48 }
47 49
48 // VT Emulations 50 // VT Emulations
49 EmulationLayer* newVT102( Widget* wid ) { 51 EmulationLayer* newVT102( Widget* wid ) {
50 return new Vt102Emulation( wid ); 52 return new Vt102Emulation( wid );
51 } 53 }
52 54
53}; 55};
54 56
55Default::Default( MetaFactory* fact ) { 57Default::Default( MetaFactory* fact ) {
56 fact->addFileTransferLayer( "SZ", QObject::tr("Z-Modem"), newSZTransfer ); 58 fact->addFileTransferLayer( "SZ", QObject::tr("Z-Modem"), newSZTransfer );
57 fact->addFileTransferLayer( "SY", QObject::tr("Y-Modem"), newSYTransfer ); 59 fact->addFileTransferLayer( "SY", QObject::tr("Y-Modem"), newSYTransfer );
58 fact->addFileTransferLayer( "SX", QObject::tr("X-Modem"), newSXTransfer ); 60 fact->addFileTransferLayer( "SX", QObject::tr("X-Modem"), newSXTransfer );
59 61
60 fact->addIOLayerFactory( "serial", QObject::tr("Serial"), newSerialLayer ); 62 fact->addIOLayerFactory( "serial", QObject::tr("Serial"), newSerialLayer );
61 fact->addIOLayerFactory( "irda", QObject::tr("Infrared"), newIrDaLayer ); 63 fact->addIOLayerFactory( "irda", QObject::tr("Infrared"), newIrDaLayer );
62 fact->addIOLayerFactory( "bt", QObject::tr("Bluetooth"), newBTLayer ); 64 fact->addIOLayerFactory( "bt", QObject::tr("Bluetooth"), newBTLayer );
63 65
64 fact->addConnectionWidgetFactory( "serial", QObject::tr("Serial"), newSerialWidget ); 66 fact->addConnectionWidgetFactory( "serial", QObject::tr("Serial"), newSerialWidget );
65 fact->addConnectionWidgetFactory( "irda", QObject::tr("Infrared"), newIrDaWidget ); 67 fact->addConnectionWidgetFactory( "irda", QObject::tr("Infrared"), newIrDaWidget );
66 fact->addConnectionWidgetFactory( "bt", QObject::tr("Bluetooth"), newBTWidget ); 68 fact->addConnectionWidgetFactory( "bt", QObject::tr("Bluetooth"), newBTWidget );
67 69
68 fact->addTerminalWidgetFactory( "default", QObject::tr("Default Terminal"), newTerminalWidget ); 70 fact->addTerminalWidgetFactory( "default", QObject::tr("Default Terminal"), newTerminalWidget );
69 71
70 fact->addEmulationLayer( "default", QObject::tr("Default Terminal"), newVT102 ); 72 fact->addEmulationLayer( "default", QObject::tr("Default Terminal"), newVT102 );
71} 73}
72Default::~Default() { 74Default::~Default() {
73 75
74} 76}
diff --git a/noncore/apps/opie-console/io_irda.cpp b/noncore/apps/opie-console/io_irda.cpp
new file mode 100644
index 0000000..8e31e82
--- a/dev/null
+++ b/noncore/apps/opie-console/io_irda.cpp
@@ -0,0 +1,60 @@
1
2#include "io_irda.h"
3
4IOIrda::IOIrda( const Profile &config ) : IOSerial( config ) {
5 m_attach = 0;
6}
7
8
9IOIrda::~IOIrda() {
10 if ( m_attach ) {
11 delete m_attach;
12 }
13}
14
15
16void IOIrda::close() {
17
18 IOSerial::close();
19 // still need error handling
20 delete m_attach;
21}
22
23bool IOIrda::open() {
24
25 // irdaattach here
26 m_attach = new OProcess();
27 *m_attach << "irattach /dev/ttyS2 -s";
28
29 connect( m_attach, SIGNAL( processExited( OProcess* ) ),
30 this, SLOT( slotExited( OProcess* ) ) );
31
32 if ( m_attach->start() ) {
33 IOSerial::open();
34 } else {
35 qWarning("could not attach to device");
36 delete m_attach;
37 }
38}
39
40void IOIrda::reload( const Profile &config ) {
41 m_device = config.readEntry("Device", IRDA_DEFAULT_DEVICE);
42 m_baud = config.readNumEntry("Baud", IRDA_DEFAULT_BAUD);
43 m_parity = config.readNumEntry("Parity", IRDA_DEFAULT_PARITY);
44 m_dbits = config.readNumEntry("DataBits", IRDA_DEFAULT_DBITS);
45 m_sbits = config.readNumEntry("StopBits", IRDA_DEFAULT_SBITS);
46 m_flow = config.readNumEntry("Flow", IRDA_DEFAULT_FLOW);
47}
48
49
50QString IOIrda::identifier() const {
51 return "irda";
52}
53
54QString IOIrda::name() const {
55 return "Irda IO Layer";
56}
57
58void IOIrda::slotExited(OProcess* proc ){
59 close();
60}
diff --git a/noncore/apps/opie-console/io_irda.h b/noncore/apps/opie-console/io_irda.h
new file mode 100644
index 0000000..3aee951
--- a/dev/null
+++ b/noncore/apps/opie-console/io_irda.h
@@ -0,0 +1,46 @@
1#ifndef OPIE_IO_IRDA
2#define OPIE_IO_IRDA
3
4#include <opie/oprocess.h>
5#include "io_serial.h"
6
7/* Default values to be used if the profile information is incomplete */
8#define IRDA_DEFAULT_DEVICE "/dev/ircomm0"
9#define IRDA_DEFAULT_BAUD 9600
10#define IRDA_DEFAULT_PARITY 0
11#define IRDA_DEFAULT_DBITS 8
12#define IRDA_DEFAULT_SBITS 1
13#define IRDA_DEFAULT_FLOW 0
14
15/* IOSerial implements a RS232 IO Layer */
16
17class IOIrda : public IOSerial {
18
19 Q_OBJECT
20
21public:
22
23 IOIrda(const Profile &);
24 ~IOIrda();
25
26 QString identifier() const;
27 QString name() const;
28
29signals:
30 void received(const QByteArray &);
31 void error(int, const QString &);
32
33public slots:
34 bool open();
35 void close();
36 void reload(const Profile &);
37
38private:
39 OProcess *m_attach;
40
41private slots:
42 void slotExited(OProcess* proc);
43
44};
45
46#endif /* OPIE_IO_IRDA */
diff --git a/noncore/apps/opie-console/iolayerbase.cpp b/noncore/apps/opie-console/iolayerbase.cpp
index 99b6cc1..ec88b49 100644
--- a/noncore/apps/opie-console/iolayerbase.cpp
+++ b/noncore/apps/opie-console/iolayerbase.cpp
@@ -1,149 +1,159 @@
1#include <qlabel.h> 1#include <qlabel.h>
2#include <qlayout.h> 2#include <qlayout.h>
3#include <qcombobox.h> 3#include <qcombobox.h>
4#include <qbuttongroup.h> 4#include <qbuttongroup.h>
5#include <qhbuttongroup.h> 5#include <qhbuttongroup.h>
6#include <qradiobutton.h> 6#include <qradiobutton.h>
7 7
8#include "iolayerbase.h" 8#include "iolayerbase.h"
9 9
10namespace { 10namespace {
11 enum ParityIds { 11 enum ParityIds {
12 id_parity_odd, 12 id_parity_odd,
13 id_parity_even 13 id_parity_even
14 }; 14 };
15 15
16 enum FlowIds { 16 enum FlowIds {
17 id_flow_hw, 17 id_flow_hw,
18 id_flow_sw 18 id_flow_sw,
19 id_flow_none,
19 }; 20 };
20 21
21 enum SpeedIds { 22 enum SpeedIds {
22 id_baud_115200, 23 id_baud_115200,
23 id_baud_57600, 24 id_baud_57600,
24 id_baud_38400, 25 id_baud_38400,
25 id_baud_19200, 26 id_baud_19200,
26 id_baud_9600 27 id_baud_9600
27 }; 28 };
28 29
29} 30}
30 31
31 32
32IOLayerBase::IOLayerBase( QWidget* par, const char* name ) 33IOLayerBase::IOLayerBase( QWidget* par, const char* name )
33 : QWidget( par, name ) 34 : QWidget( par, name )
34{ 35{
35 m_speedLabel = new QLabel(tr("Speed"), this ); 36 m_speedLabel = new QLabel(tr("Speed"), this );
36 m_speedBox = new QComboBox(this ); 37 m_speedBox = new QComboBox(this );
37 38
38 m_groupFlow = new QButtonGroup(tr("Flow control"),this ); 39 m_groupFlow = new QButtonGroup(tr("Flow control"),this );
39 m_flowHw = new QRadioButton(tr("Hardware"), m_groupFlow ); 40 m_flowHw = new QRadioButton(tr("Hardware"), m_groupFlow );
40 m_flowSw = new QRadioButton(tr("Software"), m_groupFlow ); 41 m_flowSw = new QRadioButton(tr("Software"), m_groupFlow );
42 m_flowNone = new QRadioButton( tr("None"), m_groupFlow );
41 43
42 m_groupParity = new QButtonGroup(tr("Parity"), this ); 44 m_groupParity = new QButtonGroup(tr("Parity"), this );
43 m_parityOdd = new QRadioButton(tr("Odd"), m_groupParity ); 45 m_parityOdd = new QRadioButton(tr("Odd"), m_groupParity );
44 m_parityEven = new QRadioButton(tr("Even"), m_groupParity ); 46 m_parityEven = new QRadioButton(tr("Even"), m_groupParity );
45 47
46 m_lroot = new QVBoxLayout(this ); 48 m_lroot = new QVBoxLayout( this );
47 m_lroot->add(m_speedLabel ); 49 m_lroot->add(m_speedLabel );
48 m_lroot->add(m_speedBox ); 50 m_lroot->add(m_speedBox );
49 m_lroot->setStretchFactor(m_speedLabel, 1); 51 m_lroot->setStretchFactor(m_speedLabel, 1);
50 m_lroot->setStretchFactor(m_speedBox, 1 ); 52 m_lroot->setStretchFactor(m_speedBox, 1 );
51 53
52 m_hbox = new QHBoxLayout(m_groupFlow, 2 ); 54 m_hbox = new QHBoxLayout(m_groupFlow, 2 );
53 m_hbox->add(m_flowHw ); 55 m_hbox->add(m_flowHw );
54 m_hbox->add(m_flowSw ); 56 m_hbox->add(m_flowSw );
57 m_hbox->add(m_flowNone );
55 m_lroot->add(m_groupFlow ); 58 m_lroot->add(m_groupFlow );
56 m_lroot->setStretchFactor(m_groupFlow, 2 ); 59 m_lroot->setStretchFactor(m_groupFlow, 2 );
57 60
58 m_hboxPar = new QHBoxLayout( m_groupParity, 2 ); 61 m_hboxPar = new QHBoxLayout( m_groupParity, 2 );
59 m_hboxPar->add(m_parityOdd ); 62 m_hboxPar->add(m_parityOdd );
60 m_hboxPar->add(m_parityEven ); 63 m_hboxPar->add(m_parityEven );
61 m_lroot->add(m_groupParity ); 64 m_lroot->add(m_groupParity );
62 m_lroot->setStretchFactor(m_groupParity, 2 ); 65 m_lroot->setStretchFactor(m_groupParity, 2 );
63 66
64 // profiles 67 // profiles
65 m_speedBox->insertItem(tr("115200 baud"), id_baud_115200 ); 68 m_speedBox->insertItem(tr("115200 baud"), id_baud_115200 );
66 m_speedBox->insertItem(tr("57600 baud"), id_baud_57600 ); 69 m_speedBox->insertItem(tr("57600 baud"), id_baud_57600 );
67 m_speedBox->insertItem(tr("38400 baud"), id_baud_38400 ); 70 m_speedBox->insertItem(tr("38400 baud"), id_baud_38400 );
68 m_speedBox->insertItem(tr("19200 baud"), id_baud_19200 ); 71 m_speedBox->insertItem(tr("19200 baud"), id_baud_19200 );
69 m_speedBox->insertItem(tr("9600 baud"), id_baud_9600 ); 72 m_speedBox->insertItem(tr("9600 baud"), id_baud_9600 );
70}; 73};
71IOLayerBase::~IOLayerBase() { 74IOLayerBase::~IOLayerBase() {
72 75
73} 76}
74void IOLayerBase::setFlow( Flow flo ) { 77void IOLayerBase::setFlow( Flow flo ) {
75 switch ( flo ) { 78 switch ( flo ) {
76 case Software: 79 case Software:
77 m_flowSw->setChecked( true ); 80 m_flowSw->setChecked( true );
78 break; 81 break;
79 case Hardware: 82 case Hardware:
80 m_flowHw->setChecked( true ); 83 m_flowHw->setChecked( true );
81 break; 84 break;
85 case None:
86 m_flowNone->setChecked( true );
87 break;
82 } 88 }
83} 89}
90
84void IOLayerBase::setParity( Parity par ) { 91void IOLayerBase::setParity( Parity par ) {
85 switch( par ) { 92 switch( par ) {
86 case Odd: 93 case Odd:
87 m_parityOdd->setChecked( true ); 94 m_parityOdd->setChecked( true );
88 break; 95 break;
89 case Even: 96 case Even:
90 m_parityEven->setChecked( true ); 97 m_parityEven->setChecked( true );
91 break; 98 break;
92 } 99 }
93} 100}
94void IOLayerBase::setSpeed( Speed sp ) { 101void IOLayerBase::setSpeed( Speed sp ) {
95 int index; 102 int index;
96 switch( sp ) { 103 switch( sp ) {
97 case Baud_115200: 104 case Baud_115200:
98 index = id_baud_115200; 105 index = id_baud_115200;
99 break; 106 break;
100 case Baud_57600: 107 case Baud_57600:
101 index = id_baud_57600; 108 index = id_baud_57600;
102 break; 109 break;
103 case Baud_38400: 110 case Baud_38400:
104 index = id_baud_38400; 111 index = id_baud_38400;
105 break; 112 break;
106 case Baud_19200: 113 case Baud_19200:
107 index = id_baud_19200; 114 index = id_baud_19200;
108 break; 115 break;
109 case Baud_9600: 116 case Baud_9600:
110 index = id_baud_9600; 117 index = id_baud_9600;
111 break; 118 break;
112 } 119 }
113 m_speedBox->setCurrentItem(index ); 120 m_speedBox->setCurrentItem(index );
114} 121}
115IOLayerBase::Flow IOLayerBase::flow()const { 122IOLayerBase::Flow IOLayerBase::flow()const {
116 if (m_flowHw->isChecked() ) { 123 if (m_flowHw->isChecked() ) {
117 qWarning("Hardware flow"); 124 qWarning("Hardware flow");
118 return Hardware; 125 return Hardware;
119 }else { 126 }else if( m_flowSw->isChecked() ) {
120 qWarning("Software"); 127 qWarning("Software");
121 return Software; 128 return Software;
129 } else {
130 qWarning("None");
131 return None;
122 } 132 }
123} 133}
124IOLayerBase::Parity IOLayerBase::parity()const { 134IOLayerBase::Parity IOLayerBase::parity()const {
125 if (m_parityOdd->isChecked() ) 135 if (m_parityOdd->isChecked() )
126 return Odd; 136 return Odd;
127 else 137 else
128 return Even; 138 return Even;
129 139
130} 140}
131IOLayerBase::Speed IOLayerBase::speed()const{ 141IOLayerBase::Speed IOLayerBase::speed()const{
132 switch( m_speedBox->currentItem() ) { 142 switch( m_speedBox->currentItem() ) {
133 case id_baud_115200: 143 case id_baud_115200:
134 return Baud_115200; 144 return Baud_115200;
135 break; 145 break;
136 case id_baud_57600: 146 case id_baud_57600:
137 return Baud_57600; 147 return Baud_57600;
138 break; 148 break;
139 case id_baud_38400: 149 case id_baud_38400:
140 return Baud_38400; 150 return Baud_38400;
141 break; 151 break;
142 case id_baud_19200: 152 case id_baud_19200:
143 return Baud_19200; 153 return Baud_19200;
144 break; 154 break;
145 case id_baud_9600: 155 case id_baud_9600:
146 return Baud_9600; 156 return Baud_9600;
147 break; 157 break;
148 } 158 }
149} 159}
diff --git a/noncore/apps/opie-console/iolayerbase.h b/noncore/apps/opie-console/iolayerbase.h
index 151a04b..d14f334 100644
--- a/noncore/apps/opie-console/iolayerbase.h
+++ b/noncore/apps/opie-console/iolayerbase.h
@@ -1,47 +1,47 @@
1#ifndef OPIE_IO_LAYER_BASE_H 1#ifndef OPIE_IO_LAYER_BASE_H
2#define OPIE_IO_LAYER_BASE_H 2#define OPIE_IO_LAYER_BASE_H
3 3
4 4
5#include <qwidget.h> 5#include <qwidget.h>
6 6
7class QLabel; 7class QLabel;
8class QComboBox; 8class QComboBox;
9class QVBoxLayout; 9class QVBoxLayout;
10class QButtonGroup; 10class QButtonGroup;
11class QRadioButton; 11class QRadioButton;
12class QHBoxLayout; 12class QHBoxLayout;
13class IOLayerBase : public QWidget { 13class IOLayerBase : public QWidget {
14 Q_OBJECT 14 Q_OBJECT
15public: 15public:
16 enum Flow { Hardware, Software }; 16 enum Flow { Hardware, Software, None };
17 enum Parity{ Odd =2 , Even =1 }; 17 enum Parity{ Odd =2 , Even =1 };
18 enum Speed{ Baud_115200, 18 enum Speed{ Baud_115200,
19 Baud_57600, 19 Baud_57600,
20 Baud_38400, 20 Baud_38400,
21 Baud_19200, 21 Baud_19200,
22 Baud_9600 }; 22 Baud_9600 };
23 IOLayerBase( QWidget* base, const char* name = 0l); 23 IOLayerBase( QWidget* base, const char* name = 0l);
24 ~IOLayerBase(); 24 ~IOLayerBase();
25 25
26 void setFlow( Flow flo ); 26 void setFlow( Flow flo );
27 void setParity( Parity par ); 27 void setParity( Parity par );
28 void setSpeed( Speed speed ); 28 void setSpeed( Speed speed );
29 29
30 Flow flow()const; 30 Flow flow()const;
31 Parity parity()const; 31 Parity parity()const;
32 Speed speed()const; 32 Speed speed()const;
33private: 33private:
34 QVBoxLayout* m_lroot; 34 QVBoxLayout* m_lroot;
35 QLabel* m_speedLabel; 35 QLabel* m_speedLabel;
36 QComboBox* m_speedBox; 36 QComboBox* m_speedBox;
37 QButtonGroup* m_groupFlow; 37 QButtonGroup* m_groupFlow;
38 QRadioButton *m_flowHw, *m_flowSw; 38 QRadioButton *m_flowHw, *m_flowSw, *m_flowNone;
39 39
40 QButtonGroup* m_groupParity; 40 QButtonGroup* m_groupParity;
41 QRadioButton *m_parityOdd, *m_parityEven; 41 QRadioButton *m_parityOdd, *m_parityEven;
42 QHBoxLayout* m_hbox; 42 QHBoxLayout* m_hbox;
43 QHBoxLayout* m_hboxPar; 43 QHBoxLayout* m_hboxPar;
44}; 44};
45 45
46 46
47#endif 47#endif
diff --git a/noncore/apps/opie-console/irdaconfigwidget.cpp b/noncore/apps/opie-console/irdaconfigwidget.cpp
new file mode 100644
index 0000000..1cc041b
--- a/dev/null
+++ b/noncore/apps/opie-console/irdaconfigwidget.cpp
@@ -0,0 +1,141 @@
1#include <qlabel.h>
2#include <qlayout.h>
3#include <qcombobox.h>
4
5#include "iolayerbase.h"
6#include "irdaconfigwidget.h"
7
8namespace {
9 void setCurrent( const QString& str, QComboBox* bo ) {
10 uint b = bo->count();
11 for (uint i = 0; i < bo->count(); i++ ) {
12 if ( bo->text(i) == str ) {
13 bo->setCurrentItem( i );
14 return;
15 }
16 }
17 bo->insertItem( str );
18 bo->setCurrentItem( b );
19 }
20
21
22}
23
24IrdaConfigWidget::IrdaConfigWidget( const QString& name,
25 QWidget* parent,
26 const char* na )
27 : ProfileDialogConnectionWidget( name, parent, na ) {
28
29 m_lay = new QVBoxLayout(this );
30 m_device = new QLabel(tr("Device"), this );
31 m_deviceCmb = new QComboBox(this );
32 m_deviceCmb->setEditable( TRUE );
33
34 m_base = new IOLayerBase(this, "base");
35
36 m_lay->addWidget( m_device );
37 m_lay->addWidget( m_deviceCmb );
38 m_lay->addWidget( m_base );
39
40 m_deviceCmb->insertItem( "/dev/ircomm0" );
41 m_deviceCmb->insertItem( "/dev/ircomm1" );
42}
43
44IrdaConfigWidget::~IrdaConfigWidget() {
45
46}
47void IrdaConfigWidget::load( const Profile& prof ) {
48 int rad_flow = prof.readNumEntry("Flow");
49 int rad_parity = prof.readNumEntry("Parity");
50 int speed = prof.readNumEntry("Speed");
51
52 if (rad_flow == 1) {
53 m_base->setFlow( IOLayerBase::Hardware );
54 } else if (rad_flow == 2) {
55 m_base->setFlow( IOLayerBase::Software );
56 } else if (rad_flow == 0) {
57 m_base->setFlow( IOLayerBase::None );
58 }
59
60 if (rad_parity == 1) {
61 m_base->setParity( IOLayerBase::Even );
62 } else {
63 m_base->setParity( IOLayerBase::Odd );
64 }
65
66 switch( speed ) {
67 case 115200:
68 m_base->setSpeed(IOLayerBase::Baud_115200 );
69 break;
70 case 57600:
71 m_base->setSpeed( IOLayerBase::Baud_57600 );
72 break;
73 case 38400:
74 m_base->setSpeed(IOLayerBase::Baud_38400 );
75 break;
76 case 19200:
77 m_base->setSpeed( IOLayerBase::Baud_19200 );
78 break;
79 case 9600:
80 default:
81 m_base->setSpeed(IOLayerBase::Baud_9600 );
82 break;
83 }
84
85 if ( prof.readEntry("Device").isEmpty() ) return;
86 setCurrent( prof.readEntry("Device"), m_deviceCmb );
87
88}
89/*
90 * save speed,
91 * flow,
92 * parity
93 */
94void IrdaConfigWidget::save( Profile& prof ) {
95 int flow, parity, speed;
96 prof.writeEntry("Device", m_deviceCmb->currentText() );
97
98 switch( m_base->flow() ) {
99 case IOLayerBase::None:
100 flow = 0;
101 break;
102 case IOLayerBase::Software:
103 flow = 2;
104 break;
105 case IOLayerBase::Hardware:
106 flow = 1;
107 break;
108 }
109
110
111 switch( m_base->parity() ) {
112 case IOLayerBase::Odd:
113 parity = 2;
114 break;
115 case IOLayerBase::Even:
116 parity = 1;
117 break;
118 }
119
120 switch( m_base->speed() ) {
121 case IOLayerBase::Baud_115200:
122 speed = 115200;
123 break;
124 case IOLayerBase::Baud_57600:
125 speed = 57600;
126 break;
127 case IOLayerBase::Baud_38400:
128 speed = 38400;
129 break;
130 case IOLayerBase::Baud_19200:
131 speed = 19200;
132 break;
133 case IOLayerBase::Baud_9600:
134 speed = 9600;
135 break;
136 }
137
138 prof.writeEntry("Flow", flow);
139 prof.writeEntry("Parity", parity);
140 prof.writeEntry("Speed", speed);
141}
diff --git a/noncore/apps/opie-console/irdaconfigwidget.h b/noncore/apps/opie-console/irdaconfigwidget.h
new file mode 100644
index 0000000..56d8089
--- a/dev/null
+++ b/noncore/apps/opie-console/irdaconfigwidget.h
@@ -0,0 +1,29 @@
1#ifndef OPIE_IRDA_CONFIG_WIDGET_H
2#define OPIE_IRDA_CONFIG_WIDGET_H
3
4#include "profiledialogwidget.h"
5
6class QVBoxLayout;
7class QLabel;
8class QComboBox;
9class IOLayerBase;
10class IrdaConfigWidget : public ProfileDialogConnectionWidget {
11
12 Q_OBJECT
13
14public:
15 IrdaConfigWidget( const QString& name, QWidget* parent, const char* name = 0l );
16 ~IrdaConfigWidget();
17
18 void load( const Profile& );
19 void save( Profile& );
20private:
21 QVBoxLayout* m_lay;
22 QLabel* m_device;
23 QComboBox* m_deviceCmb;
24 IOLayerBase* m_base;
25
26};
27
28
29#endif
diff --git a/noncore/apps/opie-console/opie-console.pro b/noncore/apps/opie-console/opie-console.pro
index ea6d759..e1e5248 100644
--- a/noncore/apps/opie-console/opie-console.pro
+++ b/noncore/apps/opie-console/opie-console.pro
@@ -1,63 +1,64 @@
1TEMPLATE = app 1TEMPLATE = app
2#CONFIG = qt warn_on release 2#CONFIG = qt warn_on release
3 CONFIG = qt debug 3 CONFIG = qt debug
4DESTDIR = $(OPIEDIR)/bin 4DESTDIR = $(OPIEDIR)/bin
5HEADERS = io_layer.h io_serial.h \ 5HEADERS = io_layer.h io_serial.h io_irda.h io_bt.h \
6 file_layer.h sz_transfer.h \ 6 file_layer.h sz_transfer.h \
7 metafactory.h \ 7 metafactory.h \
8 session.h \ 8 session.h \
9 mainwindow.h \ 9 mainwindow.h \
10 profile.h \ 10 profile.h \
11 profileconfig.h \ 11 profileconfig.h \
12 profilemanager.h \ 12 profilemanager.h \
13 configwidget.h \ 13 configwidget.h \
14 tabwidget.h \ 14 tabwidget.h \
15 configdialog.h \ 15 configdialog.h \
16 emulation_layer.h \ 16 emulation_layer.h \
17 widget.h \ 17 widget.h \
18 vt102emulation.h \ 18 vt102emulation.h \
19 common.h \ 19 common.h \
20 history.h \ 20 history.h \
21 screen.h \ 21 screen.h \
22 keytrans.h \ 22 keytrans.h \
23 widget_layer.h \ 23 widget_layer.h \
24 transferdialog.h \ 24 transferdialog.h \
25 profiledialogwidget.h \ 25 profiledialogwidget.h \
26 profileeditordialog.h \ 26 profileeditordialog.h \
27 default.h \ 27 default.h \
28 terminalwidget.h \ 28 terminalwidget.h \
29 iolayerbase.h \ 29 iolayerbase.h \
30 serialconfigwidget.h 30 serialconfigwidget.h irdaconfigwidget.h btconfigwidget.h \
31 31
32SOURCES = io_layer.cpp io_serial.cpp \ 32
33SOURCES = io_layer.cpp io_serial.cpp io_irda.cpp io_bt.cpp \
33 file_layer.cpp sz_transfer.cpp \ 34 file_layer.cpp sz_transfer.cpp \
34 main.cpp \ 35 main.cpp \
35 metafactory.cpp \ 36 metafactory.cpp \
36 session.cpp \ 37 session.cpp \
37 mainwindow.cpp \ 38 mainwindow.cpp \
38 profile.cpp \ 39 profile.cpp \
39 profileconfig.cpp \ 40 profileconfig.cpp \
40 profilemanager.cpp \ 41 profilemanager.cpp \
41 tabwidget.cpp \ 42 tabwidget.cpp \
42 configdialog.cpp \ 43 configdialog.cpp \
43 emulation_layer.cpp \ 44 emulation_layer.cpp \
44 widget.cpp \ 45 widget.cpp \
45 vt102emulation.cpp \ 46 vt102emulation.cpp \
46 history.cpp \ 47 history.cpp \
47 screen.cpp \ 48 screen.cpp \
48 keytrans.cpp \ 49 keytrans.cpp \
49 widget_layer.cpp \ 50 widget_layer.cpp \
50 transferdialog.cpp \ 51 transferdialog.cpp \
51 profiledialogwidget.cpp \ 52 profiledialogwidget.cpp \
52 profileeditordialog.cpp \ 53 profileeditordialog.cpp \
53 default.cpp \ 54 default.cpp \
54 terminalwidget.cpp \ 55 terminalwidget.cpp \
55 iolayerbase.cpp \ 56 iolayerbase.cpp \
56 serialconfigwidget.cpp 57 serialconfigwidget.cpp irdaconfigwidget.cpp btconfigwidget.cpp \
57 58
58INTERFACES = configurebase.ui editbase.ui 59INTERFACES = configurebase.ui editbase.ui
59INCLUDEPATH += $(OPIEDIR)/include 60INCLUDEPATH += $(OPIEDIR)/include
60DEPENDPATH += $(OPIEDIR)/include 61DEPENDPATH += $(OPIEDIR)/include
61LIBS += -lqpe -lopie 62LIBS += -lqpe -lopie
62TARGET = opie-console 63TARGET = opie-console
63 64
diff --git a/noncore/apps/opie-console/profileeditordialog.cpp b/noncore/apps/opie-console/profileeditordialog.cpp
index faf9c39..914fd25 100644
--- a/noncore/apps/opie-console/profileeditordialog.cpp
+++ b/noncore/apps/opie-console/profileeditordialog.cpp
@@ -86,114 +86,114 @@ void ProfileEditorDialog::initUI()
86 vbox3->add(m_name); 86 vbox3->add(m_name);
87 vbox3->add(con ); 87 vbox3->add(con );
88 vbox3->add(m_conCmb ); 88 vbox3->add(m_conCmb );
89 vbox3->add(term ); 89 vbox3->add(term );
90 vbox3->add(m_termCmb ); 90 vbox3->add(m_termCmb );
91 vbox3->addStretch(1); 91 vbox3->addStretch(1);
92 92
93 tabWidget->addTab(tabprof, "", QObject::tr("Profile")); 93 tabWidget->addTab(tabprof, "", QObject::tr("Profile"));
94 tabWidget->addTab(m_tabCon, "", QObject::tr("Connection")); 94 tabWidget->addTab(m_tabCon, "", QObject::tr("Connection"));
95 tabWidget->addTab(m_tabTerm, "", QObject::tr("Terminal")); 95 tabWidget->addTab(m_tabTerm, "", QObject::tr("Terminal"));
96 tabWidget->setCurrentTab( tabprof ); 96 tabWidget->setCurrentTab( tabprof );
97 97
98 98
99 // fill the comboboxes 99 // fill the comboboxes
100 QStringList list = m_fact->connectionWidgets(); 100 QStringList list = m_fact->connectionWidgets();
101 QStringList::Iterator it; 101 QStringList::Iterator it;
102 for (it =list.begin(); it != list.end(); ++it ) { 102 for (it =list.begin(); it != list.end(); ++it ) {
103 m_conCmb->insertItem( (*it) ); 103 m_conCmb->insertItem( (*it) );
104 } 104 }
105 list = m_fact->terminalWidgets(); 105 list = m_fact->terminalWidgets();
106 for (it =list.begin(); it != list.end(); ++it ) { 106 for (it =list.begin(); it != list.end(); ++it ) {
107 m_termCmb->insertItem( (*it) ); 107 m_termCmb->insertItem( (*it) );
108 } 108 }
109 109
110 // load profile values 110 // load profile values
111 m_name->setText(m_prof.name()); 111 m_name->setText(m_prof.name());
112 slotConActivated( m_fact->external(m_prof.ioLayerName() ) ); 112 slotConActivated( m_fact->external(m_prof.ioLayerName() ) );
113 slotTermActivated( m_fact->external(m_prof.terminalName() ) ); 113 slotTermActivated( m_fact->external(m_prof.terminalName() ) );
114 setCurrent( m_fact->external(m_prof.ioLayerName() ), m_conCmb ); 114 setCurrent( m_fact->external(m_prof.ioLayerName() ), m_conCmb );
115 setCurrent( m_fact->external(m_prof.terminalName() ), m_termCmb ); 115 setCurrent( m_fact->external(m_prof.terminalName() ), m_termCmb );
116 116
117 qWarning("Layer: %s %s", m_prof.ioLayerName().data(), 117 qWarning("Layer: %s %s", m_prof.ioLayerName().data(),
118 m_fact->external(m_prof.ioLayerName() ).latin1() ); 118 m_fact->external(m_prof.ioLayerName() ).latin1() );
119 qWarning("Term: %s %s", m_prof.terminalName().data(), 119 qWarning("Term: %s %s", m_prof.terminalName().data(),
120 m_fact->external(m_prof.terminalName() ).latin1() ); 120 m_fact->external(m_prof.terminalName() ).latin1() );
121 121
122 // signal and slots 122 // signal and slots
123 connect(m_conCmb, SIGNAL(activated(const QString& ) ), 123 connect(m_conCmb, SIGNAL(activated(const QString& ) ),
124 this, SLOT(slotConActivated(const QString&) ) ); 124 this, SLOT(slotConActivated(const QString&) ) );
125 connect(m_termCmb, SIGNAL(activated(const QString& ) ), 125 connect(m_termCmb, SIGNAL(activated(const QString& ) ),
126 this, SLOT(slotTermActivated(const QString& ) ) ); 126 this, SLOT(slotTermActivated(const QString& ) ) );
127 127
128} 128}
129 129
130ProfileEditorDialog::~ProfileEditorDialog() { 130ProfileEditorDialog::~ProfileEditorDialog() {
131 131
132} 132}
133void ProfileEditorDialog::accept() 133void ProfileEditorDialog::accept()
134{ 134{
135 if(profName().isEmpty()) 135 if(profName().isEmpty())
136 { 136 {
137 QMessageBox::information(this, 137 QMessageBox::information(this,
138 QObject::tr("Invalid profile"), 138 QObject::tr("Invalid profile"),
139 QObject::tr("Please enter a profile name.")); 139 QObject::tr("Please enter a profile name."));
140 return; 140 return;
141 } 141 }
142 // Save profile and plugin profile 142 // Save profile and plugin profile
143 //if(plugin_plugin) plugin_plugin->save(); 143 //if(plugin_plugin) plugin_plugin->save();
144 144
145 // Save general values 145 // Save general values
146 m_prof.setName(profName()); 146 m_prof.setName(profName());
147 m_prof.setIOLayer( m_fact->internal(m_conCmb ->currentText() ) ); 147 m_prof.setIOLayer( m_fact->internal(m_conCmb ->currentText() ) );
148 m_prof.setTerminalName( m_fact->internal(m_termCmb->currentText() ) ); 148 m_prof.setTerminalName( m_fact->internal(m_termCmb->currentText() ) );
149 qWarning("Term %s %s", m_fact->internal(m_termCmb->currentText() ).data(), 149 qWarning("Term %s %s", m_fact->internal(m_termCmb->currentText() ).data(),
150 m_termCmb->currentText().latin1() ); 150 m_termCmb->currentText().latin1() );
151 151
152 if (m_con ) 152 if (m_con )
153 m_con->save( m_prof ); 153 m_con->save( m_prof );
154 if (m_term ) 154 if (m_term )
155 m_term->save( m_prof ); 155 m_term->save( m_prof );
156 156
157 QDialog::accept(); 157 QDialog::accept();
158} 158}
159 159
160 160
161QString ProfileEditorDialog::profName()const 161QString ProfileEditorDialog::profName()const
162{ 162{
163 return m_name->text(); 163 return m_name->text();
164} 164}
165 165
166QCString ProfileEditorDialog::profType()const 166QCString ProfileEditorDialog::profType()const
167{ 167{
168 /*QStringList w = m_fact->configWidgets(); 168 /*QStringList w = m_fact->configWidgets();
169 for(QStringList::Iterator it = w.begin(); it != w.end(); it++) 169 for(QStringList::Iterator it = w.begin(); it != w.end(); it++)
170 if(device_box->currentText() == m_fact->name((*it))) return (*it); 170 if(device_box->currentText() == m_fact->name((*it))) return (*it);
171 */ 171 */
172 return QCString(); 172 return QCString();
173} 173}
174/* 174/*
175 * we need to switch the widget 175 * we need to switch the widget
176 */ 176 */
177void ProfileEditorDialog::slotConActivated( const QString& str ) { 177void ProfileEditorDialog::slotConActivated( const QString& str ) {
178 delete m_con; 178 delete m_con;
179 m_con = m_fact->newConnectionPlugin( str, m_tabCon ); 179 m_con = m_fact->newConnectionPlugin( str, m_tabCon );
180 180
181 if (m_con ) { 181 if (m_con ) {
182 m_con->load(m_prof ); 182 m_con->load( m_prof );
183 m_layCon->addWidget( m_con ); 183 m_layCon->addWidget( m_con );
184 } 184 }
185} 185}
186/* 186/*
187 * we need to switch the widget 187 * we need to switch the widget
188 */ 188 */
189void ProfileEditorDialog::slotTermActivated( const QString& str ) { 189void ProfileEditorDialog::slotTermActivated( const QString& str ) {
190 delete m_term; 190 delete m_term;
191 m_term = m_fact->newTerminalPlugin( str, m_tabTerm ); 191 m_term = m_fact->newTerminalPlugin( str, m_tabTerm );
192 qWarning("past"); 192 qWarning("past");
193 193
194 if (m_term) { 194 if (m_term) {
195 m_term->load(m_prof ); 195 m_term->load(m_prof );
196 m_layTerm->addWidget( m_term ); 196 m_layTerm->addWidget( m_term );
197 } 197 }
198} 198}
199 199
diff --git a/noncore/apps/opie-console/profileeditorplugins.cpp b/noncore/apps/opie-console/profileeditorplugins.cpp
index c11c854..937516c 100644
--- a/noncore/apps/opie-console/profileeditorplugins.cpp
+++ b/noncore/apps/opie-console/profileeditorplugins.cpp
@@ -101,201 +101,204 @@ QWidget *ProfileEditorPlugin::connection_widget()
101 101
102QWidget *ProfileEditorPlugin::terminal_widget() 102QWidget *ProfileEditorPlugin::terminal_widget()
103{ 103{
104 QWidget *root; 104 QWidget *root;
105 QVBoxLayout *lroot; 105 QVBoxLayout *lroot;
106 106
107 root = new QWidget(); 107 root = new QWidget();
108 108
109 // Build GUI 109 // Build GUI
110 110
111 111
112 QLabel *terminal = new QLabel(QObject::tr("Terminal type"), root); 112 QLabel *terminal = new QLabel(QObject::tr("Terminal type"), root);
113 113
114 QComboBox *terminal_box = new QComboBox(root); 114 QComboBox *terminal_box = new QComboBox(root);
115 terminal_box->insertItem("VT 100", id_term_vt100); 115 terminal_box->insertItem("VT 100", id_term_vt100);
116 terminal_box->insertItem("VT 220", id_term_vt220); 116 terminal_box->insertItem("VT 220", id_term_vt220);
117 terminal_box->insertItem("ANSI", id_term_ansi); 117 terminal_box->insertItem("ANSI", id_term_ansi);
118 118
119 QLabel *colourlabel = new QLabel(QObject::tr("Colour scheme"), root); 119 QLabel *colourlabel = new QLabel(QObject::tr("Colour scheme"), root);
120 QComboBox *colour_box = new QComboBox(root); 120 QComboBox *colour_box = new QComboBox(root);
121 colour_box->insertItem(QObject::tr("black on white"), id_term_black); 121 colour_box->insertItem(QObject::tr("black on white"), id_term_black);
122 colour_box->insertItem(QObject::tr("white on black"), id_term_white); 122 colour_box->insertItem(QObject::tr("white on black"), id_term_white);
123 123
124 QButtonGroup *group_size = new QButtonGroup( QObject::tr("Font size"), root ); 124 QButtonGroup *group_size = new QButtonGroup( QObject::tr("Font size"), root );
125 QRadioButton *size_small = new QRadioButton(QObject::tr("small"), group_size ); 125 QRadioButton *size_small = new QRadioButton(QObject::tr("small"), group_size );
126 QRadioButton *size_medium = new QRadioButton(QObject::tr("medium"), group_size ); 126 QRadioButton *size_medium = new QRadioButton(QObject::tr("medium"), group_size );
127 QRadioButton *size_large = new QRadioButton(QObject::tr("large"), group_size ); 127 QRadioButton *size_large = new QRadioButton(QObject::tr("large"), group_size );
128 128
129 QHGroupBox *group_conv = new QHGroupBox( QObject::tr("Line-break conversions"), root ); 129 QHGroupBox *group_conv = new QHGroupBox( QObject::tr("Line-break conversions"), root );
130 QCheckBox *conv_inbound = new QCheckBox(QObject::tr("Inbound"), group_conv); 130 QCheckBox *conv_inbound = new QCheckBox(QObject::tr("Inbound"), group_conv);
131 QCheckBox *conv_outbound = new QCheckBox(QObject::tr("Outbound"), group_conv); 131 QCheckBox *conv_outbound = new QCheckBox(QObject::tr("Outbound"), group_conv);
132 132
133 QHGroupBox *group_options = new QHGroupBox( QObject::tr("Options"), root ); 133 QHGroupBox *group_options = new QHGroupBox( QObject::tr("Options"), root );
134 QCheckBox *option_echo = new QCheckBox(QObject::tr("Local echo"), group_options); 134 QCheckBox *option_echo = new QCheckBox(QObject::tr("Local echo"), group_options);
135 QCheckBox *option_wrap = new QCheckBox(QObject::tr("Line wrap"), group_options); 135 QCheckBox *option_wrap = new QCheckBox(QObject::tr("Line wrap"), group_options);
136 136
137 // Build Layout 137 // Build Layout
138 lroot = new QVBoxLayout(root, 2); 138 lroot = new QVBoxLayout(root, 2);
139 139
140 QVBoxLayout *typeBox = new QVBoxLayout( lroot ); 140 QVBoxLayout *typeBox = new QVBoxLayout( lroot );
141 typeBox->add(terminal); 141 typeBox->add(terminal);
142 typeBox->add(terminal_box); 142 typeBox->add(terminal_box);
143 143
144 QHBoxLayout *hbox = new QHBoxLayout( group_size, 2); 144 QHBoxLayout *hbox = new QHBoxLayout( group_size, 2);
145 hbox->add(size_small); 145 hbox->add(size_small);
146 hbox->add(size_medium); 146 hbox->add(size_medium);
147 hbox->add(size_large); 147 hbox->add(size_large);
148 lroot->add( group_size ); 148 lroot->add( group_size );
149 149
150 QVBoxLayout *colourBox = new QVBoxLayout( lroot ); 150 QVBoxLayout *colourBox = new QVBoxLayout( lroot );
151 colourBox->add(colourlabel); 151 colourBox->add(colourlabel);
152 colourBox->add(colour_box); 152 colourBox->add(colour_box);
153 153
154 lroot->add(group_conv); 154 lroot->add(group_conv);
155 lroot->add(group_options); 155 lroot->add(group_options);
156 156
157 // Apply profile settings 157 // Apply profile settings
158 158
159 int term = m_profile->readNumEntry("Terminal"); 159 int term = m_profile->readNumEntry("Terminal");
160 int colour = m_profile->readNumEntry("Colour"); 160 int colour = m_profile->readNumEntry("Colour");
161 int fontsize = m_profile->readNumEntry("Font"); 161 int fontsize = m_profile->readNumEntry("Font");
162 int opt_echo = m_profile->readNumEntry("Echo"); 162 int opt_echo = m_profile->readNumEntry("Echo");
163 int opt_wrap = m_profile->readNumEntry("Wrap"); 163 int opt_wrap = m_profile->readNumEntry("Wrap");
164 int opt_inbound = m_profile->readNumEntry("Inbound"); 164 int opt_inbound = m_profile->readNumEntry("Inbound");
165 int opt_outbound = m_profile->readNumEntry("Outbound"); 165 int opt_outbound = m_profile->readNumEntry("Outbound");
166 166
167 if(term == Profile::VT102) terminal_box->setCurrentItem(id_term_vt100); 167 if(term == Profile::VT102) terminal_box->setCurrentItem(id_term_vt100);
168 168
169 if(colour == Profile::Black) colour_box->setCurrentItem(id_term_black); 169 if(colour == Profile::Black) colour_box->setCurrentItem(id_term_black);
170 if(colour == Profile::White) colour_box->setCurrentItem(id_term_white); 170 if(colour == Profile::White) colour_box->setCurrentItem(id_term_white);
171 171
172 if(fontsize == Profile::Micro) size_small->setChecked(true); 172 if(fontsize == Profile::Micro) size_small->setChecked(true);
173 if(fontsize == Profile::Small) size_medium->setChecked(true); 173 if(fontsize == Profile::Small) size_medium->setChecked(true);
174 if(fontsize == Profile::Medium) size_large->setChecked(true); 174 if(fontsize == Profile::Medium) size_large->setChecked(true);
175 175
176 if(opt_echo) option_echo->setChecked(true); 176 if(opt_echo) option_echo->setChecked(true);
177 if(opt_wrap) option_wrap->setChecked(true); 177 if(opt_wrap) option_wrap->setChecked(true);
178 if(opt_inbound) conv_inbound->setChecked(true); 178 if(opt_inbound) conv_inbound->setChecked(true);
179 if(opt_outbound) conv_outbound->setChecked(true); 179 if(opt_outbound) conv_outbound->setChecked(true);
180 180
181 // Signals 181 // Signals
182 182
183 connect(terminal_box, SIGNAL(activated(int)), SLOT(slotTermTerm(int))); 183 connect(terminal_box, SIGNAL(activated(int)), SLOT(slotTermTerm(int)));
184 connect(colour_box, SIGNAL(activated(int)), SLOT(slotTermColour(int))); 184 connect(colour_box, SIGNAL(activated(int)), SLOT(slotTermColour(int)));
185 connect(group_size, SIGNAL(clicked(int)), SLOT(slotTermFont(int))); 185 connect(group_size, SIGNAL(clicked(int)), SLOT(slotTermFont(int)));
186 186
187 connect(option_echo, SIGNAL(toggled(bool)), SLOT(slotTermEcho(bool))); 187 connect(option_echo, SIGNAL(toggled(bool)), SLOT(slotTermEcho(bool)));
188 connect(option_wrap, SIGNAL(toggled(bool)), SLOT(slotTermWrap(bool))); 188 connect(option_wrap, SIGNAL(toggled(bool)), SLOT(slotTermWrap(bool)));
189 connect(conv_inbound, SIGNAL(toggled(bool)), SLOT(slotTermInbound(bool))); 189 connect(conv_inbound, SIGNAL(toggled(bool)), SLOT(slotTermInbound(bool)));
190 connect(conv_outbound, SIGNAL(toggled(bool)), SLOT(slotTermOutbound(bool))); 190 connect(conv_outbound, SIGNAL(toggled(bool)), SLOT(slotTermOutbound(bool)));
191 191
192 return root; 192 return root;
193} 193}
194 194
195void ProfileEditorPlugin::slotConnFlow(int id) 195void ProfileEditorPlugin::slotConnFlow(int id)
196{ 196{
197 switch(id) 197 switch(id)
198 { 198 {
199 case id_flow_hw: 199 case id_flow_hw:
200 m_profile->writeEntry("Flow", IOSerial::FlowHW); 200 m_profile->writeEntry("Flow", IOSerial::FlowHW);
201 break; 201 break;
202 case id_flow_sw: 202 case id_flow_sw:
203 m_profile->writeEntry("Flow", IOSerial::FlowSW); 203 m_profile->writeEntry("Flow", IOSerial::FlowSW);
204 break; 204 break;
205 } 205 case id_flow_sw:
206 m_profile->writeEntry("None", IOSerial::None);
207 break;
208 }
206} 209}
207 210
208void ProfileEditorPlugin::slotConnParity(int id) 211void ProfileEditorPlugin::slotConnParity(int id)
209{ 212{
210 switch(id) 213 switch(id)
211 { 214 {
212 case id_parity_odd: 215 case id_parity_odd:
213 m_profile->writeEntry("Parity", IOSerial::ParityEven); 216 m_profile->writeEntry("Parity", IOSerial::ParityEven);
214 break; 217 break;
215 case id_parity_even: 218 case id_parity_even:
216 m_profile->writeEntry("Parity", IOSerial::ParityOdd); 219 m_profile->writeEntry("Parity", IOSerial::ParityOdd);
217 break; 220 break;
218 } 221 }
219} 222}
220 223
221void ProfileEditorPlugin::slotConnSpeed(int id) 224void ProfileEditorPlugin::slotConnSpeed(int id)
222{ 225{
223 switch(id) 226 switch(id)
224 { 227 {
225 228
226 case id_baud_115200: 229 case id_baud_115200:
227 m_profile->writeEntry("Speed", 115200); 230 m_profile->writeEntry("Speed", 115200);
228 break; 231 break;
229 case id_baud_57600: 232 case id_baud_57600:
230 m_profile->writeEntry("Speed", 57600); 233 m_profile->writeEntry("Speed", 57600);
231 break; 234 break;
232 case id_baud_38400: 235 case id_baud_38400:
233 m_profile->writeEntry("Speed", 38400); 236 m_profile->writeEntry("Speed", 38400);
234 break; 237 break;
235 case id_baud_19200: 238 case id_baud_19200:
236 m_profile->writeEntry("Speed", 19200); 239 m_profile->writeEntry("Speed", 19200);
237 break; 240 break;
238 case id_baud_9600: 241 case id_baud_9600:
239 m_profile->writeEntry("Speed", 9600); 242 m_profile->writeEntry("Speed", 9600);
240 break; 243 break;
241 } 244 }
242} 245}
243 246
244void ProfileEditorPlugin::slotTermTerm(int id) 247void ProfileEditorPlugin::slotTermTerm(int id)
245{ 248{
246 switch(id) 249 switch(id)
247 { 250 {
248 case id_term_vt100: 251 case id_term_vt100:
249 m_profile->writeEntry("Terminal", Profile::VT102); 252 m_profile->writeEntry("Terminal", Profile::VT102);
250 break; 253 break;
251 case id_term_vt220: 254 case id_term_vt220:
252 m_profile->writeEntry("Terminal", Profile::VT102); 255 m_profile->writeEntry("Terminal", Profile::VT102);
253 break; 256 break;
254 case id_term_ansi: 257 case id_term_ansi:
255 m_profile->writeEntry("Terminal", Profile::VT102); 258 m_profile->writeEntry("Terminal", Profile::VT102);
256 break; 259 break;
257 } 260 }
258} 261}
259 262
260void ProfileEditorPlugin::slotTermColour(int id) 263void ProfileEditorPlugin::slotTermColour(int id)
261{ 264{
262 switch(id) 265 switch(id)
263 { 266 {
264 case id_term_black: 267 case id_term_black:
265 m_profile->writeEntry("Colour", Profile::Black); 268 m_profile->writeEntry("Colour", Profile::Black);
266 break; 269 break;
267 case id_term_white: 270 case id_term_white:
268 m_profile->writeEntry("Colour", Profile::White); 271 m_profile->writeEntry("Colour", Profile::White);
269 break; 272 break;
270 } 273 }
271} 274}
272 275
273void ProfileEditorPlugin::slotTermFont(int id) 276void ProfileEditorPlugin::slotTermFont(int id)
274{ 277{
275 switch(id) 278 switch(id)
276 { 279 {
277 case id_size_small: 280 case id_size_small:
278 m_profile->writeEntry("Font", Profile::Micro); 281 m_profile->writeEntry("Font", Profile::Micro);
279 break; 282 break;
280 case id_size_medium: 283 case id_size_medium:
281 m_profile->writeEntry("Font", Profile::Small); 284 m_profile->writeEntry("Font", Profile::Small);
282 break; 285 break;
283 case id_size_large: 286 case id_size_large:
284 m_profile->writeEntry("Font", Profile::Medium); 287 m_profile->writeEntry("Font", Profile::Medium);
285 break; 288 break;
286 } 289 }
287} 290}
288 291
289void ProfileEditorPlugin::slotTermEcho(bool on) 292void ProfileEditorPlugin::slotTermEcho(bool on)
290{ 293{
291 m_profile->writeEntry("Echo", on ? 1 : 0); 294 m_profile->writeEntry("Echo", on ? 1 : 0);
292} 295}
293 296
294void ProfileEditorPlugin::slotTermWrap(bool on) 297void ProfileEditorPlugin::slotTermWrap(bool on)
295{ 298{
296 m_profile->writeEntry("Wrap", on ? 1 : 0); 299 m_profile->writeEntry("Wrap", on ? 1 : 0);
297} 300}
298 301
299void ProfileEditorPlugin::slotTermInbound(bool on) 302void ProfileEditorPlugin::slotTermInbound(bool on)
300{ 303{
301 m_profile->writeEntry("Inbound", on ? 1 : 0); 304 m_profile->writeEntry("Inbound", on ? 1 : 0);
diff --git a/noncore/apps/opie-console/serialconfigwidget.cpp b/noncore/apps/opie-console/serialconfigwidget.cpp
index a427302..b1ec408 100644
--- a/noncore/apps/opie-console/serialconfigwidget.cpp
+++ b/noncore/apps/opie-console/serialconfigwidget.cpp
@@ -1,135 +1,141 @@
1#include <qlabel.h> 1#include <qlabel.h>
2#include <qlayout.h> 2#include <qlayout.h>
3#include <qcombobox.h> 3#include <qcombobox.h>
4 4
5#include "iolayerbase.h" 5#include "iolayerbase.h"
6#include "serialconfigwidget.h" 6#include "serialconfigwidget.h"
7 7
8namespace { 8namespace {
9 void setCurrent( const QString& str, QComboBox* bo ) { 9 void setCurrent( const QString& str, QComboBox* bo ) {
10 uint b = bo->count(); 10 uint b = bo->count();
11 for (uint i = 0; i < bo->count(); i++ ) { 11 for (uint i = 0; i < bo->count(); i++ ) {
12 if ( bo->text(i) == str ) { 12 if ( bo->text(i) == str ) {
13 bo->setCurrentItem( i ); 13 bo->setCurrentItem( i );
14 return; 14 return;
15 } 15 }
16 } 16 }
17 bo->insertItem( str ); 17 bo->insertItem( str );
18 bo->setCurrentItem( b ); 18 bo->setCurrentItem( b );
19 } 19 }
20 20
21 21
22} 22}
23 23
24SerialConfigWidget::SerialConfigWidget( const QString& name, 24SerialConfigWidget::SerialConfigWidget( const QString& name,
25 QWidget* parent, 25 QWidget* parent,
26 const char* na ) 26 const char* na )
27 : ProfileDialogConnectionWidget( name, parent, na ) { 27 : ProfileDialogConnectionWidget( name, parent, na ) {
28 28
29 m_lay = new QVBoxLayout(this ); 29 m_lay = new QVBoxLayout(this );
30 m_device = new QLabel(tr("Device"), this ); 30 m_device = new QLabel(tr("Device"), this );
31 m_deviceCmb = new QComboBox(this ); 31 m_deviceCmb = new QComboBox(this );
32 m_deviceCmb->setEditable( TRUE ); 32 m_deviceCmb->setEditable( TRUE );
33 33
34 m_base = new IOLayerBase(this, "base"); 34 m_base = new IOLayerBase(this, "base");
35 35
36 m_lay->addWidget( m_device ); 36 m_lay->addWidget( m_device );
37 m_lay->addWidget( m_deviceCmb ); 37 m_lay->addWidget( m_deviceCmb );
38 m_lay->addWidget( m_base ); 38 m_lay->addWidget( m_base );
39 39
40 m_deviceCmb->insertItem( "/dev/ttyS0" ); 40 m_deviceCmb->insertItem( "/dev/ttyS0" );
41 m_deviceCmb->insertItem( "/dev/ttyS1" ); 41 m_deviceCmb->insertItem( "/dev/ttyS1" );
42 m_deviceCmb->insertItem( "/dev/ttySA0"); 42 m_deviceCmb->insertItem( "/dev/ttySA0");
43 m_deviceCmb->insertItem( "/dev/ttySA1"); 43 m_deviceCmb->insertItem( "/dev/ttySA1");
44 44
45} 45}
46SerialConfigWidget::~SerialConfigWidget() { 46SerialConfigWidget::~SerialConfigWidget() {
47 47
48} 48}
49void SerialConfigWidget::load( const Profile& prof ) { 49void SerialConfigWidget::load( const Profile& prof ) {
50 int rad_flow = prof.readNumEntry("Flow"); 50 int rad_flow = prof.readNumEntry("Flow");
51 int rad_parity = prof.readNumEntry("Parity"); 51 int rad_parity = prof.readNumEntry("Parity");
52 int speed = prof.readNumEntry("Speed"); 52 int speed = prof.readNumEntry("Speed");
53 53
54 if (rad_flow == 0) 54 if (rad_flow == 1) {
55 m_base->setFlow( IOLayerBase::Hardware ); 55 m_base->setFlow( IOLayerBase::Hardware );
56 else 56 } else if (rad_flow == 2) {
57 m_base->setFlow( IOLayerBase::Software ); 57 m_base->setFlow( IOLayerBase::Software );
58 } else if (rad_flow == 0) {
59 m_base->setFlow( IOLayerBase::None );
60 }
58 61
59 if (rad_parity == 1) 62 if (rad_parity == 1)
60 m_base->setParity( IOLayerBase::Even ); 63 m_base->setParity( IOLayerBase::Even );
61 else 64 else
62 m_base->setParity( IOLayerBase::Odd ); 65 m_base->setParity( IOLayerBase::Odd );
63 66
64 switch( speed ) { 67 switch( speed ) {
65 case 115200: 68 case 115200:
66 m_base->setSpeed(IOLayerBase::Baud_115200 ); 69 m_base->setSpeed(IOLayerBase::Baud_115200 );
67 break; 70 break;
68 case 57600: 71 case 57600:
69 m_base->setSpeed( IOLayerBase::Baud_57600 ); 72 m_base->setSpeed( IOLayerBase::Baud_57600 );
70 break; 73 break;
71 case 38400: 74 case 38400:
72 m_base->setSpeed(IOLayerBase::Baud_38400 ); 75 m_base->setSpeed(IOLayerBase::Baud_38400 );
73 break; 76 break;
74 case 19200: 77 case 19200:
75 m_base->setSpeed( IOLayerBase::Baud_19200 ); 78 m_base->setSpeed( IOLayerBase::Baud_19200 );
76 break; 79 break;
77 case 9600: 80 case 9600:
78 default: 81 default:
79 m_base->setSpeed(IOLayerBase::Baud_9600 ); 82 m_base->setSpeed(IOLayerBase::Baud_9600 );
80 break; 83 break;
81 } 84 }
82 85
83 if ( prof.readEntry("Device").isEmpty() ) return; 86 if ( prof.readEntry("Device").isEmpty() ) return;
84 setCurrent( prof.readEntry("Device"), m_deviceCmb ); 87 setCurrent( prof.readEntry("Device"), m_deviceCmb );
85 88
86} 89}
87/* 90/*
88 * save speed, 91 * save speed,
89 * flow, 92 * flow,
90 * parity 93 * parity
91 */ 94 */
92void SerialConfigWidget::save( Profile& prof ) { 95void SerialConfigWidget::save( Profile& prof ) {
93 int flow, parity, speed; 96 int flow, parity, speed;
94 prof.writeEntry("Device", m_deviceCmb->currentText() ); 97 prof.writeEntry("Device", m_deviceCmb->currentText() );
95 98
96 switch( m_base->flow() ) { 99 switch( m_base->flow() ) {
100 case IOLayerBase::None:
101 flow = 0;
102 break;
97 case IOLayerBase::Software: 103 case IOLayerBase::Software:
98 flow = 1; 104 flow = 2;
99 break; 105 break;
100 case IOLayerBase::Hardware: 106 case IOLayerBase::Hardware:
101 flow = 0; 107 flow = 1;
102 break; 108 break;
103 } 109 }
104 110
105 switch( m_base->parity() ) { 111 switch( m_base->parity() ) {
106 case IOLayerBase::Odd: 112 case IOLayerBase::Odd:
107 parity = 2; 113 parity = 2;
108 break; 114 break;
109 case IOLayerBase::Even: 115 case IOLayerBase::Even:
110 parity = 1; 116 parity = 1;
111 break; 117 break;
112 } 118 }
113 119
114 switch( m_base->speed() ) { 120 switch( m_base->speed() ) {
115 case IOLayerBase::Baud_115200: 121 case IOLayerBase::Baud_115200:
116 speed = 115200; 122 speed = 115200;
117 break; 123 break;
118 case IOLayerBase::Baud_57600: 124 case IOLayerBase::Baud_57600:
119 speed = 57600; 125 speed = 57600;
120 break; 126 break;
121 case IOLayerBase::Baud_38400: 127 case IOLayerBase::Baud_38400:
122 speed = 38400; 128 speed = 38400;
123 break; 129 break;
124 case IOLayerBase::Baud_19200: 130 case IOLayerBase::Baud_19200:
125 speed = 19200; 131 speed = 19200;
126 break; 132 break;
127 case IOLayerBase::Baud_9600: 133 case IOLayerBase::Baud_9600:
128 speed = 9600; 134 speed = 9600;
129 break; 135 break;
130 } 136 }
131 137
132 prof.writeEntry("Flow", flow); 138 prof.writeEntry("Flow", flow);
133 prof.writeEntry("Parity", parity); 139 prof.writeEntry("Parity", parity);
134 prof.writeEntry("Speed", speed); 140 prof.writeEntry("Speed", speed);
135} 141}
diff --git a/noncore/apps/opie-console/widget_layer.h b/noncore/apps/opie-console/widget_layer.h
index c91a957..6e2e61e 100644
--- a/noncore/apps/opie-console/widget_layer.h
+++ b/noncore/apps/opie-console/widget_layer.h
@@ -1,202 +1,202 @@
1/* -------------------------------------------------------------------------- */ 1/* -------------------------------------------------------------------------- */
2/* */ 2/* */
3/* [widget_layer.h] Widget Layer */ 3/* [widget_layer.h] Widget Layer */
4/* */ 4/* */
5/* -------------------------------------------------------------------------- */ 5/* -------------------------------------------------------------------------- */
6 6
7// proposal of a widget Layer in opie-console 7// proposal of a widget Layer in opie-console
8// 8//
9// fellow devels: 9// fellow devels:
10// just mail me (ibotty@web.de), what you additionally need from the main widget 10// just mail me (ibotty@web.de), what you additionally need from the main widget
11// (or say in chat) 11// (or say in chat)
12 12
13#ifndef WIDGET_LAYER_H 13#ifndef WIDGET_LAYER_H
14#define WIDGET_LAYER_H 14#define WIDGET_LAYER_H
15 15
16// qt includes 16// qt includes
17#include <qapplication.h> 17#include <qapplication.h>
18#include <qframe.h> 18#include <qframe.h>
19#include <qarray.h> 19#include <qarray.h>
20#include <qtimer.h> 20#include <qtimer.h>
21#include <qkeycode.h> 21#include <qkeycode.h>
22#include <qclipboard.h> 22#include <qclipboard.h>
23 23
24 24
25// opie-console includes 25// opie-console includes
26#include "session.h" 26#include "session.h"
27#include "common.h" 27#include "common.h"
28#include "profile.h" 28#include "profile.h"
29/* 29/*
30 * given a pseudo location ( column, line ), 30 * given a pseudo location ( column, line ),
31 * returns the actual index, in the QArray<Character> 31 * returns the actual index, in the QArray<Character>
32 */ 32 */
33#define loc(X,Y) ((Y)*m_columns+(X)) 33#define loc(X,Y) ((Y)*m_columns+(X))
34 34
35 35
36 36
37 37
38class WidgetLayer : public QFrame 38class WidgetLayer : public QFrame
39{ Q_OBJECT 39{ Q_OBJECT
40 40
41public: 41public:
42 42
43 /** 43 /**
44 * constructor 44 * constructor
45 * @param const Profile &config, the configuration for this widget 45 * @param const Profile &config, the configuration for this widget
46 * @param QWidget *parent, the parent widget 46 * @param QWidget *parent, the parent widget
47 * @param const char *name, the name of the widget, defaults to "" 47 * @param const char *name, the name of the widget, defaults to ""
48 */ 48 */
49 WidgetLayer( const Profile& config, QWidget *parent=0, const char *name=0 ); 49 WidgetLayer( const Profile& config, QWidget *parent=0, const char *name=0 );
50 50
51 /** 51 /**
52 * destructor 52 * destructor
53 */ 53 */
54 virtual ~WidgetLayer(); 54 virtual ~WidgetLayer();
55 55
56public: 56public:
57 /** 57 /**
58 * sets the image 58 * sets the image
59 * @param QArray<Character> const newimg, the new image 59 * @param QArray<Character> const newimg, the new image
60 * @param int lines, lines count of newimg 60 * @param int lines, lines count of newimg
61 * @param int columns, columns count of newimg 61 * @param int columns, columns count of newimg
62 */ 62 */
63 virtual void setImage( QArray<Character> const newimg, int lines, int colums ) = 0; 63 virtual void setImage( QArray<Character> const newimg, int lines, int colums ) = 0;
64 64
65 /** 65 /**
66 * annoy the user 66 * annoy the user
67 */ 67 */
68 void bell(); 68 void bell();
69 69
70 /** 70 /**
71 * @return int m_lines, the lines count 71 * @return int m_lines, the lines count
72 */ 72 */
73 int lines(){ return m_lines; } 73 int lines(){ return m_lines; }
74 74
75 /** 75 /**
76 * @return int m_columns, the columns count 76 * @return int m_columns, the columns count
77 */ 77 */
78 int columns(){ return m_columns; } 78 int columns(){ return m_columns; }
79 79
80 /** 80 /**
81 * insert current selection (currently this is only the clipboard) 81 * insert current selection (currently this is only the clipboard)
82 */ 82 */
83 void insertSelection(); 83 void insertSelection();
84 84
85 /** 85 /**
86 * insert text 86 * insert text
87 * @param QString text, the text to be inserted 87 * @param QString text, the text to be inserted
88 */ 88 */
89 void insertText( QString text ); 89 void insertText( QString text );
90 90
91 /** 91 /**
92 * set selection (clipboard) to text 92 * set selection (clipboard) to text
93 * @param const QString &text, the text to be selected 93 * @param const QString &text, the text to be selected
94 */ 94 */
95 void setSelection( const QString &text ); 95 void setSelection( const QString &text );
96 96
97 /** 97 /**
98 * paste content of clipboard 98 * paste content of clipboard
99 */ 99 */
100 void pasteClipboard(); 100 void pasteClipboard();
101 101
102 102
103 /** 103 /**
104 * reload configuration 104 * reload configuration
105 */ 105 */
106 virtual void reloadConfig(); 106 virtual void reloadConfig() = 0;
107 107
108 108
109signals: 109signals:
110 110
111 /** 111 /**
112 * key was pressed 112 * key was pressed
113 */ 113 */
114 void keyPressed( QKeyEvent *e ); 114 void keyPressed( QKeyEvent *e );
115 115
116 /** 116 /**
117 * whenever Mouse selects something 117 * whenever Mouse selects something
118 * @param int button, the button that us pressed : 118 * @param int button, the button that us pressed :
119 * 0left Button 119 * 0left Button
120 * 3Button released 120 * 3Button released
121 * @param int x, x position 121 * @param int x, x position
122 * @param int y, y position 122 * @param int y, y position
123 * 123 *
124 * // numbering due to layout in old TEWidget 124 * // numbering due to layout in old TEWidget
125 */ 125 */
126 void mousePressed( int button, int x, int y ); 126 void mousePressed( int button, int x, int y );
127 127
128 /** 128 /**
129 * size of image changed 129 * size of image changed
130 * @param int lines, line count of new size 130 * @param int lines, line count of new size
131 * @param int columns, column count of new size 131 * @param int columns, column count of new size
132 */ 132 */
133 void imageSizeChanged( int lines, int columns ); 133 void imageSizeChanged( int lines, int columns );
134 134
135 /** 135 /**
136 * cursor in history changed 136 * cursor in history changed
137 * @param int value, value of history cursor 137 * @param int value, value of history cursor
138 */ 138 */
139 void historyCursorChanged( int value ); 139 void historyCursorChanged( int value );
140 140
141 /** 141 /**
142 * selection should be cleared 142 * selection should be cleared
143 */ 143 */
144 void selectionCleared(); 144 void selectionCleared();
145 145
146 /** 146 /**
147 * selection begin 147 * selection begin
148 * @param const int x, x position 148 * @param const int x, x position
149 * @param const int y, y position 149 * @param const int y, y position
150 */ 150 */
151 void selectionBegin( const int x, const int y ); 151 void selectionBegin( const int x, const int y );
152 152
153 /** 153 /**
154 * selection extended 154 * selection extended
155 * (from begin (s.a.) to x, y) 155 * (from begin (s.a.) to x, y)
156 * @param const int x, x position 156 * @param const int x, x position
157 * @param const int y, y position 157 * @param const int y, y position
158 */ 158 */
159 void selectionExtended( const int x, const int y ); 159 void selectionExtended( const int x, const int y );
160 160
161 /** 161 /**
162 * selection end 162 * selection end
163 * @param const bool lineBreakPreserve, preserve line breaks in selection 163 * @param const bool lineBreakPreserve, preserve line breaks in selection
164 */ 164 */
165 void selectionEnd( const bool lineBreakPreserve ); 165 void selectionEnd( const bool lineBreakPreserve );
166 166
167 167
168 168
169// protected methods 169// protected methods
170protected: 170protected:
171 171
172 // image operations 172 // image operations
173 173
174 /** 174 /**
175 * changes image, to suit new size 175 * changes image, to suit new size
176 * TODO: find meaningful name! 176 * TODO: find meaningful name!
177 */ 177 */
178 void propagateSize(); 178 void propagateSize();
179 179
180 /** 180 /**
181 *determines count of lines and columns 181 *determines count of lines and columns
182 */ 182 */
183 virtual void calcGeometry() = 0; 183 virtual void calcGeometry() = 0;
184 184
185 /** 185 /**
186 * makes an empty image 186 * makes an empty image
187 */ 187 */
188 void makeImage(); 188 void makeImage();
189 189
190 /** 190 /**
191 * clears the image 191 * clears the image
192 */ 192 */
193 void clearImage(); 193 void clearImage();
194 194
195protected slots: 195protected slots:
196 196
197 /** 197 /**
198 * clear selection 198 * clear selection
199 */ 199 */
200 void onClearSelection(); 200 void onClearSelection();
201 201
202 202