summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/MyPty.h2
-rw-r--r--noncore/apps/opie-console/default.cpp2
-rw-r--r--noncore/apps/opie-console/io_layer.h2
-rw-r--r--noncore/apps/opie-console/io_serial.cpp8
-rw-r--r--noncore/apps/opie-console/io_serial.h3
-rw-r--r--noncore/apps/opie-console/mainwindow.cpp8
-rw-r--r--noncore/apps/opie-console/session.cpp7
-rw-r--r--noncore/apps/opie-console/session.h2
8 files changed, 19 insertions, 15 deletions
diff --git a/noncore/apps/opie-console/MyPty.h b/noncore/apps/opie-console/MyPty.h
index ad271df..81abad5 100644
--- a/noncore/apps/opie-console/MyPty.h
+++ b/noncore/apps/opie-console/MyPty.h
@@ -35,49 +35,49 @@ class MyPty : public IOLayer
35public: 35public:
36 36
37 MyPty(const Profile&); 37 MyPty(const Profile&);
38 ~MyPty(); 38 ~MyPty();
39 39
40 40
41 41
42 QString identifier()const; 42 QString identifier()const;
43 QString name()const; 43 QString name()const;
44 QBitArray supports()const; 44 QBitArray supports()const;
45 45
46 public slots: 46 public slots:
47 /*! 47 /*!
48 having a `run' separate from the constructor allows to make 48 having a `run' separate from the constructor allows to make
49 the necessary connections to the signals and slots of the 49 the necessary connections to the signals and slots of the
50 instance before starting the execution of the client. 50 instance before starting the execution of the client.
51 */ 51 */
52 void start(); 52 void start();
53 int run(const char* pgm, QStrList & args , const char* term, int addutmp); 53 int run(const char* pgm, QStrList & args , const char* term, int addutmp);
54 bool open(); 54 bool open();
55 void close(); 55 void close();
56 void reload( const Profile& ); 56 void reload( const Profile& );
57 void setSize(int lines, int columns); 57 void setSize(int lines, int columns);
58 void error(); 58 void error();
59 59 bool isConnected() { return true; };
60 signals: 60 signals:
61 61
62 /*! 62 /*!
63 emitted when the client program terminates. 63 emitted when the client program terminates.
64 \param status the wait(2) status code of the terminated client program. 64 \param status the wait(2) status code of the terminated client program.
65 */ 65 */
66 void done(int status); 66 void done(int status);
67 67
68 /*! 68 /*!
69 emitted when a new block of data comes in. 69 emitted when a new block of data comes in.
70 \param s - the data 70 \param s - the data
71 \param len - the length of the block 71 \param len - the length of the block
72 */ 72 */
73 void received(const QByteArray&); 73 void received(const QByteArray&);
74 74
75 public slots: 75 public slots:
76 76
77 void send(const QByteArray& ); 77 void send(const QByteArray& );
78 78
79private: 79private:
80 const char* deviceName(); 80 const char* deviceName();
81 81
82protected slots: 82protected slots:
83 void readPty(); 83 void readPty();
diff --git a/noncore/apps/opie-console/default.cpp b/noncore/apps/opie-console/default.cpp
index 64c9542..8b905e1 100644
--- a/noncore/apps/opie-console/default.cpp
+++ b/noncore/apps/opie-console/default.cpp
@@ -29,49 +29,49 @@ extern "C" {
29 ReceiveLayer* newSZReceive(IOLayer* lay) { 29 ReceiveLayer* newSZReceive(IOLayer* lay) {
30 return new FileReceive( FileReceive::SZ, lay ); 30 return new FileReceive( FileReceive::SZ, lay );
31 } 31 }
32 ReceiveLayer* newSYReceive(IOLayer* lay) { 32 ReceiveLayer* newSYReceive(IOLayer* lay) {
33 return new FileReceive( FileReceive::SY, lay ); 33 return new FileReceive( FileReceive::SY, lay );
34 } 34 }
35 ReceiveLayer* newSXReceive(IOLayer* lay) { 35 ReceiveLayer* newSXReceive(IOLayer* lay) {
36 return new FileReceive(FileReceive::SX, lay ); 36 return new FileReceive(FileReceive::SX, lay );
37 } 37 }
38 38
39 // Layer stuff 39 // Layer stuff
40 IOLayer* newSerialLayer( const Profile& prof) { 40 IOLayer* newSerialLayer( const Profile& prof) {
41 return new IOSerial( prof ); 41 return new IOSerial( prof );
42 } 42 }
43 IOLayer* newBTLayer( const Profile& prof ) { 43 IOLayer* newBTLayer( const Profile& prof ) {
44 return new IOBt( prof ); 44 return new IOBt( prof );
45 } 45 }
46 IOLayer* newIrDaLayer( const Profile& prof ) { 46 IOLayer* newIrDaLayer( const Profile& prof ) {
47 return new IOIrda( prof ); 47 return new IOIrda( prof );
48 } 48 }
49 IOLayer* newModemLayer( const Profile& prof ) { 49 IOLayer* newModemLayer( const Profile& prof ) {
50 return new IOModem( prof ); 50 return new IOModem( prof );
51 } 51 }
52 IOLayer* newConsole( const Profile& prof ) { 52 IOLayer* newConsole( const Profile& prof ) {
53 return new MyPty(prof ); 53 return new MyPty( prof );
54 } 54 }
55 55
56 // Connection Widgets 56 // Connection Widgets
57 ProfileDialogWidget* newSerialWidget( const QString& str, QWidget* wid ) { 57 ProfileDialogWidget* newSerialWidget( const QString& str, QWidget* wid ) {
58 return new SerialConfigWidget( str, wid ); 58 return new SerialConfigWidget( str, wid );
59 } 59 }
60 ProfileDialogWidget* newIrDaWidget( const QString& str, QWidget* wid ) { 60 ProfileDialogWidget* newIrDaWidget( const QString& str, QWidget* wid ) {
61 return new IrdaConfigWidget( str, wid ); 61 return new IrdaConfigWidget( str, wid );
62 } 62 }
63 ProfileDialogWidget* newModemWidget( const QString& str, QWidget* wid ) { 63 ProfileDialogWidget* newModemWidget( const QString& str, QWidget* wid ) {
64 return new ModemConfigWidget(str, wid ); 64 return new ModemConfigWidget(str, wid );
65 } 65 }
66 ProfileDialogWidget* newBTWidget( const QString& str, QWidget* wid ) { 66 ProfileDialogWidget* newBTWidget( const QString& str, QWidget* wid ) {
67 return new BTConfigWidget(str, wid ); 67 return new BTConfigWidget(str, wid );
68 } 68 }
69 ProfileDialogWidget* newConsoleWid( const QString& str, QWidget* wid ) { 69 ProfileDialogWidget* newConsoleWid( const QString& str, QWidget* wid ) {
70 return 0l; 70 return 0l;
71 } 71 }
72 72
73 73
74 // Terminal Widget(s) 74 // Terminal Widget(s)
75 ProfileDialogWidget* newTerminalWidget(const QString& na, QWidget* wid) { 75 ProfileDialogWidget* newTerminalWidget(const QString& na, QWidget* wid) {
76 return new TerminalWidget(na, wid,0 ); 76 return new TerminalWidget(na, wid,0 );
77 } 77 }
diff --git a/noncore/apps/opie-console/io_layer.h b/noncore/apps/opie-console/io_layer.h
index 4977e94..d5f7eab 100644
--- a/noncore/apps/opie-console/io_layer.h
+++ b/noncore/apps/opie-console/io_layer.h
@@ -58,48 +58,50 @@ public:
58 */ 58 */
59 virtual QString name() const = 0; 59 virtual QString name() const = 0;
60 60
61 /** 61 /**
62 * a file descriptor which opens 62 * a file descriptor which opens
63 * the device for io but does not 63 * the device for io but does not
64 * do any ioctling on it... 64 * do any ioctling on it...
65 * and it'll stop listening to the before opened 65 * and it'll stop listening to the before opened
66 * device 66 * device
67 */ 67 */
68 virtual int rawIO()const; 68 virtual int rawIO()const;
69 69
70 /** 70 /**
71 * will close the rawIO stuff 71 * will close the rawIO stuff
72 * and will listen to it's data again... 72 * and will listen to it's data again...
73 */ 73 */
74 virtual void closeRawIO(int); 74 virtual void closeRawIO(int);
75 75
76 /** 76 /**
77 * What does the IOLayer support? 77 * What does the IOLayer support?
78 * Bits are related to features 78 * Bits are related to features
79 */ 79 */
80 virtual QBitArray supports()const = 0; 80 virtual QBitArray supports()const = 0;
81 81
82 virtual bool isConnected() = 0;
83
82signals: 84signals:
83 /** 85 /**
84 * received input as QCString 86 * received input as QCString
85 */ 87 */
86 virtual void received( const QByteArray& ); 88 virtual void received( const QByteArray& );
87 89
88 /** 90 /**
89 * an error occured 91 * an error occured
90 * int for the error number 92 * int for the error number
91 * and QString for a text 93 * and QString for a text
92 */ 94 */
93 virtual void error( int, const QString& ); 95 virtual void error( int, const QString& );
94 96
95 virtual void closed(); 97 virtual void closed();
96public slots: 98public slots:
97 /** 99 /**
98 * send a QCString to the device 100 * send a QCString to the device
99 */ 101 */
100 virtual void send( const QByteArray& ) = 0; 102 virtual void send( const QByteArray& ) = 0;
101 103
102 /** 104 /**
103 * bool open 105 * bool open
104 */ 106 */
105 virtual bool open() = 0; 107 virtual bool open() = 0;
diff --git a/noncore/apps/opie-console/io_serial.cpp b/noncore/apps/opie-console/io_serial.cpp
index c10d5a8..b89a53b 100644
--- a/noncore/apps/opie-console/io_serial.cpp
+++ b/noncore/apps/opie-console/io_serial.cpp
@@ -1,59 +1,62 @@
1#include <fcntl.h> 1#include <fcntl.h>
2#include <termios.h> 2#include <termios.h>
3#include <errno.h> 3#include <errno.h>
4#include <unistd.h> 4#include <unistd.h>
5#include "io_serial.h" 5#include "io_serial.h"
6 6
7IOSerial::IOSerial(const Profile &config) : IOLayer(config) { 7IOSerial::IOSerial(const Profile &config) : IOLayer(config) {
8 m_read = 0l; 8 m_read = 0l;
9 m_error = 0l; 9 m_error = 0l;
10 m_fd = 0; 10 m_fd = 0;
11 m_connected = false;
11 reload(config); 12 reload(config);
12} 13}
13 14
14 15
15IOSerial::~IOSerial() { 16IOSerial::~IOSerial() {
16 if (m_fd) { 17 if (m_fd) {
17 close(); 18 close();
18 } 19 }
19} 20}
20 21
21void IOSerial::send(const QByteArray &data) { 22void IOSerial::send(const QByteArray &data) {
22 if (m_fd) { 23 if (m_fd) {
23 write(m_fd, data.data(), data.size()); 24 write(m_fd, data.data(), data.size());
24 } else { 25 } else {
25 emit error(Refuse, tr("Not connected")); 26 emit error(Refuse, tr("Not connected"));
26 } 27 }
27} 28}
28 29
29void IOSerial::close() { 30void IOSerial::close() {
30 if (m_fd) { 31 if (m_fd) {
31 delete m_read; 32 delete m_read;
32 delete m_error; 33 delete m_error;
33 ::close(m_fd); 34 ::close(m_fd);
34 m_fd = 0; 35 m_fd = 0;
36 m_connected = false;
35 } else { 37 } else {
38 m_connected = false;
36 emit error(Refuse, tr("Not connected")); 39 emit error(Refuse, tr("Not connected"));
37 } 40 }
38} 41}
39 42
40bool IOSerial::open() { 43bool IOSerial::open() {
41 if (!m_fd) { 44 if (!m_fd) {
42 struct termios tty; 45 struct termios tty;
43 m_fd = ::open(m_device, O_RDWR | O_NOCTTY | O_NONBLOCK); 46 m_fd = ::open(m_device, O_RDWR | O_NOCTTY | O_NONBLOCK);
44 if (m_fd < 0) { 47 if (m_fd < 0) {
45 emit error(CouldNotOpen, strerror(errno)); 48 emit error(CouldNotOpen, strerror(errno));
46 return FALSE; 49 return FALSE;
47 } 50 }
48 tcgetattr(m_fd, &tty); 51 tcgetattr(m_fd, &tty);
49 52
50 /* Baud rate */ 53 /* Baud rate */
51 int speed = baud(m_baud); 54 int speed = baud(m_baud);
52 if (speed == -1) { 55 if (speed == -1) {
53 emit error(Refuse, tr("Invalid baud rate")); 56 emit error(Refuse, tr("Invalid baud rate"));
54 } 57 }
55 cfsetospeed(&tty, speed); 58 cfsetospeed(&tty, speed);
56 cfsetispeed(&tty, speed); 59 cfsetispeed(&tty, speed);
57 60
58 /* Take care of Space / Mark parity */ 61 /* Take care of Space / Mark parity */
59 if (m_dbits == 7 && (m_parity == ParitySpace || m_parity == ParityMark)) { 62 if (m_dbits == 7 && (m_parity == ParitySpace || m_parity == ParityMark)) {
@@ -90,48 +93,49 @@ bool IOSerial::open() {
90 tty.c_iflag |= IXON | IXOFF; 93 tty.c_iflag |= IXON | IXOFF;
91 else 94 else
92 tty.c_iflag &= ~(IXON|IXOFF|IXANY); 95 tty.c_iflag &= ~(IXON|IXOFF|IXANY);
93 96
94 if (m_flow & FlowHW) 97 if (m_flow & FlowHW)
95 tty.c_cflag |= CRTSCTS; 98 tty.c_cflag |= CRTSCTS;
96 else 99 else
97 tty.c_cflag &= ~CRTSCTS; 100 tty.c_cflag &= ~CRTSCTS;
98 101
99 /* Parity */ 102 /* Parity */
100 tty.c_cflag &= ~(PARENB | PARODD); 103 tty.c_cflag &= ~(PARENB | PARODD);
101 if (m_parity & ParityEven) 104 if (m_parity & ParityEven)
102 tty.c_cflag |= PARENB; 105 tty.c_cflag |= PARENB;
103 else if (m_parity & ParityOdd) 106 else if (m_parity & ParityOdd)
104 tty.c_cflag |= (PARENB | PARODD); 107 tty.c_cflag |= (PARENB | PARODD);
105 108
106 /* Set the changes */ 109 /* Set the changes */
107 tcsetattr(m_fd, TCSANOW, &tty); 110 tcsetattr(m_fd, TCSANOW, &tty);
108 111
109 /* Notifications on read & errors */ 112 /* Notifications on read & errors */
110 m_read = new QSocketNotifier(m_fd, QSocketNotifier::Read, this); 113 m_read = new QSocketNotifier(m_fd, QSocketNotifier::Read, this);
111 m_error = new QSocketNotifier(m_fd, QSocketNotifier::Exception, this); 114 m_error = new QSocketNotifier(m_fd, QSocketNotifier::Exception, this);
112 connect(m_read, SIGNAL(activated(int)), this, SLOT(dataArrived())); 115 connect(m_read, SIGNAL(activated(int)), this, SLOT(dataArrived()));
113 connect(m_error, SIGNAL(activated(int)), this, SLOT(errorOccured())); 116 connect(m_error, SIGNAL(activated(int)), this, SLOT(errorOccured()));
117 m_connected = false;
114 return TRUE; 118 return TRUE;
115 } else { 119 } else {
116 emit error(Refuse, tr("Device is already connected")); 120 emit error(Refuse, tr("Device is already connected"));
117 m_fd = 0; 121 m_fd = 0;
118 return FALSE; 122 return FALSE;
119 } 123 }
120} 124}
121 125
122void IOSerial::reload(const Profile &config) { 126void IOSerial::reload(const Profile &config) {
123 m_device = config.readEntry("Device", SERIAL_DEFAULT_DEVICE); 127 m_device = config.readEntry("Device", SERIAL_DEFAULT_DEVICE);
124 m_baud = config.readNumEntry("Speed", SERIAL_DEFAULT_BAUD); 128 m_baud = config.readNumEntry("Speed", SERIAL_DEFAULT_BAUD);
125 m_parity = config.readNumEntry("Parity", SERIAL_DEFAULT_PARITY); 129 m_parity = config.readNumEntry("Parity", SERIAL_DEFAULT_PARITY);
126 m_dbits = config.readNumEntry("DataBits", SERIAL_DEFAULT_DBITS); 130 m_dbits = config.readNumEntry("DataBits", SERIAL_DEFAULT_DBITS);
127 m_sbits = config.readNumEntry("StopBits", SERIAL_DEFAULT_SBITS); 131 m_sbits = config.readNumEntry("StopBits", SERIAL_DEFAULT_SBITS);
128 m_flow = config.readNumEntry("Flow", SERIAL_DEFAULT_FLOW); 132 m_flow = config.readNumEntry("Flow", SERIAL_DEFAULT_FLOW);
129 133
130} 134}
131 135
132int IOSerial::baud(int baud) const { 136int IOSerial::baud(int baud) const {
133 switch (baud) { 137 switch (baud) {
134 case 300: return B300; break; 138 case 300: return B300; break;
135 case 600: return B600; break; 139 case 600: return B600; break;
136 case 1200: return B1200; break; 140 case 1200: return B1200; break;
137 case 2400: return B2400; break; 141 case 2400: return B2400; break;
@@ -173,24 +177,28 @@ int IOSerial::rawIO()const {
173 if (m_read ) 177 if (m_read )
174 disconnect(m_read, SIGNAL(activated(int)), this, SLOT(dataArrived())); 178 disconnect(m_read, SIGNAL(activated(int)), this, SLOT(dataArrived()));
175 if (m_error ) 179 if (m_error )
176 disconnect(m_error, SIGNAL(activated(int)), this, SLOT(errorOccured())); 180 disconnect(m_error, SIGNAL(activated(int)), this, SLOT(errorOccured()));
177 181
178 int fd = ::open(m_device, O_RDWR ); 182 int fd = ::open(m_device, O_RDWR );
179 183
180 return fd; 184 return fd;
181}; 185};
182void IOSerial::closeRawIO(int fd) { 186void IOSerial::closeRawIO(int fd) {
183 if (m_read ) 187 if (m_read )
184 connect(m_read, SIGNAL(activated(int)), this, SLOT(dataArrived())); 188 connect(m_read, SIGNAL(activated(int)), this, SLOT(dataArrived()));
185 if (m_error ) 189 if (m_error )
186 connect(m_error, SIGNAL(activated(int)), this, SLOT(errorOccured())); 190 connect(m_error, SIGNAL(activated(int)), this, SLOT(errorOccured()));
187 191
188 ::close( fd ); 192 ::close( fd );
189} 193}
190QBitArray IOSerial::supports()const { 194QBitArray IOSerial::supports()const {
191 QBitArray ar(3); 195 QBitArray ar(3);
192 ar[0] = ar[2] = 0; 196 ar[0] = ar[2] = 0;
193 ar[1] = 1; 197 ar[1] = 1;
194 198
195 return ar; 199 return ar;
196} 200}
201
202bool IOSerial::isConnected() {
203 return m_connected;
204}
diff --git a/noncore/apps/opie-console/io_serial.h b/noncore/apps/opie-console/io_serial.h
index b1d1be1..7a1ea1d 100644
--- a/noncore/apps/opie-console/io_serial.h
+++ b/noncore/apps/opie-console/io_serial.h
@@ -17,51 +17,54 @@
17class IOSerial : public IOLayer { 17class IOSerial : public IOLayer {
18 Q_OBJECT 18 Q_OBJECT
19public: 19public:
20 enum Parity { 20 enum Parity {
21 ParityNone = 0, 21 ParityNone = 0,
22 ParityEven, 22 ParityEven,
23 ParityOdd, 23 ParityOdd,
24 ParitySpace, 24 ParitySpace,
25 ParityMark 25 ParityMark
26 }; 26 };
27 27
28 enum Flow { 28 enum Flow {
29 FlowHW = 0x01, 29 FlowHW = 0x01,
30 FlowSW = 0x02 30 FlowSW = 0x02
31 }; 31 };
32 32
33 IOSerial(const Profile &); 33 IOSerial(const Profile &);
34 ~IOSerial(); 34 ~IOSerial();
35 35
36 QString identifier() const; 36 QString identifier() const;
37 QString name() const; 37 QString name() const;
38 int rawIO()const; 38 int rawIO()const;
39 void closeRawIO(int fd ); 39 void closeRawIO(int fd );
40 QBitArray supports()const; 40 QBitArray supports()const;
41 bool isConnected();
41/*signals: 42/*signals:
42 void received(const QByteArray &); 43 void received(const QByteArray &);
43 void error(int, const QString &); 44 void error(int, const QString &);
44*/ 45*/
45public slots: 46public slots:
46 void send(const QByteArray &); 47 void send(const QByteArray &);
47 bool open(); 48 bool open();
48 void close(); 49 void close();
49 void reload(const Profile &); 50 void reload(const Profile &);
50protected: 51protected:
51 int baud(int baud) const; 52 int baud(int baud) const;
52protected slots: 53protected slots:
53 void dataArrived(); 54 void dataArrived();
54 void errorOccured(); 55 void errorOccured();
55protected: 56protected:
56 QSocketNotifier *m_read; 57 QSocketNotifier *m_read;
57 QSocketNotifier *m_error; 58 QSocketNotifier *m_error;
58 QString m_device; 59 QString m_device;
59 int m_baud; 60 int m_baud;
60 int m_parity; 61 int m_parity;
61 int m_dbits; 62 int m_dbits;
62 int m_sbits; 63 int m_sbits;
63 int m_flow; 64 int m_flow;
64 int m_fd; 65 int m_fd;
66 bool m_connected;
67
65}; 68};
66 69
67#endif /* OPIE_IO_SERIAL */ 70#endif /* OPIE_IO_SERIAL */
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp
index d3b6c8a..4326609 100644
--- a/noncore/apps/opie-console/mainwindow.cpp
+++ b/noncore/apps/opie-console/mainwindow.cpp
@@ -184,49 +184,49 @@ void MainWindow::initUI() {
184 this, SLOT(slotOpenKeb(bool))); 184 this, SLOT(slotOpenKeb(bool)));
185 m_openKeys->addTo(m_icons); 185 m_openKeys->addTo(m_icons);
186 186
187 187
188 /* insert the submenu */ 188 /* insert the submenu */
189 m_console->insertItem(tr("New from Profile"), m_sessionsPop, 189 m_console->insertItem(tr("New from Profile"), m_sessionsPop,
190 -1, 0); 190 -1, 0);
191 191
192 /* insert the connection menu */ 192 /* insert the connection menu */
193 m_bar->insertItem( tr("Connection"), m_console ); 193 m_bar->insertItem( tr("Connection"), m_console );
194 194
195 /* the scripts menu */ 195 /* the scripts menu */
196 m_bar->insertItem( tr("Scripts"), m_scripts ); 196 m_bar->insertItem( tr("Scripts"), m_scripts );
197 197
198 /* the settings menu */ 198 /* the settings menu */
199 m_bar->insertItem( tr("Settings"), m_settings ); 199 m_bar->insertItem( tr("Settings"), m_settings );
200 200
201 /* and the keyboard */ 201 /* and the keyboard */
202 m_keyBar = new QToolBar(this); 202 m_keyBar = new QToolBar(this);
203 addToolBar( m_keyBar, "Keyboard", QMainWindow::Top, TRUE ); 203 addToolBar( m_keyBar, "Keyboard", QMainWindow::Top, TRUE );
204 m_keyBar->setHorizontalStretchable( TRUE ); 204 m_keyBar->setHorizontalStretchable( TRUE );
205 m_keyBar->hide(); 205 m_keyBar->hide();
206 206
207 m_kb = new FunctionKeyboard(m_keyBar); 207 m_kb = new FunctionKeyboard(m_keyBar);
208 connect(m_kb, SIGNAL(keyPressed(ushort, ushort, bool, bool, bool)), 208 connect(m_kb, SIGNAL(keyPressed(ushort, ushort, bool, bool, bool)),
209 this, SLOT(slotKeyReceived(ushort, ushort, bool, bool, bool))); 209 this, SLOT(slotKeyReceived(ushort, ushort, bool, bool, bool)));
210 210
211 211
212 212
213 m_connect->setEnabled( false ); 213 m_connect->setEnabled( false );
214 m_disconnect->setEnabled( false ); 214 m_disconnect->setEnabled( false );
215 m_terminate->setEnabled( false ); 215 m_terminate->setEnabled( false );
216 m_transfer->setEnabled( false ); 216 m_transfer->setEnabled( false );
217 m_recordScript->setEnabled( false ); 217 m_recordScript->setEnabled( false );
218 m_saveScript->setEnabled( false ); 218 m_saveScript->setEnabled( false );
219 m_runScript->setEnabled( false ); 219 m_runScript->setEnabled( false );
220 m_fullscreen->setEnabled( false ); 220 m_fullscreen->setEnabled( false );
221 m_closewindow->setEnabled( false ); 221 m_closewindow->setEnabled( false );
222 222
223 /* 223 /*
224 * connect to the menu activation 224 * connect to the menu activation
225 */ 225 */
226 connect( m_sessionsPop, SIGNAL(activated( int ) ), 226 connect( m_sessionsPop, SIGNAL(activated( int ) ),
227 this, SLOT(slotProfile( int ) ) ); 227 this, SLOT(slotProfile( int ) ) );
228 228
229 m_consoleWindow = new TabWidget( this, "blah"); 229 m_consoleWindow = new TabWidget( this, "blah");
230 connect(m_consoleWindow, SIGNAL(activated(Session*) ), 230 connect(m_consoleWindow, SIGNAL(activated(Session*) ),
231 this, SLOT(slotSessionChanged(Session*) ) ); 231 this, SLOT(slotSessionChanged(Session*) ) );
232 setCentralWidget( m_consoleWindow ); 232 setCentralWidget( m_consoleWindow );
@@ -418,77 +418,77 @@ void MainWindow::create( const Profile& prof ) {
418 m_fullscreen->setEnabled( true ); 418 m_fullscreen->setEnabled( true );
419 m_closewindow->setEnabled( true ); 419 m_closewindow->setEnabled( true );
420} 420}
421 421
422void MainWindow::slotTransfer() 422void MainWindow::slotTransfer()
423{ 423{
424 if ( currentSession() ) { 424 if ( currentSession() ) {
425 TransferDialog dlg(this); 425 TransferDialog dlg(this);
426 dlg.showMaximized(); 426 dlg.showMaximized();
427 dlg.exec(); 427 dlg.exec();
428 } 428 }
429} 429}
430 430
431 431
432void MainWindow::slotOpenKeb(bool state) { 432void MainWindow::slotOpenKeb(bool state) {
433 433
434 if (state) m_keyBar->show(); 434 if (state) m_keyBar->show();
435 else m_keyBar->hide(); 435 else m_keyBar->hide();
436 436
437} 437}
438void MainWindow::slotSessionChanged( Session* ses ) { 438void MainWindow::slotSessionChanged( Session* ses ) {
439 qWarning("changed!"); 439 qWarning("changed!");
440 if ( ses ) { 440 if ( ses ) {
441 m_curSession = ses; 441 m_curSession = ses;
442 442 qDebug(QString("is connected : %1").arg( m_curSession->layer()->isConnected() ) );
443 if ( m_curSession->isConnected() ) { 443 if ( m_curSession->layer()->isConnected() ) {
444 m_connect->setEnabled( false ); 444 m_connect->setEnabled( false );
445 m_disconnect->setEnabled( true ); 445 m_disconnect->setEnabled( true );
446 } else { 446 } else {
447 m_connect->setEnabled( true ); 447 m_connect->setEnabled( true );
448 m_disconnect->setEnabled( false ); 448 m_disconnect->setEnabled( false );
449 } 449 }
450 } 450 }
451} 451}
452 452
453void MainWindow::slotFullscreen() { 453void MainWindow::slotFullscreen() {
454 454
455 if ( m_isFullscreen ) { 455 if ( m_isFullscreen ) {
456 ( m_curSession->widgetStack() )->reparent( m_consoleWindow, 0, QPoint(0,0), false ); 456 ( m_curSession->widgetStack() )->reparent( m_consoleWindow, 0, QPoint(0,0), false );
457 ( m_curSession->widgetStack() )->setFrameStyle( QFrame::Panel | QFrame::Sunken ); 457 ( m_curSession->widgetStack() )->setFrameStyle( QFrame::Panel | QFrame::Sunken );
458 setCentralWidget( m_consoleWindow ); 458 setCentralWidget( m_consoleWindow );
459 ( m_curSession->widgetStack() )->show(); 459 ( m_curSession->widgetStack() )->show();
460 m_fullscreen->setText( tr("Full screen") ); 460 m_fullscreen->setText( tr("Full screen") );
461 461
462 } else { 462 } else {
463 ( m_curSession->widgetStack() )->setFrameStyle( QFrame::NoFrame ); 463 ( m_curSession->widgetStack() )->setFrameStyle( QFrame::NoFrame );
464 ( m_curSession->widgetStack() )->reparent( 0,WStyle_Tool | WStyle_Customize | WStyle_StaysOnTop, 464 ( m_curSession->widgetStack() )->reparent( 0,WStyle_Tool | WStyle_Customize | WStyle_StaysOnTop,
465 QPoint(0,0), false); 465 QPoint(0,0), false);
466 ( m_curSession->widgetStack() )->resize(qApp->desktop()->width(), qApp->desktop()->height()); 466 ( m_curSession->widgetStack() )->resize(qApp->desktop()->width(), qApp->desktop()->height());
467 ( m_curSession->widgetStack() )->setFocus(); 467 ( m_curSession->widgetStack() )->setFocus();
468 ( m_curSession->widgetStack() )->show(); 468 ( m_curSession->widgetStack() )->show();
469 469
470 //QPushButton *cornerButton = new QPushButton( ); 470 //QPushButton *cornerButton = new QPushButton( );
471 //cornerButton->setPixmap( QPixmap( (const char**)menu_xpm ) ); 471 //cornerButton->setPixmap( QPixmap( (const char**)menu_xpm ) );
472 //connect( cornerButton, SIGNAL( pressed() ), this, SLOT( slotFullscreen() ) ); 472 //connect( cornerButton, SIGNAL( pressed() ), this, SLOT( slotFullscreen() ) );
473 // need teh scrollbar 473 // need teh scrollbar
474 // ( m_curSession->widgetStack() )->setCornerWidget( cornerButton ); 474 // ( m_curSession->widgetStack() )->setCornerWidget( cornerButton );
475 m_fullscreen->setText( tr("Stop full screen") ); 475 m_fullscreen->setText( tr("Stop full screen") );
476 } 476 }
477 477
478 m_isFullscreen = !m_isFullscreen; 478 m_isFullscreen = !m_isFullscreen;
479 479
480} 480}
481 481
482 482
483void MainWindow::slotKeyReceived(ushort u, ushort q, bool, bool, bool) { 483void MainWindow::slotKeyReceived(ushort u, ushort q, bool, bool, bool) {
484 484
485 qWarning("received key event! relay to TE widget"); 485 qWarning("received key event! relay to TE widget");
486 486
487 if ( m_curSession ) { 487 if ( m_curSession ) {
488 QKeyEvent ke(QEvent::KeyPress, q, u, 0); 488 QKeyEvent ke(QEvent::KeyPress, q, u, 0);
489 489
490 ke.ignore(); 490 ke.ignore();
491 // where should i send this event? doesnt work sending it here 491 // where should i send this event? doesnt work sending it here
492 QApplication::sendEvent((QObject *)m_curSession->widgetStack(), &ke); 492 QApplication::sendEvent((QObject *)m_curSession->widgetStack(), &ke);
493 } 493 }
494} 494}
diff --git a/noncore/apps/opie-console/session.cpp b/noncore/apps/opie-console/session.cpp
index aad100d..2ce6872 100644
--- a/noncore/apps/opie-console/session.cpp
+++ b/noncore/apps/opie-console/session.cpp
@@ -30,76 +30,69 @@ QString Session::name()const {
30QWidgetStack* Session::widgetStack() { 30QWidgetStack* Session::widgetStack() {
31 return m_widget; 31 return m_widget;
32} 32}
33IOLayer* Session::layer() { 33IOLayer* Session::layer() {
34 return m_layer; 34 return m_layer;
35} 35}
36EmulationHandler* Session::emulationHandler() { 36EmulationHandler* Session::emulationHandler() {
37 return m_emu; 37 return m_emu;
38} 38}
39QWidget* Session::widget() { 39QWidget* Session::widget() {
40 if (!m_emu ) 40 if (!m_emu )
41 return 0l; 41 return 0l;
42 42
43 return m_emu->widget(); 43 return m_emu->widget();
44} 44}
45/* 45/*
46WidgetLayer* Session::emulationWidget() { 46WidgetLayer* Session::emulationWidget() {
47 return m_widLay; 47 return m_widLay;
48} 48}
49*/ 49*/
50void Session::connect() { 50void Session::connect() {
51 if ( !m_layer || !m_emu ) 51 if ( !m_layer || !m_emu )
52 return; 52 return;
53 53
54 m_connected = true;
55
56 QObject::connect(m_layer, SIGNAL(received(const QByteArray&) ), 54 QObject::connect(m_layer, SIGNAL(received(const QByteArray&) ),
57 m_emu, SLOT(recv(const QByteArray&) ) ); 55 m_emu, SLOT(recv(const QByteArray&) ) );
58 QObject::connect(m_emu, SIGNAL(send(const QByteArray&) ), 56 QObject::connect(m_emu, SIGNAL(send(const QByteArray&) ),
59 m_layer, SLOT(send(const QByteArray&) ) ); 57 m_layer, SLOT(send(const QByteArray&) ) );
60} 58}
61 59
62void Session::disconnect() { 60void Session::disconnect() {
63 61
64 if ( !m_layer || !m_emu ) 62 if ( !m_layer || !m_emu )
65 return; 63 return;
66 64
67 m_connected = false;
68
69 QObject::disconnect(m_layer, SIGNAL(received(const QByteArray&) ), 65 QObject::disconnect(m_layer, SIGNAL(received(const QByteArray&) ),
70 m_emu, SLOT(recv(const QByteArray&) ) ); 66 m_emu, SLOT(recv(const QByteArray&) ) );
71 QObject::disconnect(m_emu, SIGNAL(send(const QByteArray&) ), 67 QObject::disconnect(m_emu, SIGNAL(send(const QByteArray&) ),
72 m_layer, SLOT(send(const QByteArray&) ) ); 68 m_layer, SLOT(send(const QByteArray&) ) );
73} 69}
74 70
75void Session::setName( const QString& na){ 71void Session::setName( const QString& na){
76 m_name = na; 72 m_name = na;
77} 73}
78 74
79void Session::setWidgetStack( QWidgetStack* wid ) { 75void Session::setWidgetStack( QWidgetStack* wid ) {
80 delete m_emu; 76 delete m_emu;
81 m_emu = 0l; 77 m_emu = 0l;
82 delete m_widget; 78 delete m_widget;
83 /* the EmulationLayer was destroyed... */ 79 /* the EmulationLayer was destroyed... */
84 80
85 m_widget = wid; 81 m_widget = wid;
86} 82}
87void Session::setIOLayer( IOLayer* lay ) { 83void Session::setIOLayer( IOLayer* lay ) {
88 delete m_layer; 84 delete m_layer;
89 m_layer = lay; 85 m_layer = lay;
90} 86}
91 87
92void Session::setEmulationHandler( EmulationHandler* lay ) { 88void Session::setEmulationHandler( EmulationHandler* lay ) {
93 delete m_emu; 89 delete m_emu;
94 m_emu = lay; 90 m_emu = lay;
95} 91}
96/* 92/*
97void Session::setEmulationWidget( WidgetLayer* lay ) { 93void Session::setEmulationWidget( WidgetLayer* lay ) {
98 delete m_widLay; 94 delete m_widLay;
99 m_widLay = lay; 95 m_widLay = lay;
100} 96}
101*/ 97*/
102 98
103bool Session::isConnected() {
104 return m_connected;
105}
diff --git a/noncore/apps/opie-console/session.h b/noncore/apps/opie-console/session.h
index ff92df3..83b2046 100644
--- a/noncore/apps/opie-console/session.h
+++ b/noncore/apps/opie-console/session.h
@@ -39,36 +39,34 @@ public:
39 /** 39 /**
40 * return the layer 40 * return the layer
41 */ 41 */
42 IOLayer* layer(); 42 IOLayer* layer();
43 43
44 EmulationHandler* emulationHandler(); 44 EmulationHandler* emulationHandler();
45 45
46 /* 46 /*
47 * connects the data flow from 47 * connects the data flow from
48 * the IOLayer to the EmulationLayer 48 * the IOLayer to the EmulationLayer
49 */ 49 */
50 void connect(); 50 void connect();
51 51
52 /* 52 /*
53 * disconnect the dataflow 53 * disconnect the dataflow
54 * this will be done for ft 54 * this will be done for ft
55 */ 55 */
56 void disconnect(); 56 void disconnect();
57 57
58 void setWidgetStack( QWidgetStack* widget ); 58 void setWidgetStack( QWidgetStack* widget );
59 void setEmulationHandler( EmulationHandler* lay ); 59 void setEmulationHandler( EmulationHandler* lay );
60 void setIOLayer( IOLayer* ); 60 void setIOLayer( IOLayer* );
61 void setName( const QString& ); 61 void setName( const QString& );
62 62
63 bool isConnected();
64
65private: 63private:
66 QString m_name; 64 QString m_name;
67 QWidgetStack* m_widget; 65 QWidgetStack* m_widget;
68 IOLayer* m_layer; 66 IOLayer* m_layer;
69 EmulationHandler* m_emu; 67 EmulationHandler* m_emu;
70 bool m_connected; 68 bool m_connected;
71 69
72}; 70};
73 71
74#endif 72#endif