summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/embeddedkonsole/konsole.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/core/apps/embeddedkonsole/konsole.cpp b/core/apps/embeddedkonsole/konsole.cpp
index adcfb7f..f13d0c9 100644
--- a/core/apps/embeddedkonsole/konsole.cpp
+++ b/core/apps/embeddedkonsole/konsole.cpp
@@ -1,885 +1,884 @@
1/* ---------------------------------------------------------------------- */ 1/* ---------------------------------------------------------------------- */
2/* */ 2/* */
3/* [main.C] Konsole */ 3/* [main.C] Konsole */
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. */ 9/* This file is part of Konsole, an X terminal. */
10/* */ 10/* */
11/* The material contained in here more or less directly orginates from */ 11/* The material contained in here more or less directly orginates from */
12/* kvt, which is copyright (c) 1996 by Matthias Ettrich <ettrich@kde.org> */ 12/* kvt, which is copyright (c) 1996 by Matthias Ettrich <ettrich@kde.org> */
13/* */ 13/* */
14/* ---------------------------------------------------------------------- */ 14/* ---------------------------------------------------------------------- */
15/* */ 15/* */
16/* Ported Konsole to Qt/Embedded */ 16/* Ported Konsole to Qt/Embedded */
17/* */ 17/* */
18/* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */ 18/* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */
19/* */ 19/* */
20/* -------------------------------------------------------------------------- */ 20/* -------------------------------------------------------------------------- */
21// enhancements added by L.J. Potter <ljp@llornkcor.com> 21// enhancements added by L.J. Potter <ljp@llornkcor.com>
22 22
23#include <qpe/resource.h> 23#include <qpe/resource.h>
24 24
25#include <qdir.h> 25#include <qdir.h>
26#include <qevent.h> 26#include <qevent.h>
27#include <qdragobject.h> 27#include <qdragobject.h>
28#include <qobjectlist.h> 28#include <qobjectlist.h>
29#include <qtoolbutton.h> 29#include <qtoolbutton.h>
30#include <qpe/qpetoolbar.h> 30#include <qpe/qpetoolbar.h>
31#include <qpushbutton.h> 31#include <qpushbutton.h>
32#include <qfontdialog.h> 32#include <qfontdialog.h>
33#include <qglobal.h> 33#include <qglobal.h>
34#include <qpainter.h> 34#include <qpainter.h>
35#include <qpe/qpemenubar.h> 35#include <qpe/qpemenubar.h>
36#include <qmessagebox.h> 36#include <qmessagebox.h>
37#include <qaction.h> 37#include <qaction.h>
38#include <qapplication.h> 38#include <qapplication.h>
39#include <qfontmetrics.h> 39#include <qfontmetrics.h>
40#include <qcombobox.h> 40#include <qcombobox.h>
41#include <qevent.h> 41#include <qevent.h>
42#include <qtabwidget.h> 42#include <qtabwidget.h>
43#include <qtabbar.h> 43#include <qtabbar.h>
44#include <qpe/config.h> 44#include <qpe/config.h>
45#include <qstringlist.h> 45#include <qstringlist.h>
46#include <qpalette.h> 46#include <qpalette.h>
47 47
48#include <sys/wait.h> 48#include <sys/wait.h>
49#include <stdio.h> 49#include <stdio.h>
50#include <stdlib.h> 50#include <stdlib.h>
51#include <assert.h> 51#include <assert.h>
52 52
53#include "konsole.h" 53#include "konsole.h"
54#include "keytrans.h" 54#include "keytrans.h"
55#include "commandeditdialog.h" 55#include "commandeditdialog.h"
56 56
57class EKNumTabBar : public QTabBar { 57class EKNumTabBar : public QTabBar {
58public: 58public:
59 void numberTabs() 59 void numberTabs()
60 { 60 {
61 // Yes, it really is this messy. QTabWidget needs functions 61 // Yes, it really is this messy. QTabWidget needs functions
62 // that provide acces to tabs in a sequential way. 62 // that provide acces to tabs in a sequential way.
63 int m=INT_MIN; 63 int m=INT_MIN;
64 for (int i=0; i<count(); i++) { 64 for (int i=0; i<count(); i++) {
65 QTab* left=0; 65 QTab* left=0;
66 QListIterator<QTab> it(*tabList()); 66 QListIterator<QTab> it(*tabList());
67 int x=INT_MAX; 67 int x=INT_MAX;
68 for( QTab* t; (t=it.current()); ++it ) { 68 for( QTab* t; (t=it.current()); ++it ) {
69 int tx = t->rect().x(); 69 int tx = t->rect().x();
70 if ( tx<x && tx>m ) { 70 if ( tx<x && tx>m ) {
71 x = tx; 71 x = tx;
72 left = t; 72 left = t;
73 } 73 }
74 } 74 }
75 if ( left ) { 75 if ( left ) {
76 left->setText(QString::number(i+1)); 76 left->setText(QString::number(i+1));
77 m = left->rect().x(); 77 m = left->rect().x();
78 } 78 }
79 } 79 }
80 } 80 }
81}; 81};
82 82
83class EKNumTabWidget : public QTabWidget { 83class EKNumTabWidget : public QTabWidget {
84public: 84public:
85 EKNumTabWidget(QWidget* parent) : QTabWidget(parent) 85 EKNumTabWidget(QWidget* parent) : QTabWidget(parent)
86 { 86 {
87 } 87 }
88 88
89 void addTab(QWidget* w) 89 void addTab(QWidget* w)
90 { 90 {
91 QTab* t = new QTab(QString::number(tabBar()->count()+1)); 91 QTab* t = new QTab(QString::number(tabBar()->count()+1));
92 QTabWidget::addTab(w,t); 92 QTabWidget::addTab(w,t);
93 } 93 }
94 94
95 void removeTab(QWidget* w) 95 void removeTab(QWidget* w)
96 { 96 {
97 removePage(w); 97 removePage(w);
98 ((EKNumTabBar*)tabBar())->numberTabs(); 98 ((EKNumTabBar*)tabBar())->numberTabs();
99 } 99 }
100}; 100};
101 101
102// This could be configurable or dynamicly generated from the bash history 102// This could be configurable or dynamicly generated from the bash history
103// file of the user 103// file of the user
104static const char *commonCmds[] = 104static const char *commonCmds[] =
105{ 105{
106 "ls ", // I left this here, cause it looks better than the first alpha 106 "ls ", // I left this here, cause it looks better than the first alpha
107 "cardctl eject", 107 "cardctl eject",
108 "cat ", 108 "cat ",
109 "cd ", 109 "cd ",
110 "chmod ", 110 "chmod ",
111 "clear", 111 "clear",
112 "cp ", 112 "cp ",
113 "dc ", 113 "dc ",
114 "df ", 114 "df ",
115 "dmesg", 115 "dmesg",
116 "echo ", 116 "echo ",
117 "env", 117 "env",
118 "find ", 118 "find ",
119 "free", 119 "free",
120 "grep ", 120 "grep ",
121 "ifconfig ", 121 "ifconfig ",
122 "ipkg ", 122 "ipkg ",
123 "mkdir ", 123 "mkdir ",
124 "mv ", 124 "mv ",
125 "nc localhost 7776", 125 "nc localhost 7776",
126 "nc localhost 7777", 126 "nc localhost 7777",
127 "netstat ", 127 "netstat ",
128 "nslookup ", 128 "nslookup ",
129 "ping ", 129 "ping ",
130 "ps aux", 130 "ps aux",
131 "pwd ", 131 "pwd ",
132 "rm ", 132 "rm ",
133 "rmdir ", 133 "rmdir ",
134 "route ", 134 "route ",
135 "set ", 135 "set ",
136 "traceroute", 136 "traceroute",
137 137
138/* 138/*
139 "gzip", 139 "gzip",
140 "gunzip", 140 "gunzip",
141 "chgrp", 141 "chgrp",
142 "chown", 142 "chown",
143 "date", 143 "date",
144 "dd", 144 "dd",
145 "df", 145 "df",
146 "dmesg", 146 "dmesg",
147 "fuser", 147 "fuser",
148 "hostname", 148 "hostname",
149 "kill", 149 "kill",
150 "killall", 150 "killall",
151 "ln", 151 "ln",
152 "ping", 152 "ping",
153 "mount", 153 "mount",
154 "more", 154 "more",
155 "sort", 155 "sort",
156 "touch", 156 "touch",
157 "umount", 157 "umount",
158 "mknod", 158 "mknod",
159 "netstat", 159 "netstat",
160*/ 160*/
161 161
162 "exit", 162 "exit",
163 NULL 163 NULL
164}; 164};
165 165
166 166
167Konsole::Konsole(QWidget* parent, const char* name, WFlags fl) : 167Konsole::Konsole(QWidget* parent, const char* name, WFlags fl) :
168 QMainWindow(parent, name, fl) 168 QMainWindow(parent, name, fl)
169{ 169{
170 QStrList args; 170 QStrList args;
171 init("/bin/ash",args); 171 init("/bin/sh",args);
172// init("/bin/sh",args);
173} 172}
174 173
175Konsole::Konsole(const char* name, const char* _pgm, QStrList & _args, int) 174Konsole::Konsole(const char* name, const char* _pgm, QStrList & _args, int)
176 : QMainWindow(0, name) 175 : QMainWindow(0, name)
177{ 176{
178 init(_pgm,_args); 177 init(_pgm,_args);
179} 178}
180 179
181void Konsole::initCommandList() 180void Konsole::initCommandList()
182{ 181{
183// qDebug("Konsole::initCommandList"); 182// qDebug("Konsole::initCommandList");
184 Config cfg("Konsole"); 183 Config cfg("Konsole");
185 cfg.setGroup("Commands"); 184 cfg.setGroup("Commands");
186 commonCombo->setInsertionPolicy(QComboBox::AtCurrent); 185 commonCombo->setInsertionPolicy(QComboBox::AtCurrent);
187 commonCombo->clear(); 186 commonCombo->clear();
188 if (cfg.readEntry("Commands Set","FALSE") == "FALSE") { 187 if (cfg.readEntry("Commands Set","FALSE") == "FALSE") {
189 for (int i = 0; commonCmds[i] != NULL; i++) { 188 for (int i = 0; commonCmds[i] != NULL; i++) {
190 commonCombo->insertItem(commonCmds[i],i); 189 commonCombo->insertItem(commonCmds[i],i);
191 } 190 }
192 } else { 191 } else {
193 for (int i = 0; i < 100; i++) { 192 for (int i = 0; i < 100; i++) {
194 if (!(cfg.readEntry( QString::number(i),"")).isEmpty()) 193 if (!(cfg.readEntry( QString::number(i),"")).isEmpty())
195 commonCombo->insertItem((cfg.readEntry( QString::number(i),""))); 194 commonCombo->insertItem((cfg.readEntry( QString::number(i),"")));
196 } 195 }
197 } 196 }
198 197
199} 198}
200 199
201void Konsole::init(const char* _pgm, QStrList & _args) 200void Konsole::init(const char* _pgm, QStrList & _args)
202{ 201{
203 b_scroll = TRUE; // histon; 202 b_scroll = TRUE; // histon;
204 n_keytab = 0; 203 n_keytab = 0;
205 n_render = 0; 204 n_render = 0;
206 startUp=0; 205 startUp=0;
207 setCaption( tr("Terminal") ); 206 setCaption( tr("Terminal") );
208 setIcon( Resource::loadPixmap( "konsole" ) ); 207 setIcon( Resource::loadPixmap( "konsole" ) );
209 208
210 Config cfg("Konsole"); 209 Config cfg("Konsole");
211 cfg.setGroup("Konsole"); 210 cfg.setGroup("Konsole");
212 QString tmp; 211 QString tmp;
213 // initialize the list of allowed fonts /////////////////////////////////// 212 // initialize the list of allowed fonts ///////////////////////////////////
214 cfont = cfg.readNumEntry("FontID", 1); 213 cfont = cfg.readNumEntry("FontID", 1);
215 QFont f = QFont("Micro", 4, QFont::Normal); 214 QFont f = QFont("Micro", 4, QFont::Normal);
216 f.setFixedPitch(TRUE); 215 f.setFixedPitch(TRUE);
217 fonts.append(new VTFont(tr("Micro"), f)); 216 fonts.append(new VTFont(tr("Micro"), f));
218 217
219 f = QFont("Fixed", 7, QFont::Normal); 218 f = QFont("Fixed", 7, QFont::Normal);
220 f.setFixedPitch(TRUE); 219 f.setFixedPitch(TRUE);
221 fonts.append(new VTFont(tr("Small Fixed"), f)); 220 fonts.append(new VTFont(tr("Small Fixed"), f));
222 221
223 f = QFont("Fixed", 12, QFont::Normal); 222 f = QFont("Fixed", 12, QFont::Normal);
224 f.setFixedPitch(TRUE); 223 f.setFixedPitch(TRUE);
225 fonts.append(new VTFont(tr("Medium Fixed"), f)); 224 fonts.append(new VTFont(tr("Medium Fixed"), f));
226 225
227 // create terminal emulation framework //////////////////////////////////// 226 // create terminal emulation framework ////////////////////////////////////
228 nsessions = 0; 227 nsessions = 0;
229 228
230 tab = new EKNumTabWidget(this); 229 tab = new EKNumTabWidget(this);
231 230
232 connect(tab, SIGNAL(currentChanged(QWidget*)), this, SLOT(switchSession(QWidget*))); 231 connect(tab, SIGNAL(currentChanged(QWidget*)), this, SLOT(switchSession(QWidget*)));
233 232
234 // create terminal toolbar //////////////////////////////////////////////// 233 // create terminal toolbar ////////////////////////////////////////////////
235 setToolBarsMovable( FALSE ); 234 setToolBarsMovable( FALSE );
236 QPEToolBar *menuToolBar = new QPEToolBar( this ); 235 QPEToolBar *menuToolBar = new QPEToolBar( this );
237 menuToolBar->setHorizontalStretchable( TRUE ); 236 menuToolBar->setHorizontalStretchable( TRUE );
238 237
239 QPEMenuBar *menuBar = new QPEMenuBar( menuToolBar ); 238 QPEMenuBar *menuBar = new QPEMenuBar( menuToolBar );
240 239
241 fontList = new QPopupMenu( this ); 240 fontList = new QPopupMenu( this );
242 for(uint i = 0; i < fonts.count(); i++) { 241 for(uint i = 0; i < fonts.count(); i++) {
243 VTFont *fnt = fonts.at(i); 242 VTFont *fnt = fonts.at(i);
244 fontList->insertItem(fnt->getName(), i); 243 fontList->insertItem(fnt->getName(), i);
245 } 244 }
246 fontChanged(cfont); 245 fontChanged(cfont);
247 246
248 configMenu = new QPopupMenu( this); 247 configMenu = new QPopupMenu( this);
249 colorMenu = new QPopupMenu( this); 248 colorMenu = new QPopupMenu( this);
250 scrollMenu = new QPopupMenu( this); 249 scrollMenu = new QPopupMenu( this);
251 editCommandListMenu = new QPopupMenu( this); 250 editCommandListMenu = new QPopupMenu( this);
252 251
253 configMenu->insertItem("Command List",editCommandListMenu); 252 configMenu->insertItem("Command List",editCommandListMenu);
254 253
255 bool listHidden; 254 bool listHidden;
256 cfg.setGroup("Menubar"); 255 cfg.setGroup("Menubar");
257 if( cfg.readEntry("Hidden","FALSE") == "TRUE") { 256 if( cfg.readEntry("Hidden","FALSE") == "TRUE") {
258 editCommandListMenu->insertItem( tr( "Show command list" )); 257 editCommandListMenu->insertItem( tr( "Show command list" ));
259 listHidden=TRUE; 258 listHidden=TRUE;
260 } else { 259 } else {
261 editCommandListMenu->insertItem( tr( "Hide command list" )); 260 editCommandListMenu->insertItem( tr( "Hide command list" ));
262 listHidden=FALSE; 261 listHidden=FALSE;
263 } 262 }
264 263
265 cfg.setGroup("Tabs"); 264 cfg.setGroup("Tabs");
266 tmp=cfg.readEntry("Position","Bottom"); 265 tmp=cfg.readEntry("Position","Bottom");
267 if(tmp=="Top") { 266 if(tmp=="Top") {
268 tab->setTabPosition(QTabWidget::Top); 267 tab->setTabPosition(QTabWidget::Top);
269 configMenu->insertItem( tr( "Tabs on Bottom" ) ); 268 configMenu->insertItem( tr( "Tabs on Bottom" ) );
270 } else { 269 } else {
271 tab->setTabPosition(QTabWidget::Bottom); 270 tab->setTabPosition(QTabWidget::Bottom);
272 configMenu->insertItem("Tabs on Top"); 271 configMenu->insertItem("Tabs on Top");
273 } 272 }
274 configMenu->insertSeparator(2); 273 configMenu->insertSeparator(2);
275 274
276 colorMenu->insertItem(tr( "Green on Black")); 275 colorMenu->insertItem(tr( "Green on Black"));
277 colorMenu->insertItem(tr( "Black on White")); 276 colorMenu->insertItem(tr( "Black on White"));
278 colorMenu->insertItem(tr( "White on Black")); 277 colorMenu->insertItem(tr( "White on Black"));
279 colorMenu->insertItem(tr( "Black on Transparent")); 278 colorMenu->insertItem(tr( "Black on Transparent"));
280 colorMenu->insertItem(tr( "Black on Red")); 279 colorMenu->insertItem(tr( "Black on Red"));
281 colorMenu->insertItem(tr( "Red on Black")); 280 colorMenu->insertItem(tr( "Red on Black"));
282 colorMenu->insertItem(tr( "Green on Yellow")); 281 colorMenu->insertItem(tr( "Green on Yellow"));
283 colorMenu->insertItem(tr( "Blue on Magenta")); 282 colorMenu->insertItem(tr( "Blue on Magenta"));
284 colorMenu->insertItem(tr( "Magenta on Blue")); 283 colorMenu->insertItem(tr( "Magenta on Blue"));
285 colorMenu->insertItem(tr( "Cyan on White")); 284 colorMenu->insertItem(tr( "Cyan on White"));
286 colorMenu->insertItem(tr( "White on Cyan")); 285 colorMenu->insertItem(tr( "White on Cyan"));
287 colorMenu->insertItem(tr( "Blue on Black")); 286 colorMenu->insertItem(tr( "Blue on Black"));
288 colorMenu->insertItem(tr( "Amber on Black")); 287 colorMenu->insertItem(tr( "Amber on Black"));
289 configMenu->insertItem(tr( "Colors") ,colorMenu); 288 configMenu->insertItem(tr( "Colors") ,colorMenu);
290 289
291 connect( fontList, SIGNAL( activated(int) ), this, SLOT( fontChanged(int) )); 290 connect( fontList, SIGNAL( activated(int) ), this, SLOT( fontChanged(int) ));
292 connect( configMenu, SIGNAL( activated(int) ), this, SLOT( configMenuSelected(int) )); 291 connect( configMenu, SIGNAL( activated(int) ), this, SLOT( configMenuSelected(int) ));
293 connect( colorMenu, SIGNAL( activated(int) ), this, SLOT( colorMenuSelected(int) )); 292 connect( colorMenu, SIGNAL( activated(int) ), this, SLOT( colorMenuSelected(int) ));
294 connect( scrollMenu, SIGNAL(activated(int)),this,SLOT(scrollMenuSelected(int))); 293 connect( scrollMenu, SIGNAL(activated(int)),this,SLOT(scrollMenuSelected(int)));
295 connect(editCommandListMenu,SIGNAL(activated(int)),this,SLOT(editCommandListMenuSelected(int))); 294 connect(editCommandListMenu,SIGNAL(activated(int)),this,SLOT(editCommandListMenuSelected(int)));
296 menuBar->insertItem( tr("Font"), fontList ); 295 menuBar->insertItem( tr("Font"), fontList );
297 menuBar->insertItem( tr("Options"), configMenu ); 296 menuBar->insertItem( tr("Options"), configMenu );
298 297
299 QPEToolBar *toolbar = new QPEToolBar( this ); 298 QPEToolBar *toolbar = new QPEToolBar( this );
300 299
301 QAction *a; 300 QAction *a;
302 301
303 // Button Commands 302 // Button Commands
304 a = new QAction( tr("New"), Resource::loadPixmap( "konsole" ), QString::null, 0, this, 0 ); 303 a = new QAction( tr("New"), Resource::loadPixmap( "konsole" ), QString::null, 0, this, 0 );
305 connect( a, SIGNAL( activated() ), this, SLOT( newSession() ) ); a->addTo( toolbar ); 304 connect( a, SIGNAL( activated() ), this, SLOT( newSession() ) ); a->addTo( toolbar );
306 a = new QAction( tr("Enter"), Resource::loadPixmap( "konsole/enter" ), QString::null, 0, this, 0 ); 305 a = new QAction( tr("Enter"), Resource::loadPixmap( "konsole/enter" ), QString::null, 0, this, 0 );
307 connect( a, SIGNAL( activated() ), this, SLOT( hitEnter() ) ); a->addTo( toolbar ); 306 connect( a, SIGNAL( activated() ), this, SLOT( hitEnter() ) ); a->addTo( toolbar );
308 a = new QAction( tr("Space"), Resource::loadPixmap( "konsole/space" ), QString::null, 0, this, 0 ); 307 a = new QAction( tr("Space"), Resource::loadPixmap( "konsole/space" ), QString::null, 0, this, 0 );
309 connect( a, SIGNAL( activated() ), this, SLOT( hitSpace() ) ); a->addTo( toolbar ); 308 connect( a, SIGNAL( activated() ), this, SLOT( hitSpace() ) ); a->addTo( toolbar );
310 a = new QAction( tr("Tab"), Resource::loadPixmap( "konsole/tab" ), QString::null, 0, this, 0 ); 309 a = new QAction( tr("Tab"), Resource::loadPixmap( "konsole/tab" ), QString::null, 0, this, 0 );
311 connect( a, SIGNAL( activated() ), this, SLOT( hitTab() ) ); a->addTo( toolbar ); 310 connect( a, SIGNAL( activated() ), this, SLOT( hitTab() ) ); a->addTo( toolbar );
312 a = new QAction( tr("Up"), Resource::loadPixmap( "konsole/up" ), QString::null, 0, this, 0 ); 311 a = new QAction( tr("Up"), Resource::loadPixmap( "konsole/up" ), QString::null, 0, this, 0 );
313 connect( a, SIGNAL( activated() ), this, SLOT( hitUp() ) ); a->addTo( toolbar ); 312 connect( a, SIGNAL( activated() ), this, SLOT( hitUp() ) ); a->addTo( toolbar );
314 a = new QAction( tr("Down"), Resource::loadPixmap( "konsole/down" ), QString::null, 0, this, 0 ); 313 a = new QAction( tr("Down"), Resource::loadPixmap( "konsole/down" ), QString::null, 0, this, 0 );
315 connect( a, SIGNAL( activated() ), this, SLOT( hitDown() ) ); a->addTo( toolbar ); 314 connect( a, SIGNAL( activated() ), this, SLOT( hitDown() ) ); a->addTo( toolbar );
316 a = new QAction( tr("Paste"), Resource::loadPixmap( "paste" ), QString::null, 0, this, 0 ); 315 a = new QAction( tr("Paste"), Resource::loadPixmap( "paste" ), QString::null, 0, this, 0 );
317 connect( a, SIGNAL( activated() ), this, SLOT( hitPaste() ) ); a->addTo( toolbar ); 316 connect( a, SIGNAL( activated() ), this, SLOT( hitPaste() ) ); a->addTo( toolbar );
318/* 317/*
319 a = new QAction( tr("Up"), Resource::loadPixmap( "up" ), QString::null, 0, this, 0 ); 318 a = new QAction( tr("Up"), Resource::loadPixmap( "up" ), QString::null, 0, this, 0 );
320 connect( a, SIGNAL( activated() ), this, SLOT( hitUp() ) ); a->addTo( toolbar ); 319 connect( a, SIGNAL( activated() ), this, SLOT( hitUp() ) ); a->addTo( toolbar );
321 a = new QAction( tr("Down"), Resource::loadPixmap( "down" ), QString::null, 0, this, 0 ); 320 a = new QAction( tr("Down"), Resource::loadPixmap( "down" ), QString::null, 0, this, 0 );
322 connect( a, SIGNAL( activated() ), this, SLOT( hitDown() ) ); a->addTo( toolbar ); 321 connect( a, SIGNAL( activated() ), this, SLOT( hitDown() ) ); a->addTo( toolbar );
323*/ 322*/
324 323
325 secondToolBar = new QPEToolBar( this ); 324 secondToolBar = new QPEToolBar( this );
326 secondToolBar->setHorizontalStretchable( TRUE ); 325 secondToolBar->setHorizontalStretchable( TRUE );
327 326
328 commonCombo = new QComboBox( secondToolBar ); 327 commonCombo = new QComboBox( secondToolBar );
329 commonCombo->setMaximumWidth(236); 328 commonCombo->setMaximumWidth(236);
330 329
331 editCommandListMenu->insertItem( tr( "Quick Edit" ) ); 330 editCommandListMenu->insertItem( tr( "Quick Edit" ) );
332 if( listHidden) { 331 if( listHidden) {
333 secondToolBar->hide(); 332 secondToolBar->hide();
334 editCommandListMenu->setItemEnabled(-22 ,FALSE); 333 editCommandListMenu->setItemEnabled(-22 ,FALSE);
335 } 334 }
336 editCommandListMenu->insertItem(tr( "Edit" ) ); 335 editCommandListMenu->insertItem(tr( "Edit" ) );
337 336
338 cfg.setGroup("Commands"); 337 cfg.setGroup("Commands");
339 commonCombo->setInsertionPolicy(QComboBox::AtCurrent); 338 commonCombo->setInsertionPolicy(QComboBox::AtCurrent);
340 339
341 initCommandList(); 340 initCommandList();
342// for (int i = 0; commonCmds[i] != NULL; i++) { 341// for (int i = 0; commonCmds[i] != NULL; i++) {
343// commonCombo->insertItem( commonCmds[i], i ); 342// commonCombo->insertItem( commonCmds[i], i );
344// tmp = cfg.readEntry( QString::number(i),""); 343// tmp = cfg.readEntry( QString::number(i),"");
345// if(tmp != "") 344// if(tmp != "")
346// commonCombo->changeItem( tmp,i ); 345// commonCombo->changeItem( tmp,i );
347// } 346// }
348 347
349 connect( commonCombo, SIGNAL( activated(int) ), this, SLOT( enterCommand(int) )); 348 connect( commonCombo, SIGNAL( activated(int) ), this, SLOT( enterCommand(int) ));
350 349
351 scrollMenu->insertItem(tr( "None" )); 350 scrollMenu->insertItem(tr( "None" ));
352 scrollMenu->insertItem(tr( "Left" )); 351 scrollMenu->insertItem(tr( "Left" ));
353 scrollMenu->insertItem(tr( "Right" )); 352 scrollMenu->insertItem(tr( "Right" ));
354 configMenu->insertItem(tr( "ScrollBar" ),scrollMenu); 353 configMenu->insertItem(tr( "ScrollBar" ),scrollMenu);
355 354
356 // create applications ///////////////////////////////////////////////////// 355 // create applications /////////////////////////////////////////////////////
357 setCentralWidget(tab); 356 setCentralWidget(tab);
358 357
359 // load keymaps //////////////////////////////////////////////////////////// 358 // load keymaps ////////////////////////////////////////////////////////////
360 KeyTrans::loadAll(); 359 KeyTrans::loadAll();
361 for (int i = 0; i < KeyTrans::count(); i++) 360 for (int i = 0; i < KeyTrans::count(); i++)
362 { KeyTrans* s = KeyTrans::find(i); 361 { KeyTrans* s = KeyTrans::find(i);
363 assert( s ); 362 assert( s );
364 } 363 }
365 364
366 se_pgm = _pgm; 365 se_pgm = _pgm;
367 se_args = _args; 366 se_args = _args;
368 367
369parseCommandLine(); 368parseCommandLine();
370 // read and apply default values /////////////////////////////////////////// 369 // read and apply default values ///////////////////////////////////////////
371 resize(321, 321); // Dummy. 370 resize(321, 321); // Dummy.
372 QSize currentSize = size(); 371 QSize currentSize = size();
373 if (currentSize != size()) 372 if (currentSize != size())
374 defaultSize = size(); 373 defaultSize = size();
375} 374}
376 375
377void Konsole::show() 376void Konsole::show()
378{ 377{
379 if ( !nsessions ) { 378 if ( !nsessions ) {
380 newSession(); 379 newSession();
381 } 380 }
382 QMainWindow::show(); 381 QMainWindow::show();
383} 382}
384 383
385void Konsole::initSession(const char*, QStrList &) 384void Konsole::initSession(const char*, QStrList &)
386{ 385{
387 QMainWindow::show(); 386 QMainWindow::show();
388} 387}
389 388
390Konsole::~Konsole() 389Konsole::~Konsole()
391{ 390{
392 while (nsessions > 0) { 391 while (nsessions > 0) {
393 doneSession(getTe()->currentSession, 0); 392 doneSession(getTe()->currentSession, 0);
394 } 393 }
395 394
396 Config cfg("Konsole"); 395 Config cfg("Konsole");
397 cfg.setGroup("Konsole"); 396 cfg.setGroup("Konsole");
398 cfg.writeEntry("FontID", cfont); 397 cfg.writeEntry("FontID", cfont);
399} 398}
400 399
401void Konsole::fontChanged(int f) 400void Konsole::fontChanged(int f)
402{ 401{
403 VTFont* font = fonts.at(f); 402 VTFont* font = fonts.at(f);
404 if (font != 0) { 403 if (font != 0) {
405 for(uint i = 0; i < fonts.count(); i++) { 404 for(uint i = 0; i < fonts.count(); i++) {
406 fontList->setItemChecked(i, (i == (uint) f) ? TRUE : FALSE); 405 fontList->setItemChecked(i, (i == (uint) f) ? TRUE : FALSE);
407 } 406 }
408 407
409 cfont = f; 408 cfont = f;
410 409
411 TEWidget* te = getTe(); 410 TEWidget* te = getTe();
412 if (te != 0) { 411 if (te != 0) {
413 te->setVTFont(font->getFont()); 412 te->setVTFont(font->getFont());
414 } 413 }
415 } 414 }
416} 415}
417 416
418 417
419void Konsole::enterCommand(int c) 418void Konsole::enterCommand(int c)
420{ 419{
421 TEWidget* te = getTe(); 420 TEWidget* te = getTe();
422 if (te != 0) { 421 if (te != 0) {
423 if(!commonCombo->editable()) { 422 if(!commonCombo->editable()) {
424 QString text = commonCombo->text(c); //commonCmds[c]; 423 QString text = commonCombo->text(c); //commonCmds[c];
425 te->emitText(text); 424 te->emitText(text);
426 } else { 425 } else {
427 changeCommand( commonCombo->text(c), c); 426 changeCommand( commonCombo->text(c), c);
428 } 427 }
429 } 428 }
430} 429}
431 430
432void Konsole::hitEnter() 431void Konsole::hitEnter()
433{ 432{
434 TEWidget* te = getTe(); 433 TEWidget* te = getTe();
435 if (te != 0) { 434 if (te != 0) {
436 te->emitText(QString("\r")); 435 te->emitText(QString("\r"));
437 } 436 }
438} 437}
439 438
440void Konsole::hitSpace() 439void Konsole::hitSpace()
441{ 440{
442 TEWidget* te = getTe(); 441 TEWidget* te = getTe();
443 if (te != 0) { 442 if (te != 0) {
444 te->emitText(QString(" ")); 443 te->emitText(QString(" "));
445 } 444 }
446} 445}
447 446
448void Konsole::hitTab() 447void Konsole::hitTab()
449{ 448{
450 TEWidget* te = getTe(); 449 TEWidget* te = getTe();
451 if (te != 0) { 450 if (te != 0) {
452 te->emitText(QString("\t")); 451 te->emitText(QString("\t"));
453 } 452 }
454} 453}
455 454
456void Konsole::hitPaste() 455void Konsole::hitPaste()
457{ 456{
458 TEWidget* te = getTe(); 457 TEWidget* te = getTe();
459 if (te != 0) { 458 if (te != 0) {
460 te->pasteClipboard(); 459 te->pasteClipboard();
461 } 460 }
462} 461}
463 462
464void Konsole::hitUp() 463void Konsole::hitUp()
465{ 464{
466 TEWidget* te = getTe(); 465 TEWidget* te = getTe();
467 if (te != 0) { 466 if (te != 0) {
468 QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Up, 0, 0); 467 QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Up, 0, 0);
469 QApplication::sendEvent( te, &ke ); 468 QApplication::sendEvent( te, &ke );
470 } 469 }
471} 470}
472 471
473void Konsole::hitDown() 472void Konsole::hitDown()
474{ 473{
475 TEWidget* te = getTe(); 474 TEWidget* te = getTe();
476 if (te != 0) { 475 if (te != 0) {
477 QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Down, 0, 0); 476 QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Down, 0, 0);
478 QApplication::sendEvent( te, &ke ); 477 QApplication::sendEvent( te, &ke );
479 } 478 }
480} 479}
481 480
482/** 481/**
483 This function calculates the size of the external widget 482 This function calculates the size of the external widget
484 needed for the internal widget to be 483 needed for the internal widget to be
485 */ 484 */
486QSize Konsole::calcSize(int columns, int lines) { 485QSize Konsole::calcSize(int columns, int lines) {
487 TEWidget* te = getTe(); 486 TEWidget* te = getTe();
488 if (te != 0) { 487 if (te != 0) {
489 QSize size = te->calcSize(columns, lines); 488 QSize size = te->calcSize(columns, lines);
490 return size; 489 return size;
491 } else { 490 } else {
492 QSize size; 491 QSize size;
493 return size; 492 return size;
494 } 493 }
495} 494}
496 495
497/** 496/**
498 sets application window to a size based on columns X lines of the te 497 sets application window to a size based on columns X lines of the te
499 guest widget. Call with (0,0) for setting default size. 498 guest widget. Call with (0,0) for setting default size.
500*/ 499*/
501 500
502void Konsole::setColLin(int columns, int lines) 501void Konsole::setColLin(int columns, int lines)
503{ 502{
504 if ((columns==0) || (lines==0)) 503 if ((columns==0) || (lines==0))
505 { 504 {
506 if (defaultSize.isEmpty()) // not in config file : set default value 505 if (defaultSize.isEmpty()) // not in config file : set default value
507 { 506 {
508 defaultSize = calcSize(80,24); 507 defaultSize = calcSize(80,24);
509 // notifySize(24,80); // set menu items (strange arg order !) 508 // notifySize(24,80); // set menu items (strange arg order !)
510 } 509 }
511 resize(defaultSize); 510 resize(defaultSize);
512 } else { 511 } else {
513 resize(calcSize(columns, lines)); 512 resize(calcSize(columns, lines));
514 // notifySize(lines,columns); // set menu items (strange arg order !) 513 // notifySize(lines,columns); // set menu items (strange arg order !)
515 } 514 }
516} 515}
517 516
518/* 517/*
519void Konsole::setFont(int fontno) 518void Konsole::setFont(int fontno)
520{ 519{
521 QFont f; 520 QFont f;
522 if (fontno == 0) 521 if (fontno == 0)
523 f = defaultFont = QFont( "Helvetica", 12 ); 522 f = defaultFont = QFont( "Helvetica", 12 );
524 else 523 else
525 if (fonts[fontno][0] == '-') 524 if (fonts[fontno][0] == '-')
526 f.setRawName( fonts[fontno] ); 525 f.setRawName( fonts[fontno] );
527 else 526 else
528 { 527 {
529 f.setFamily(fonts[fontno]); 528 f.setFamily(fonts[fontno]);
530 f.setRawMode( TRUE ); 529 f.setRawMode( TRUE );
531 } 530 }
532 if ( !f.exactMatch() && fontno != 0) 531 if ( !f.exactMatch() && fontno != 0)
533 { 532 {
534 QString msg = i18n("Font `%1' not found.\nCheck README.linux.console for help.").arg(fonts[fontno]); 533 QString msg = i18n("Font `%1' not found.\nCheck README.linux.console for help.").arg(fonts[fontno]);
535 QMessageBox(this, msg); 534 QMessageBox(this, msg);
536 return; 535 return;
537 } 536 }
538 if (se) se->setFontNo(fontno); 537 if (se) se->setFontNo(fontno);
539 te->setVTFont(f); 538 te->setVTFont(f);
540 n_font = fontno; 539 n_font = fontno;
541} 540}
542*/ 541*/
543 542
544// --| color selection |------------------------------------------------------- 543// --| color selection |-------------------------------------------------------
545 544
546void Konsole::changeColumns(int columns) 545void Konsole::changeColumns(int columns)
547{ 546{
548 TEWidget* te = getTe(); 547 TEWidget* te = getTe();
549 if (te != 0) { 548 if (te != 0) {
550 setColLin(columns,te->Lines()); 549 setColLin(columns,te->Lines());
551 te->update(); 550 te->update();
552 } 551 }
553} 552}
554 553
555//FIXME: If a child dies during session swap, 554//FIXME: If a child dies during session swap,
556// this routine might be called before 555// this routine might be called before
557// session swap is completed. 556// session swap is completed.
558 557
559void Konsole::doneSession(TESession*, int ) 558void Konsole::doneSession(TESession*, int )
560{ 559{
561 TEWidget *te = getTe(); 560 TEWidget *te = getTe();
562 if (te != 0) { 561 if (te != 0) {
563 te->currentSession->setConnect(FALSE); 562 te->currentSession->setConnect(FALSE);
564 tab->removeTab(te); 563 tab->removeTab(te);
565 delete te->currentSession; 564 delete te->currentSession;
566 delete te; 565 delete te;
567 nsessions--; 566 nsessions--;
568 } 567 }
569 568
570 if (nsessions == 0) { 569 if (nsessions == 0) {
571 close(); 570 close();
572 } 571 }
573} 572}
574 573
575void Konsole::newSession() { 574void Konsole::newSession() {
576 if(nsessions < 15) { // seems to be something weird about 16 tabs on the Zaurus.... memory? 575 if(nsessions < 15) { // seems to be something weird about 16 tabs on the Zaurus.... memory?
577 TEWidget* te = new TEWidget(tab); 576 TEWidget* te = new TEWidget(tab);
578// te->setBackgroundMode(PaletteBase); //we want transparent!! 577// te->setBackgroundMode(PaletteBase); //we want transparent!!
579 te->setVTFont(fonts.at(cfont)->getFont()); 578 te->setVTFont(fonts.at(cfont)->getFont());
580 tab->addTab(te); 579 tab->addTab(te);
581 TESession* se = new TESession(this, te, se_pgm, se_args, "xterm"); 580 TESession* se = new TESession(this, te, se_pgm, se_args, "xterm");
582 te->currentSession = se; 581 te->currentSession = se;
583 connect( se, SIGNAL(done(TESession*,int)), this, SLOT(doneSession(TESession*,int)) ); 582 connect( se, SIGNAL(done(TESession*,int)), this, SLOT(doneSession(TESession*,int)) );
584 se->run(); 583 se->run();
585 se->setConnect(TRUE); 584 se->setConnect(TRUE);
586 se->setHistory(b_scroll); 585 se->setHistory(b_scroll);
587 tab->setCurrentPage(nsessions); 586 tab->setCurrentPage(nsessions);
588 nsessions++; 587 nsessions++;
589 setColor(); 588 setColor();
590 } 589 }
591} 590}
592 591
593TEWidget* Konsole::getTe() { 592TEWidget* Konsole::getTe() {
594 if (nsessions) { 593 if (nsessions) {
595 return (TEWidget *) tab->currentPage(); 594 return (TEWidget *) tab->currentPage();
596 } else { 595 } else {
597 return 0; 596 return 0;
598 } 597 }
599} 598}
600 599
601void Konsole::switchSession(QWidget* w) { 600void Konsole::switchSession(QWidget* w) {
602 TEWidget* te = (TEWidget *) w; 601 TEWidget* te = (TEWidget *) w;
603 602
604 QFont teFnt = te->getVTFont(); 603 QFont teFnt = te->getVTFont();
605 for(uint i = 0; i < fonts.count(); i++) { 604 for(uint i = 0; i < fonts.count(); i++) {
606 VTFont *fnt = fonts.at(i); 605 VTFont *fnt = fonts.at(i);
607 bool cf = fnt->getFont() == teFnt; 606 bool cf = fnt->getFont() == teFnt;
608 fontList->setItemChecked(i, cf); 607 fontList->setItemChecked(i, cf);
609 if (cf) { 608 if (cf) {
610 cfont = i; 609 cfont = i;
611 } 610 }
612 } 611 }
613} 612}
614 613
615/// ------------------------------- some new stuff by L.J. Potter 614/// ------------------------------- some new stuff by L.J. Potter
616void Konsole::colorMenuSelected(int iD) 615void Konsole::colorMenuSelected(int iD)
617{ // this is NOT pretty, elegant or anything else besides functional 616{ // this is NOT pretty, elegant or anything else besides functional
618// QString temp; 617// QString temp;
619// qDebug( temp.sprintf("colormenu %d", iD)); 618// qDebug( temp.sprintf("colormenu %d", iD));
620 TEWidget* te = getTe(); 619 TEWidget* te = getTe();
621 Config cfg("Konsole"); 620 Config cfg("Konsole");
622 cfg.setGroup("Colors"); 621 cfg.setGroup("Colors");
623 QColor foreground; 622 QColor foreground;
624 QColor background; 623 QColor background;
625 colorMenu->setItemChecked(lastSelectedMenu,FALSE); 624 colorMenu->setItemChecked(lastSelectedMenu,FALSE);
626 ColorEntry m_table[TABLE_COLORS]; 625 ColorEntry m_table[TABLE_COLORS];
627 const ColorEntry * defaultCt=te->getdefaultColorTable(); 626 const ColorEntry * defaultCt=te->getdefaultColorTable();
628 /////////// fore back 627 /////////// fore back
629 int i; 628 int i;
630 if(iD==-9) { // default default 629 if(iD==-9) { // default default
631 for (i = 0; i < TABLE_COLORS; i++) { 630 for (i = 0; i < TABLE_COLORS; i++) {
632 m_table[i].color = defaultCt[i].color; 631 m_table[i].color = defaultCt[i].color;
633 if(i==1 || i == 11) 632 if(i==1 || i == 11)
634 m_table[i].transparent=1; 633 m_table[i].transparent=1;
635 cfg.writeEntry("Schema","98"); 634 cfg.writeEntry("Schema","98");
636 colorMenu->setItemChecked(-9,TRUE); 635 colorMenu->setItemChecked(-9,TRUE);
637 } 636 }
638 } else { 637 } else {
639 if(iD==-6) { // green black 638 if(iD==-6) { // green black
640 foreground.setRgb(0x18,255,0x18); 639 foreground.setRgb(0x18,255,0x18);
641 background.setRgb(0x00,0x00,0x00); 640 background.setRgb(0x00,0x00,0x00);
642 cfg.writeEntry("Schema","6"); 641 cfg.writeEntry("Schema","6");
643 colorMenu->setItemChecked(-6,TRUE); 642 colorMenu->setItemChecked(-6,TRUE);
644 } 643 }
645 if(iD==-7) { // black white 644 if(iD==-7) { // black white
646 foreground.setRgb(0x00,0x00,0x00); 645 foreground.setRgb(0x00,0x00,0x00);
647 background.setRgb(0xFF,0xFF,0xFF); 646 background.setRgb(0xFF,0xFF,0xFF);
648 cfg.writeEntry("Schema","7"); 647 cfg.writeEntry("Schema","7");
649 colorMenu->setItemChecked(-7,TRUE); 648 colorMenu->setItemChecked(-7,TRUE);
650 } 649 }
651 if(iD==-8) { // white black 650 if(iD==-8) { // white black
652 foreground.setRgb(0xFF,0xFF,0xFF); 651 foreground.setRgb(0xFF,0xFF,0xFF);
653 background.setRgb(0x00,0x00,0x00); 652 background.setRgb(0x00,0x00,0x00);
654 cfg.writeEntry("Schema","8"); 653 cfg.writeEntry("Schema","8");
655 colorMenu->setItemChecked(-8,TRUE); 654 colorMenu->setItemChecked(-8,TRUE);
656 } 655 }
657 if(iD==-10) {// Black, Red 656 if(iD==-10) {// Black, Red
658 foreground.setRgb(0x00,0x00,0x00); 657 foreground.setRgb(0x00,0x00,0x00);
659 background.setRgb(0xB2,0x18,0x18); 658 background.setRgb(0xB2,0x18,0x18);
660 cfg.writeEntry("Schema","10"); 659 cfg.writeEntry("Schema","10");
661 colorMenu->setItemChecked(-10,TRUE); 660 colorMenu->setItemChecked(-10,TRUE);
662 } 661 }
663 if(iD==-11) {// Red, Black 662 if(iD==-11) {// Red, Black
664 foreground.setRgb(230,31,31); //0xB2,0x18,0x18 663 foreground.setRgb(230,31,31); //0xB2,0x18,0x18
665 background.setRgb(0x00,0x00,0x00); 664 background.setRgb(0x00,0x00,0x00);
666 cfg.writeEntry("Schema","11"); 665 cfg.writeEntry("Schema","11");
667 colorMenu->setItemChecked(-11,TRUE); 666 colorMenu->setItemChecked(-11,TRUE);
668 } 667 }
669 if(iD==-12) {// Green, Yellow - is ugly 668 if(iD==-12) {// Green, Yellow - is ugly
670// foreground.setRgb(0x18,0xB2,0x18); 669// foreground.setRgb(0x18,0xB2,0x18);
671 foreground.setRgb(36,139,10); 670 foreground.setRgb(36,139,10);
672// background.setRgb(0xB2,0x68,0x18); 671// background.setRgb(0xB2,0x68,0x18);
673 background.setRgb(255,255,0); 672 background.setRgb(255,255,0);
674 cfg.writeEntry("Schema","12"); 673 cfg.writeEntry("Schema","12");
675 colorMenu->setItemChecked(-12,TRUE); 674 colorMenu->setItemChecked(-12,TRUE);
676 } 675 }
677 if(iD==-13) {// Blue, Magenta 676 if(iD==-13) {// Blue, Magenta
678 foreground.setRgb(0x18,0xB2,0xB2); 677 foreground.setRgb(0x18,0xB2,0xB2);
679 background.setRgb(0x18,0x18,0xB2); 678 background.setRgb(0x18,0x18,0xB2);
680 cfg.writeEntry("Schema","13"); 679 cfg.writeEntry("Schema","13");
681 colorMenu->setItemChecked(-13,TRUE); 680 colorMenu->setItemChecked(-13,TRUE);
682 } 681 }
683 if(iD==-14) {// Magenta, Blue 682 if(iD==-14) {// Magenta, Blue
684 foreground.setRgb(0x18,0x18,0xB2); 683 foreground.setRgb(0x18,0x18,0xB2);
685 background.setRgb(0x18,0xB2,0xB2); 684 background.setRgb(0x18,0xB2,0xB2);
686 cfg.writeEntry("Schema","14"); 685 cfg.writeEntry("Schema","14");
687 colorMenu->setItemChecked(-14,TRUE); 686 colorMenu->setItemChecked(-14,TRUE);
688 } 687 }
689 if(iD==-15) {// Cyan, White 688 if(iD==-15) {// Cyan, White
690 foreground.setRgb(0x18,0xB2,0xB2); 689 foreground.setRgb(0x18,0xB2,0xB2);
691 background.setRgb(0xFF,0xFF,0xFF); 690 background.setRgb(0xFF,0xFF,0xFF);
692 cfg.writeEntry("Schema","15"); 691 cfg.writeEntry("Schema","15");
693 colorMenu->setItemChecked(-15,TRUE); 692 colorMenu->setItemChecked(-15,TRUE);
694 } 693 }
695 if(iD==-16) {// White, Cyan 694 if(iD==-16) {// White, Cyan
696 background.setRgb(0x18,0xB2,0xB2); 695 background.setRgb(0x18,0xB2,0xB2);
697 foreground.setRgb(0xFF,0xFF,0xFF); 696 foreground.setRgb(0xFF,0xFF,0xFF);
698 cfg.writeEntry("Schema","16"); 697 cfg.writeEntry("Schema","16");
699 colorMenu->setItemChecked(-16,TRUE); 698 colorMenu->setItemChecked(-16,TRUE);
700 } 699 }
701 if(iD==-17) {// Black, Blue 700 if(iD==-17) {// Black, Blue
702 background.setRgb(0x00,0x00,0x00); 701 background.setRgb(0x00,0x00,0x00);
703 foreground.setRgb(0x18,0xB2,0xB2); 702 foreground.setRgb(0x18,0xB2,0xB2);
704 cfg.writeEntry("Schema","17"); 703 cfg.writeEntry("Schema","17");
705 colorMenu->setItemChecked(-17,TRUE); 704 colorMenu->setItemChecked(-17,TRUE);
706 } 705 }
707 if(iD==-18) {// Black, Gold 706 if(iD==-18) {// Black, Gold
708 background.setRgb(0x00,0x00,0x00); 707 background.setRgb(0x00,0x00,0x00);
709 foreground.setRgb(255,215,0); 708 foreground.setRgb(255,215,0);
710 cfg.writeEntry("Schema","18"); 709 cfg.writeEntry("Schema","18");
711 colorMenu->setItemChecked(-18,TRUE); 710 colorMenu->setItemChecked(-18,TRUE);
712 } 711 }
713 712
714 for (i = 0; i < TABLE_COLORS; i++) { 713 for (i = 0; i < TABLE_COLORS; i++) {
715 if(i==0 || i == 10) { 714 if(i==0 || i == 10) {
716 m_table[i].color = foreground; 715 m_table[i].color = foreground;
717 } 716 }
718 else if(i==1 || i == 11) { 717 else if(i==1 || i == 11) {
719 m_table[i].color = background; m_table[i].transparent=0; 718 m_table[i].color = background; m_table[i].transparent=0;
720 } 719 }
721 else 720 else
722 m_table[i].color = defaultCt[i].color; 721 m_table[i].color = defaultCt[i].color;
723 } 722 }
724 } 723 }
725 lastSelectedMenu = iD; 724 lastSelectedMenu = iD;
726 te->setColorTable(m_table); 725 te->setColorTable(m_table);
727 update(); 726 update();
728} 727}
729 728
730void Konsole::configMenuSelected(int iD) 729void Konsole::configMenuSelected(int iD)
731{ 730{
732// QString temp; 731// QString temp;
733// qDebug( temp.sprintf("configmenu %d",iD)); 732// qDebug( temp.sprintf("configmenu %d",iD));
734 TEWidget* te = getTe(); 733 TEWidget* te = getTe();
735 Config cfg("Konsole"); 734 Config cfg("Konsole");
736 cfg.setGroup("Menubar"); 735 cfg.setGroup("Menubar");
737 if( iD == -4) { 736 if( iD == -4) {
738 cfg.setGroup("Tabs"); 737 cfg.setGroup("Tabs");
739 QString tmp=cfg.readEntry("Position","Bottom"); 738 QString tmp=cfg.readEntry("Position","Bottom");
740 739
741 if(tmp=="Top") { 740 if(tmp=="Top") {
742 tab->setTabPosition(QTabWidget::Bottom); 741 tab->setTabPosition(QTabWidget::Bottom);
743 configMenu->changeItem( iD,"Tabs on Top"); 742 configMenu->changeItem( iD,"Tabs on Top");
744 cfg.writeEntry("Position","Bottom"); 743 cfg.writeEntry("Position","Bottom");
745 } else { 744 } else {
746 tab->setTabPosition(QTabWidget::Top); 745 tab->setTabPosition(QTabWidget::Top);
747 configMenu->changeItem( iD,"Tabs on Bottom"); 746 configMenu->changeItem( iD,"Tabs on Bottom");
748 cfg.writeEntry("Position","Top"); 747 cfg.writeEntry("Position","Top");
749 } 748 }
750 } 749 }
751} 750}
752 751
753void Konsole::changeCommand(const QString &text, int c) 752void Konsole::changeCommand(const QString &text, int c)
754{ 753{
755 Config cfg("Konsole"); 754 Config cfg("Konsole");
756 cfg.setGroup("Commands"); 755 cfg.setGroup("Commands");
757 if(commonCmds[c] != text) { 756 if(commonCmds[c] != text) {
758 cfg.writeEntry(QString::number(c),text); 757 cfg.writeEntry(QString::number(c),text);
759 commonCombo->clearEdit(); 758 commonCombo->clearEdit();
760 commonCombo->setCurrentItem(c); 759 commonCombo->setCurrentItem(c);
761 } 760 }
762} 761}
763 762
764void Konsole::setColor() 763void Konsole::setColor()
765{ 764{
766 Config cfg("Konsole"); 765 Config cfg("Konsole");
767 cfg.setGroup("Colors"); 766 cfg.setGroup("Colors");
768 int scheme = cfg.readNumEntry("Schema",1); 767 int scheme = cfg.readNumEntry("Schema",1);
769 if(scheme != 1) colorMenuSelected( -scheme); 768 if(scheme != 1) colorMenuSelected( -scheme);
770} 769}
771 770
772void Konsole::scrollMenuSelected(int index) 771void Konsole::scrollMenuSelected(int index)
773{ 772{
774// QString temp; 773// QString temp;
775// qDebug( temp.sprintf("scrollbar menu %d",index)); 774// qDebug( temp.sprintf("scrollbar menu %d",index));
776 TEWidget* te = getTe(); 775 TEWidget* te = getTe();
777 Config cfg("Konsole"); 776 Config cfg("Konsole");
778 cfg.setGroup("Scrollbar"); 777 cfg.setGroup("Scrollbar");
779 switch( index){ 778 switch( index){
780 case -24: 779 case -24:
781 te->setScrollbarLocation(0); 780 te->setScrollbarLocation(0);
782 cfg.writeEntry("Position",0); 781 cfg.writeEntry("Position",0);
783 break; 782 break;
784 case -25: 783 case -25:
785 te->setScrollbarLocation(1); 784 te->setScrollbarLocation(1);
786 cfg.writeEntry("Position",1); 785 cfg.writeEntry("Position",1);
787 break; 786 break;
788 case -26: 787 case -26:
789 te->setScrollbarLocation(2); 788 te->setScrollbarLocation(2);
790 cfg.writeEntry("Position",2); 789 cfg.writeEntry("Position",2);
791 break; 790 break;
792 }; 791 };
793 792
794} 793}
795 794
796void Konsole::editCommandListMenuSelected(int iD) 795void Konsole::editCommandListMenuSelected(int iD)
797{ 796{
798// QString temp; 797// QString temp;
799// qDebug( temp.sprintf("edit command list %d",iD)); 798// qDebug( temp.sprintf("edit command list %d",iD));
800 TEWidget* te = getTe(); 799 TEWidget* te = getTe();
801 Config cfg("Konsole"); 800 Config cfg("Konsole");
802 cfg.setGroup("Menubar"); 801 cfg.setGroup("Menubar");
803 if( iD == -3) { 802 if( iD == -3) {
804 if(!secondToolBar->isHidden()) { 803 if(!secondToolBar->isHidden()) {
805 secondToolBar->hide(); 804 secondToolBar->hide();
806 configMenu->changeItem( iD,tr( "Show Command List" )); 805 configMenu->changeItem( iD,tr( "Show Command List" ));
807 cfg.writeEntry("Hidden","TRUE"); 806 cfg.writeEntry("Hidden","TRUE");
808 configMenu->setItemEnabled(-22 ,FALSE); 807 configMenu->setItemEnabled(-22 ,FALSE);
809 } else { 808 } else {
810 secondToolBar->show(); 809 secondToolBar->show();
811 configMenu->changeItem( iD,tr( "Hide Command List" )); 810 configMenu->changeItem( iD,tr( "Hide Command List" ));
812 cfg.writeEntry("Hidden","FALSE"); 811 cfg.writeEntry("Hidden","FALSE");
813 configMenu->setItemEnabled(-22 ,TRUE); 812 configMenu->setItemEnabled(-22 ,TRUE);
814 813
815 if(cfg.readEntry("EditEnabled","FALSE")=="TRUE") { 814 if(cfg.readEntry("EditEnabled","FALSE")=="TRUE") {
816 configMenu->setItemChecked(-22,TRUE); 815 configMenu->setItemChecked(-22,TRUE);
817 commonCombo->setEditable( TRUE ); 816 commonCombo->setEditable( TRUE );
818 } else { 817 } else {
819 configMenu->setItemChecked(-22,FALSE); 818 configMenu->setItemChecked(-22,FALSE);
820 commonCombo->setEditable( FALSE ); 819 commonCombo->setEditable( FALSE );
821 } 820 }
822 } 821 }
823 } 822 }
824 if( iD == -22) { 823 if( iD == -22) {
825 cfg.setGroup("Commands"); 824 cfg.setGroup("Commands");
826// qDebug("enableCommandEdit"); 825// qDebug("enableCommandEdit");
827 if( !configMenu->isItemChecked(iD) ) { 826 if( !configMenu->isItemChecked(iD) ) {
828 commonCombo->setEditable( TRUE ); 827 commonCombo->setEditable( TRUE );
829 configMenu->setItemChecked(iD,TRUE); 828 configMenu->setItemChecked(iD,TRUE);
830 commonCombo->setCurrentItem(0); 829 commonCombo->setCurrentItem(0);
831 cfg.writeEntry("EditEnabled","TRUE"); 830 cfg.writeEntry("EditEnabled","TRUE");
832 } else { 831 } else {
833 commonCombo->setEditable( FALSE ); 832 commonCombo->setEditable( FALSE );
834 configMenu->setItemChecked(iD,FALSE); 833 configMenu->setItemChecked(iD,FALSE);
835 cfg.writeEntry("EditEnabled","FALSE"); 834 cfg.writeEntry("EditEnabled","FALSE");
836 commonCombo->setFocusPolicy(QWidget::NoFocus); 835 commonCombo->setFocusPolicy(QWidget::NoFocus);
837 te->setFocus(); 836 te->setFocus();
838 } 837 }
839 } 838 }
840 if(iD == -23) { 839 if(iD == -23) {
841 // "edit commands" 840 // "edit commands"
842 CommandEditDialog *m = new CommandEditDialog(this); 841 CommandEditDialog *m = new CommandEditDialog(this);
843 connect(m,SIGNAL(commandsEdited()),this,SLOT(initCommandList())); 842 connect(m,SIGNAL(commandsEdited()),this,SLOT(initCommandList()));
844 m->showMaximized(); 843 m->showMaximized();
845 } 844 }
846 845
847} 846}
848 847
849// $QPEDIR/bin/qcop QPE/Application/embeddedkonsole 'setDocument(QString)' 'ssh -V' 848// $QPEDIR/bin/qcop QPE/Application/embeddedkonsole 'setDocument(QString)' 'ssh -V'
850void Konsole::setDocument( const QString &cmd) { 849void Konsole::setDocument( const QString &cmd) {
851 newSession(); 850 newSession();
852 TEWidget* te = getTe(); 851 TEWidget* te = getTe();
853 if(cmd.find("-e", 0, TRUE) != -1) { 852 if(cmd.find("-e", 0, TRUE) != -1) {
854 QString cmd2; 853 QString cmd2;
855 cmd2=cmd.right(cmd.length()-3)+" &"; 854 cmd2=cmd.right(cmd.length()-3)+" &";
856 system(cmd2.latin1()); 855 system(cmd2.latin1());
857 if(startUp <= 1 && nsessions < 2) { 856 if(startUp <= 1 && nsessions < 2) {
858 doneSession(getTe()->currentSession, 0); 857 doneSession(getTe()->currentSession, 0);
859 exit(0); 858 exit(0);
860 } else 859 } else
861 doneSession(getTe()->currentSession, 0); 860 doneSession(getTe()->currentSession, 0);
862 } else { 861 } else {
863 if (te != 0) { 862 if (te != 0) {
864 te->emitText(cmd+"\r"); 863 te->emitText(cmd+"\r");
865 } 864 }
866 } 865 }
867 startUp++; 866 startUp++;
868} 867}
869 868
870void Konsole::parseCommandLine() { 869void Konsole::parseCommandLine() {
871 QString cmd; 870 QString cmd;
872 // newSession(); 871 // newSession();
873 for (int i=1;i< qApp->argc();i++) { 872 for (int i=1;i< qApp->argc();i++) {
874 if( QString(qApp->argv()[i]) == "-e") { 873 if( QString(qApp->argv()[i]) == "-e") {
875 i++; 874 i++;
876 for ( int j=i;j< qApp->argc();j++) { 875 for ( int j=i;j< qApp->argc();j++) {
877 cmd+=QString(qApp->argv()[j])+" "; 876 cmd+=QString(qApp->argv()[j])+" ";
878 } 877 }
879 cmd.stripWhiteSpace(); 878 cmd.stripWhiteSpace();
880 system(cmd.latin1()); 879 system(cmd.latin1());
881 exit(0);//close(); 880 exit(0);//close();
882 } // end -e switch 881 } // end -e switch
883 } 882 }
884 startUp++; 883 startUp++;
885} 884}