-rw-r--r-- | noncore/apps/opie-console/MyPty.cpp | 2 | ||||
-rw-r--r-- | noncore/apps/opie-console/TEWidget.cpp | 27 | ||||
-rw-r--r-- | noncore/apps/opie-console/TEWidget.h | 20 | ||||
-rw-r--r-- | noncore/apps/opie-console/emulation_handler.cpp | 6 | ||||
-rw-r--r-- | noncore/apps/opie-console/emulation_handler.h | 4 | ||||
-rw-r--r-- | noncore/apps/opie-console/file_layer.cpp | 4 | ||||
-rw-r--r-- | noncore/apps/opie-console/io_bt.cpp | 7 | ||||
-rw-r--r-- | noncore/apps/opie-console/io_irda.cpp | 5 | ||||
-rw-r--r-- | noncore/apps/opie-console/mainwindow.cpp | 49 | ||||
-rw-r--r-- | noncore/apps/opie-console/mainwindow.h | 7 | ||||
-rw-r--r-- | noncore/apps/opie-console/opie-console.control | 2 | ||||
-rw-r--r-- | noncore/apps/opie-console/profilemanager.cpp | 4 | ||||
-rw-r--r-- | noncore/apps/opie-console/receive_layer.cpp | 3 | ||||
-rw-r--r-- | noncore/apps/opie-console/session.cpp | 7 | ||||
-rw-r--r-- | noncore/apps/opie-console/session.h | 7 |
15 files changed, 123 insertions, 31 deletions
diff --git a/noncore/apps/opie-console/MyPty.cpp b/noncore/apps/opie-console/MyPty.cpp index 16bb5ff..984e347 100644 --- a/noncore/apps/opie-console/MyPty.cpp +++ b/noncore/apps/opie-console/MyPty.cpp | |||
@@ -65,97 +65,96 @@ | |||
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 | ||
99 | void MyPty::setSize(int lines, int columns) | 99 | void MyPty::setSize(int lines, int columns) |
100 | { | 100 | { |
101 | qWarning("setting size"); | 101 | qWarning("setting size"); |
102 | struct winsize wsize; | 102 | struct winsize wsize; |
103 | wsize.ws_row = (unsigned short)lines; | 103 | wsize.ws_row = (unsigned short)lines; |
104 | wsize.ws_col = (unsigned short)columns; | 104 | wsize.ws_col = (unsigned short)columns; |
105 | if(m_fd < 0) return; | 105 | if(m_fd < 0) return; |
106 | ioctl(m_fd,TIOCSWINSZ,(char *)&wsize); | 106 | ioctl(m_fd,TIOCSWINSZ,(char *)&wsize); |
107 | } | 107 | } |
108 | 108 | ||
109 | 109 | ||
110 | void MyPty::donePty() | 110 | void MyPty::donePty() |
111 | { | 111 | { |
112 | // This is code from the Qt DumbTerminal example | 112 | // This is code from the Qt DumbTerminal example |
113 | int status = 0; | ||
114 | 113 | ||
115 | ::close(m_fd); | 114 | ::close(m_fd); |
116 | 115 | ||
117 | if (m_cpid) { | 116 | if (m_cpid) { |
118 | kill(m_cpid, SIGHUP); | 117 | kill(m_cpid, SIGHUP); |
119 | //waitpid(m_cpid, &status, 0); | 118 | //waitpid(m_cpid, &status, 0); |
120 | delete m_sn_e; | 119 | delete m_sn_e; |
121 | delete m_sn_r; | 120 | delete m_sn_r; |
122 | m_sn_e = 0l; | 121 | m_sn_e = 0l; |
123 | m_sn_r = 0l; | 122 | m_sn_r = 0l; |
124 | } | 123 | } |
125 | 124 | ||
126 | m_cpid = 0; | 125 | m_cpid = 0; |
127 | m_fd = -1; | 126 | m_fd = -1; |
128 | // emit done(status); | 127 | // emit done(status); |
129 | } | 128 | } |
130 | 129 | ||
131 | 130 | ||
132 | const char* MyPty::deviceName() | 131 | const char* MyPty::deviceName() |
133 | { | 132 | { |
134 | return m_ttynam; | 133 | return m_ttynam; |
135 | } | 134 | } |
136 | 135 | ||
137 | 136 | ||
138 | void MyPty::error() | 137 | void MyPty::error() |
139 | { | 138 | { |
140 | // This is code from the Qt DumbTerminal example | 139 | // This is code from the Qt DumbTerminal example |
141 | donePty(); | 140 | donePty(); |
142 | } | 141 | } |
143 | 142 | ||
144 | void MyPty::start() { | 143 | void MyPty::start() { |
145 | char* cmd = "/bin/sh"; | 144 | char* cmd = "/bin/sh"; |
146 | QStrList lis; | 145 | QStrList lis; |
147 | int r =run(cmd, lis, 0, 0); | 146 | int r =run(cmd, lis, 0, 0); |
148 | r = r; | 147 | r = r; |
149 | } | 148 | } |
150 | /*! | 149 | /*! |
151 | start the client program. | 150 | start the client program. |
152 | */ | 151 | */ |
153 | int MyPty::run(const char* cmd, QStrList &, const char*, int) | 152 | int MyPty::run(const char* cmd, QStrList &, const char*, int) |
154 | { | 153 | { |
155 | // This is code from the Qt DumbTerminal example | 154 | // This is code from the Qt DumbTerminal example |
156 | m_cpid = fork(); | 155 | m_cpid = fork(); |
157 | 156 | ||
158 | if ( !m_cpid ) { | 157 | if ( !m_cpid ) { |
159 | // child - exec shell on tty | 158 | // child - exec shell on tty |
160 | for (int sig = 1; sig < NSIG; sig++) signal(sig,SIG_DFL); | 159 | for (int sig = 1; sig < NSIG; sig++) signal(sig,SIG_DFL); |
161 | int ttyfd = ::open(m_ttynam, O_RDWR); | 160 | int ttyfd = ::open(m_ttynam, O_RDWR); |
@@ -212,96 +211,97 @@ int MyPty::openPty() | |||
212 | close(ttyfd); // we open the ttynam ourselves. | 211 | close(ttyfd); // we open the ttynam ourselves. |
213 | #else | 212 | #else |
214 | for (const char* c0 = "pqrstuvwxyzabcde"; ptyfd < 0 && *c0 != 0; c0++) { | 213 | for (const char* c0 = "pqrstuvwxyzabcde"; ptyfd < 0 && *c0 != 0; c0++) { |
215 | for (const char* c1 = "0123456789abcdef"; ptyfd < 0 && *c1 != 0; c1++) { | 214 | for (const char* c1 = "0123456789abcdef"; ptyfd < 0 && *c1 != 0; c1++) { |
216 | sprintf(m_ptynam,"/dev/pty%c%c",*c0,*c1); | 215 | sprintf(m_ptynam,"/dev/pty%c%c",*c0,*c1); |
217 | sprintf(m_ttynam,"/dev/tty%c%c",*c0,*c1); | 216 | sprintf(m_ttynam,"/dev/tty%c%c",*c0,*c1); |
218 | if ((ptyfd = ::open(m_ptynam,O_RDWR)) >= 0) { | 217 | if ((ptyfd = ::open(m_ptynam,O_RDWR)) >= 0) { |
219 | if (geteuid() != 0 && !access(m_ttynam,R_OK|W_OK) == 0) { | 218 | if (geteuid() != 0 && !access(m_ttynam,R_OK|W_OK) == 0) { |
220 | ::close(ptyfd); | 219 | ::close(ptyfd); |
221 | ptyfd = -1; | 220 | ptyfd = -1; |
222 | } | 221 | } |
223 | } | 222 | } |
224 | } | 223 | } |
225 | } | 224 | } |
226 | #endif | 225 | #endif |
227 | 226 | ||
228 | if ( ptyfd < 0 ) { | 227 | if ( ptyfd < 0 ) { |
229 | //qApp->exit(1); | 228 | //qApp->exit(1); |
230 | return -1; | 229 | return -1; |
231 | } | 230 | } |
232 | 231 | ||
233 | return ptyfd; | 232 | return ptyfd; |
234 | } | 233 | } |
235 | 234 | ||
236 | /*! | 235 | /*! |
237 | Create an instance. | 236 | Create an instance. |
238 | */ | 237 | */ |
239 | MyPty::MyPty(const Profile& prof) : m_cpid(0) | 238 | MyPty::MyPty(const Profile& prof) : m_cpid(0) |
240 | { | 239 | { |
241 | 240 | ||
242 | int term = prof.readNumEntry("Terminal", Profile::VT100 ); | 241 | int term = prof.readNumEntry("Terminal", Profile::VT100 ); |
243 | switch( term ) { | 242 | switch( term ) { |
244 | default: | 243 | default: |
245 | case Profile::VT100: | 244 | case Profile::VT100: |
246 | case Profile::VT102: | 245 | case Profile::VT102: |
247 | m_term = "vt100"; | 246 | m_term = "vt100"; |
248 | break; | 247 | break; |
249 | case Profile::Linux: | 248 | case Profile::Linux: |
250 | m_term = "linux"; | 249 | m_term = "linux"; |
251 | break; | 250 | break; |
252 | case Profile::XTerm: | 251 | case Profile::XTerm: |
253 | m_term = "xterm"; | 252 | m_term = "xterm"; |
254 | break; | 253 | break; |
255 | } | 254 | } |
256 | m_sn_e = 0l; | 255 | m_sn_e = 0l; |
257 | m_sn_r = 0l; | 256 | m_sn_r = 0l; |
258 | m_fd = openPty(); | 257 | m_fd = openPty(); |
259 | ProcCtl* ctl = ProcCtl::self(); | 258 | ProcCtl* ctl = ProcCtl::self(); |
259 | Q_UNUSED(ctl); | ||
260 | } | 260 | } |
261 | 261 | ||
262 | /*! | 262 | /*! |
263 | Destructor. | 263 | Destructor. |
264 | Note that the related client program is not killed | 264 | Note that the related client program is not killed |
265 | (yet) when a instance is deleted. | 265 | (yet) when a instance is deleted. |
266 | */ | 266 | */ |
267 | MyPty::~MyPty() | 267 | MyPty::~MyPty() |
268 | { | 268 | { |
269 | donePty(); | 269 | donePty(); |
270 | } | 270 | } |
271 | QString MyPty::identifier()const { | 271 | QString MyPty::identifier()const { |
272 | return QString::fromLatin1("term"); | 272 | return QString::fromLatin1("term"); |
273 | } | 273 | } |
274 | QString MyPty::name()const{ | 274 | QString MyPty::name()const{ |
275 | return identifier(); | 275 | return identifier(); |
276 | } | 276 | } |
277 | bool MyPty::open() { | 277 | bool MyPty::open() { |
278 | if (m_fd < 0) | 278 | if (m_fd < 0) |
279 | m_fd = openPty(); | 279 | m_fd = openPty(); |
280 | 280 | ||
281 | start(); | 281 | start(); |
282 | return true; | 282 | return true; |
283 | } | 283 | } |
284 | void MyPty::close() { | 284 | void MyPty::close() { |
285 | donePty(); | 285 | donePty(); |
286 | m_fd = openPty(); | 286 | m_fd = openPty(); |
287 | } | 287 | } |
288 | void MyPty::reload( const Profile& ) { | 288 | void MyPty::reload( const Profile& ) { |
289 | 289 | ||
290 | } | 290 | } |
291 | /*! sends len bytes through the line */ | 291 | /*! sends len bytes through the line */ |
292 | void MyPty::send(const QByteArray& ar) | 292 | void MyPty::send(const QByteArray& ar) |
293 | { | 293 | { |
294 | #ifdef VERBOSE_DEBUG | 294 | #ifdef VERBOSE_DEBUG |
295 | // verbose debug | 295 | // verbose debug |
296 | printf("sending bytes:\n"); | 296 | printf("sending bytes:\n"); |
297 | for (uint i = 0; i < ar.count(); i++) | 297 | for (uint i = 0; i < ar.count(); i++) |
298 | printf("%c", ar[i]); | 298 | printf("%c", ar[i]); |
299 | printf("\n"); | 299 | printf("\n"); |
300 | #endif | 300 | #endif |
301 | 301 | ||
302 | ::write(m_fd, ar.data(), ar.count()); | 302 | ::write(m_fd, ar.data(), ar.count()); |
303 | } | 303 | } |
304 | 304 | ||
305 | /*! indicates that a block of data is received */ | 305 | /*! indicates that a block of data is received */ |
306 | void MyPty::readPty() | 306 | void MyPty::readPty() |
307 | { | 307 | { |
diff --git a/noncore/apps/opie-console/TEWidget.cpp b/noncore/apps/opie-console/TEWidget.cpp index f3f462f..e4415dc 100644 --- a/noncore/apps/opie-console/TEWidget.cpp +++ b/noncore/apps/opie-console/TEWidget.cpp | |||
@@ -50,96 +50,121 @@ | |||
50 | // #include "config.h" | 50 | // #include "config.h" |
51 | #include "TEWidget.h" | 51 | #include "TEWidget.h" |
52 | #include "session.h" | 52 | #include "session.h" |
53 | #include <qpe/config.h> | 53 | #include <qpe/config.h> |
54 | 54 | ||
55 | #include <qapplication.h> | 55 | #include <qapplication.h> |
56 | #include <qcursor.h> | 56 | #include <qcursor.h> |
57 | #include <qregexp.h> | 57 | #include <qregexp.h> |
58 | #include <qpainter.h> | 58 | #include <qpainter.h> |
59 | #include <qclipboard.h> | 59 | #include <qclipboard.h> |
60 | #include <qstyle.h> | 60 | #include <qstyle.h> |
61 | #include <qfile.h> | 61 | #include <qfile.h> |
62 | #include <qdragobject.h> | 62 | #include <qdragobject.h> |
63 | #include <qvbox.h> | 63 | #include <qvbox.h> |
64 | 64 | ||
65 | #include <stdio.h> | 65 | #include <stdio.h> |
66 | #include <stdlib.h> | 66 | #include <stdlib.h> |
67 | #include <unistd.h> | 67 | #include <unistd.h> |
68 | #include <ctype.h> | 68 | #include <ctype.h> |
69 | #include <sys/stat.h> | 69 | #include <sys/stat.h> |
70 | #include <sys/types.h> | 70 | #include <sys/types.h> |
71 | #include <signal.h> | 71 | #include <signal.h> |
72 | 72 | ||
73 | #include <assert.h> | 73 | #include <assert.h> |
74 | 74 | ||
75 | 75 | ||
76 | 76 | ||
77 | // #include "TEWidget.moc" | 77 | // #include "TEWidget.moc" |
78 | //#include <kapp.h> | 78 | //#include <kapp.h> |
79 | //#include <kcursor.h> | 79 | //#include <kcursor.h> |
80 | //#include <kurl.h> | 80 | //#include <kurl.h> |
81 | //#include <kdebug.h> | 81 | //#include <kdebug.h> |
82 | //#include <klocale.h> | 82 | //#include <klocale.h> |
83 | 83 | ||
84 | #define HERE printf("%s(%d): %s\n",__FILE__,__LINE__,__FUNCTION__) | 84 | #define HERE printf("%s(%d): %s\n",__FILE__,__LINE__,__FUNCTION__) |
85 | #define HCNT(Name) // { static int cnt = 1; printf("%s(%d): %s %d\n",__FILE__,__LINE__,Name,cnt++); } | 85 | #define HCNT(Name) // { static int cnt = 1; printf("%s(%d): %s %d\n",__FILE__,__LINE__,Name,cnt++); } |
86 | 86 | ||
87 | #define loc(X,Y) ((Y)*columns+(X)) | 87 | #define loc(X,Y) ((Y)*columns+(X)) |
88 | 88 | ||
89 | //FIXME: the rim should normally be 1, 0 only when running in full screen mode. | 89 | //FIXME: the rim should normally be 1, 0 only when running in full screen mode. |
90 | #define rimX 0 // left/right rim width | 90 | #define rimX 0 // left/right rim width |
91 | #define rimY 0 // top/bottom rim high | 91 | #define rimY 0 // top/bottom rim high |
92 | 92 | ||
93 | #define SCRWIDTH 16 // width of the scrollbar | 93 | #define SCRWIDTH 16 // width of the scrollbar |
94 | 94 | ||
95 | #define yMouseScroll 1 | 95 | #define yMouseScroll 1 |
96 | // scroll increment used when dragging selection at top/bottom of window. | 96 | // scroll increment used when dragging selection at top/bottom of window. |
97 | 97 | ||
98 | /* Button XPM */ | ||
99 | namespace { | ||
100 | static char * menu_xpm[] = { | ||
101 | "12 12 5 1", | ||
102 | " c None", | ||
103 | ".c #000000", | ||
104 | "+c #FFFDAD", | ||
105 | "@c #FFFF00", | ||
106 | "#c #E5E100", | ||
107 | " ", | ||
108 | " ", | ||
109 | " ......... ", | ||
110 | " .+++++++. ", | ||
111 | " .+@@@@#. ", | ||
112 | " .+@@@#. ", | ||
113 | " .+@@#. ", | ||
114 | " .+@#. ", | ||
115 | " .+#. ", | ||
116 | " .+. ", | ||
117 | " .. ", | ||
118 | " "}; | ||
119 | |||
120 | } | ||
121 | |||
122 | |||
98 | /* ------------------------------------------------------------------------- */ | 123 | /* ------------------------------------------------------------------------- */ |
99 | /* */ | 124 | /* */ |
100 | /* Colors */ | 125 | /* Colors */ |
101 | /* */ | 126 | /* */ |
102 | /* ------------------------------------------------------------------------- */ | 127 | /* ------------------------------------------------------------------------- */ |
103 | 128 | ||
104 | //FIXME: the default color table is in session.C now. | 129 | //FIXME: the default color table is in session.C now. |
105 | // We need a way to get rid of this one, here. | 130 | // We need a way to get rid of this one, here. |
106 | static const ColorEntry base_color_table[TABLE_COLORS] = | 131 | static const ColorEntry base_color_table[TABLE_COLORS] = |
107 | // The following are almost IBM standard color codes, with some slight | 132 | // The following are almost IBM standard color codes, with some slight |
108 | // gamma correction for the dim colors to compensate for bright X screens. | 133 | // gamma correction for the dim colors to compensate for bright X screens. |
109 | // It contains the 8 ansiterm/xterm colors in 2 intensities. | 134 | // It contains the 8 ansiterm/xterm colors in 2 intensities. |
110 | { | 135 | { |
111 | // Fixme: could add faint colors here, also. | 136 | // Fixme: could add faint colors here, also. |
112 | // normal | 137 | // normal |
113 | ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 1, 0 ), // Dfore, Dback | 138 | ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 1, 0 ), // Dfore, Dback |
114 | ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0x18), 0, 0 ), // Black, Red | 139 | ColorEntry(QColor(0x00,0x00,0x00), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0x18), 0, 0 ), // Black, Red |
115 | ColorEntry(QColor(0x18,0xB2,0x18), 0, 0 ), ColorEntry( QColor(0xB2,0x68,0x18), 0, 0 ), // Green, Yellow | 140 | ColorEntry(QColor(0x18,0xB2,0x18), 0, 0 ), ColorEntry( QColor(0xB2,0x68,0x18), 0, 0 ), // Green, Yellow |
116 | ColorEntry(QColor(0x18,0x18,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0xB2), 0, 0 ), // Blue, Magenta | 141 | ColorEntry(QColor(0x18,0x18,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0xB2), 0, 0 ), // Blue, Magenta |
117 | ColorEntry(QColor(0x18,0xB2,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 0, 0 ), // Cyan, White | 142 | ColorEntry(QColor(0x18,0xB2,0xB2), 0, 0 ), ColorEntry( QColor(0xB2,0xB2,0xB2), 0, 0 ), // Cyan, White |
118 | // intensiv | 143 | // intensiv |
119 | ColorEntry(QColor(0x00,0x00,0x00), 0, 1 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 1, 0 ), | 144 | ColorEntry(QColor(0x00,0x00,0x00), 0, 1 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 1, 0 ), |
120 | ColorEntry(QColor(0x68,0x68,0x68), 0, 0 ), ColorEntry( QColor(0xFF,0x54,0x54), 0, 0 ), | 145 | ColorEntry(QColor(0x68,0x68,0x68), 0, 0 ), ColorEntry( QColor(0xFF,0x54,0x54), 0, 0 ), |
121 | ColorEntry(QColor(0x54,0xFF,0x54), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0x54), 0, 0 ), | 146 | ColorEntry(QColor(0x54,0xFF,0x54), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0x54), 0, 0 ), |
122 | ColorEntry(QColor(0x54,0x54,0xFF), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0xB2), 0, 0 ), | 147 | ColorEntry(QColor(0x54,0x54,0xFF), 0, 0 ), ColorEntry( QColor(0xB2,0x18,0xB2), 0, 0 ), |
123 | ColorEntry(QColor(0x54,0xFF,0xFF), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 0, 0 ) | 148 | ColorEntry(QColor(0x54,0xFF,0xFF), 0, 0 ), ColorEntry( QColor(0xFF,0xFF,0xFF), 0, 0 ) |
124 | }; | 149 | }; |
125 | 150 | ||
126 | /* Note that we use ANSI color order (bgr), while IBMPC color order is (rgb) | 151 | /* Note that we use ANSI color order (bgr), while IBMPC color order is (rgb) |
127 | 152 | ||
128 | Code 0 1 2 3 4 5 6 7 | 153 | Code 0 1 2 3 4 5 6 7 |
129 | ----------- ------- ------- ------- ------- ------- ------- ------- ------- | 154 | ----------- ------- ------- ------- ------- ------- ------- ------- ------- |
130 | ANSI (bgr) Black Red Green Yellow Blue Magenta Cyan White | 155 | ANSI (bgr) Black Red Green Yellow Blue Magenta Cyan White |
131 | IBMPC (rgb) Black Blue Green Cyan Red Magenta Yellow White | 156 | IBMPC (rgb) Black Blue Green Cyan Red Magenta Yellow White |
132 | */ | 157 | */ |
133 | 158 | ||
134 | QColor TEWidget::getDefaultBackColor() | 159 | QColor TEWidget::getDefaultBackColor() |
135 | { | 160 | { |
136 | return color_table[DEFAULT_BACK_COLOR].color; | 161 | return color_table[DEFAULT_BACK_COLOR].color; |
137 | } | 162 | } |
138 | 163 | ||
139 | const ColorEntry* TEWidget::getColorTable() const | 164 | const ColorEntry* TEWidget::getColorTable() const |
140 | { | 165 | { |
141 | return color_table; | 166 | return color_table; |
142 | } | 167 | } |
143 | 168 | ||
144 | const ColorEntry* TEWidget::getdefaultColorTable() const | 169 | const ColorEntry* TEWidget::getdefaultColorTable() const |
145 | { | 170 | { |
@@ -1196,83 +1221,83 @@ void TEWidget::dropEvent(QDropEvent* event) | |||
1196 | int file_count = 0; | 1221 | int file_count = 0; |
1197 | dropText = ""; | 1222 | dropText = ""; |
1198 | bool bPopup = true; | 1223 | bool bPopup = true; |
1199 | 1224 | ||
1200 | if(QUriDrag::decode(event, strlist)) { | 1225 | if(QUriDrag::decode(event, strlist)) { |
1201 | if (strlist.count()) { | 1226 | if (strlist.count()) { |
1202 | for(const char* p = strlist.first(); p; p = strlist.next()) { | 1227 | for(const char* p = strlist.first(); p; p = strlist.next()) { |
1203 | if(file_count++ > 0) { | 1228 | if(file_count++ > 0) { |
1204 | dropText += " "; | 1229 | dropText += " "; |
1205 | bPopup = false; // more than one file, don't popup | 1230 | bPopup = false; // more than one file, don't popup |
1206 | } | 1231 | } |
1207 | 1232 | ||
1208 | /* | 1233 | /* |
1209 | KURL url(p); | 1234 | KURL url(p); |
1210 | if (url.isLocalFile()) { | 1235 | if (url.isLocalFile()) { |
1211 | dropText += url.path(); // local URL : remove protocol | 1236 | dropText += url.path(); // local URL : remove protocol |
1212 | } | 1237 | } |
1213 | else { | 1238 | else { |
1214 | dropText += url.prettyURL(); | 1239 | dropText += url.prettyURL(); |
1215 | bPopup = false; // a non-local file, don't popup | 1240 | bPopup = false; // a non-local file, don't popup |
1216 | } | 1241 | } |
1217 | */ | 1242 | */ |
1218 | 1243 | ||
1219 | } | 1244 | } |
1220 | 1245 | ||
1221 | if (bPopup) | 1246 | if (bPopup) |
1222 | // m_drop->popup(pos() + event->pos()); | 1247 | // m_drop->popup(pos() + event->pos()); |
1223 | m_drop->popup(mapToGlobal(event->pos())); | 1248 | m_drop->popup(mapToGlobal(event->pos())); |
1224 | else | 1249 | else |
1225 | { | 1250 | { |
1226 | if (currentSession) { | 1251 | if (currentSession) { |
1227 | currentSession->getEmulation()->sendString(dropText.local8Bit()); | 1252 | currentSession->getEmulation()->sendString(dropText.local8Bit()); |
1228 | } | 1253 | } |
1229 | // kdDebug() << "Drop:" << dropText.local8Bit() << "\n"; | 1254 | // kdDebug() << "Drop:" << dropText.local8Bit() << "\n"; |
1230 | } | 1255 | } |
1231 | } | 1256 | } |
1232 | } | 1257 | } |
1233 | else if(QTextDrag::decode(event, dropText)) { | 1258 | else if(QTextDrag::decode(event, dropText)) { |
1234 | // kdDebug() << "Drop:" << dropText.local8Bit() << "\n"; | 1259 | // kdDebug() << "Drop:" << dropText.local8Bit() << "\n"; |
1235 | if (currentSession) { | 1260 | if (currentSession) { |
1236 | currentSession->getEmulation()->sendString(dropText.local8Bit()); | 1261 | currentSession->getEmulation()->sendString(dropText.local8Bit()); |
1237 | } | 1262 | } |
1238 | // Paste it | 1263 | // Paste it |
1239 | } | 1264 | } |
1240 | } | 1265 | } |
1241 | #endif | 1266 | #endif |
1242 | 1267 | ||
1243 | 1268 | ||
1244 | void TEWidget::drop_menu_activated(int item) | 1269 | void TEWidget::drop_menu_activated(int) |
1245 | { | 1270 | { |
1246 | #ifndef QT_NO_DRAGANDDROP | 1271 | #ifndef QT_NO_DRAGANDDROP |
1247 | switch (item) | 1272 | switch (item) |
1248 | { | 1273 | { |
1249 | case 0: // paste | 1274 | case 0: // paste |
1250 | currentSession->getEmulation()->sendString(dropText.local8Bit()); | 1275 | currentSession->getEmulation()->sendString(dropText.local8Bit()); |
1251 | // KWM::activate((Window)this->winId()); | 1276 | // KWM::activate((Window)this->winId()); |
1252 | break; | 1277 | break; |
1253 | case 1: // cd ... | 1278 | case 1: // cd ... |
1254 | currentSession->getEmulation()->sendString("cd "); | 1279 | currentSession->getEmulation()->sendString("cd "); |
1255 | struct stat statbuf; | 1280 | struct stat statbuf; |
1256 | if ( ::stat( QFile::encodeName( dropText ), &statbuf ) == 0 ) | 1281 | if ( ::stat( QFile::encodeName( dropText ), &statbuf ) == 0 ) |
1257 | { | 1282 | { |
1258 | if ( !S_ISDIR(statbuf.st_mode) ) | 1283 | if ( !S_ISDIR(statbuf.st_mode) ) |
1259 | { | 1284 | { |
1260 | /* | 1285 | /* |
1261 | KURL url; | 1286 | KURL url; |
1262 | url.setPath( dropText ); | 1287 | url.setPath( dropText ); |
1263 | dropText = url.directory( true, false ); // remove filename | 1288 | dropText = url.directory( true, false ); // remove filename |
1264 | */ | 1289 | */ |
1265 | } | 1290 | } |
1266 | } | 1291 | } |
1267 | dropText.replace(QRegExp(" "), "\\ "); // escape spaces | 1292 | dropText.replace(QRegExp(" "), "\\ "); // escape spaces |
1268 | currentSession->getEmulation()->sendString(dropText.local8Bit()); | 1293 | currentSession->getEmulation()->sendString(dropText.local8Bit()); |
1269 | currentSession->getEmulation()->sendString("\n"); | 1294 | currentSession->getEmulation()->sendString("\n"); |
1270 | // KWM::activate((Window)this->winId()); | 1295 | // KWM::activate((Window)this->winId()); |
1271 | break; | 1296 | break; |
1272 | } | 1297 | } |
1273 | #endif | 1298 | #endif |
1274 | } | 1299 | } |
1275 | 1300 | ||
1276 | QPushButton* TEWidget::cornerButton() { | 1301 | QPushButton* TEWidget::cornerButton() { |
1277 | return m_cornerButton; | 1302 | return m_cornerButton; |
1278 | } | 1303 | } |
diff --git a/noncore/apps/opie-console/TEWidget.h b/noncore/apps/opie-console/TEWidget.h index 1b5300f..f03a16e 100644 --- a/noncore/apps/opie-console/TEWidget.h +++ b/noncore/apps/opie-console/TEWidget.h | |||
@@ -1,103 +1,85 @@ | |||
1 | /* ----------------------------------------------------------------------- */ | 1 | /* ----------------------------------------------------------------------- */ |
2 | /* */ | 2 | /* */ |
3 | /* [te_widget.h] Terminal Emulation Widget */ | 3 | /* [te_widget.h] Terminal Emulation Widget */ |
4 | /* */ | 4 | /* */ |
5 | /* ----------------------------------------------------------------------- */ | 5 | /* ----------------------------------------------------------------------- */ |
6 | /* */ | 6 | /* */ |
7 | /* Copyright (c) 1997,1998 by Lars Doelle <lars.doelle@on-line.de> */ | 7 | /* Copyright (c) 1997,1998 by Lars Doelle <lars.doelle@on-line.de> */ |
8 | /* */ | 8 | /* */ |
9 | /* This file is part of Konsole - an X terminal for KDE */ | 9 | /* This file is part of Konsole - an X terminal for KDE */ |
10 | /* */ | 10 | /* */ |
11 | /* ----------------------------------------------------------------------- */ | 11 | /* ----------------------------------------------------------------------- */ |
12 | /* */ | 12 | /* */ |
13 | /* Ported Konsole to Qt/Embedded */ | 13 | /* Ported Konsole to Qt/Embedded */ |
14 | /* */ | 14 | /* */ |
15 | /* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */ | 15 | /* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */ |
16 | /* */ | 16 | /* */ |
17 | /* -------------------------------------------------------------------------- */ | 17 | /* -------------------------------------------------------------------------- */ |
18 | #ifndef TE_WIDGET_H | 18 | #ifndef TE_WIDGET_H |
19 | #define TE_WIDGET_H | 19 | #define TE_WIDGET_H |
20 | 20 | ||
21 | #include <qwidget.h> | 21 | #include <qwidget.h> |
22 | #include <qlabel.h> | 22 | #include <qlabel.h> |
23 | #include <qtimer.h> | 23 | #include <qtimer.h> |
24 | #include <qcolor.h> | 24 | #include <qcolor.h> |
25 | #include <qkeycode.h> | 25 | #include <qkeycode.h> |
26 | #include <qscrollbar.h> | 26 | #include <qscrollbar.h> |
27 | 27 | ||
28 | #include <qpopupmenu.h> | 28 | #include <qpopupmenu.h> |
29 | #include <qpushbutton.h> | 29 | #include <qpushbutton.h> |
30 | 30 | ||
31 | #include "TECommon.h" | 31 | #include "TECommon.h" |
32 | 32 | ||
33 | extern unsigned short vt100_graphics[32]; | 33 | extern unsigned short vt100_graphics[32]; |
34 | 34 | ||
35 | 35 | ||
36 | 36 | ||
37 | static char * menu_xpm[] = { | 37 | |
38 | "12 12 5 1", | ||
39 | " c None", | ||
40 | ".c #000000", | ||
41 | "+c #FFFDAD", | ||
42 | "@c #FFFF00", | ||
43 | "#c #E5E100", | ||
44 | " ", | ||
45 | " ", | ||
46 | " ......... ", | ||
47 | " .+++++++. ", | ||
48 | " .+@@@@#. ", | ||
49 | " .+@@@#. ", | ||
50 | " .+@@#. ", | ||
51 | " .+@#. ", | ||
52 | " .+#. ", | ||
53 | " .+. ", | ||
54 | " .. ", | ||
55 | " "}; | ||
56 | 38 | ||
57 | class TESession; | 39 | class TESession; |
58 | 40 | ||
59 | // class Konsole; | 41 | // class Konsole; |
60 | 42 | ||
61 | class TEWidget : public QFrame | 43 | class TEWidget : public QFrame |
62 | // a widget representing attributed text | 44 | // a widget representing attributed text |
63 | { | 45 | { |
64 | Q_OBJECT | 46 | Q_OBJECT |
65 | 47 | ||
66 | // friend class Konsole; | 48 | // friend class Konsole; |
67 | 49 | ||
68 | public: | 50 | public: |
69 | 51 | ||
70 | TEWidget(QWidget *parent=0, const char *name=0); | 52 | TEWidget(QWidget *parent=0, const char *name=0); |
71 | virtual ~TEWidget(); | 53 | virtual ~TEWidget(); |
72 | 54 | ||
73 | public: | 55 | public: |
74 | 56 | ||
75 | QColor getDefaultBackColor(); | 57 | QColor getDefaultBackColor(); |
76 | QPushButton *cornerButton(); | 58 | QPushButton *cornerButton(); |
77 | 59 | ||
78 | const ColorEntry* getColorTable() const; | 60 | const ColorEntry* getColorTable() const; |
79 | const ColorEntry* getdefaultColorTable() const; | 61 | const ColorEntry* getdefaultColorTable() const; |
80 | void setColorTable(const ColorEntry table[]); | 62 | void setColorTable(const ColorEntry table[]); |
81 | 63 | ||
82 | void setScrollbarLocation(int loc); | 64 | void setScrollbarLocation(int loc); |
83 | enum { SCRNONE=0, SCRLEFT=1, SCRRIGHT=2 }; | 65 | enum { SCRNONE=0, SCRLEFT=1, SCRRIGHT=2 }; |
84 | 66 | ||
85 | void setScroll(int cursor, int lines); | 67 | void setScroll(int cursor, int lines); |
86 | void doScroll(int lines); | 68 | void doScroll(int lines); |
87 | 69 | ||
88 | void emitSelection(); | 70 | void emitSelection(); |
89 | 71 | ||
90 | public: | 72 | public: |
91 | 73 | ||
92 | void setImage(const ca* const newimg, int lines, int columns); | 74 | void setImage(const ca* const newimg, int lines, int columns); |
93 | 75 | ||
94 | int Lines() { return lines; } | 76 | int Lines() { return lines; } |
95 | int Columns() { return columns; } | 77 | int Columns() { return columns; } |
96 | 78 | ||
97 | void calcGeometry(); | 79 | void calcGeometry(); |
98 | void propagateSize(); | 80 | void propagateSize(); |
99 | QSize calcSize(int cols, int lins) const; | 81 | QSize calcSize(int cols, int lins) const; |
100 | 82 | ||
101 | QSize sizeHint() const; | 83 | QSize sizeHint() const; |
102 | 84 | ||
103 | public: | 85 | public: |
diff --git a/noncore/apps/opie-console/emulation_handler.cpp b/noncore/apps/opie-console/emulation_handler.cpp index bdc8b43..bb3dd28 100644 --- a/noncore/apps/opie-console/emulation_handler.cpp +++ b/noncore/apps/opie-console/emulation_handler.cpp | |||
@@ -147,48 +147,54 @@ QColor EmulationHandler::backColor(int col ) { | |||
147 | /* color is white */ | 147 | /* color is white */ |
148 | co = Qt::black; | 148 | co = Qt::black; |
149 | break; | 149 | break; |
150 | case Profile::Black: | 150 | case Profile::Black: |
151 | co = Qt::white; | 151 | co = Qt::white; |
152 | break; | 152 | break; |
153 | case Profile::Green: | 153 | case Profile::Green: |
154 | qWarning("Background black"); | 154 | qWarning("Background black"); |
155 | co = Qt::black; | 155 | co = Qt::black; |
156 | break; | 156 | break; |
157 | case Profile::Orange: | 157 | case Profile::Orange: |
158 | qWarning("Background black"); | 158 | qWarning("Background black"); |
159 | co = Qt::black; | 159 | co = Qt::black; |
160 | break; | 160 | break; |
161 | } | 161 | } |
162 | 162 | ||
163 | return co; | 163 | return co; |
164 | } | 164 | } |
165 | 165 | ||
166 | QPushButton* EmulationHandler::cornerButton() { | 166 | QPushButton* EmulationHandler::cornerButton() { |
167 | return m_teWid->cornerButton(); | 167 | return m_teWid->cornerButton(); |
168 | } | 168 | } |
169 | 169 | ||
170 | 170 | ||
171 | Script *EmulationHandler::script() { | 171 | Script *EmulationHandler::script() { |
172 | return m_script; | 172 | return m_script; |
173 | } | 173 | } |
174 | 174 | ||
175 | bool EmulationHandler::isRecording() { | 175 | bool EmulationHandler::isRecording() { |
176 | return (m_script != 0); | 176 | return (m_script != 0); |
177 | } | 177 | } |
178 | 178 | ||
179 | void EmulationHandler::startRecording() { | 179 | void EmulationHandler::startRecording() { |
180 | if (!isRecording()) | 180 | if (!isRecording()) |
181 | m_script = new Script(); | 181 | m_script = new Script(); |
182 | } | 182 | } |
183 | 183 | ||
184 | void EmulationHandler::clearScript() { | 184 | void EmulationHandler::clearScript() { |
185 | if (isRecording()) { | 185 | if (isRecording()) { |
186 | delete m_script; | 186 | delete m_script; |
187 | m_script = 0; | 187 | m_script = 0; |
188 | } | 188 | } |
189 | } | 189 | } |
190 | 190 | ||
191 | void EmulationHandler::runScript(const Script *script) { | 191 | void EmulationHandler::runScript(const Script *script) { |
192 | emit send(script->script()); | 192 | emit send(script->script()); |
193 | } | 193 | } |
194 | 194 | ||
195 | void EmulationHandler::copy() { | ||
196 | m_teWid->emitSelection(); | ||
197 | } | ||
198 | void EmulationHandler::paste() { | ||
199 | m_teWid->pasteClipboard(); | ||
200 | } | ||
diff --git a/noncore/apps/opie-console/emulation_handler.h b/noncore/apps/opie-console/emulation_handler.h index 7ca2cf3..12abbc5 100644 --- a/noncore/apps/opie-console/emulation_handler.h +++ b/noncore/apps/opie-console/emulation_handler.h | |||
@@ -4,87 +4,89 @@ | |||
4 | #include <qobject.h> | 4 | #include <qobject.h> |
5 | #include <qcolor.h> | 5 | #include <qcolor.h> |
6 | #include <qcstring.h> | 6 | #include <qcstring.h> |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * Badly ibotty lacks the time to finish | 9 | * Badly ibotty lacks the time to finish |
10 | * his widget in time.. | 10 | * his widget in time.. |
11 | * Never the less we've to have an EmulationWidget | 11 | * Never the less we've to have an EmulationWidget |
12 | * This is why I'm taking the inferior not cleaned | 12 | * This is why I'm taking the inferior not cleaned |
13 | * up TE* KDE STUFF | 13 | * up TE* KDE STUFF |
14 | */ | 14 | */ |
15 | 15 | ||
16 | /** | 16 | /** |
17 | * This is the layer above the IOLayer* | 17 | * This is the layer above the IOLayer* |
18 | * This nice QObject here will get stuff from | 18 | * This nice QObject here will get stuff from |
19 | * got a slot and a signal | 19 | * got a slot and a signal |
20 | * the signal for data | 20 | * the signal for data |
21 | * the slot for receiving | 21 | * the slot for receiving |
22 | * it'll set up the widget internally | 22 | * it'll set up the widget internally |
23 | * and manage the communication between | 23 | * and manage the communication between |
24 | * the pre QByteArray world! | 24 | * the pre QByteArray world! |
25 | */ | 25 | */ |
26 | class Profile; | 26 | class Profile; |
27 | class QWidget; | 27 | class QWidget; |
28 | class QPushButton; | 28 | class QPushButton; |
29 | class TEWidget; | 29 | class TEWidget; |
30 | class TEmulation; | 30 | class TEmulation; |
31 | class QFont; | 31 | class QFont; |
32 | class Script; | 32 | class Script; |
33 | class EmulationHandler : public QObject { | 33 | class EmulationHandler : public QObject { |
34 | Q_OBJECT | 34 | Q_OBJECT |
35 | public: | 35 | public: |
36 | /** | 36 | /** |
37 | * simple c'tor the parent of the TEWdiget | 37 | * simple c'tor the parent of the TEWdiget |
38 | * and a name | 38 | * and a name |
39 | * and a Profile | 39 | * and a Profile |
40 | */ | 40 | */ |
41 | EmulationHandler( const Profile&, QWidget* parent, const char* name = 0l ); | 41 | EmulationHandler( const Profile&, QWidget* parent, const char* name = 0l ); |
42 | 42 | ||
43 | /** | 43 | /** |
44 | * delete all components | 44 | * delete all components |
45 | */ | 45 | */ |
46 | ~EmulationHandler(); | 46 | ~EmulationHandler(); |
47 | 47 | ||
48 | void load( const Profile& ); | 48 | void load( const Profile& ); |
49 | QWidget* widget(); | 49 | QWidget* widget(); |
50 | void setColor( const QColor& fore, const QColor& back ); | 50 | void setColor( const QColor& fore, const QColor& back ); |
51 | QPushButton* cornerButton(); | 51 | QPushButton* cornerButton(); |
52 | 52 | ||
53 | /* Scripts */ | 53 | /* Scripts */ |
54 | /* Create a new script and record all typed characters */ | 54 | /* Create a new script and record all typed characters */ |
55 | void startRecording(); | 55 | void startRecording(); |
56 | 56 | ||
57 | /* Return whether we are currently recording a script */ | 57 | /* Return whether we are currently recording a script */ |
58 | bool isRecording(); | 58 | bool isRecording(); |
59 | 59 | ||
60 | /* Return the current script (or NULL) */ | 60 | /* Return the current script (or NULL) */ |
61 | Script *script(); | 61 | Script *script(); |
62 | 62 | ||
63 | /* Stop recording and remove the current script from memory */ | 63 | /* Stop recording and remove the current script from memory */ |
64 | void clearScript(); | 64 | void clearScript(); |
65 | 65 | ||
66 | /* Run a script by forwarding its keys to the EmulationLayer */ | 66 | /* Run a script by forwarding its keys to the EmulationLayer */ |
67 | void runScript(const Script *); | 67 | void runScript(const Script *); |
68 | 68 | ||
69 | signals: | 69 | signals: |
70 | void send( const QByteArray& ); | 70 | void send( const QByteArray& ); |
71 | void changeSize(int rows, int cols ); | 71 | void changeSize(int rows, int cols ); |
72 | 72 | ||
73 | 73 | ||
74 | public slots: | 74 | public slots: |
75 | void recv( const QByteArray& ); | 75 | void recv( const QByteArray& ); |
76 | void paste(); | ||
77 | void copy(); | ||
76 | 78 | ||
77 | private slots: | 79 | private slots: |
78 | void recvEmulation( const char*, int len ); | 80 | void recvEmulation( const char*, int len ); |
79 | private: | 81 | private: |
80 | QFont font( int ); | 82 | QFont font( int ); |
81 | QColor foreColor(int ); | 83 | QColor foreColor(int ); |
82 | QColor backColor(int ); | 84 | QColor backColor(int ); |
83 | 85 | ||
84 | private: | 86 | private: |
85 | TEWidget* m_teWid; | 87 | TEWidget* m_teWid; |
86 | TEmulation* m_teEmu; | 88 | TEmulation* m_teEmu; |
87 | Script * m_script; | 89 | Script * m_script; |
88 | }; | 90 | }; |
89 | 91 | ||
90 | #endif | 92 | #endif |
diff --git a/noncore/apps/opie-console/file_layer.cpp b/noncore/apps/opie-console/file_layer.cpp index 43e9c8f..0c83700 100644 --- a/noncore/apps/opie-console/file_layer.cpp +++ b/noncore/apps/opie-console/file_layer.cpp | |||
@@ -1,23 +1,23 @@ | |||
1 | #include <qfile.h> | 1 | #include <qfile.h> |
2 | #include <opie/oprocess.h> | 2 | #include <opie/oprocess.h> |
3 | 3 | ||
4 | #include "file_layer.h" | 4 | #include "file_layer.h" |
5 | 5 | ||
6 | FileTransferLayer::FileTransferLayer(IOLayer *layer) | 6 | FileTransferLayer::FileTransferLayer(IOLayer *layer) |
7 | : QObject(), m_layer( layer ) | 7 | : QObject(), m_layer( layer ) |
8 | { | 8 | { |
9 | } | 9 | } |
10 | 10 | ||
11 | FileTransferLayer::~FileTransferLayer() { | 11 | FileTransferLayer::~FileTransferLayer() { |
12 | } | 12 | } |
13 | 13 | ||
14 | void FileTransferLayer::sendFile(const QFile& file) { | 14 | void FileTransferLayer::sendFile(const QFile&) { |
15 | 15 | ||
16 | } | 16 | } |
17 | 17 | ||
18 | void FileTransferLayer::sendFile(const QString& file) { | 18 | void FileTransferLayer::sendFile(const QString&) { |
19 | } | 19 | } |
20 | 20 | ||
21 | IOLayer* FileTransferLayer::layer() { | 21 | IOLayer* FileTransferLayer::layer() { |
22 | return m_layer; | 22 | return m_layer; |
23 | } | 23 | } |
diff --git a/noncore/apps/opie-console/io_bt.cpp b/noncore/apps/opie-console/io_bt.cpp index 4486eea..8dd8151 100644 --- a/noncore/apps/opie-console/io_bt.cpp +++ b/noncore/apps/opie-console/io_bt.cpp | |||
@@ -1,77 +1,80 @@ | |||
1 | 1 | ||
2 | #include "io_bt.h" | 2 | #include "io_bt.h" |
3 | 3 | ||
4 | IOBt::IOBt( const Profile &config ) : IOSerial( config ) { | 4 | IOBt::IOBt( const Profile &config ) : IOSerial( config ) { |
5 | m_attach = 0; | 5 | m_attach = 0; |
6 | } | 6 | } |
7 | 7 | ||
8 | 8 | ||
9 | IOBt::~IOBt() { | 9 | IOBt::~IOBt() { |
10 | if ( m_attach ) { | 10 | if ( m_attach ) { |
11 | delete m_attach; | 11 | delete m_attach; |
12 | } | 12 | } |
13 | } | 13 | } |
14 | 14 | ||
15 | 15 | ||
16 | void IOBt::close() { | 16 | void IOBt::close() { |
17 | 17 | ||
18 | IOSerial::close(); | 18 | IOSerial::close(); |
19 | // still need error handling | 19 | // still need error handling |
20 | if ( m_attach ) { | 20 | if ( m_attach ) { |
21 | delete m_attach; | 21 | delete m_attach; |
22 | m_attach = 0; | 22 | m_attach = 0; |
23 | } | 23 | } |
24 | } | 24 | } |
25 | 25 | ||
26 | bool IOBt::open() { | 26 | bool IOBt::open() { |
27 | bool ret = false; | ||
27 | 28 | ||
28 | // only set up bt stuff if mac address was set, otherwise use the device set | 29 | // only set up bt stuff if mac address was set, otherwise use the device set |
29 | if ( !m_mac.isEmpty() ) { | 30 | if ( !m_mac.isEmpty() ) { |
30 | 31 | ||
31 | // now it should also be checked, if there is a connection to the device with that mac allready | 32 | // now it should also be checked, if there is a connection to the device with that mac allready |
32 | // hciattach here | 33 | // hciattach here |
33 | m_attach = new OProcess(); | 34 | m_attach = new OProcess(); |
34 | *m_attach << "hciattach /dev/ttyS2 any 57600"; | 35 | *m_attach << "hciattach /dev/ttyS2 any 57600"; |
35 | 36 | ||
36 | // then start hcid, then rcfomm handling (m_mac) | 37 | // then start hcid, then rcfomm handling (m_mac) |
37 | 38 | ||
38 | connect( m_attach, SIGNAL( processExited( OProcess* ) ), | 39 | connect( m_attach, SIGNAL( processExited( OProcess* ) ), |
39 | this, SLOT( slotExited( OProcess* ) ) ); | 40 | this, SLOT( slotExited( OProcess* ) ) ); |
40 | 41 | ||
41 | if ( m_attach->start() ) { | 42 | if ( m_attach->start() ) { |
42 | IOSerial::open(); | 43 | ret = IOSerial::open(); |
43 | } else { | 44 | } else { |
44 | qWarning("could not attach to device"); | 45 | qWarning("could not attach to device"); |
45 | delete m_attach; | 46 | delete m_attach; |
46 | m_attach = 0; | 47 | m_attach = 0; |
47 | } | 48 | } |
48 | } else { | 49 | } else { |
49 | // directly to the normal serial | 50 | // directly to the normal serial |
50 | // TODO: look first if the connection really exists. ( is set up ) | 51 | // TODO: look first if the connection really exists. ( is set up ) |
51 | 52 | ||
52 | IOSerial::open(); | 53 | ret =IOSerial::open(); |
53 | } | 54 | } |
55 | return ret; | ||
54 | } | 56 | } |
55 | 57 | ||
56 | void IOBt::reload( const Profile &config ) { | 58 | void IOBt::reload( const Profile &config ) { |
57 | m_device = config.readEntry("Device", BT_DEFAULT_DEVICE); | 59 | m_device = config.readEntry("Device", BT_DEFAULT_DEVICE); |
58 | m_mac = config.readEntry("Mac", BT_DEFAULT_MAC); | 60 | m_mac = config.readEntry("Mac", BT_DEFAULT_MAC); |
59 | m_baud = config.readNumEntry("Baud", BT_DEFAULT_BAUD); | 61 | m_baud = config.readNumEntry("Baud", BT_DEFAULT_BAUD); |
60 | m_parity = config.readNumEntry("Parity", BT_DEFAULT_PARITY); | 62 | m_parity = config.readNumEntry("Parity", BT_DEFAULT_PARITY); |
61 | m_dbits = config.readNumEntry("DataBits", BT_DEFAULT_DBITS); | 63 | m_dbits = config.readNumEntry("DataBits", BT_DEFAULT_DBITS); |
62 | m_sbits = config.readNumEntry("StopBits", BT_DEFAULT_SBITS); | 64 | m_sbits = config.readNumEntry("StopBits", BT_DEFAULT_SBITS); |
63 | m_flow = config.readNumEntry("Flow", BT_DEFAULT_FLOW); | 65 | m_flow = config.readNumEntry("Flow", BT_DEFAULT_FLOW); |
64 | } | 66 | } |
65 | 67 | ||
66 | 68 | ||
67 | QString IOBt::identifier() const { | 69 | QString IOBt::identifier() const { |
68 | return "bluetooth"; | 70 | return "bluetooth"; |
69 | } | 71 | } |
70 | 72 | ||
71 | QString IOBt::name() const { | 73 | QString IOBt::name() const { |
72 | return "BLuetooth IO Layer"; | 74 | return "BLuetooth IO Layer"; |
73 | } | 75 | } |
74 | 76 | ||
75 | void IOBt::slotExited( OProcess* proc ){ | 77 | void IOBt::slotExited( OProcess* proc ){ |
76 | close(); | 78 | close(); |
79 | delete proc; | ||
77 | } | 80 | } |
diff --git a/noncore/apps/opie-console/io_irda.cpp b/noncore/apps/opie-console/io_irda.cpp index 56a373c..b3b693f 100644 --- a/noncore/apps/opie-console/io_irda.cpp +++ b/noncore/apps/opie-console/io_irda.cpp | |||
@@ -1,62 +1,65 @@ | |||
1 | 1 | ||
2 | #include "io_irda.h" | 2 | #include "io_irda.h" |
3 | 3 | ||
4 | IOIrda::IOIrda( const Profile &config ) : IOSerial( config ) { | 4 | IOIrda::IOIrda( const Profile &config ) : IOSerial( config ) { |
5 | m_attach = 0; | 5 | m_attach = 0; |
6 | } | 6 | } |
7 | 7 | ||
8 | 8 | ||
9 | IOIrda::~IOIrda() { | 9 | IOIrda::~IOIrda() { |
10 | if ( m_attach ) { | 10 | if ( m_attach ) { |
11 | delete m_attach; | 11 | delete m_attach; |
12 | } | 12 | } |
13 | } | 13 | } |
14 | 14 | ||
15 | 15 | ||
16 | void IOIrda::close() { | 16 | void IOIrda::close() { |
17 | 17 | ||
18 | IOSerial::close(); | 18 | IOSerial::close(); |
19 | // still need error handling | 19 | // still need error handling |
20 | delete m_attach; | 20 | delete m_attach; |
21 | } | 21 | } |
22 | 22 | ||
23 | bool IOIrda::open() { | 23 | bool IOIrda::open() { |
24 | bool ret; | ||
24 | 25 | ||
25 | // irdaattach here | 26 | // irdaattach here |
26 | m_attach = new OProcess(); | 27 | m_attach = new OProcess(); |
27 | *m_attach << "irattach /dev/ttyS2 -s"; | 28 | *m_attach << "irattach /dev/ttyS2 -s"; |
28 | 29 | ||
29 | connect( m_attach, SIGNAL( processExited( OProcess* ) ), | 30 | connect( m_attach, SIGNAL( processExited( OProcess* ) ), |
30 | this, SLOT( slotExited( OProcess* ) ) ); | 31 | this, SLOT( slotExited( OProcess* ) ) ); |
31 | 32 | ||
32 | if ( m_attach->start() ) { | 33 | if ( m_attach->start() ) { |
33 | IOSerial::open(); | 34 | ret= IOSerial::open(); |
34 | } else { | 35 | } else { |
35 | // emit error!!! | 36 | // emit error!!! |
36 | qWarning("could not attach to device"); | 37 | qWarning("could not attach to device"); |
37 | delete m_attach; | 38 | delete m_attach; |
38 | m_attach = 0l; | 39 | m_attach = 0l; |
39 | } | 40 | } |
41 | return ret; | ||
40 | } | 42 | } |
41 | 43 | ||
42 | void IOIrda::reload( const Profile &config ) { | 44 | void IOIrda::reload( const Profile &config ) { |
43 | m_device = config.readEntry("Device", IRDA_DEFAULT_DEVICE); | 45 | m_device = config.readEntry("Device", IRDA_DEFAULT_DEVICE); |
44 | m_baud = config.readNumEntry("Baud", IRDA_DEFAULT_BAUD); | 46 | m_baud = config.readNumEntry("Baud", IRDA_DEFAULT_BAUD); |
45 | m_parity = config.readNumEntry("Parity", IRDA_DEFAULT_PARITY); | 47 | m_parity = config.readNumEntry("Parity", IRDA_DEFAULT_PARITY); |
46 | m_dbits = config.readNumEntry("DataBits", IRDA_DEFAULT_DBITS); | 48 | m_dbits = config.readNumEntry("DataBits", IRDA_DEFAULT_DBITS); |
47 | m_sbits = config.readNumEntry("StopBits", IRDA_DEFAULT_SBITS); | 49 | m_sbits = config.readNumEntry("StopBits", IRDA_DEFAULT_SBITS); |
48 | m_flow = config.readNumEntry("Flow", IRDA_DEFAULT_FLOW); | 50 | m_flow = config.readNumEntry("Flow", IRDA_DEFAULT_FLOW); |
49 | } | 51 | } |
50 | 52 | ||
51 | 53 | ||
52 | QString IOIrda::identifier() const { | 54 | QString IOIrda::identifier() const { |
53 | return "irda"; | 55 | return "irda"; |
54 | } | 56 | } |
55 | 57 | ||
56 | QString IOIrda::name() const { | 58 | QString IOIrda::name() const { |
57 | return "Irda IO Layer"; | 59 | return "Irda IO Layer"; |
58 | } | 60 | } |
59 | 61 | ||
60 | void IOIrda::slotExited(OProcess* proc ){ | 62 | void IOIrda::slotExited(OProcess* proc ){ |
61 | close(); | 63 | close(); |
64 | delete proc; | ||
62 | } | 65 | } |
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp index e2f4d12..02a3fa9 100644 --- a/noncore/apps/opie-console/mainwindow.cpp +++ b/noncore/apps/opie-console/mainwindow.cpp | |||
@@ -44,229 +44,253 @@ MainWindow::MainWindow(QWidget *parent, const char *name, WFlags) : QMainWindow( | |||
44 | m_manager->load(); | 44 | m_manager->load(); |
45 | 45 | ||
46 | initUI(); | 46 | initUI(); |
47 | populateProfiles(); | 47 | populateProfiles(); |
48 | } | 48 | } |
49 | void MainWindow::initUI() { | 49 | void 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 | m_console->insertSeparator(); | 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 | m_console->insertSeparator(); | ||
93 | /* save icon is not available */ | ||
94 | a = new QAction(tr("Save Connection"), | ||
95 | Resource::loadPixmap("save"), QString::null, | ||
96 | 0, this, 0 ); | ||
97 | a->addTo( m_console ); | ||
98 | connect(a, SIGNAL(activated() ), | ||
99 | this, SLOT(slotSaveSession() ) ); | ||
100 | m_console->insertSeparator(); | ||
101 | |||
92 | /* | 102 | /* |
93 | * connect action | 103 | * connect action |
94 | */ | 104 | */ |
95 | m_connect = new QAction(); | 105 | m_connect = new QAction(); |
96 | m_connect->setText( tr("Connect") ); | 106 | m_connect->setText( tr("Connect") ); |
97 | m_connect->addTo( m_console ); | 107 | m_connect->addTo( m_console ); |
98 | connect(m_connect, SIGNAL(activated() ), | 108 | connect(m_connect, SIGNAL(activated() ), |
99 | this, SLOT(slotConnect() ) ); | 109 | this, SLOT(slotConnect() ) ); |
100 | 110 | ||
101 | /* | 111 | /* |
102 | * disconnect action | 112 | * disconnect action |
103 | */ | 113 | */ |
104 | m_disconnect = new QAction(); | 114 | m_disconnect = new QAction(); |
105 | m_disconnect->setText( tr("Disconnect") ); | 115 | m_disconnect->setText( tr("Disconnect") ); |
106 | m_disconnect->addTo( m_console ); | 116 | m_disconnect->addTo( m_console ); |
107 | connect(m_disconnect, SIGNAL(activated() ), | 117 | connect(m_disconnect, SIGNAL(activated() ), |
108 | this, SLOT(slotDisconnect() ) ); | 118 | this, SLOT(slotDisconnect() ) ); |
109 | 119 | ||
110 | m_console->insertSeparator(); | 120 | m_console->insertSeparator(); |
111 | 121 | ||
112 | m_transfer = new QAction(); | 122 | m_transfer = new QAction(); |
113 | m_transfer->setText( tr("Transfer file...") ); | 123 | m_transfer->setText( tr("Transfer file...") ); |
114 | m_transfer->addTo( m_console ); | 124 | m_transfer->addTo( m_console ); |
115 | connect(m_transfer, SIGNAL(activated() ), | 125 | connect(m_transfer, SIGNAL(activated() ), |
116 | this, SLOT(slotTransfer() ) ); | 126 | this, SLOT(slotTransfer() ) ); |
117 | 127 | ||
118 | 128 | ||
119 | /* | 129 | /* |
120 | * fullscreen | 130 | * fullscreen |
121 | */ | 131 | */ |
122 | m_isFullscreen = false; | 132 | m_isFullscreen = false; |
123 | 133 | ||
124 | m_fullscreen = new QAction( tr("Full screen"), Resource::loadPixmap( "fullscreen" ) | 134 | m_fullscreen = new QAction( tr("Full screen"), Resource::loadPixmap( "fullscreen" ) |
125 | , QString::null, 0, this, 0); | 135 | , QString::null, 0, this, 0); |
126 | m_fullscreen->addTo( m_console ); | 136 | m_fullscreen->addTo( m_console ); |
127 | m_fullscreen->addTo( m_icons ); | 137 | m_fullscreen->addTo( m_icons ); |
128 | connect( m_fullscreen, SIGNAL( activated() ), | 138 | connect( m_fullscreen, SIGNAL( activated() ), |
129 | this, SLOT( slotFullscreen() ) ); | 139 | this, SLOT( slotFullscreen() ) ); |
130 | 140 | ||
131 | m_console->insertSeparator(); | 141 | m_console->insertSeparator(); |
132 | /* | 142 | /* |
133 | * terminate action | 143 | * terminate action |
134 | */ | 144 | */ |
135 | m_terminate = new QAction(); | 145 | m_terminate = new QAction(); |
136 | m_terminate->setText( tr("Terminate") ); | 146 | m_terminate->setText( tr("Terminate") ); |
137 | m_terminate->addTo( m_console ); | 147 | m_terminate->addTo( m_console ); |
138 | connect(m_terminate, SIGNAL(activated() ), | 148 | connect(m_terminate, SIGNAL(activated() ), |
139 | this, SLOT(slotTerminate() ) ); | 149 | this, SLOT(slotTerminate() ) ); |
140 | 150 | ||
141 | m_closewindow = new QAction(); | 151 | m_closewindow = new QAction(); |
142 | m_closewindow->setText( tr("Close Window") ); | 152 | m_closewindow->setText( tr("Close Window") ); |
143 | m_closewindow->addTo( m_console ); | 153 | m_closewindow->addTo( m_console ); |
144 | connect( m_closewindow, SIGNAL(activated() ), | 154 | connect( m_closewindow, SIGNAL(activated() ), |
145 | this, SLOT(slotClose() ) ); | 155 | this, SLOT(slotClose() ) ); |
146 | 156 | ||
147 | 157 | ||
148 | /* | 158 | /* |
149 | * script actions | 159 | * script actions |
150 | */ | 160 | */ |
151 | m_recordScript = new QAction(tr("Record Script"), QString::null, 0, this, 0); | 161 | m_recordScript = new QAction(tr("Record Script"), QString::null, 0, this, 0); |
152 | m_recordScript->addTo(m_scripts); | 162 | m_recordScript->addTo(m_scripts); |
153 | connect(m_recordScript, SIGNAL(activated()), this, SLOT(slotRecordScript())); | 163 | connect(m_recordScript, SIGNAL(activated()), this, SLOT(slotRecordScript())); |
154 | 164 | ||
155 | m_saveScript = new QAction(tr("Save Script"), QString::null, 0, this, 0); | 165 | m_saveScript = new QAction(tr("Save Script"), QString::null, 0, this, 0); |
156 | m_saveScript->addTo(m_scripts); | 166 | m_saveScript->addTo(m_scripts); |
157 | connect(m_saveScript, SIGNAL(activated()), this, SLOT(slotSaveScript())); | 167 | connect(m_saveScript, SIGNAL(activated()), this, SLOT(slotSaveScript())); |
158 | 168 | ||
159 | m_runScript = new QAction(tr("Run Script"), QString::null, 0, this, 0); | 169 | m_runScript = new QAction(tr("Run Script"), QString::null, 0, this, 0); |
160 | m_runScript->addTo(m_scripts); | 170 | m_runScript->addTo(m_scripts); |
161 | connect(m_runScript, SIGNAL(activated()), this, SLOT(slotRunScript())); | 171 | connect(m_runScript, SIGNAL(activated()), this, SLOT(slotRunScript())); |
162 | 172 | ||
163 | /* | 173 | /* |
164 | * action that open/closes the keyboard | 174 | * action that open/closes the keyboard |
165 | */ | 175 | */ |
166 | m_openKeys = new QAction (tr("Open Keyboard..."), | 176 | m_openKeys = new QAction (tr("Open Keyboard..."), |
167 | Resource::loadPixmap( "down" ), | 177 | Resource::loadPixmap( "down" ), |
168 | QString::null, 0, this, 0); | 178 | QString::null, 0, this, 0); |
169 | 179 | ||
170 | m_openKeys->setToggleAction(true); | 180 | m_openKeys->setToggleAction(true); |
171 | 181 | ||
172 | connect (m_openKeys, SIGNAL(toggled(bool)), | 182 | connect (m_openKeys, SIGNAL(toggled(bool)), |
173 | this, SLOT(slotOpenKeb(bool))); | 183 | this, SLOT(slotOpenKeb(bool))); |
174 | m_openKeys->addTo(m_icons); | 184 | m_openKeys->addTo(m_icons); |
175 | 185 | ||
176 | 186 | ||
177 | /* | 187 | /* |
178 | * action that open/closes the keyboard | 188 | * action that open/closes the keyboard |
179 | 189 | ||
180 | m_openButtons = new QAction ( tr( "Open Buttons..." ), | 190 | m_openButtons = new QAction ( tr( "Open Buttons..." ), |
181 | Resource::loadPixmap( "" ), | 191 | Resource::loadPixmap( "" ), |
182 | QString::null, 0, this, 0 ); | 192 | QString::null, 0, this, 0 ); |
183 | 193 | ||
184 | m_openButtons->setToggleAction( true ); | 194 | m_openButtons->setToggleAction( true ); |
185 | 195 | ||
186 | connect ( m_openButtons, SIGNAL( toggled( bool ) ), | 196 | connect ( m_openButtons, SIGNAL( toggled( bool ) ), |
187 | this, SLOT( slotOpenButtons( bool ) ) ); | 197 | this, SLOT( slotOpenButtons( bool ) ) ); |
188 | m_openButtons->addTo( m_icons ); | 198 | m_openButtons->addTo( m_icons ); |
189 | 199 | ||
190 | */ | 200 | */ |
191 | 201 | ||
192 | /* insert the submenu */ | 202 | /* insert the submenu */ |
193 | m_console->insertItem(tr("New from Profile"), m_sessionsPop, | 203 | m_console->insertItem(tr("New from Profile"), m_sessionsPop, |
194 | -1, 0); | 204 | -1, 0); |
195 | 205 | ||
196 | /* insert the connection menu */ | 206 | /* insert the connection menu */ |
197 | m_bar->insertItem( tr("Connection"), m_console ); | 207 | m_bar->insertItem( tr("Connection"), m_console ); |
198 | 208 | ||
199 | /* the scripts menu */ | 209 | /* the scripts menu */ |
200 | m_bar->insertItem( tr("Scripts"), m_scripts ); | 210 | m_bar->insertItem( tr("Scripts"), m_scripts ); |
201 | 211 | ||
202 | /* the settings menu */ | 212 | /* the settings menu */ |
203 | // m_bar->insertItem( tr("Settings"), m_settings ); | 213 | // m_bar->insertItem( tr("Settings"), m_settings ); |
204 | 214 | ||
205 | /* and the keyboard */ | 215 | /* and the keyboard */ |
206 | m_keyBar = new QToolBar(this); | 216 | m_keyBar = new QToolBar(this); |
207 | addToolBar( m_keyBar, "Keyboard", QMainWindow::Top, TRUE ); | 217 | addToolBar( m_keyBar, "Keyboard", QMainWindow::Top, TRUE ); |
208 | m_keyBar->setHorizontalStretchable( TRUE ); | 218 | m_keyBar->setHorizontalStretchable( TRUE ); |
209 | m_keyBar->hide(); | 219 | m_keyBar->hide(); |
210 | 220 | ||
211 | m_kb = new FunctionKeyboard(m_keyBar); | 221 | m_kb = new FunctionKeyboard(m_keyBar); |
212 | connect(m_kb, SIGNAL(keyPressed(FKey, ushort, ushort, bool)), | 222 | connect(m_kb, SIGNAL(keyPressed(FKey, ushort, ushort, bool)), |
213 | this, SLOT(slotKeyReceived(FKey, ushort, ushort, bool))); | 223 | this, SLOT(slotKeyReceived(FKey, ushort, ushort, bool))); |
214 | 224 | ||
215 | m_buttonBar = new QToolBar( this ); | 225 | m_buttonBar = new QToolBar( this ); |
216 | addToolBar( m_buttonBar, "Buttons", QMainWindow::Top, TRUE ); | 226 | addToolBar( m_buttonBar, "Buttons", QMainWindow::Top, TRUE ); |
217 | m_buttonBar->setHorizontalStretchable( TRUE ); | 227 | m_buttonBar->setHorizontalStretchable( TRUE ); |
218 | m_buttonBar->hide(); | 228 | m_buttonBar->hide(); |
219 | 229 | ||
220 | /* | 230 | /* |
221 | m_qb = new QuickButton( m_buttonBar ); | 231 | m_qb = new QuickButton( m_buttonBar ); |
222 | connect( m_qb, SIGNAL( keyPressed( ushort, ushort, bool, bool, bool) ), | 232 | connect( m_qb, SIGNAL( keyPressed( ushort, ushort, bool, bool, bool) ), |
223 | this, SLOT( slotKeyReceived( ushort, ushort, bool, bool, bool) ) ); | 233 | this, SLOT( slotKeyReceived( ushort, ushort, bool, bool, bool) ) ); |
224 | */ | 234 | */ |
235 | /* now add the copy and paste actions */ | ||
236 | a = new QAction(tr("Copy"), | ||
237 | Resource::loadPixmap("copy"), QString::null, | ||
238 | 0, this, 0 ); | ||
239 | //a->addTo( m_icons ); | ||
240 | connect( a, SIGNAL(activated() ), | ||
241 | this, SLOT(slotCopy() ) ); | ||
242 | |||
243 | a = new QAction(tr("Paste"), | ||
244 | Resource::loadPixmap("paste"), QString::null, | ||
245 | 0, this, 0 ); | ||
246 | a->addTo( m_icons ); | ||
247 | connect( a, SIGNAL(activated() ), | ||
248 | this, SLOT(slotPaste() ) ); | ||
225 | 249 | ||
226 | 250 | ||
227 | m_connect->setEnabled( false ); | 251 | m_connect->setEnabled( false ); |
228 | m_disconnect->setEnabled( false ); | 252 | m_disconnect->setEnabled( false ); |
229 | m_terminate->setEnabled( false ); | 253 | m_terminate->setEnabled( false ); |
230 | m_transfer->setEnabled( false ); | 254 | m_transfer->setEnabled( false ); |
231 | m_recordScript->setEnabled( false ); | 255 | m_recordScript->setEnabled( false ); |
232 | m_saveScript->setEnabled( false ); | 256 | m_saveScript->setEnabled( false ); |
233 | m_runScript->setEnabled( false ); | 257 | m_runScript->setEnabled( false ); |
234 | m_fullscreen->setEnabled( false ); | 258 | m_fullscreen->setEnabled( false ); |
235 | m_closewindow->setEnabled( false ); | 259 | m_closewindow->setEnabled( false ); |
236 | 260 | ||
237 | /* | 261 | /* |
238 | * connect to the menu activation | 262 | * connect to the menu activation |
239 | */ | 263 | */ |
240 | connect( m_sessionsPop, SIGNAL(activated( int ) ), | 264 | connect( m_sessionsPop, SIGNAL(activated( int ) ), |
241 | this, SLOT(slotProfile( int ) ) ); | 265 | this, SLOT(slotProfile( int ) ) ); |
242 | 266 | ||
243 | m_consoleWindow = new TabWidget( this, "blah"); | 267 | m_consoleWindow = new TabWidget( this, "blah"); |
244 | connect(m_consoleWindow, SIGNAL(activated(Session*) ), | 268 | connect(m_consoleWindow, SIGNAL(activated(Session*) ), |
245 | this, SLOT(slotSessionChanged(Session*) ) ); | 269 | this, SLOT(slotSessionChanged(Session*) ) ); |
246 | setCentralWidget( m_consoleWindow ); | 270 | setCentralWidget( m_consoleWindow ); |
247 | 271 | ||
248 | } | 272 | } |
249 | 273 | ||
250 | ProfileManager* MainWindow::manager() { | 274 | ProfileManager* MainWindow::manager() { |
251 | return m_manager; | 275 | return m_manager; |
252 | } | 276 | } |
253 | TabWidget* MainWindow::tabWidget() { | 277 | TabWidget* MainWindow::tabWidget() { |
254 | return m_consoleWindow; | 278 | return m_consoleWindow; |
255 | } | 279 | } |
256 | void MainWindow::populateProfiles() { | 280 | void MainWindow::populateProfiles() { |
257 | m_sessionsPop->clear(); | 281 | m_sessionsPop->clear(); |
258 | Profile::ValueList list = manager()->all(); | 282 | Profile::ValueList list = manager()->all(); |
259 | for (Profile::ValueList::Iterator it = list.begin(); it != list.end(); ++it ) { | 283 | for (Profile::ValueList::Iterator it = list.begin(); it != list.end(); ++it ) { |
260 | m_sessionsPop->insertItem( (*it).name() ); | 284 | m_sessionsPop->insertItem( (*it).name() ); |
261 | } | 285 | } |
262 | 286 | ||
263 | } | 287 | } |
264 | MainWindow::~MainWindow() { | 288 | MainWindow::~MainWindow() { |
265 | delete m_factory; | 289 | delete m_factory; |
266 | manager()->save(); | 290 | manager()->save(); |
267 | } | 291 | } |
268 | 292 | ||
269 | MetaFactory* MainWindow::factory() { | 293 | MetaFactory* MainWindow::factory() { |
270 | return m_factory; | 294 | return m_factory; |
271 | } | 295 | } |
272 | 296 | ||
@@ -494,48 +518,71 @@ void MainWindow::slotSessionChanged( Session* ses ) { | |||
494 | if(w) w->setFocus(); | 518 | if(w) w->setFocus(); |
495 | } | 519 | } |
496 | } | 520 | } |
497 | 521 | ||
498 | void MainWindow::slotFullscreen() { | 522 | void MainWindow::slotFullscreen() { |
499 | 523 | ||
500 | 524 | ||
501 | 525 | ||
502 | if ( m_isFullscreen ) { | 526 | if ( m_isFullscreen ) { |
503 | ( m_curSession->widgetStack() )->reparent( savedParentFullscreen, 0, QPoint(0,0), true ); | 527 | ( m_curSession->widgetStack() )->reparent( savedParentFullscreen, 0, QPoint(0,0), true ); |
504 | ( m_curSession->widgetStack() )->resize( savedParentFullscreen->width(), savedParentFullscreen->height() ); | 528 | ( m_curSession->widgetStack() )->resize( savedParentFullscreen->width(), savedParentFullscreen->height() ); |
505 | ( m_curSession->emulationHandler() )->cornerButton()->hide(); | 529 | ( m_curSession->emulationHandler() )->cornerButton()->hide(); |
506 | disconnect( ( m_curSession->emulationHandler() )->cornerButton(), SIGNAL( pressed() ), this, SLOT( slotFullscreen() ) ); | 530 | disconnect( ( m_curSession->emulationHandler() )->cornerButton(), SIGNAL( pressed() ), this, SLOT( slotFullscreen() ) ); |
507 | 531 | ||
508 | } else { | 532 | } else { |
509 | savedParentFullscreen = ( m_curSession->widgetStack() )->parentWidget(); | 533 | savedParentFullscreen = ( m_curSession->widgetStack() )->parentWidget(); |
510 | ( m_curSession->widgetStack() )->setFrameStyle( QFrame::NoFrame ); | 534 | ( m_curSession->widgetStack() )->setFrameStyle( QFrame::NoFrame ); |
511 | ( m_curSession->widgetStack() )->reparent( 0, WStyle_Tool | WStyle_Customize | WStyle_StaysOnTop | 535 | ( m_curSession->widgetStack() )->reparent( 0, WStyle_Tool | WStyle_Customize | WStyle_StaysOnTop |
512 | , QPoint(0,0), false ); | 536 | , QPoint(0,0), false ); |
513 | ( m_curSession->widgetStack() )->resize( qApp->desktop()->width(), qApp->desktop()->height() ); | 537 | ( m_curSession->widgetStack() )->resize( qApp->desktop()->width(), qApp->desktop()->height() ); |
514 | ( m_curSession->widgetStack() )->setFocus(); | 538 | ( m_curSession->widgetStack() )->setFocus(); |
515 | ( m_curSession->widgetStack() )->show(); | 539 | ( m_curSession->widgetStack() )->show(); |
516 | 540 | ||
517 | ( ( m_curSession->emulationHandler() )->cornerButton() )->show(); | 541 | ( ( m_curSession->emulationHandler() )->cornerButton() )->show(); |
518 | 542 | ||
519 | connect( ( m_curSession->emulationHandler() )->cornerButton(), SIGNAL( pressed() ), this, SLOT( slotFullscreen() ) ); | 543 | connect( ( m_curSession->emulationHandler() )->cornerButton(), SIGNAL( pressed() ), this, SLOT( slotFullscreen() ) ); |
520 | } | 544 | } |
521 | 545 | ||
522 | m_isFullscreen = !m_isFullscreen; | 546 | m_isFullscreen = !m_isFullscreen; |
523 | } | 547 | } |
524 | 548 | ||
525 | 549 | ||
526 | void MainWindow::slotKeyReceived(FKey k, ushort, ushort, bool pressed) { | 550 | void MainWindow::slotKeyReceived(FKey k, ushort, ushort, bool pressed) { |
527 | 551 | ||
528 | if ( m_curSession ) { | 552 | if ( m_curSession ) { |
529 | 553 | ||
530 | QEvent::Type state; | 554 | QEvent::Type state; |
531 | 555 | ||
532 | if (pressed) state = QEvent::KeyPress; | 556 | if (pressed) state = QEvent::KeyPress; |
533 | else state = QEvent::KeyRelease; | 557 | else state = QEvent::KeyRelease; |
534 | 558 | ||
535 | QKeyEvent ke(state, k.qcode, k.unicode, 0, QString(QChar(k.unicode))); | 559 | QKeyEvent ke(state, k.qcode, k.unicode, 0, QString(QChar(k.unicode))); |
536 | 560 | ||
537 | // where should i send this event? doesnt work sending it here | 561 | // where should i send this event? doesnt work sending it here |
538 | QApplication::sendEvent((QObject *)m_curSession->widget(), &ke); | 562 | QApplication::sendEvent((QObject *)m_curSession->widget(), &ke); |
539 | ke.ignore(); | 563 | ke.ignore(); |
540 | } | 564 | } |
541 | } | 565 | } |
566 | void MainWindow::slotCopy() { | ||
567 | if (!currentSession() ) return; | ||
568 | currentSession()->emulationHandler()->copy(); | ||
569 | } | ||
570 | void MainWindow::slotPaste() { | ||
571 | if (!currentSession() ) return; | ||
572 | currentSession()->emulationHandler()->paste(); | ||
573 | } | ||
574 | |||
575 | /* | ||
576 | * Save the session | ||
577 | */ | ||
578 | |||
579 | void MainWindow::slotSaveSession() { | ||
580 | if (!currentSession() ) { | ||
581 | QMessageBox::information(this, tr("Save Connection"), | ||
582 | tr("<qt>There is no Connection.</qt>"), 1 ); | ||
583 | return; | ||
584 | } | ||
585 | manager()->add( currentSession()->profile() ); | ||
586 | manager()->save(); | ||
587 | populateProfiles(); | ||
588 | } | ||
diff --git a/noncore/apps/opie-console/mainwindow.h b/noncore/apps/opie-console/mainwindow.h index 0f52e76..16b6252 100644 --- a/noncore/apps/opie-console/mainwindow.h +++ b/noncore/apps/opie-console/mainwindow.h | |||
@@ -25,96 +25,103 @@ class QuickButton; | |||
25 | 25 | ||
26 | class MainWindow : public QMainWindow { | 26 | class MainWindow : public QMainWindow { |
27 | Q_OBJECT | 27 | Q_OBJECT |
28 | public: | 28 | public: |
29 | MainWindow( QWidget *parent = 0, const char *name = 0, WFlags fl = 0 ); | 29 | MainWindow( QWidget *parent = 0, const char *name = 0, WFlags fl = 0 ); |
30 | ~MainWindow(); | 30 | ~MainWindow(); |
31 | 31 | ||
32 | /** | 32 | /** |
33 | * our factory to generate IOLayer and so on | 33 | * our factory to generate IOLayer and so on |
34 | * | 34 | * |
35 | */ | 35 | */ |
36 | MetaFactory* factory(); | 36 | MetaFactory* factory(); |
37 | 37 | ||
38 | /** | 38 | /** |
39 | * A session contains a QWidget*, | 39 | * A session contains a QWidget*, |
40 | * an IOLayer* and some infos for us | 40 | * an IOLayer* and some infos for us |
41 | */ | 41 | */ |
42 | Session* currentSession(); | 42 | Session* currentSession(); |
43 | 43 | ||
44 | /** | 44 | /** |
45 | * the session list | 45 | * the session list |
46 | */ | 46 | */ |
47 | QList<Session> sessions(); | 47 | QList<Session> sessions(); |
48 | 48 | ||
49 | /** | 49 | /** |
50 | * | 50 | * |
51 | */ | 51 | */ |
52 | ProfileManager* manager(); | 52 | ProfileManager* manager(); |
53 | TabWidget* tabWidget(); | 53 | TabWidget* tabWidget(); |
54 | 54 | ||
55 | private slots: | 55 | private slots: |
56 | void slotNew(); | 56 | void slotNew(); |
57 | void slotConnect(); | 57 | void slotConnect(); |
58 | void slotDisconnect(); | 58 | void slotDisconnect(); |
59 | void slotTerminate(); | 59 | void slotTerminate(); |
60 | void slotConfigure(); | 60 | void slotConfigure(); |
61 | void slotClose(); | 61 | void slotClose(); |
62 | void slotProfile(int); | 62 | void slotProfile(int); |
63 | void slotTransfer(); | 63 | void slotTransfer(); |
64 | void slotOpenKeb(bool); | 64 | void slotOpenKeb(bool); |
65 | void slotOpenButtons(bool); | 65 | void slotOpenButtons(bool); |
66 | void slotRecordScript(); | 66 | void slotRecordScript(); |
67 | void slotSaveScript(); | 67 | void slotSaveScript(); |
68 | void slotRunScript(); | 68 | void slotRunScript(); |
69 | void slotFullscreen(); | 69 | void slotFullscreen(); |
70 | void slotSessionChanged( Session* ); | 70 | void slotSessionChanged( Session* ); |
71 | void slotKeyReceived(FKey, ushort, ushort, bool); | 71 | void slotKeyReceived(FKey, ushort, ushort, bool); |
72 | 72 | ||
73 | /* what could these both slot do? */ | ||
74 | void slotCopy(); | ||
75 | void slotPaste(); | ||
76 | |||
77 | /* save the currentSession() to Profiles */ | ||
78 | void slotSaveSession(); | ||
79 | |||
73 | private: | 80 | private: |
74 | void initUI(); | 81 | void initUI(); |
75 | void populateProfiles(); | 82 | void populateProfiles(); |
76 | void create( const Profile& ); | 83 | void create( const Profile& ); |
77 | /** | 84 | /** |
78 | * the current session | 85 | * the current session |
79 | */ | 86 | */ |
80 | Session* m_curSession; | 87 | Session* m_curSession; |
81 | 88 | ||
82 | /** | 89 | /** |
83 | * the session list | 90 | * the session list |
84 | */ | 91 | */ |
85 | QList<Session> m_sessions; | 92 | QList<Session> m_sessions; |
86 | 93 | ||
87 | /** | 94 | /** |
88 | * the metafactory | 95 | * the metafactory |
89 | */ | 96 | */ |
90 | MetaFactory* m_factory; | 97 | MetaFactory* m_factory; |
91 | ProfileManager* m_manager; | 98 | ProfileManager* m_manager; |
92 | 99 | ||
93 | TabWidget* m_consoleWindow; | 100 | TabWidget* m_consoleWindow; |
94 | QToolBar* m_tool; | 101 | QToolBar* m_tool; |
95 | QToolBar* m_icons; | 102 | QToolBar* m_icons; |
96 | QToolBar* m_keyBar; | 103 | QToolBar* m_keyBar; |
97 | QToolBar* m_buttonBar; | 104 | QToolBar* m_buttonBar; |
98 | QMenuBar* m_bar; | 105 | QMenuBar* m_bar; |
99 | QPopupMenu* m_console; | 106 | QPopupMenu* m_console; |
100 | QPopupMenu* m_settings; | 107 | QPopupMenu* m_settings; |
101 | QPopupMenu* m_sessionsPop; | 108 | QPopupMenu* m_sessionsPop; |
102 | QPopupMenu* m_scripts; | 109 | QPopupMenu* m_scripts; |
103 | QAction* m_connect; | 110 | QAction* m_connect; |
104 | QAction* m_disconnect; | 111 | QAction* m_disconnect; |
105 | QAction* m_terminate; | 112 | QAction* m_terminate; |
106 | QAction* m_transfer; | 113 | QAction* m_transfer; |
107 | QAction* m_setProfiles; | 114 | QAction* m_setProfiles; |
108 | QAction* m_openKeys; | 115 | QAction* m_openKeys; |
109 | QAction* m_openButtons; | 116 | QAction* m_openButtons; |
110 | QAction* m_recordScript; | 117 | QAction* m_recordScript; |
111 | QAction* m_saveScript; | 118 | QAction* m_saveScript; |
112 | QAction* m_runScript; | 119 | QAction* m_runScript; |
113 | QAction* m_fullscreen; | 120 | QAction* m_fullscreen; |
114 | QAction* m_closewindow; | 121 | QAction* m_closewindow; |
115 | 122 | ||
116 | FunctionKeyboard *m_kb; | 123 | FunctionKeyboard *m_kb; |
117 | QuickButton *m_qb; | 124 | QuickButton *m_qb; |
118 | bool m_isFullscreen; | 125 | bool m_isFullscreen; |
119 | 126 | ||
120 | QWidget* savedParentFullscreen; | 127 | QWidget* savedParentFullscreen; |
diff --git a/noncore/apps/opie-console/opie-console.control b/noncore/apps/opie-console/opie-console.control index d41ef58..8541d22 100644 --- a/noncore/apps/opie-console/opie-console.control +++ b/noncore/apps/opie-console/opie-console.control | |||
@@ -1,10 +1,10 @@ | |||
1 | Files: bin/opie-console apps/Applications/opie-console.desktop pics/console/* etc/keytabs/default.Keytab | 1 | Files: bin/opie-console apps/Applications/opie-console.desktop pics/console/* etc/keytabs/default.Keytab bin/sz bin/rz |
2 | Priority: optional | 2 | Priority: optional |
3 | Section: opie/applications | 3 | Section: opie/applications |
4 | Maintainer: Opie team <opie@handhelds.org> | 4 | Maintainer: Opie team <opie@handhelds.org> |
5 | Architecture: arm | 5 | Architecture: arm |
6 | Version: 0.6-$SUB_VERSION | 6 | Version: 0.6-$SUB_VERSION |
7 | Depends: qpe-base ($QPE_VERSION), libopie ($QPE_VERSION), opie-console-help-en | 7 | Depends: qpe-base ($QPE_VERSION), libopie ($QPE_VERSION), opie-console-help-en |
8 | License: GPL | 8 | License: GPL |
9 | Description: Opie terminal app | 9 | Description: Opie terminal app |
10 | 10 | ||
diff --git a/noncore/apps/opie-console/profilemanager.cpp b/noncore/apps/opie-console/profilemanager.cpp index 5d39d96..cad2567 100644 --- a/noncore/apps/opie-console/profilemanager.cpp +++ b/noncore/apps/opie-console/profilemanager.cpp | |||
@@ -48,90 +48,94 @@ void ProfileManager::load() { | |||
48 | 48 | ||
49 | /* now add it */ | 49 | /* now add it */ |
50 | m_list.append( prof ); | 50 | m_list.append( prof ); |
51 | } | 51 | } |
52 | 52 | ||
53 | } | 53 | } |
54 | void ProfileManager::clear() { | 54 | void ProfileManager::clear() { |
55 | m_list.clear(); | 55 | m_list.clear(); |
56 | } | 56 | } |
57 | Profile::ValueList ProfileManager::all()const { | 57 | Profile::ValueList ProfileManager::all()const { |
58 | return m_list; | 58 | return m_list; |
59 | } | 59 | } |
60 | /* | 60 | /* |
61 | * Our goal is to create a Session | 61 | * Our goal is to create a Session |
62 | * We will load the the IOLayer and EmulationLayer | 62 | * We will load the the IOLayer and EmulationLayer |
63 | * from the factory | 63 | * from the factory |
64 | * we will generate a QWidgetStack | 64 | * we will generate a QWidgetStack |
65 | * add a dummy widget with layout | 65 | * add a dummy widget with layout |
66 | * add "Widget" to the layout | 66 | * add "Widget" to the layout |
67 | * add the dummy to the stack | 67 | * add the dummy to the stack |
68 | * raise the dummy | 68 | * raise the dummy |
69 | * call session->connect(= | 69 | * call session->connect(= |
70 | * this way we only need to reparent | 70 | * this way we only need to reparent |
71 | * in TabWidget | 71 | * in TabWidget |
72 | */ | 72 | */ |
73 | Session* ProfileManager::fromProfile( const Profile& prof, QWidget* parent) { | 73 | Session* ProfileManager::fromProfile( const Profile& prof, QWidget* parent) { |
74 | /* TEST PROFILE!!! | 74 | /* TEST PROFILE!!! |
75 | Profile prof; | 75 | Profile prof; |
76 | QString str = "/dev/ttyS0"; | 76 | QString str = "/dev/ttyS0"; |
77 | prof.writeEntry("Device",str ); | 77 | prof.writeEntry("Device",str ); |
78 | prof.writeEntry("Baud", 115200 ); | 78 | prof.writeEntry("Baud", 115200 ); |
79 | prof.setIOLayer("serial"); | 79 | prof.setIOLayer("serial"); |
80 | prof.setName( "test"); | 80 | prof.setName( "test"); |
81 | */ | 81 | */ |
82 | Session* session = new Session(); | 82 | Session* session = new Session(); |
83 | session->setName( prof.name() ); | 83 | session->setName( prof.name() ); |
84 | /* translate the internal name to the external */ | 84 | /* translate the internal name to the external */ |
85 | session->setIOLayer(m_fact->newIOLayer( m_fact->external(prof.ioLayerName()) , | 85 | session->setIOLayer(m_fact->newIOLayer( m_fact->external(prof.ioLayerName()) , |
86 | prof) ); | 86 | prof) ); |
87 | 87 | ||
88 | QWidgetStack *stack = new QWidgetStack( parent ); | 88 | QWidgetStack *stack = new QWidgetStack( parent ); |
89 | session->setWidgetStack( stack ); | 89 | session->setWidgetStack( stack ); |
90 | QWidget* dummy = new QHBox( stack ); | 90 | QWidget* dummy = new QHBox( stack ); |
91 | stack->raiseWidget( dummy ); | 91 | stack->raiseWidget( dummy ); |
92 | 92 | ||
93 | EmulationHandler* handler = new EmulationHandler(prof,dummy ); | 93 | EmulationHandler* handler = new EmulationHandler(prof,dummy ); |
94 | session->setEmulationHandler( handler ); | 94 | session->setEmulationHandler( handler ); |
95 | session->connect(); | 95 | session->connect(); |
96 | session->setProfile( prof ); | ||
96 | 97 | ||
97 | return session; | 98 | return session; |
98 | } | 99 | } |
99 | void ProfileManager::save( ) { | 100 | void ProfileManager::save( ) { |
100 | QFile::remove( (QString(getenv("HOME") )+ "/Settings/opie-console-profiles.conf" ) ); | 101 | QFile::remove( (QString(getenv("HOME") )+ "/Settings/opie-console-profiles.conf" ) ); |
101 | ProfileConfig conf("opie-console-profiles"); | 102 | ProfileConfig conf("opie-console-profiles"); |
102 | Profile::ValueList::Iterator it2; | 103 | Profile::ValueList::Iterator it2; |
103 | for (it2 = m_list.begin(); it2 != m_list.end(); ++it2 ) { | 104 | for (it2 = m_list.begin(); it2 != m_list.end(); ++it2 ) { |
104 | conf.setGroup( (*it2).name() ); | 105 | conf.setGroup( (*it2).name() ); |
105 | 106 | ||
106 | /* now the config stuff */ | 107 | /* now the config stuff */ |
107 | QMap<QString, QString> map = (*it2).conf(); | 108 | QMap<QString, QString> map = (*it2).conf(); |
108 | QMap<QString, QString>::Iterator confIt; | 109 | QMap<QString, QString>::Iterator confIt; |
109 | for ( confIt = map.begin(); confIt != map.end(); ++confIt ) { | 110 | for ( confIt = map.begin(); confIt != map.end(); ++confIt ) { |
110 | conf.writeEntry( confIt.key(), confIt.data() ); | 111 | conf.writeEntry( confIt.key(), confIt.data() ); |
111 | } | 112 | } |
112 | 113 | ||
113 | conf.writeEntry( "name", (*it2).name() ); | 114 | conf.writeEntry( "name", (*it2).name() ); |
114 | QString str = QString::fromUtf8( (*it2).ioLayerName() ); | 115 | QString str = QString::fromUtf8( (*it2).ioLayerName() ); |
115 | 116 | ||
116 | conf.writeEntry( "iolayer", str ); | 117 | conf.writeEntry( "iolayer", str ); |
117 | conf.writeEntry( "term", QString::fromUtf8( (*it2).terminalName() ) ); | 118 | conf.writeEntry( "term", QString::fromUtf8( (*it2).terminalName() ) ); |
118 | conf.writeEntry( "autoConnect", (*it2).autoConnect()); | 119 | conf.writeEntry( "autoConnect", (*it2).autoConnect()); |
119 | conf.writeEntry( "back", (*it2).background() ); | 120 | conf.writeEntry( "back", (*it2).background() ); |
120 | conf.writeEntry( "fore", (*it2).foreground() ); | 121 | conf.writeEntry( "fore", (*it2).foreground() ); |
121 | conf.writeEntry( "terminal", (*it2).terminal() ); | 122 | conf.writeEntry( "terminal", (*it2).terminal() ); |
122 | } | 123 | } |
123 | } | 124 | } |
125 | void ProfileManager::add( const Profile& prof) { | ||
126 | m_list.append( prof ); | ||
127 | } | ||
124 | void ProfileManager::setProfiles( const Profile::ValueList& list ) { | 128 | void ProfileManager::setProfiles( const Profile::ValueList& list ) { |
125 | m_list = list; | 129 | m_list = list; |
126 | }; | 130 | }; |
127 | Profile ProfileManager::profile( const QString& name )const { | 131 | Profile ProfileManager::profile( const QString& name )const { |
128 | Profile prof; | 132 | Profile prof; |
129 | Profile::ValueList::ConstIterator it; | 133 | Profile::ValueList::ConstIterator it; |
130 | for ( it = m_list.begin(); it != m_list.end(); ++it ) { | 134 | for ( it = m_list.begin(); it != m_list.end(); ++it ) { |
131 | if ( name == (*it).name() ) { | 135 | if ( name == (*it).name() ) { |
132 | prof = (*it); | 136 | prof = (*it); |
133 | break; | 137 | break; |
134 | } | 138 | } |
135 | } | 139 | } |
136 | return prof; | 140 | return prof; |
137 | } | 141 | } |
diff --git a/noncore/apps/opie-console/receive_layer.cpp b/noncore/apps/opie-console/receive_layer.cpp index 05e2c67..bbde339 100644 --- a/noncore/apps/opie-console/receive_layer.cpp +++ b/noncore/apps/opie-console/receive_layer.cpp | |||
@@ -1,33 +1,34 @@ | |||
1 | #include <unistd.h> | 1 | #include <unistd.h> |
2 | 2 | ||
3 | #include <qdir.h> | ||
3 | #include <qstring.h> | 4 | #include <qstring.h> |
4 | #include <qfile.h> | 5 | #include <qfile.h> |
5 | 6 | ||
6 | #include "io_layer.h" | 7 | #include "io_layer.h" |
7 | #include "receive_layer.h" | 8 | #include "receive_layer.h" |
8 | 9 | ||
9 | ReceiveLayer::ReceiveLayer( IOLayer* lay, const QString& startDir ) | 10 | ReceiveLayer::ReceiveLayer( IOLayer* lay, const QString& startDir ) |
10 | : QObject(), m_curDir( startDir ), m_layer(lay ) | 11 | : QObject(), m_curDir( startDir ), m_layer(lay ) |
11 | { | 12 | { |
12 | 13 | ||
13 | } | 14 | } |
14 | ReceiveLayer::~ReceiveLayer() { | 15 | ReceiveLayer::~ReceiveLayer() { |
15 | 16 | ||
16 | } | 17 | } |
17 | IOLayer* ReceiveLayer::layer() { | 18 | IOLayer* ReceiveLayer::layer() { |
18 | return m_layer; | 19 | return m_layer; |
19 | } | 20 | } |
20 | QString ReceiveLayer::currentDir()const{ | 21 | QString ReceiveLayer::currentDir()const{ |
21 | if (m_curDir.isEmpty() ) | 22 | if (m_curDir.isEmpty() ) |
22 | return QString::fromLocal8Bit( ::getwd(NULL) ); | 23 | return QDir::currentDirPath(); |
23 | return m_curDir; | 24 | return m_curDir; |
24 | } | 25 | } |
25 | void ReceiveLayer::changeDir( const QString& str) { | 26 | void ReceiveLayer::changeDir( const QString& str) { |
26 | ::chdir( str.latin1() ); | 27 | ::chdir( str.latin1() ); |
27 | } | 28 | } |
28 | void ReceiveLayer::receive( const QString& dir, Mode, Features ) { | 29 | void ReceiveLayer::receive( const QString& dir, Mode, Features ) { |
29 | receive( dir ); | 30 | receive( dir ); |
30 | } | 31 | } |
31 | void ReceiveLayer::cancel() { | 32 | void ReceiveLayer::cancel() { |
32 | 33 | ||
33 | } | 34 | } |
diff --git a/noncore/apps/opie-console/session.cpp b/noncore/apps/opie-console/session.cpp index 03d0fcd..c166d95 100644 --- a/noncore/apps/opie-console/session.cpp +++ b/noncore/apps/opie-console/session.cpp | |||
@@ -1,100 +1,107 @@ | |||
1 | 1 | ||
2 | 2 | ||
3 | #include "profile.h" | ||
3 | #include "io_layer.h" | 4 | #include "io_layer.h" |
4 | #include "file_layer.h" | 5 | #include "file_layer.h" |
5 | #include "emulation_handler.h" | 6 | #include "emulation_handler.h" |
6 | #include "session.h" | 7 | #include "session.h" |
7 | 8 | ||
8 | 9 | ||
9 | Session::Session() { | 10 | Session::Session() { |
10 | m_widget = 0l; | 11 | m_widget = 0l; |
11 | m_layer = 0l; | 12 | m_layer = 0l; |
12 | m_emu = 0l; | 13 | m_emu = 0l; |
13 | } | 14 | } |
14 | Session::Session( const QString& na, QWidgetStack* widget, IOLayer* lay) | 15 | Session::Session( const QString& na, QWidgetStack* widget, IOLayer* lay) |
15 | : m_name( na ), m_widget( widget ), m_layer( lay ) | 16 | : m_name( na ), m_widget( widget ), m_layer( lay ) |
16 | { | 17 | { |
17 | // m_widLay = 0l; | 18 | // m_widLay = 0l; |
18 | // m_emLay = 0l; | 19 | // m_emLay = 0l; |
19 | m_emu = 0l; | 20 | m_emu = 0l; |
20 | } | 21 | } |
21 | Session::~Session() { | 22 | Session::~Session() { |
22 | delete m_layer; | 23 | delete m_layer; |
23 | delete m_emu; | 24 | delete m_emu; |
24 | delete m_widget; | 25 | delete m_widget; |
25 | /* the widget layer should be deleted by the m_widget */ | 26 | /* the widget layer should be deleted by the m_widget */ |
26 | } | 27 | } |
27 | QString Session::name()const { | 28 | QString Session::name()const { |
28 | return m_name; | 29 | return m_name; |
29 | } | 30 | } |
30 | QWidgetStack* Session::widgetStack() { | 31 | QWidgetStack* Session::widgetStack() { |
31 | return m_widget; | 32 | return m_widget; |
32 | } | 33 | } |
33 | IOLayer* Session::layer() { | 34 | IOLayer* Session::layer() { |
34 | return m_layer; | 35 | return m_layer; |
35 | } | 36 | } |
36 | EmulationHandler* Session::emulationHandler() { | 37 | EmulationHandler* Session::emulationHandler() { |
37 | return m_emu; | 38 | return m_emu; |
38 | } | 39 | } |
39 | QWidget* Session::widget() { | 40 | QWidget* Session::widget() { |
40 | if (!m_emu ) | 41 | if (!m_emu ) |
41 | return 0l; | 42 | return 0l; |
42 | 43 | ||
43 | return m_emu->widget(); | 44 | return m_emu->widget(); |
44 | } | 45 | } |
46 | Profile Session::profile()const { | ||
47 | return m_prof; | ||
48 | } | ||
45 | /* | 49 | /* |
46 | WidgetLayer* Session::emulationWidget() { | 50 | WidgetLayer* Session::emulationWidget() { |
47 | return m_widLay; | 51 | return m_widLay; |
48 | } | 52 | } |
49 | */ | 53 | */ |
50 | void Session::connect() { | 54 | void Session::connect() { |
51 | if ( !m_layer || !m_emu ) | 55 | if ( !m_layer || !m_emu ) |
52 | return; | 56 | return; |
53 | 57 | ||
54 | QObject::connect(m_layer, SIGNAL(received(const QByteArray&) ), | 58 | QObject::connect(m_layer, SIGNAL(received(const QByteArray&) ), |
55 | m_emu, SLOT(recv(const QByteArray&) ) ); | 59 | m_emu, SLOT(recv(const QByteArray&) ) ); |
56 | QObject::connect(m_emu, SIGNAL(send(const QByteArray&) ), | 60 | QObject::connect(m_emu, SIGNAL(send(const QByteArray&) ), |
57 | m_layer, SLOT(send(const QByteArray&) ) ); | 61 | m_layer, SLOT(send(const QByteArray&) ) ); |
58 | QObject::connect(m_emu, SIGNAL(changeSize(int, int) ), | 62 | QObject::connect(m_emu, SIGNAL(changeSize(int, int) ), |
59 | m_layer, SLOT(setSize(int, int) ) ); | 63 | m_layer, SLOT(setSize(int, int) ) ); |
60 | } | 64 | } |
61 | 65 | ||
62 | void Session::disconnect() { | 66 | void Session::disconnect() { |
63 | 67 | ||
64 | if ( !m_layer || !m_emu ) | 68 | if ( !m_layer || !m_emu ) |
65 | return; | 69 | return; |
66 | 70 | ||
67 | QObject::disconnect(m_layer, SIGNAL(received(const QByteArray&) ), | 71 | QObject::disconnect(m_layer, SIGNAL(received(const QByteArray&) ), |
68 | m_emu, SLOT(recv(const QByteArray&) ) ); | 72 | m_emu, SLOT(recv(const QByteArray&) ) ); |
69 | QObject::disconnect(m_emu, SIGNAL(send(const QByteArray&) ), | 73 | QObject::disconnect(m_emu, SIGNAL(send(const QByteArray&) ), |
70 | m_layer, SLOT(send(const QByteArray&) ) ); | 74 | m_layer, SLOT(send(const QByteArray&) ) ); |
71 | } | 75 | } |
72 | 76 | ||
73 | void Session::setName( const QString& na){ | 77 | void Session::setName( const QString& na){ |
74 | m_name = na; | 78 | m_name = na; |
75 | } | 79 | } |
76 | 80 | ||
77 | void Session::setWidgetStack( QWidgetStack* wid ) { | 81 | void Session::setWidgetStack( QWidgetStack* wid ) { |
78 | delete m_emu; | 82 | delete m_emu; |
79 | m_emu = 0l; | 83 | m_emu = 0l; |
80 | delete m_widget; | 84 | delete m_widget; |
81 | /* the EmulationLayer was destroyed... */ | 85 | /* the EmulationLayer was destroyed... */ |
82 | 86 | ||
83 | m_widget = wid; | 87 | m_widget = wid; |
84 | } | 88 | } |
85 | void Session::setIOLayer( IOLayer* lay ) { | 89 | void Session::setIOLayer( IOLayer* lay ) { |
86 | delete m_layer; | 90 | delete m_layer; |
87 | m_layer = lay; | 91 | m_layer = lay; |
88 | } | 92 | } |
89 | 93 | ||
90 | void Session::setEmulationHandler( EmulationHandler* lay ) { | 94 | void Session::setEmulationHandler( EmulationHandler* lay ) { |
91 | delete m_emu; | 95 | delete m_emu; |
92 | m_emu = lay; | 96 | m_emu = lay; |
93 | } | 97 | } |
98 | void Session::setProfile( const Profile& prof ) { | ||
99 | m_prof = prof; | ||
100 | } | ||
94 | /* | 101 | /* |
95 | void Session::setEmulationWidget( WidgetLayer* lay ) { | 102 | void Session::setEmulationWidget( WidgetLayer* lay ) { |
96 | delete m_widLay; | 103 | delete m_widLay; |
97 | m_widLay = lay; | 104 | m_widLay = lay; |
98 | } | 105 | } |
99 | */ | 106 | */ |
100 | 107 | ||
diff --git a/noncore/apps/opie-console/session.h b/noncore/apps/opie-console/session.h index 83b2046..f60a6c0 100644 --- a/noncore/apps/opie-console/session.h +++ b/noncore/apps/opie-console/session.h | |||
@@ -1,72 +1,77 @@ | |||
1 | #ifndef OPIE_SESSION_H | 1 | #ifndef OPIE_SESSION_H |
2 | #define OPIE_SESSION_H | 2 | #define OPIE_SESSION_H |
3 | 3 | ||
4 | #include <qwidgetstack.h> | 4 | #include <qwidgetstack.h> |
5 | 5 | ||
6 | #include "profile.h" | ||
7 | |||
6 | class IOLayer; | 8 | class IOLayer; |
7 | class EmulationHandler; | 9 | class EmulationHandler; |
8 | /** | 10 | /** |
9 | * This is a Session. A session contains | 11 | * This is a Session. A session contains |
10 | * a QWidget pointer and a IOLayer | 12 | * a QWidget pointer and a IOLayer |
11 | * Imagine a session like a collection of what | 13 | * Imagine a session like a collection of what |
12 | * is needed to show your widget in a tab ;) | 14 | * is needed to show your widget in a tab ;) |
13 | */ | 15 | */ |
14 | class Session { | 16 | class Session { |
15 | public: | 17 | public: |
16 | /** | 18 | /** |
17 | * c'tor with widget and layer | 19 | * c'tor with widget and layer |
18 | * ownership get's transfered | 20 | * ownership get's transfered |
19 | */ | 21 | */ |
20 | Session(); | 22 | Session(); |
21 | Session( const QString&, QWidgetStack* widget, IOLayer* ); | 23 | Session( const QString&, QWidgetStack* widget, IOLayer* ); |
22 | ~Session(); | 24 | ~Session(); |
23 | 25 | ||
24 | /** | 26 | /** |
25 | * return the name of the session | 27 | * return the name of the session |
26 | */ | 28 | */ |
27 | QString name()const; | 29 | QString name()const; |
28 | 30 | ||
29 | /** | 31 | /** |
30 | * return the widgetstack | 32 | * return the widgetstack |
31 | * this is used to be semi modal | 33 | * this is used to be semi modal |
32 | * for FileTransfer | 34 | * for FileTransfer |
33 | * | 35 | * |
34 | * semi modal == SessionModal | 36 | * semi modal == SessionModal |
35 | */ | 37 | */ |
36 | QWidgetStack* widgetStack(); | 38 | QWidgetStack* widgetStack(); |
37 | QWidget* widget(); | 39 | QWidget* widget(); |
38 | 40 | ||
39 | /** | 41 | /** |
40 | * return the layer | 42 | * return the layer |
41 | */ | 43 | */ |
42 | IOLayer* layer(); | 44 | IOLayer* layer(); |
43 | 45 | ||
44 | EmulationHandler* emulationHandler(); | 46 | EmulationHandler* emulationHandler(); |
47 | Profile profile()const; | ||
45 | 48 | ||
46 | /* | 49 | /* |
47 | * connects the data flow from | 50 | * connects the data flow from |
48 | * the IOLayer to the EmulationLayer | 51 | * the IOLayer to the EmulationLayer |
49 | */ | 52 | */ |
50 | void connect(); | 53 | void connect(); |
51 | 54 | ||
52 | /* | 55 | /* |
53 | * disconnect the dataflow | 56 | * disconnect the dataflow |
54 | * this will be done for ft | 57 | * this will be done for ft |
55 | */ | 58 | */ |
56 | void disconnect(); | 59 | void disconnect(); |
57 | 60 | ||
58 | void setWidgetStack( QWidgetStack* widget ); | 61 | void setWidgetStack( QWidgetStack* widget ); |
59 | void setEmulationHandler( EmulationHandler* lay ); | 62 | void setEmulationHandler( EmulationHandler* lay ); |
60 | void setIOLayer( IOLayer* ); | 63 | void setIOLayer( IOLayer* ); |
61 | void setName( const QString& ); | 64 | void setName( const QString& ); |
65 | void setProfile( const Profile& ); | ||
62 | 66 | ||
63 | private: | 67 | private: |
64 | QString m_name; | 68 | QString m_name; |
65 | QWidgetStack* m_widget; | 69 | QWidgetStack* m_widget; |
66 | IOLayer* m_layer; | 70 | IOLayer* m_layer; |
67 | EmulationHandler* m_emu; | 71 | EmulationHandler* m_emu; |
68 | bool m_connected; | 72 | bool m_connected : 1; |
73 | Profile m_prof; | ||
69 | 74 | ||
70 | }; | 75 | }; |
71 | 76 | ||
72 | #endif | 77 | #endif |