summaryrefslogtreecommitdiff
authorzecke <zecke>2002-10-20 13:52:13 (UTC)
committer zecke <zecke>2002-10-20 13:52:13 (UTC)
commit89ed0106d3de43c0f39250524bc80de00f2b596c (patch) (unidiff)
tree4354cc80f93f1a76caea30c350e4fc3350c32726
parent4b27ac49b4027ffd59d2606f1aceea313446aede (diff)
downloadopie-89ed0106d3de43c0f39250524bc80de00f2b596c.zip
opie-89ed0106d3de43c0f39250524bc80de00f2b596c.tar.gz
opie-89ed0106d3de43c0f39250524bc80de00f2b596c.tar.bz2
Enable setSize SIGNAL/SLOT conenction in session
Add some separators to m_console of mainwindow
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/MyPty.cpp1
-rw-r--r--noncore/apps/opie-console/TEmulation.cpp1
-rw-r--r--noncore/apps/opie-console/io_layer.h2
-rw-r--r--noncore/apps/opie-console/mainwindow.cpp5
-rw-r--r--noncore/apps/opie-console/session.cpp2
5 files changed, 9 insertions, 2 deletions
diff --git a/noncore/apps/opie-console/MyPty.cpp b/noncore/apps/opie-console/MyPty.cpp
index a2373bf..6b0d6f2 100644
--- a/noncore/apps/opie-console/MyPty.cpp
+++ b/noncore/apps/opie-console/MyPty.cpp
@@ -53,96 +53,97 @@
53 pairs of devices (/dev/ptyXX and /dev/ttyXX), which are connected to each 53 pairs of devices (/dev/ptyXX and /dev/ttyXX), which are connected to each
54 other by the operating system. One may think of them as two serial devices 54 other by the operating system. One may think of them as two serial devices
55 linked by a null-modem cable. Being based on devices the number of 55 linked by a null-modem cable. Being based on devices the number of
56 simultanous instances of this class is (globally) limited by the number of 56 simultanous instances of this class is (globally) limited by the number of
57 those device pairs, which is 256. 57 those device pairs, which is 256.
58 58
59 Another technic are UNIX 98 PTY's. These are supported also, and prefered 59 Another technic are UNIX 98 PTY's. These are supported also, and prefered
60 over the (obsolete) predecessor. 60 over the (obsolete) predecessor.
61 61
62 There's a sinister ioctl(2), signal(2) and job control stuff 62 There's a sinister ioctl(2), signal(2) and job control stuff
63 nessesary to make everything work as it should. 63 nessesary to make everything work as it should.
64*/ 64*/
65 65
66 66
67#include <qapplication.h> 67#include <qapplication.h>
68#include <qsocketnotifier.h> 68#include <qsocketnotifier.h>
69#include <qstring.h> 69#include <qstring.h>
70 70
71#include <stdlib.h> 71#include <stdlib.h>
72#include <stdio.h> 72#include <stdio.h>
73#include <signal.h> 73#include <signal.h>
74#include <fcntl.h> 74#include <fcntl.h>
75#include <unistd.h> 75#include <unistd.h>
76#include <termios.h> 76#include <termios.h>
77#include <sys/types.h> 77#include <sys/types.h>
78#include <sys/ioctl.h> 78#include <sys/ioctl.h>
79#include <sys/wait.h> 79#include <sys/wait.h>
80 80
81#ifdef HAVE_OPENPTY 81#ifdef HAVE_OPENPTY
82#include <pty.h> 82#include <pty.h>
83#endif 83#endif
84 84
85#include "procctl.h" 85#include "procctl.h"
86#include "MyPty.h" 86#include "MyPty.h"
87 87
88 88
89#undef VERBOSE_DEBUG 89#undef VERBOSE_DEBUG
90 90
91 91
92/* -------------------------------------------------------------------------- */ 92/* -------------------------------------------------------------------------- */
93 93
94/*! 94/*!
95 Informs the client program about the 95 Informs the client program about the
96 actual size of the window. 96 actual size of the window.
97*/ 97*/
98 98
99void MyPty::setSize(int lines, int columns) 99void MyPty::setSize(int lines, int columns)
100{ 100{
101 qWarning("setting size");
101 struct winsize wsize; 102 struct winsize wsize;
102 wsize.ws_row = (unsigned short)lines; 103 wsize.ws_row = (unsigned short)lines;
103 wsize.ws_col = (unsigned short)columns; 104 wsize.ws_col = (unsigned short)columns;
104 if(m_fd < 0) return; 105 if(m_fd < 0) return;
105 ioctl(m_fd,TIOCSWINSZ,(char *)&wsize); 106 ioctl(m_fd,TIOCSWINSZ,(char *)&wsize);
106} 107}
107 108
108 109
109void MyPty::donePty() 110void MyPty::donePty()
110{ 111{
111 // This is code from the Qt DumbTerminal example 112 // This is code from the Qt DumbTerminal example
112 int status = 0; 113 int status = 0;
113 114
114 ::close(m_fd); 115 ::close(m_fd);
115 116
116 if (m_cpid) { 117 if (m_cpid) {
117 kill(m_cpid, SIGHUP); 118 kill(m_cpid, SIGHUP);
118 //waitpid(m_cpid, &status, 0); 119 //waitpid(m_cpid, &status, 0);
119 delete m_sn_e; 120 delete m_sn_e;
120 delete m_sn_r; 121 delete m_sn_r;
121 m_sn_e = 0l; 122 m_sn_e = 0l;
122 m_sn_r = 0l; 123 m_sn_r = 0l;
123 } 124 }
124 125
125 m_cpid = 0; 126 m_cpid = 0;
126 m_fd = -1; 127 m_fd = -1;
127// emit done(status); 128// emit done(status);
128} 129}
129 130
130 131
131const char* MyPty::deviceName() 132const char* MyPty::deviceName()
132{ 133{
133 return m_ttynam; 134 return m_ttynam;
134} 135}
135 136
136 137
137void MyPty::error() 138void MyPty::error()
138{ 139{
139 // This is code from the Qt DumbTerminal example 140 // This is code from the Qt DumbTerminal example
140 donePty(); 141 donePty();
141} 142}
142 143
143void MyPty::start() { 144void MyPty::start() {
144 char* cmd = "/bin/sh"; 145 char* cmd = "/bin/sh";
145 QStrList lis; 146 QStrList lis;
146 int r =run(cmd, lis, 0, 0); 147 int r =run(cmd, lis, 0, 0);
147 r = r; 148 r = r;
148} 149}
diff --git a/noncore/apps/opie-console/TEmulation.cpp b/noncore/apps/opie-console/TEmulation.cpp
index 6f3ad32..7a0c624 100644
--- a/noncore/apps/opie-console/TEmulation.cpp
+++ b/noncore/apps/opie-console/TEmulation.cpp
@@ -162,96 +162,97 @@ void TEmulation::setKeytrans(int no)
162{ 162{
163 keytrans = KeyTrans::find(no); 163 keytrans = KeyTrans::find(no);
164} 164}
165 165
166void TEmulation::setKeytrans(const char * no) 166void TEmulation::setKeytrans(const char * no)
167{ 167{
168 keytrans = KeyTrans::find(no); 168 keytrans = KeyTrans::find(no);
169} 169}
170 170
171// Interpreting Codes --------------------------------------------------------- 171// Interpreting Codes ---------------------------------------------------------
172 172
173/* 173/*
174 This section deals with decoding the incoming character stream. 174 This section deals with decoding the incoming character stream.
175 Decoding means here, that the stream is first seperated into `tokens' 175 Decoding means here, that the stream is first seperated into `tokens'
176 which are then mapped to a `meaning' provided as operations by the 176 which are then mapped to a `meaning' provided as operations by the
177 `Screen' class. 177 `Screen' class.
178*/ 178*/
179 179
180/*! 180/*!
181*/ 181*/
182 182
183void TEmulation::onRcvChar(int c) 183void TEmulation::onRcvChar(int c)
184// process application unicode input to terminal 184// process application unicode input to terminal
185// this is a trivial scanner 185// this is a trivial scanner
186{ 186{
187 c &= 0xff; 187 c &= 0xff;
188 switch (c) 188 switch (c)
189 { 189 {
190 case '\b' : scr->BackSpace(); break; 190 case '\b' : scr->BackSpace(); break;
191 case '\t' : scr->Tabulate(); break; 191 case '\t' : scr->Tabulate(); break;
192 case '\n' : scr->NewLine(); break; 192 case '\n' : scr->NewLine(); break;
193 case '\r' : scr->Return(); break; 193 case '\r' : scr->Return(); break;
194 case 0x07 : gui->Bell(); break; 194 case 0x07 : gui->Bell(); break;
195 default : scr->ShowCharacter(c); break; 195 default : scr->ShowCharacter(c); break;
196 }; 196 };
197} 197}
198 198
199/* ------------------------------------------------------------------------- */ 199/* ------------------------------------------------------------------------- */
200/* */ 200/* */
201/* Keyboard Handling */ 201/* Keyboard Handling */
202/* */ 202/* */
203/* ------------------------------------------------------------------------- */ 203/* ------------------------------------------------------------------------- */
204 204
205/*! 205/*!
206*/ 206*/
207 207
208void TEmulation::onKeyPress( QKeyEvent* ev ) 208void TEmulation::onKeyPress( QKeyEvent* ev )
209{ 209{
210 qWarning("onKeyPress,....");
210 if (!connected) return; // someone else gets the keys 211 if (!connected) return; // someone else gets the keys
211 if (scr->getHistCursor() != scr->getHistLines()); 212 if (scr->getHistCursor() != scr->getHistLines());
212 scr->setHistCursor(scr->getHistLines()); 213 scr->setHistCursor(scr->getHistLines());
213 if (!ev->text().isEmpty()) 214 if (!ev->text().isEmpty())
214 { // A block of text 215 { // A block of text
215 // Note that the text is proper unicode. 216 // Note that the text is proper unicode.
216 // We should do a conversion here, but since this 217 // We should do a conversion here, but since this
217 // routine will never be used, we simply emit plain ascii. 218 // routine will never be used, we simply emit plain ascii.
218 emit sndBlock(ev->text().ascii(),ev->text().length()); 219 emit sndBlock(ev->text().ascii(),ev->text().length());
219 } 220 }
220 else if (ev->ascii()>0) 221 else if (ev->ascii()>0)
221 { unsigned char c[1]; 222 { unsigned char c[1];
222 c[0] = ev->ascii(); 223 c[0] = ev->ascii();
223 emit sndBlock((char*)c,1); 224 emit sndBlock((char*)c,1);
224 } 225 }
225} 226}
226 227
227// Unblocking, Byte to Unicode translation --------------------------------- -- 228// Unblocking, Byte to Unicode translation --------------------------------- --
228 229
229/* 230/*
230 We are doing code conversion from locale to unicode first. 231 We are doing code conversion from locale to unicode first.
231*/ 232*/
232 233
233void TEmulation::onRcvBlock(const char *s, int len) 234void TEmulation::onRcvBlock(const char *s, int len)
234{ 235{
235 bulkStart(); 236 bulkStart();
236 bulk_incnt += 1; 237 bulk_incnt += 1;
237 for (int i = 0; i < len; i++) 238 for (int i = 0; i < len; i++)
238 { 239 {
239 QString result = decoder->toUnicode(&s[i],1); 240 QString result = decoder->toUnicode(&s[i],1);
240 int reslen = result.length(); 241 int reslen = result.length();
241 for (int j = 0; j < reslen; j++) 242 for (int j = 0; j < reslen; j++)
242 onRcvChar(result[j].unicode()); 243 onRcvChar(result[j].unicode());
243 if (s[i] == '\n') bulkNewline(); 244 if (s[i] == '\n') bulkNewline();
244 } 245 }
245 bulkEnd(); 246 bulkEnd();
246} 247}
247 248
248// Selection --------------------------------------------------------------- -- 249// Selection --------------------------------------------------------------- --
249 250
250void TEmulation::onSelectionBegin(const int x, const int y) { 251void TEmulation::onSelectionBegin(const int x, const int y) {
251 if (!connected) return; 252 if (!connected) return;
252 scr->setSelBeginXY(x,y); 253 scr->setSelBeginXY(x,y);
253 showBulk(); 254 showBulk();
254} 255}
255 256
256void TEmulation::onSelectionExtend(const int x, const int y) { 257void TEmulation::onSelectionExtend(const int x, const int y) {
257 if (!connected) return; 258 if (!connected) return;
diff --git a/noncore/apps/opie-console/io_layer.h b/noncore/apps/opie-console/io_layer.h
index d5f7eab..97a1e1c 100644
--- a/noncore/apps/opie-console/io_layer.h
+++ b/noncore/apps/opie-console/io_layer.h
@@ -75,52 +75,52 @@ public:
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; 82 virtual bool isConnected() = 0;
83 83
84signals: 84signals:
85 /** 85 /**
86 * received input as QCString 86 * received input as QCString
87 */ 87 */
88 virtual void received( const QByteArray& ); 88 virtual void received( const QByteArray& );
89 89
90 /** 90 /**
91 * an error occured 91 * an error occured
92 * int for the error number 92 * int for the error number
93 * and QString for a text 93 * and QString for a text
94 */ 94 */
95 virtual void error( int, const QString& ); 95 virtual void error( int, const QString& );
96 96
97 virtual void closed(); 97 virtual void closed();
98public slots: 98public slots:
99 /** 99 /**
100 * send a QCString to the device 100 * send a QCString to the device
101 */ 101 */
102 virtual void send( const QByteArray& ) = 0; 102 virtual void send( const QByteArray& ) = 0;
103 103
104 /** 104 /**
105 * bool open 105 * bool open
106 */ 106 */
107 virtual bool open() = 0; 107 virtual bool open() = 0;
108 108
109 /** 109 /**
110 * close the io 110 * close the io
111 */ 111 */
112 virtual void close() = 0; 112 virtual void close() = 0;
113 113
114 /** 114 /**
115 * closes and reloads the settings 115 * closes and reloads the settings
116 */ 116 */
117 virtual void reload( const Profile& ) = 0; 117 virtual void reload( const Profile& ) = 0;
118 118
119 /** 119 /**
120 * set the size 120 * set the size
121 * needed for pty 121 * needed for pty
122 */ 122 */
123 virtual void setSize(int rows, int cols ); 123 virtual void setSize(int lines, int cols );
124}; 124};
125 125
126#endif 126#endif
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp
index 0c89620..a7541f0 100644
--- a/noncore/apps/opie-console/mainwindow.cpp
+++ b/noncore/apps/opie-console/mainwindow.cpp
@@ -32,145 +32,148 @@
32 32
33MainWindow::MainWindow(QWidget *parent, const char *name, WFlags) : QMainWindow(parent, name, WStyle_ContextHelp) { 33MainWindow::MainWindow(QWidget *parent, const char *name, WFlags) : QMainWindow(parent, name, WStyle_ContextHelp) {
34 KeyTrans::loadAll(); 34 KeyTrans::loadAll();
35 for (int i = 0; i < KeyTrans::count(); i++ ) { 35 for (int i = 0; i < KeyTrans::count(); i++ ) {
36 KeyTrans* s = KeyTrans::find(i ); 36 KeyTrans* s = KeyTrans::find(i );
37 assert( s ); 37 assert( s );
38 } 38 }
39 m_factory = new MetaFactory(); 39 m_factory = new MetaFactory();
40 Default def(m_factory); 40 Default def(m_factory);
41 m_sessions.setAutoDelete( TRUE ); 41 m_sessions.setAutoDelete( TRUE );
42 m_curSession = 0; 42 m_curSession = 0;
43 m_manager = new ProfileManager( m_factory ); 43 m_manager = new ProfileManager( m_factory );
44 m_manager->load(); 44 m_manager->load();
45 45
46 initUI(); 46 initUI();
47 populateProfiles(); 47 populateProfiles();
48} 48}
49void MainWindow::initUI() { 49void MainWindow::initUI() {
50 setToolBarsMovable( FALSE ); 50 setToolBarsMovable( FALSE );
51 51
52 /* tool bar for the menu */ 52 /* tool bar for the menu */
53 m_tool = new QToolBar( this ); 53 m_tool = new QToolBar( this );
54 m_tool->setHorizontalStretchable( TRUE ); 54 m_tool->setHorizontalStretchable( TRUE );
55 55
56 m_bar = new QMenuBar( m_tool ); 56 m_bar = new QMenuBar( m_tool );
57 m_console = new QPopupMenu( this ); 57 m_console = new QPopupMenu( this );
58 m_scripts = new QPopupMenu( this ); 58 m_scripts = new QPopupMenu( this );
59 m_sessionsPop= new QPopupMenu( this ); 59 m_sessionsPop= new QPopupMenu( this );
60 //m_settings = new QPopupMenu( this ); 60 //m_settings = new QPopupMenu( this );
61 61
62 /* add a toolbar for icons */ 62 /* add a toolbar for icons */
63 m_icons = new QToolBar(this); 63 m_icons = new QToolBar(this);
64 64
65 65
66 66
67 67
68 /* 68 /*
69 * the settings action 69 * the settings action
70 */ 70 */
71 m_setProfiles = new QAction(tr("Configure Profiles"), 71 m_setProfiles = new QAction(tr("Configure Profiles"),
72 Resource::loadPixmap( "SettingsIcon" ), 72 Resource::loadPixmap( "SettingsIcon" ),
73 QString::null, 0, this, 0); 73 QString::null, 0, this, 0);
74 // m_setProfiles->addTo( m_settings ); 74 // m_setProfiles->addTo( m_settings );
75 m_setProfiles->addTo( m_icons ); 75 m_setProfiles->addTo( m_icons );
76 m_setProfiles->addTo( m_console ); 76 m_setProfiles->addTo( m_console );
77 connect( m_setProfiles, SIGNAL(activated() ), 77 connect( m_setProfiles, SIGNAL(activated() ),
78 this, SLOT(slotConfigure() ) ); 78 this, SLOT(slotConfigure() ) );
79 79
80 80 m_console->insertSeparator();
81 /* 81 /*
82 * new Action for new sessions 82 * new Action for new sessions
83 */ 83 */
84 QAction* a = new QAction(tr("New Connection"), 84 QAction* a = new QAction(tr("New Connection"),
85 Resource::loadPixmap( "new" ), 85 Resource::loadPixmap( "new" ),
86 QString::null, 0, this, 0); 86 QString::null, 0, this, 0);
87 a->addTo( m_console ); 87 a->addTo( m_console );
88 a->addTo( m_icons ); 88 a->addTo( m_icons );
89 connect(a, SIGNAL(activated() ), 89 connect(a, SIGNAL(activated() ),
90 this, SLOT(slotNew() ) ); 90 this, SLOT(slotNew() ) );
91 91
92 /* 92 /*
93 * connect action 93 * connect action
94 */ 94 */
95 m_connect = new QAction(); 95 m_connect = new QAction();
96 m_connect->setText( tr("Connect") ); 96 m_connect->setText( tr("Connect") );
97 m_connect->addTo( m_console ); 97 m_connect->addTo( m_console );
98 connect(m_connect, SIGNAL(activated() ), 98 connect(m_connect, SIGNAL(activated() ),
99 this, SLOT(slotConnect() ) ); 99 this, SLOT(slotConnect() ) );
100 100
101 /* 101 /*
102 * disconnect action 102 * disconnect action
103 */ 103 */
104 m_disconnect = new QAction(); 104 m_disconnect = new QAction();
105 m_disconnect->setText( tr("Disconnect") ); 105 m_disconnect->setText( tr("Disconnect") );
106 m_disconnect->addTo( m_console ); 106 m_disconnect->addTo( m_console );
107 connect(m_disconnect, SIGNAL(activated() ), 107 connect(m_disconnect, SIGNAL(activated() ),
108 this, SLOT(slotDisconnect() ) ); 108 this, SLOT(slotDisconnect() ) );
109 109
110 m_console->insertSeparator();
111
110 m_transfer = new QAction(); 112 m_transfer = new QAction();
111 m_transfer->setText( tr("Transfer file...") ); 113 m_transfer->setText( tr("Transfer file...") );
112 m_transfer->addTo( m_console ); 114 m_transfer->addTo( m_console );
113 connect(m_transfer, SIGNAL(activated() ), 115 connect(m_transfer, SIGNAL(activated() ),
114 this, SLOT(slotTransfer() ) ); 116 this, SLOT(slotTransfer() ) );
115 117
116 118
117 /* 119 /*
118 * fullscreen 120 * fullscreen
119 */ 121 */
120 m_isFullscreen = false; 122 m_isFullscreen = false;
121 123
122 m_fullscreen = new QAction( tr("Full screen"), Resource::loadPixmap( "fullscreen" ) 124 m_fullscreen = new QAction( tr("Full screen"), Resource::loadPixmap( "fullscreen" )
123 , QString::null, 0, this, 0); 125 , QString::null, 0, this, 0);
124 m_fullscreen->addTo( m_console ); 126 m_fullscreen->addTo( m_console );
125 m_fullscreen->addTo( m_icons ); 127 m_fullscreen->addTo( m_icons );
126 connect( m_fullscreen, SIGNAL( activated() ), 128 connect( m_fullscreen, SIGNAL( activated() ),
127 this, SLOT( slotFullscreen() ) ); 129 this, SLOT( slotFullscreen() ) );
128 130
131 m_console->insertSeparator();
129 /* 132 /*
130 * terminate action 133 * terminate action
131 */ 134 */
132 m_terminate = new QAction(); 135 m_terminate = new QAction();
133 m_terminate->setText( tr("Terminate") ); 136 m_terminate->setText( tr("Terminate") );
134 m_terminate->addTo( m_console ); 137 m_terminate->addTo( m_console );
135 connect(m_terminate, SIGNAL(activated() ), 138 connect(m_terminate, SIGNAL(activated() ),
136 this, SLOT(slotTerminate() ) ); 139 this, SLOT(slotTerminate() ) );
137 140
138 m_closewindow = new QAction(); 141 m_closewindow = new QAction();
139 m_closewindow->setText( tr("Close Window") ); 142 m_closewindow->setText( tr("Close Window") );
140 m_closewindow->addTo( m_console ); 143 m_closewindow->addTo( m_console );
141 connect( m_closewindow, SIGNAL(activated() ), 144 connect( m_closewindow, SIGNAL(activated() ),
142 this, SLOT(slotClose() ) ); 145 this, SLOT(slotClose() ) );
143 146
144 147
145 /* 148 /*
146 * script actions 149 * script actions
147 */ 150 */
148 m_recordScript = new QAction(tr("Record Script"), QString::null, 0, this, 0); 151 m_recordScript = new QAction(tr("Record Script"), QString::null, 0, this, 0);
149 m_recordScript->addTo(m_scripts); 152 m_recordScript->addTo(m_scripts);
150 connect(m_recordScript, SIGNAL(activated()), this, SLOT(slotRecordScript())); 153 connect(m_recordScript, SIGNAL(activated()), this, SLOT(slotRecordScript()));
151 154
152 m_saveScript = new QAction(tr("Save Script"), QString::null, 0, this, 0); 155 m_saveScript = new QAction(tr("Save Script"), QString::null, 0, this, 0);
153 m_saveScript->addTo(m_scripts); 156 m_saveScript->addTo(m_scripts);
154 connect(m_saveScript, SIGNAL(activated()), this, SLOT(slotSaveScript())); 157 connect(m_saveScript, SIGNAL(activated()), this, SLOT(slotSaveScript()));
155 158
156 m_runScript = new QAction(tr("Run Script"), QString::null, 0, this, 0); 159 m_runScript = new QAction(tr("Run Script"), QString::null, 0, this, 0);
157 m_runScript->addTo(m_scripts); 160 m_runScript->addTo(m_scripts);
158 connect(m_runScript, SIGNAL(activated()), this, SLOT(slotRunScript())); 161 connect(m_runScript, SIGNAL(activated()), this, SLOT(slotRunScript()));
159 162
160 /* 163 /*
161 * action that open/closes the keyboard 164 * action that open/closes the keyboard
162 */ 165 */
163 m_openKeys = new QAction (tr("Open Keyboard..."), 166 m_openKeys = new QAction (tr("Open Keyboard..."),
164 Resource::loadPixmap( "console/keyboard_icon.png" ), 167 Resource::loadPixmap( "console/keyboard_icon.png" ),
165 QString::null, 0, this, 0); 168 QString::null, 0, this, 0);
166 169
167 m_openKeys->setToggleAction(true); 170 m_openKeys->setToggleAction(true);
168 171
169 connect (m_openKeys, SIGNAL(toggled(bool)), 172 connect (m_openKeys, SIGNAL(toggled(bool)),
170 this, SLOT(slotOpenKeb(bool))); 173 this, SLOT(slotOpenKeb(bool)));
171 m_openKeys->addTo(m_icons); 174 m_openKeys->addTo(m_icons);
172 175
173 176
174 /* 177 /*
175 * action that open/closes the keyboard 178 * action that open/closes the keyboard
176 */ 179 */
diff --git a/noncore/apps/opie-console/session.cpp b/noncore/apps/opie-console/session.cpp
index 2ce6872..03d0fcd 100644
--- a/noncore/apps/opie-console/session.cpp
+++ b/noncore/apps/opie-console/session.cpp
@@ -10,89 +10,91 @@ Session::Session() {
10 m_widget = 0l; 10 m_widget = 0l;
11 m_layer = 0l; 11 m_layer = 0l;
12 m_emu = 0l; 12 m_emu = 0l;
13} 13}
14Session::Session( const QString& na, QWidgetStack* widget, IOLayer* lay) 14Session::Session( const QString& na, QWidgetStack* widget, IOLayer* lay)
15 : m_name( na ), m_widget( widget ), m_layer( lay ) 15 : m_name( na ), m_widget( widget ), m_layer( lay )
16{ 16{
17// m_widLay = 0l; 17// m_widLay = 0l;
18// m_emLay = 0l; 18// m_emLay = 0l;
19 m_emu = 0l; 19 m_emu = 0l;
20} 20}
21Session::~Session() { 21Session::~Session() {
22 delete m_layer; 22 delete m_layer;
23 delete m_emu; 23 delete m_emu;
24 delete m_widget; 24 delete m_widget;
25 /* the widget layer should be deleted by the m_widget */ 25 /* the widget layer should be deleted by the m_widget */
26} 26}
27QString Session::name()const { 27QString Session::name()const {
28 return m_name; 28 return m_name;
29} 29}
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 QObject::connect(m_layer, SIGNAL(received(const QByteArray&) ), 54 QObject::connect(m_layer, SIGNAL(received(const QByteArray&) ),
55 m_emu, SLOT(recv(const QByteArray&) ) ); 55 m_emu, SLOT(recv(const QByteArray&) ) );
56 QObject::connect(m_emu, SIGNAL(send(const QByteArray&) ), 56 QObject::connect(m_emu, SIGNAL(send(const QByteArray&) ),
57 m_layer, SLOT(send(const QByteArray&) ) ); 57 m_layer, SLOT(send(const QByteArray&) ) );
58 QObject::connect(m_emu, SIGNAL(changeSize(int, int) ),
59 m_layer, SLOT(setSize(int, int) ) );
58} 60}
59 61
60void Session::disconnect() { 62void Session::disconnect() {
61 63
62 if ( !m_layer || !m_emu ) 64 if ( !m_layer || !m_emu )
63 return; 65 return;
64 66
65 QObject::disconnect(m_layer, SIGNAL(received(const QByteArray&) ), 67 QObject::disconnect(m_layer, SIGNAL(received(const QByteArray&) ),
66 m_emu, SLOT(recv(const QByteArray&) ) ); 68 m_emu, SLOT(recv(const QByteArray&) ) );
67 QObject::disconnect(m_emu, SIGNAL(send(const QByteArray&) ), 69 QObject::disconnect(m_emu, SIGNAL(send(const QByteArray&) ),
68 m_layer, SLOT(send(const QByteArray&) ) ); 70 m_layer, SLOT(send(const QByteArray&) ) );
69} 71}
70 72
71void Session::setName( const QString& na){ 73void Session::setName( const QString& na){
72 m_name = na; 74 m_name = na;
73} 75}
74 76
75void Session::setWidgetStack( QWidgetStack* wid ) { 77void Session::setWidgetStack( QWidgetStack* wid ) {
76 delete m_emu; 78 delete m_emu;
77 m_emu = 0l; 79 m_emu = 0l;
78 delete m_widget; 80 delete m_widget;
79 /* the EmulationLayer was destroyed... */ 81 /* the EmulationLayer was destroyed... */
80 82
81 m_widget = wid; 83 m_widget = wid;
82} 84}
83void Session::setIOLayer( IOLayer* lay ) { 85void Session::setIOLayer( IOLayer* lay ) {
84 delete m_layer; 86 delete m_layer;
85 m_layer = lay; 87 m_layer = lay;
86} 88}
87 89
88void Session::setEmulationHandler( EmulationHandler* lay ) { 90void Session::setEmulationHandler( EmulationHandler* lay ) {
89 delete m_emu; 91 delete m_emu;
90 m_emu = lay; 92 m_emu = lay;
91} 93}
92/* 94/*
93void Session::setEmulationWidget( WidgetLayer* lay ) { 95void Session::setEmulationWidget( WidgetLayer* lay ) {
94 delete m_widLay; 96 delete m_widLay;
95 m_widLay = lay; 97 m_widLay = lay;
96} 98}
97*/ 99*/
98 100