summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/embeddedkonsole/konsole.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/core/apps/embeddedkonsole/konsole.cpp b/core/apps/embeddedkonsole/konsole.cpp
index 70acc42..9be4674 100644
--- a/core/apps/embeddedkonsole/konsole.cpp
+++ b/core/apps/embeddedkonsole/konsole.cpp
@@ -187,623 +187,630 @@ Konsole::Konsole(const char* name, const char* _pgm, QStrList & _args, int)
187 187
188void Konsole::initCommandList() 188void Konsole::initCommandList()
189{ 189{
190// qDebug("Konsole::initCommandList"); 190// qDebug("Konsole::initCommandList");
191 Config cfg("Konsole"); 191 Config cfg("Konsole");
192 cfg.setGroup("Commands"); 192 cfg.setGroup("Commands");
193 commonCombo->setInsertionPolicy(QComboBox::AtCurrent); 193 commonCombo->setInsertionPolicy(QComboBox::AtCurrent);
194 commonCombo->clear(); 194 commonCombo->clear();
195 if (cfg.readEntry("Commands Set","FALSE") == "FALSE") { 195 if (cfg.readEntry("Commands Set","FALSE") == "FALSE") {
196 for (int i = 0; commonCmds[i] != NULL; i++) { 196 for (int i = 0; commonCmds[i] != NULL; i++) {
197 commonCombo->insertItem(commonCmds[i],i); 197 commonCombo->insertItem(commonCmds[i],i);
198 } 198 }
199 } else { 199 } else {
200 for (int i = 0; i < 100; i++) { 200 for (int i = 0; i < 100; i++) {
201 if (!(cfg.readEntry( QString::number(i),"")).isEmpty()) 201 if (!(cfg.readEntry( QString::number(i),"")).isEmpty())
202 commonCombo->insertItem((cfg.readEntry( QString::number(i),""))); 202 commonCombo->insertItem((cfg.readEntry( QString::number(i),"")));
203 } 203 }
204 } 204 }
205 205
206} 206}
207 207
208void Konsole::init(const char* _pgm, QStrList & _args) 208void Konsole::init(const char* _pgm, QStrList & _args)
209{ 209{
210 b_scroll = TRUE; // histon; 210 b_scroll = TRUE; // histon;
211 n_keytab = 0; 211 n_keytab = 0;
212 n_render = 0; 212 n_render = 0;
213 startUp=0; 213 startUp=0;
214 fromMenu = FALSE; 214 fromMenu = FALSE;
215 215
216 setCaption( tr("Terminal") ); 216 setCaption( tr("Terminal") );
217 setIcon( Resource::loadPixmap( "konsole" ) ); 217 setIcon( Resource::loadPixmap( "konsole" ) );
218 218
219 Config cfg("Konsole"); 219 Config cfg("Konsole");
220 cfg.setGroup("Konsole"); 220 cfg.setGroup("Konsole");
221 QString tmp; 221 QString tmp;
222 // initialize the list of allowed fonts /////////////////////////////////// 222 // initialize the list of allowed fonts ///////////////////////////////////
223 cfont = cfg.readNumEntry("FontID", 1); 223 cfont = cfg.readNumEntry("FontID", 1);
224 QFont f = QFont("Micro", 4, QFont::Normal); 224 QFont f = QFont("Micro", 4, QFont::Normal);
225 f.setFixedPitch(TRUE); 225 f.setFixedPitch(TRUE);
226 fonts.append(new VTFont(tr("Micro"), f)); 226 fonts.append(new VTFont(tr("Micro"), f));
227 227
228 f = QFont("Fixed", 7, QFont::Normal); 228 f = QFont("Fixed", 7, QFont::Normal);
229 f.setFixedPitch(TRUE); 229 f.setFixedPitch(TRUE);
230 fonts.append(new VTFont(tr("Small Fixed"), f)); 230 fonts.append(new VTFont(tr("Small Fixed"), f));
231 231
232 f = QFont("Fixed", 12, QFont::Normal); 232 f = QFont("Fixed", 12, QFont::Normal);
233 f.setFixedPitch(TRUE); 233 f.setFixedPitch(TRUE);
234 fonts.append(new VTFont(tr("Medium Fixed"), f)); 234 fonts.append(new VTFont(tr("Medium Fixed"), f));
235 235
236 // create terminal emulation framework //////////////////////////////////// 236 // create terminal emulation framework ////////////////////////////////////
237 nsessions = 0; 237 nsessions = 0;
238 238
239 tab = new EKNumTabWidget(this); 239 tab = new EKNumTabWidget(this);
240 240
241 connect(tab, SIGNAL(currentChanged(QWidget*)), this, SLOT(switchSession(QWidget*))); 241 connect(tab, SIGNAL(currentChanged(QWidget*)), this, SLOT(switchSession(QWidget*)));
242 242
243 // create terminal toolbar //////////////////////////////////////////////// 243 // create terminal toolbar ////////////////////////////////////////////////
244 setToolBarsMovable( FALSE ); 244 setToolBarsMovable( FALSE );
245 QPEToolBar *menuToolBar = new QPEToolBar( this ); 245 QPEToolBar *menuToolBar = new QPEToolBar( this );
246 menuToolBar->setHorizontalStretchable( TRUE ); 246 menuToolBar->setHorizontalStretchable( TRUE );
247 247
248 QPEMenuBar *menuBar = new QPEMenuBar( menuToolBar ); 248 QPEMenuBar *menuBar = new QPEMenuBar( menuToolBar );
249 249
250 fontList = new QPopupMenu( this ); 250 fontList = new QPopupMenu( this );
251 for(uint i = 0; i < fonts.count(); i++) { 251 for(uint i = 0; i < fonts.count(); i++) {
252 VTFont *fnt = fonts.at(i); 252 VTFont *fnt = fonts.at(i);
253 fontList->insertItem(fnt->getName(), i); 253 fontList->insertItem(fnt->getName(), i);
254 } 254 }
255 fontChanged(cfont); 255 fontChanged(cfont);
256 256
257 configMenu = new QPopupMenu( this); 257 configMenu = new QPopupMenu( this);
258 colorMenu = new QPopupMenu( this); 258 colorMenu = new QPopupMenu( this);
259 scrollMenu = new QPopupMenu( this); 259 scrollMenu = new QPopupMenu( this);
260 editCommandListMenu = new QPopupMenu( this); 260 editCommandListMenu = new QPopupMenu( this);
261 261
262 configMenu->insertItem(tr("Command List"), editCommandListMenu); 262 configMenu->insertItem(tr("Command List"), editCommandListMenu);
263 263
264 bool listHidden; 264 bool listHidden;
265 cfg.setGroup("Menubar"); 265 cfg.setGroup("Menubar");
266 if( cfg.readEntry("Hidden","FALSE") == "TRUE") { 266 if( cfg.readEntry("Hidden","FALSE") == "TRUE") {
267 editCommandListMenu->insertItem( tr( "Show command list" )); 267 editCommandListMenu->insertItem( tr( "Show command list" ));
268 listHidden=TRUE; 268 listHidden=TRUE;
269 } else { 269 } else {
270 editCommandListMenu->insertItem( tr( "Hide command list" )); 270 editCommandListMenu->insertItem( tr( "Hide command list" ));
271 listHidden=FALSE; 271 listHidden=FALSE;
272 } 272 }
273 273
274 cfg.setGroup("Tabs"); 274 cfg.setGroup("Tabs");
275 tmp=cfg.readEntry("Position","Bottom"); 275 tmp=cfg.readEntry("Position","Bottom");
276 if(tmp=="Top") { 276 if(tmp=="Top") {
277 tab->setTabPosition(QTabWidget::Top); 277 tab->setTabPosition(QTabWidget::Top);
278 configMenu->insertItem( tr( "Tabs on Bottom" ) ); 278 configMenu->insertItem( tr( "Tabs on Bottom" ) );
279 } else { 279 } else {
280 tab->setTabPosition(QTabWidget::Bottom); 280 tab->setTabPosition(QTabWidget::Bottom);
281 configMenu->insertItem(tr("Tabs on Top")); 281 configMenu->insertItem(tr("Tabs on Top"));
282 } 282 }
283 configMenu->insertSeparator(2); 283 configMenu->insertSeparator(2);
284 284
285 colorMenu->insertItem(tr( "Green on Black")); 285 colorMenu->insertItem(tr( "Green on Black"));
286 colorMenu->insertItem(tr( "Black on White")); 286 colorMenu->insertItem(tr( "Black on White"));
287 colorMenu->insertItem(tr( "White on Black")); 287 colorMenu->insertItem(tr( "White on Black"));
288 colorMenu->insertItem(tr( "Black on Transparent")); 288 colorMenu->insertItem(tr( "Black on Transparent"));
289 colorMenu->insertItem(tr( "Black on Red")); 289 colorMenu->insertItem(tr( "Black on Red"));
290 colorMenu->insertItem(tr( "Red on Black")); 290 colorMenu->insertItem(tr( "Red on Black"));
291 colorMenu->insertItem(tr( "Green on Yellow")); 291 colorMenu->insertItem(tr( "Green on Yellow"));
292 colorMenu->insertItem(tr( "Blue on Magenta")); 292 colorMenu->insertItem(tr( "Blue on Magenta"));
293 colorMenu->insertItem(tr( "Magenta on Blue")); 293 colorMenu->insertItem(tr( "Magenta on Blue"));
294 colorMenu->insertItem(tr( "Cyan on White")); 294 colorMenu->insertItem(tr( "Cyan on White"));
295 colorMenu->insertItem(tr( "White on Cyan")); 295 colorMenu->insertItem(tr( "White on Cyan"));
296 colorMenu->insertItem(tr( "Blue on Black")); 296 colorMenu->insertItem(tr( "Blue on Black"));
297 colorMenu->insertItem(tr( "Amber on Black")); 297 colorMenu->insertItem(tr( "Amber on Black"));
298 298
299#ifdef QT_QWS_OPIE 299#ifdef QT_QWS_OPIE
300 colorMenu->insertItem(tr( "Custom")); 300 colorMenu->insertItem(tr( "Custom"));
301#endif 301#endif
302 302
303 configMenu->insertItem(tr( "Colors") ,colorMenu); 303 configMenu->insertItem(tr( "Colors") ,colorMenu);
304 304
305 connect( fontList, SIGNAL( activated(int) ), this, SLOT( fontChanged(int) )); 305 connect( fontList, SIGNAL( activated(int) ), this, SLOT( fontChanged(int) ));
306 connect( configMenu, SIGNAL( activated(int) ), this, SLOT( configMenuSelected(int) )); 306 connect( configMenu, SIGNAL( activated(int) ), this, SLOT( configMenuSelected(int) ));
307 connect( colorMenu, SIGNAL( activated(int) ), this, SLOT( colorMenuIsSelected(int) )); 307 connect( colorMenu, SIGNAL( activated(int) ), this, SLOT( colorMenuIsSelected(int) ));
308 connect( scrollMenu, SIGNAL(activated(int)),this,SLOT(scrollMenuSelected(int))); 308 connect( scrollMenu, SIGNAL(activated(int)),this,SLOT(scrollMenuSelected(int)));
309 connect(editCommandListMenu,SIGNAL(activated(int)),this,SLOT(editCommandListMenuSelected(int))); 309 connect(editCommandListMenu,SIGNAL(activated(int)),this,SLOT(editCommandListMenuSelected(int)));
310 menuBar->insertItem( tr("Font"), fontList ); 310 menuBar->insertItem( tr("Font"), fontList );
311 menuBar->insertItem( tr("Options"), configMenu ); 311 menuBar->insertItem( tr("Options"), configMenu );
312 312
313 QPEToolBar *toolbar = new QPEToolBar( this ); 313 QPEToolBar *toolbar = new QPEToolBar( this );
314 314
315 QAction *a; 315 QAction *a;
316 316
317 // Button Commands 317 // Button Commands
318 a = new QAction( tr("New"), Resource::loadPixmap( "konsole" ), QString::null, 0, this, 0 ); 318 a = new QAction( tr("New"), Resource::loadPixmap( "konsole" ), QString::null, 0, this, 0 );
319 connect( a, SIGNAL( activated() ), this, SLOT( newSession() ) ); a->addTo( toolbar ); 319 connect( a, SIGNAL( activated() ), this, SLOT( newSession() ) ); a->addTo( toolbar );
320 a = new QAction( tr("Enter"), Resource::loadPixmap( "konsole/enter" ), QString::null, 0, this, 0 ); 320 a = new QAction( tr("Enter"), Resource::loadPixmap( "konsole/enter" ), QString::null, 0, this, 0 );
321 connect( a, SIGNAL( activated() ), this, SLOT( hitEnter() ) ); a->addTo( toolbar ); 321 connect( a, SIGNAL( activated() ), this, SLOT( hitEnter() ) ); a->addTo( toolbar );
322 a = new QAction( tr("Space"), Resource::loadPixmap( "konsole/space" ), QString::null, 0, this, 0 ); 322 a = new QAction( tr("Space"), Resource::loadPixmap( "konsole/space" ), QString::null, 0, this, 0 );
323 connect( a, SIGNAL( activated() ), this, SLOT( hitSpace() ) ); a->addTo( toolbar ); 323 connect( a, SIGNAL( activated() ), this, SLOT( hitSpace() ) ); a->addTo( toolbar );
324 a = new QAction( tr("Tab"), Resource::loadPixmap( "konsole/tab" ), QString::null, 0, this, 0 ); 324 a = new QAction( tr("Tab"), Resource::loadPixmap( "konsole/tab" ), QString::null, 0, this, 0 );
325 connect( a, SIGNAL( activated() ), this, SLOT( hitTab() ) ); a->addTo( toolbar ); 325 connect( a, SIGNAL( activated() ), this, SLOT( hitTab() ) ); a->addTo( toolbar );
326 a = new QAction( tr("Up"), Resource::loadPixmap( "konsole/up" ), QString::null, 0, this, 0 ); 326 a = new QAction( tr("Up"), Resource::loadPixmap( "konsole/up" ), QString::null, 0, this, 0 );
327 connect( a, SIGNAL( activated() ), this, SLOT( hitUp() ) ); a->addTo( toolbar ); 327 connect( a, SIGNAL( activated() ), this, SLOT( hitUp() ) ); a->addTo( toolbar );
328 a = new QAction( tr("Down"), Resource::loadPixmap( "konsole/down" ), QString::null, 0, this, 0 ); 328 a = new QAction( tr("Down"), Resource::loadPixmap( "konsole/down" ), QString::null, 0, this, 0 );
329 connect( a, SIGNAL( activated() ), this, SLOT( hitDown() ) ); a->addTo( toolbar ); 329 connect( a, SIGNAL( activated() ), this, SLOT( hitDown() ) ); a->addTo( toolbar );
330 a = new QAction( tr("Paste"), Resource::loadPixmap( "paste" ), QString::null, 0, this, 0 ); 330 a = new QAction( tr("Paste"), Resource::loadPixmap( "paste" ), QString::null, 0, this, 0 );
331 connect( a, SIGNAL( activated() ), this, SLOT( hitPaste() ) ); a->addTo( toolbar ); 331 connect( a, SIGNAL( activated() ), this, SLOT( hitPaste() ) ); a->addTo( toolbar );
332/* 332/*
333 a = new QAction( tr("Up"), Resource::loadPixmap( "up" ), QString::null, 0, this, 0 ); 333 a = new QAction( tr("Up"), Resource::loadPixmap( "up" ), QString::null, 0, this, 0 );
334 connect( a, SIGNAL( activated() ), this, SLOT( hitUp() ) ); a->addTo( toolbar ); 334 connect( a, SIGNAL( activated() ), this, SLOT( hitUp() ) ); a->addTo( toolbar );
335 a = new QAction( tr("Down"), Resource::loadPixmap( "down" ), QString::null, 0, this, 0 ); 335 a = new QAction( tr("Down"), Resource::loadPixmap( "down" ), QString::null, 0, this, 0 );
336 connect( a, SIGNAL( activated() ), this, SLOT( hitDown() ) ); a->addTo( toolbar ); 336 connect( a, SIGNAL( activated() ), this, SLOT( hitDown() ) ); a->addTo( toolbar );
337*/ 337*/
338 338
339 secondToolBar = new QPEToolBar( this ); 339 secondToolBar = new QPEToolBar( this );
340 secondToolBar->setHorizontalStretchable( TRUE ); 340 secondToolBar->setHorizontalStretchable( TRUE );
341 341
342 commonCombo = new QComboBox( secondToolBar ); 342 commonCombo = new QComboBox( secondToolBar );
343 commonCombo->setMaximumWidth(236); 343 commonCombo->setMaximumWidth(236);
344 344
345 editCommandListMenu->insertItem( tr( "Quick Edit" ) ); 345 editCommandListMenu->insertItem( tr( "Quick Edit" ) );
346 if( listHidden) { 346 if( listHidden) {
347 secondToolBar->hide(); 347 secondToolBar->hide();
348 editCommandListMenu->setItemEnabled(-23 ,FALSE); 348 editCommandListMenu->setItemEnabled(-23 ,FALSE);
349 } 349 }
350 editCommandListMenu->insertItem(tr( "Edit" ) ); 350 editCommandListMenu->insertItem(tr( "Edit" ) );
351 351
352 cfg.setGroup("Commands"); 352 cfg.setGroup("Commands");
353 commonCombo->setInsertionPolicy(QComboBox::AtCurrent); 353 commonCombo->setInsertionPolicy(QComboBox::AtCurrent);
354 354
355 initCommandList(); 355 initCommandList();
356// for (int i = 0; commonCmds[i] != NULL; i++) { 356// for (int i = 0; commonCmds[i] != NULL; i++) {
357// commonCombo->insertItem( commonCmds[i], i ); 357// commonCombo->insertItem( commonCmds[i], i );
358// tmp = cfg.readEntry( QString::number(i),""); 358// tmp = cfg.readEntry( QString::number(i),"");
359// if(tmp != "") 359// if(tmp != "")
360// commonCombo->changeItem( tmp,i ); 360// commonCombo->changeItem( tmp,i );
361// } 361// }
362 362
363 connect( commonCombo, SIGNAL( activated(int) ), this, SLOT( enterCommand(int) )); 363 connect( commonCombo, SIGNAL( activated(int) ), this, SLOT( enterCommand(int) ));
364 364
365 scrollMenu->insertItem(tr( "None" )); 365 scrollMenu->insertItem(tr( "None" ));
366 scrollMenu->insertItem(tr( "Left" )); 366 scrollMenu->insertItem(tr( "Left" ));
367 scrollMenu->insertItem(tr( "Right" )); 367 scrollMenu->insertItem(tr( "Right" ));
368// scrollMenu->insertSeparator(4); 368// scrollMenu->insertSeparator(4);
369// scrollMenu->insertItem(tr( "Horizontal" )); 369// scrollMenu->insertItem(tr( "Horizontal" ));
370 370
371 configMenu->insertItem(tr( "ScrollBar" ),scrollMenu); 371 configMenu->insertItem(tr( "ScrollBar" ),scrollMenu);
372 372
373 int jut = configMenu->insertItem(tr( "Wrap" )); 373 int jut = configMenu->insertItem(tr( "Wrap" ));
374 cfg.setGroup("ScrollBar"); 374 cfg.setGroup("ScrollBar");
375 configMenu->setItemChecked(jut, cfg.readBoolEntry("HorzScroll",0)); 375 configMenu->setItemChecked(jut, cfg.readBoolEntry("HorzScroll",0));
376 376
377 jut = configMenu->insertItem(tr( "Use Beep" )); 377 jut = configMenu->insertItem(tr( "Use Beep" ));
378 cfg.setGroup("Menubar"); 378 cfg.setGroup("Menubar");
379
379 configMenu->setItemChecked(jut, cfg.readBoolEntry("useBeep",0)); 380 configMenu->setItemChecked(jut, cfg.readBoolEntry("useBeep",0));
380 381
381 382
382//scrollMenuSelected(-29); 383//scrollMenuSelected(-29);
383// cfg.setGroup("ScrollBar"); 384// cfg.setGroup("ScrollBar");
384// if(cfg.readBoolEntry("HorzScroll",0)) { 385// if(cfg.readBoolEntry("HorzScroll",0)) {
385// if(cfg.readNumEntry("Position",2) == 0) 386// if(cfg.readNumEntry("Position",2) == 0)
386// te->setScrollbarLocation(1); 387// te->setScrollbarLocation(1);
387// else 388// else
388// te->setScrollbarLocation(0); 389// te->setScrollbarLocation(0);
389// te->setScrollbarLocation( cfg.readNumEntry("Position",2)); 390// te->setScrollbarLocation( cfg.readNumEntry("Position",2));
390// te->setWrapAt(120); 391// te->setWrapAt(120);
391// } 392// }
392 // create applications ///////////////////////////////////////////////////// 393 // create applications /////////////////////////////////////////////////////
393 setCentralWidget(tab); 394 setCentralWidget(tab);
394 395
395 // load keymaps //////////////////////////////////////////////////////////// 396 // load keymaps ////////////////////////////////////////////////////////////
396 KeyTrans::loadAll(); 397 KeyTrans::loadAll();
397 for (int i = 0; i < KeyTrans::count(); i++) 398 for (int i = 0; i < KeyTrans::count(); i++)
398 { KeyTrans* s = KeyTrans::find(i); 399 { KeyTrans* s = KeyTrans::find(i);
399 assert( s ); 400 assert( s );
400 } 401 }
401 402
402 se_pgm = _pgm; 403 se_pgm = _pgm;
403 se_args = _args; 404 se_args = _args;
404 se_args.prepend("--login"); 405 se_args.prepend("--login");
405parseCommandLine(); 406parseCommandLine();
406 // read and apply default values /////////////////////////////////////////// 407 // read and apply default values ///////////////////////////////////////////
407 resize(321, 321); // Dummy. 408 resize(321, 321); // Dummy.
408 QSize currentSize = size(); 409 QSize currentSize = size();
409 if (currentSize != size()) 410 if (currentSize != size())
410 defaultSize = size(); 411 defaultSize = size();
411} 412}
412 413
413void Konsole::show() 414void Konsole::show()
414{ 415{
415 if ( !nsessions ) { 416 if ( !nsessions ) {
416 newSession(); 417 newSession();
417 } 418 }
418 QMainWindow::show(); 419 QMainWindow::show();
419 420
420} 421}
421 422
422void Konsole::initSession(const char*, QStrList &) 423void Konsole::initSession(const char*, QStrList &)
423{ 424{
424 QMainWindow::show(); 425 QMainWindow::show();
425} 426}
426 427
427Konsole::~Konsole() 428Konsole::~Konsole()
428{ 429{
429 while (nsessions > 0) { 430 while (nsessions > 0) {
430 doneSession(getTe()->currentSession, 0); 431 doneSession(getTe()->currentSession, 0);
431 } 432 }
432 433
433 Config cfg("Konsole"); 434 Config cfg("Konsole");
434 cfg.setGroup("Konsole"); 435 cfg.setGroup("Konsole");
435 cfg.writeEntry("FontID", cfont); 436 cfg.writeEntry("FontID", cfont);
436} 437}
437 438
438void Konsole::fontChanged(int f) 439void Konsole::fontChanged(int f)
439{ 440{
440 VTFont* font = fonts.at(f); 441 VTFont* font = fonts.at(f);
441 if (font != 0) { 442 if (font != 0) {
442 for(uint i = 0; i < fonts.count(); i++) { 443 for(uint i = 0; i < fonts.count(); i++) {
443 fontList->setItemChecked(i, (i == (uint) f) ? TRUE : FALSE); 444 fontList->setItemChecked(i, (i == (uint) f) ? TRUE : FALSE);
444 } 445 }
445 446
446 cfont = f; 447 cfont = f;
447 448
448 TEWidget* te = getTe(); 449 TEWidget* te = getTe();
449 if (te != 0) { 450 if (te != 0) {
450 te->setVTFont(font->getFont()); 451 te->setVTFont(font->getFont());
451 } 452 }
452 } 453 }
453} 454}
454 455
455 456
456void Konsole::enterCommand(int c) 457void Konsole::enterCommand(int c)
457{ 458{
458 TEWidget* te = getTe(); 459 TEWidget* te = getTe();
459 if (te != 0) { 460 if (te != 0) {
460 if(!commonCombo->editable()) { 461 if(!commonCombo->editable()) {
461 QString text = commonCombo->text(c); //commonCmds[c]; 462 QString text = commonCombo->text(c); //commonCmds[c];
462 te->emitText(text); 463 te->emitText(text);
463 } else { 464 } else {
464 changeCommand( commonCombo->text(c), c); 465 changeCommand( commonCombo->text(c), c);
465 } 466 }
466 } 467 }
467} 468}
468 469
469void Konsole::hitEnter() 470void Konsole::hitEnter()
470{ 471{
471 TEWidget* te = getTe(); 472 TEWidget* te = getTe();
472 if (te != 0) { 473 if (te != 0) {
473 te->emitText(QString("\r")); 474 te->emitText(QString("\r"));
474 } 475 }
475} 476}
476 477
477void Konsole::hitSpace() 478void Konsole::hitSpace()
478{ 479{
479 TEWidget* te = getTe(); 480 TEWidget* te = getTe();
480 if (te != 0) { 481 if (te != 0) {
481 te->emitText(QString(" ")); 482 te->emitText(QString(" "));
482 } 483 }
483} 484}
484 485
485void Konsole::hitTab() 486void Konsole::hitTab()
486{ 487{
487 TEWidget* te = getTe(); 488 TEWidget* te = getTe();
488 if (te != 0) { 489 if (te != 0) {
489 te->emitText(QString("\t")); 490 te->emitText(QString("\t"));
490 } 491 }
491} 492}
492 493
493void Konsole::hitPaste() 494void Konsole::hitPaste()
494{ 495{
495 TEWidget* te = getTe(); 496 TEWidget* te = getTe();
496 if (te != 0) { 497 if (te != 0) {
497 te->pasteClipboard(); 498 te->pasteClipboard();
498 } 499 }
499} 500}
500 501
501void Konsole::hitUp() 502void Konsole::hitUp()
502{ 503{
503 TEWidget* te = getTe(); 504 TEWidget* te = getTe();
504 if (te != 0) { 505 if (te != 0) {
505 QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Up, 0, 0); 506 QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Up, 0, 0);
506 QApplication::sendEvent( te, &ke ); 507 QApplication::sendEvent( te, &ke );
507 } 508 }
508} 509}
509 510
510void Konsole::hitDown() 511void Konsole::hitDown()
511{ 512{
512 TEWidget* te = getTe(); 513 TEWidget* te = getTe();
513 if (te != 0) { 514 if (te != 0) {
514 QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Down, 0, 0); 515 QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Down, 0, 0);
515 QApplication::sendEvent( te, &ke ); 516 QApplication::sendEvent( te, &ke );
516 } 517 }
517} 518}
518 519
519/** 520/**
520 This function calculates the size of the external widget 521 This function calculates the size of the external widget
521 needed for the internal widget to be 522 needed for the internal widget to be
522 */ 523 */
523QSize Konsole::calcSize(int columns, int lines) { 524QSize Konsole::calcSize(int columns, int lines) {
524 TEWidget* te = getTe(); 525 TEWidget* te = getTe();
525 if (te != 0) { 526 if (te != 0) {
526 QSize size = te->calcSize(columns, lines); 527 QSize size = te->calcSize(columns, lines);
527 return size; 528 return size;
528 } else { 529 } else {
529 QSize size; 530 QSize size;
530 return size; 531 return size;
531 } 532 }
532} 533}
533 534
534/** 535/**
535 sets application window to a size based on columns X lines of the te 536 sets application window to a size based on columns X lines of the te
536 guest widget. Call with (0,0) for setting default size. 537 guest widget. Call with (0,0) for setting default size.
537*/ 538*/
538 539
539void Konsole::setColLin(int columns, int lines) 540void Konsole::setColLin(int columns, int lines)
540{ 541{
541 qDebug("konsole::setColLin:: Columns %d", columns); 542 qDebug("konsole::setColLin:: Columns %d", columns);
542 543
543 if ((columns==0) || (lines==0)) 544 if ((columns==0) || (lines==0))
544 { 545 {
545 if (defaultSize.isEmpty()) // not in config file : set default value 546 if (defaultSize.isEmpty()) // not in config file : set default value
546 { 547 {
547 defaultSize = calcSize(80,24); 548 defaultSize = calcSize(80,24);
548 // notifySize(24,80); // set menu items (strange arg order !) 549 // notifySize(24,80); // set menu items (strange arg order !)
549 } 550 }
550 resize(defaultSize); 551 resize(defaultSize);
551 } else { 552 } else {
552 resize(calcSize(columns, lines)); 553 resize(calcSize(columns, lines));
553 // notifySize(lines,columns); // set menu items (strange arg order !) 554 // notifySize(lines,columns); // set menu items (strange arg order !)
554 } 555 }
555} 556}
556 557
557/* 558/*
558void Konsole::setFont(int fontno) 559void Konsole::setFont(int fontno)
559{ 560{
560 QFont f; 561 QFont f;
561 if (fontno == 0) 562 if (fontno == 0)
562 f = defaultFont = QFont( "Helvetica", 12 ); 563 f = defaultFont = QFont( "Helvetica", 12 );
563 else 564 else
564 if (fonts[fontno][0] == '-') 565 if (fonts[fontno][0] == '-')
565 f.setRawName( fonts[fontno] ); 566 f.setRawName( fonts[fontno] );
566 else 567 else
567 { 568 {
568 f.setFamily(fonts[fontno]); 569 f.setFamily(fonts[fontno]);
569 f.setRawMode( TRUE ); 570 f.setRawMode( TRUE );
570 } 571 }
571 if ( !f.exactMatch() && fontno != 0) 572 if ( !f.exactMatch() && fontno != 0)
572 { 573 {
573 QString msg = i18n("Font `%1' not found.\nCheck README.linux.console for help.").arg(fonts[fontno]); 574 QString msg = i18n("Font `%1' not found.\nCheck README.linux.console for help.").arg(fonts[fontno]);
574 QMessageBox(this, msg); 575 QMessageBox(this, msg);
575 return; 576 return;
576 } 577 }
577 if (se) se->setFontNo(fontno); 578 if (se) se->setFontNo(fontno);
578 te->setVTFont(f); 579 te->setVTFont(f);
579 n_font = fontno; 580 n_font = fontno;
580} 581}
581*/ 582*/
582 583
583// --| color selection |------------------------------------------------------- 584// --| color selection |-------------------------------------------------------
584 585
585void Konsole::changeColumns(int columns) 586void Konsole::changeColumns(int columns)
586{ 587{
587 qDebug("change columns"); 588 qDebug("change columns");
588 TEWidget* te = getTe(); 589 TEWidget* te = getTe();
589 if (te != 0) { 590 if (te != 0) {
590 setColLin(columns,te->Lines()); 591 setColLin(columns,te->Lines());
591 te->update(); 592 te->update();
592 } 593 }
593} 594}
594 595
595//FIXME: If a child dies during session swap, 596//FIXME: If a child dies during session swap,
596// this routine might be called before 597// this routine might be called before
597// session swap is completed. 598// session swap is completed.
598 599
599void Konsole::doneSession(TESession*, int ) 600void Konsole::doneSession(TESession*, int )
600{ 601{
601 TEWidget *te = getTe(); 602 TEWidget *te = getTe();
602 if (te != 0) { 603 if (te != 0) {
603 te->currentSession->setConnect(FALSE); 604 te->currentSession->setConnect(FALSE);
604 tab->removeTab(te); 605 tab->removeTab(te);
605 delete te->currentSession; 606 delete te->currentSession;
606 delete te; 607 delete te;
607 nsessions--; 608 nsessions--;
608 } 609 }
609 610
610 if (nsessions == 0) { 611 if (nsessions == 0) {
611 close(); 612 close();
612 } 613 }
613} 614}
614 615
615void Konsole::newSession() { 616void Konsole::newSession() {
616 if(nsessions < 15) { // seems to be something weird about 16 tabs on the Zaurus.... memory? 617 if(nsessions < 15) { // seems to be something weird about 16 tabs on the Zaurus.... memory?
617 TEWidget* te = new TEWidget(tab); 618 TEWidget* te = new TEWidget(tab);
619 if(nsessions == 0) { //set this the first time only
620 Config c("Konsole");
621 c.setGroup("Menubar");
622 te->useBeep=c.readBoolEntry("useBeep",0);
623 }
624
618// te->setBackgroundMode(PaletteBase); //we want transparent!! 625// te->setBackgroundMode(PaletteBase); //we want transparent!!
619 te->setVTFont(fonts.at(cfont)->getFont()); 626 te->setVTFont(fonts.at(cfont)->getFont());
620 tab->addTab(te); 627 tab->addTab(te);
621 TESession* se = new TESession(this, te, se_pgm, se_args, "xterm"); 628 TESession* se = new TESession(this, te, se_pgm, se_args, "xterm");
622 te->currentSession = se; 629 te->currentSession = se;
623 connect( se, SIGNAL(done(TESession*,int)), this, SLOT(doneSession(TESession*,int)) ); 630 connect( se, SIGNAL(done(TESession*,int)), this, SLOT(doneSession(TESession*,int)) );
624 se->run(); 631 se->run();
625 se->setConnect(TRUE); 632 se->setConnect(TRUE);
626 se->setHistory(b_scroll); 633 se->setHistory(b_scroll);
627 tab->setCurrentPage(nsessions); 634 tab->setCurrentPage(nsessions);
628 nsessions++; 635 nsessions++;
629 doWrap(); 636 doWrap();
630 setColor(); 637 setColor();
631 } 638 }
632} 639}
633 640
634TEWidget* Konsole::getTe() { 641TEWidget* Konsole::getTe() {
635 if (nsessions) { 642 if (nsessions) {
636 return (TEWidget *) tab->currentPage(); 643 return (TEWidget *) tab->currentPage();
637 } else { 644 } else {
638 return 0; 645 return 0;
639 } 646 }
640} 647}
641 648
642void Konsole::switchSession(QWidget* w) { 649void Konsole::switchSession(QWidget* w) {
643 TEWidget* te = (TEWidget *) w; 650 TEWidget* te = (TEWidget *) w;
644 651
645 QFont teFnt = te->getVTFont(); 652 QFont teFnt = te->getVTFont();
646 for(uint i = 0; i < fonts.count(); i++) { 653 for(uint i = 0; i < fonts.count(); i++) {
647 VTFont *fnt = fonts.at(i); 654 VTFont *fnt = fonts.at(i);
648 bool cf = fnt->getFont() == teFnt; 655 bool cf = fnt->getFont() == teFnt;
649 fontList->setItemChecked(i, cf); 656 fontList->setItemChecked(i, cf);
650 if (cf) { 657 if (cf) {
651 cfont = i; 658 cfont = i;
652 } 659 }
653 } 660 }
654} 661}
655 662
656void Konsole::colorMenuIsSelected(int iD) { 663void Konsole::colorMenuIsSelected(int iD) {
657 fromMenu = TRUE; 664 fromMenu = TRUE;
658 colorMenuSelected(iD); 665 colorMenuSelected(iD);
659} 666}
660 667
661/// ------------------------------- some new stuff by L.J. Potter 668/// ------------------------------- some new stuff by L.J. Potter
662void Konsole::colorMenuSelected(int iD) 669void Konsole::colorMenuSelected(int iD)
663{ // this is NOT pretty, elegant or anything else besides functional 670{ // this is NOT pretty, elegant or anything else besides functional
664// QString temp; 671// QString temp;
665// qDebug( temp.sprintf("colormenu %d", iD)); 672// qDebug( temp.sprintf("colormenu %d", iD));
666 TEWidget* te = getTe(); 673 TEWidget* te = getTe();
667 Config cfg("Konsole"); 674 Config cfg("Konsole");
668 cfg.setGroup("Colors"); 675 cfg.setGroup("Colors");
669// QColor foreground; 676// QColor foreground;
670// QColor background; 677// QColor background;
671 colorMenu->setItemChecked(lastSelectedMenu,FALSE); 678 colorMenu->setItemChecked(lastSelectedMenu,FALSE);
672 ColorEntry m_table[TABLE_COLORS]; 679 ColorEntry m_table[TABLE_COLORS];
673 const ColorEntry * defaultCt=te->getdefaultColorTable(); 680 const ColorEntry * defaultCt=te->getdefaultColorTable();
674 /////////// fore back 681 /////////// fore back
675 int i; 682 int i;
676 if(iD==-9) { // default default 683 if(iD==-9) { // default default
677 for (i = 0; i < TABLE_COLORS; i++) { 684 for (i = 0; i < TABLE_COLORS; i++) {
678 m_table[i].color = defaultCt[i].color; 685 m_table[i].color = defaultCt[i].color;
679 if(i==1 || i == 11) 686 if(i==1 || i == 11)
680 m_table[i].transparent=1; 687 m_table[i].transparent=1;
681 cfg.writeEntry("Schema","9"); 688 cfg.writeEntry("Schema","9");
682 colorMenu->setItemChecked(-9,TRUE); 689 colorMenu->setItemChecked(-9,TRUE);
683 } 690 }
684 } else { 691 } else {
685 if(iD==-6) { // green black 692 if(iD==-6) { // green black
686 foreground.setRgb(0x18,255,0x18); 693 foreground.setRgb(0x18,255,0x18);
687 background.setRgb(0x00,0x00,0x00); 694 background.setRgb(0x00,0x00,0x00);
688 cfg.writeEntry("Schema","6"); 695 cfg.writeEntry("Schema","6");
689 colorMenu->setItemChecked(-6,TRUE); 696 colorMenu->setItemChecked(-6,TRUE);
690 } 697 }
691 if(iD==-7) { // black white 698 if(iD==-7) { // black white
692 foreground.setRgb(0x00,0x00,0x00); 699 foreground.setRgb(0x00,0x00,0x00);
693 background.setRgb(0xFF,0xFF,0xFF); 700 background.setRgb(0xFF,0xFF,0xFF);
694 cfg.writeEntry("Schema","7"); 701 cfg.writeEntry("Schema","7");
695 colorMenu->setItemChecked(-7,TRUE); 702 colorMenu->setItemChecked(-7,TRUE);
696 } 703 }
697 if(iD==-8) { // white black 704 if(iD==-8) { // white black
698 foreground.setRgb(0xFF,0xFF,0xFF); 705 foreground.setRgb(0xFF,0xFF,0xFF);
699 background.setRgb(0x00,0x00,0x00); 706 background.setRgb(0x00,0x00,0x00);
700 cfg.writeEntry("Schema","8"); 707 cfg.writeEntry("Schema","8");
701 colorMenu->setItemChecked(-8,TRUE); 708 colorMenu->setItemChecked(-8,TRUE);
702 } 709 }
703 if(iD==-10) {// Black, Red 710 if(iD==-10) {// Black, Red
704 foreground.setRgb(0x00,0x00,0x00); 711 foreground.setRgb(0x00,0x00,0x00);
705 background.setRgb(0xB2,0x18,0x18); 712 background.setRgb(0xB2,0x18,0x18);
706 cfg.writeEntry("Schema","10"); 713 cfg.writeEntry("Schema","10");
707 colorMenu->setItemChecked(-10,TRUE); 714 colorMenu->setItemChecked(-10,TRUE);
708 } 715 }
709 if(iD==-11) {// Red, Black 716 if(iD==-11) {// Red, Black
710 foreground.setRgb(230,31,31); //0xB2,0x18,0x18 717 foreground.setRgb(230,31,31); //0xB2,0x18,0x18
711 background.setRgb(0x00,0x00,0x00); 718 background.setRgb(0x00,0x00,0x00);
712 cfg.writeEntry("Schema","11"); 719 cfg.writeEntry("Schema","11");
713 colorMenu->setItemChecked(-11,TRUE); 720 colorMenu->setItemChecked(-11,TRUE);
714 } 721 }
715 if(iD==-12) {// Green, Yellow - is ugly 722 if(iD==-12) {// Green, Yellow - is ugly
716// foreground.setRgb(0x18,0xB2,0x18); 723// foreground.setRgb(0x18,0xB2,0x18);
717 foreground.setRgb(36,139,10); 724 foreground.setRgb(36,139,10);
718// background.setRgb(0xB2,0x68,0x18); 725// background.setRgb(0xB2,0x68,0x18);
719 background.setRgb(255,255,0); 726 background.setRgb(255,255,0);
720 cfg.writeEntry("Schema","12"); 727 cfg.writeEntry("Schema","12");
721 colorMenu->setItemChecked(-12,TRUE); 728 colorMenu->setItemChecked(-12,TRUE);
722 } 729 }
723 if(iD==-13) {// Blue, Magenta 730 if(iD==-13) {// Blue, Magenta
724 foreground.setRgb(0x18,0xB2,0xB2); 731 foreground.setRgb(0x18,0xB2,0xB2);
725 background.setRgb(0x18,0x18,0xB2); 732 background.setRgb(0x18,0x18,0xB2);
726 cfg.writeEntry("Schema","13"); 733 cfg.writeEntry("Schema","13");
727 colorMenu->setItemChecked(-13,TRUE); 734 colorMenu->setItemChecked(-13,TRUE);
728 } 735 }
729 if(iD==-14) {// Magenta, Blue 736 if(iD==-14) {// Magenta, Blue
730 foreground.setRgb(0x18,0x18,0xB2); 737 foreground.setRgb(0x18,0x18,0xB2);
731 background.setRgb(0x18,0xB2,0xB2); 738 background.setRgb(0x18,0xB2,0xB2);
732 cfg.writeEntry("Schema","14"); 739 cfg.writeEntry("Schema","14");
733 colorMenu->setItemChecked(-14,TRUE); 740 colorMenu->setItemChecked(-14,TRUE);
734 } 741 }
735 if(iD==-15) {// Cyan, White 742 if(iD==-15) {// Cyan, White
736 foreground.setRgb(0x18,0xB2,0xB2); 743 foreground.setRgb(0x18,0xB2,0xB2);
737 background.setRgb(0xFF,0xFF,0xFF); 744 background.setRgb(0xFF,0xFF,0xFF);
738 cfg.writeEntry("Schema","15"); 745 cfg.writeEntry("Schema","15");
739 colorMenu->setItemChecked(-15,TRUE); 746 colorMenu->setItemChecked(-15,TRUE);
740 } 747 }
741 if(iD==-16) {// White, Cyan 748 if(iD==-16) {// White, Cyan
742 background.setRgb(0x18,0xB2,0xB2); 749 background.setRgb(0x18,0xB2,0xB2);
743 foreground.setRgb(0xFF,0xFF,0xFF); 750 foreground.setRgb(0xFF,0xFF,0xFF);
744 cfg.writeEntry("Schema","16"); 751 cfg.writeEntry("Schema","16");
745 colorMenu->setItemChecked(-16,TRUE); 752 colorMenu->setItemChecked(-16,TRUE);
746 } 753 }
747 if(iD==-17) {// Black, Blue 754 if(iD==-17) {// Black, Blue
748 background.setRgb(0x00,0x00,0x00); 755 background.setRgb(0x00,0x00,0x00);
749 foreground.setRgb(0x18,0xB2,0xB2); 756 foreground.setRgb(0x18,0xB2,0xB2);
750 cfg.writeEntry("Schema","17"); 757 cfg.writeEntry("Schema","17");
751 colorMenu->setItemChecked(-17,TRUE); 758 colorMenu->setItemChecked(-17,TRUE);
752 } 759 }
753 if(iD==-18) {// Black, Gold 760 if(iD==-18) {// Black, Gold
754 background.setRgb(0x00,0x00,0x00); 761 background.setRgb(0x00,0x00,0x00);
755 foreground.setRgb(255,215,0); 762 foreground.setRgb(255,215,0);
756 cfg.writeEntry("Schema","18"); 763 cfg.writeEntry("Schema","18");
757 colorMenu->setItemChecked(-18,TRUE); 764 colorMenu->setItemChecked(-18,TRUE);
758 } 765 }
759#ifdef QT_QWS_OPIE 766#ifdef QT_QWS_OPIE
760 if(iD==-19) { 767 if(iD==-19) {
761// Custom 768// Custom
762 qDebug("do custom"); 769 qDebug("do custom");
763 if(fromMenu) { 770 if(fromMenu) {
764 ColorPopupMenu* penColorPopupMenu = new ColorPopupMenu(Qt::black, this, "foreground color"); 771 ColorPopupMenu* penColorPopupMenu = new ColorPopupMenu(Qt::black, this, "foreground color");
765 connect(penColorPopupMenu, SIGNAL(colorSelected(const QColor&)), this, 772 connect(penColorPopupMenu, SIGNAL(colorSelected(const QColor&)), this,
766 SLOT(changeForegroundColor(const QColor&))); 773 SLOT(changeForegroundColor(const QColor&)));
767 penColorPopupMenu->exec(); 774 penColorPopupMenu->exec();
768 } 775 }
769 cfg.writeEntry("Schema","19"); 776 cfg.writeEntry("Schema","19");
770 if(!fromMenu) { 777 if(!fromMenu) {
771 foreground.setNamedColor(cfg.readEntry("foreground","")); 778 foreground.setNamedColor(cfg.readEntry("foreground",""));
772 background.setNamedColor(cfg.readEntry("background","")); 779 background.setNamedColor(cfg.readEntry("background",""));
773 } 780 }
774 fromMenu=FALSE; 781 fromMenu=FALSE;
775 colorMenu->setItemChecked(-19,TRUE); 782 colorMenu->setItemChecked(-19,TRUE);
776 } 783 }
777#endif 784#endif
778 for (i = 0; i < TABLE_COLORS; i++) { 785 for (i = 0; i < TABLE_COLORS; i++) {
779 if(i==0 || i == 10) { 786 if(i==0 || i == 10) {
780 m_table[i].color = foreground; 787 m_table[i].color = foreground;
781 } 788 }
782 else if(i==1 || i == 11) { 789 else if(i==1 || i == 11) {
783 m_table[i].color = background; m_table[i].transparent=0; 790 m_table[i].color = background; m_table[i].transparent=0;
784 } 791 }
785 else 792 else
786 m_table[i].color = defaultCt[i].color; 793 m_table[i].color = defaultCt[i].color;
787 } 794 }
788 } 795 }
789 lastSelectedMenu = iD; 796 lastSelectedMenu = iD;
790 te->setColorTable(m_table); 797 te->setColorTable(m_table);
791 update(); 798 update();
792 799
793} 800}
794 801
795void Konsole::configMenuSelected(int iD) 802void Konsole::configMenuSelected(int iD)
796{ 803{
797// QString temp; 804// QString temp;
798// qDebug( temp.sprintf("configmenu %d",iD)); 805// qDebug( temp.sprintf("configmenu %d",iD));
799 TEWidget* te = getTe(); 806 TEWidget* te = getTe();
800 Config cfg("Konsole"); 807 Config cfg("Konsole");
801 cfg.setGroup("Menubar"); 808 cfg.setGroup("Menubar");
802 int i,j; 809 int i,j;
803#ifdef QT_QWS_OPIE 810#ifdef QT_QWS_OPIE
804 i=-29;j=-30; 811 i=-29;j=-30;
805#else 812#else
806 i=-28;j=-29; 813 i=-28;j=-29;
807#endif 814#endif
808 815
809 if(iD == -4) { 816 if(iD == -4) {