summaryrefslogtreecommitdiff
authordrw <drw>2005-04-15 17:51:00 (UTC)
committer drw <drw>2005-04-15 17:51:00 (UTC)
commitba9d5ecee89aadb135a03c173878e315de784be3 (patch) (unidiff)
tree176d774bebfaa1d016a56fa8c00be79a2ea19fa5
parent86b1feed1ab2e47a082d974e1fcc513c59a74469 (diff)
downloadopie-ba9d5ecee89aadb135a03c173878e315de784be3.zip
opie-ba9d5ecee89aadb135a03c173878e315de784be3.tar.gz
opie-ba9d5ecee89aadb135a03c173878e315de784be3.tar.bz2
Resource -> OResource
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/embeddedkonsole/commandeditdialog.cpp23
-rw-r--r--core/apps/embeddedkonsole/konsole.cpp37
2 files changed, 39 insertions, 21 deletions
diff --git a/core/apps/embeddedkonsole/commandeditdialog.cpp b/core/apps/embeddedkonsole/commandeditdialog.cpp
index 697bf72..1e08767 100644
--- a/core/apps/embeddedkonsole/commandeditdialog.cpp
+++ b/core/apps/embeddedkonsole/commandeditdialog.cpp
@@ -1,191 +1,200 @@
1//comandeditdialog.cpp 1//comandeditdialog.cpp
2 2
3#include "commandeditdialog.h" 3#include "commandeditdialog.h"
4#include "playlistselection.h" 4#include "playlistselection.h"
5
6#include <opie2/oresource.h>
7
5#include <qpe/config.h> 8#include <qpe/config.h>
6#include <qpe/resource.h> 9
10#include <qapplication.h>
7#include <qtoolbutton.h> 11#include <qtoolbutton.h>
8#include <qlineedit.h> 12#include <qlineedit.h>
9#include <qheader.h> 13#include <qheader.h>
10#include <qlabel.h> 14#include <qlabel.h>
11#include "smallcommandeditdialogbase.h" 15#include "smallcommandeditdialogbase.h"
12 16
13CommandEditDialog::CommandEditDialog(QWidget *parent, const char* name, WFlags fl ) 17CommandEditDialog::CommandEditDialog(QWidget *parent, const char* name, WFlags fl )
14 : CommandEditDialogBase(parent, name, TRUE, fl) 18 : CommandEditDialogBase(parent, name, TRUE, fl)
15 19
16{ 20{
17 m_SuggestedCommandList->addColumn( tr("Command Selection") ); 21 m_SuggestedCommandList->addColumn( tr("Command Selection") );
18 m_SuggestedCommandList->header()->hide(); 22 m_SuggestedCommandList->header()->hide();
19 m_SuggestedCommandList->setSorting(-1,FALSE); 23 m_SuggestedCommandList->setSorting(-1,FALSE);
20 m_SuggestedCommandList->clearSelection(); 24 m_SuggestedCommandList->clearSelection();
21 m_SuggestedCommandList->setSorting(0,TRUE); 25 m_SuggestedCommandList->setSorting(0,TRUE);
22 QListViewItem *item; 26 QListViewItem *item;
23 item = new QListViewItem( m_SuggestedCommandList,"export "); 27 item = new QListViewItem( m_SuggestedCommandList,"export ");
24 item = new QListViewItem( m_SuggestedCommandList,"ifconfig "); 28 item = new QListViewItem( m_SuggestedCommandList,"ifconfig ");
25 item = new QListViewItem( m_SuggestedCommandList,"ipkg "); 29 item = new QListViewItem( m_SuggestedCommandList,"ipkg ");
26 item = new QListViewItem( m_SuggestedCommandList,"gzip "); 30 item = new QListViewItem( m_SuggestedCommandList,"gzip ");
27 item = new QListViewItem( m_SuggestedCommandList,"gunzip "); 31 item = new QListViewItem( m_SuggestedCommandList,"gunzip ");
28 item = new QListViewItem( m_SuggestedCommandList,"chgrp "); 32 item = new QListViewItem( m_SuggestedCommandList,"chgrp ");
29 item = new QListViewItem( m_SuggestedCommandList,"chown "); 33 item = new QListViewItem( m_SuggestedCommandList,"chown ");
30 item = new QListViewItem( m_SuggestedCommandList,"date "); 34 item = new QListViewItem( m_SuggestedCommandList,"date ");
31 item = new QListViewItem( m_SuggestedCommandList,"dd "); 35 item = new QListViewItem( m_SuggestedCommandList,"dd ");
32 item = new QListViewItem( m_SuggestedCommandList,"dmesg "); 36 item = new QListViewItem( m_SuggestedCommandList,"dmesg ");
33 item = new QListViewItem( m_SuggestedCommandList,"fuser "); 37 item = new QListViewItem( m_SuggestedCommandList,"fuser ");
34 item = new QListViewItem( m_SuggestedCommandList,"hostname "); 38 item = new QListViewItem( m_SuggestedCommandList,"hostname ");
35 item = new QListViewItem( m_SuggestedCommandList,"kill "); 39 item = new QListViewItem( m_SuggestedCommandList,"kill ");
36 item = new QListViewItem( m_SuggestedCommandList,"killall "); 40 item = new QListViewItem( m_SuggestedCommandList,"killall ");
37 item = new QListViewItem( m_SuggestedCommandList,"ln "); 41 item = new QListViewItem( m_SuggestedCommandList,"ln ");
38 item = new QListViewItem( m_SuggestedCommandList,"ln -s "); 42 item = new QListViewItem( m_SuggestedCommandList,"ln -s ");
39 item = new QListViewItem( m_SuggestedCommandList,"lsmod"); 43 item = new QListViewItem( m_SuggestedCommandList,"lsmod");
40 item = new QListViewItem( m_SuggestedCommandList,"depmod -a"); 44 item = new QListViewItem( m_SuggestedCommandList,"depmod -a");
41 item = new QListViewItem( m_SuggestedCommandList,"modprobe "); 45 item = new QListViewItem( m_SuggestedCommandList,"modprobe ");
42 item = new QListViewItem( m_SuggestedCommandList,"mount "); 46 item = new QListViewItem( m_SuggestedCommandList,"mount ");
43 item = new QListViewItem( m_SuggestedCommandList,"more "); 47 item = new QListViewItem( m_SuggestedCommandList,"more ");
44 item = new QListViewItem( m_SuggestedCommandList,"sort "); 48 item = new QListViewItem( m_SuggestedCommandList,"sort ");
45 item = new QListViewItem( m_SuggestedCommandList,"touch "); 49 item = new QListViewItem( m_SuggestedCommandList,"touch ");
46 item = new QListViewItem( m_SuggestedCommandList,"umount "); 50 item = new QListViewItem( m_SuggestedCommandList,"umount ");
47 item = new QListViewItem( m_SuggestedCommandList,"mknod "); 51 item = new QListViewItem( m_SuggestedCommandList,"mknod ");
48 item = new QListViewItem( m_SuggestedCommandList,"netstat "); 52 item = new QListViewItem( m_SuggestedCommandList,"netstat ");
49 item = new QListViewItem( m_SuggestedCommandList,"route "); 53 item = new QListViewItem( m_SuggestedCommandList,"route ");
50 item = new QListViewItem( m_SuggestedCommandList,"cardctl eject "); 54 item = new QListViewItem( m_SuggestedCommandList,"cardctl eject ");
51 m_SuggestedCommandList->setSelected(m_SuggestedCommandList->firstChild(),TRUE); 55 m_SuggestedCommandList->setSelected(m_SuggestedCommandList->firstChild(),TRUE);
52 m_SuggestedCommandList->sort(); 56 m_SuggestedCommandList->sort();
53 57
54 connect( m_SuggestedCommandList, SIGNAL( clicked(QListViewItem*) ), m_PlayListSelection, SLOT( addToSelection(QListViewItem*) ) ); 58 connect( m_SuggestedCommandList, SIGNAL( clicked(QListViewItem*) ), m_PlayListSelection, SLOT( addToSelection(QListViewItem*) ) );
55 59
56 60 bool bigPixmaps = qApp->desktop()->size().width()>330;
57 61
58 ToolButton1->setTextLabel("new"); 62 ToolButton1->setTextLabel("new");
59 ToolButton1->setPixmap(Resource::loadPixmap("new")); 63 ToolButton1->setUsesBigPixmap( bigPixmaps );
64 ToolButton1->setPixmap( Opie::Core::OResource::loadPixmap( "new", Opie::Core::OResource::SmallIcon ) );
60 ToolButton1->setAutoRaise(TRUE); 65 ToolButton1->setAutoRaise(TRUE);
61 ToolButton1->setFocusPolicy(QWidget::NoFocus); 66 ToolButton1->setFocusPolicy(QWidget::NoFocus);
62 connect(ToolButton1,SIGNAL(clicked()),this,SLOT(showAddDialog())); 67 connect(ToolButton1,SIGNAL(clicked()),this,SLOT(showAddDialog()));
63 68
64 ToolButton2->setTextLabel("edit"); 69 ToolButton2->setTextLabel("edit");
65 ToolButton2->setPixmap(Resource::loadPixmap("edit")); 70 ToolButton2->setUsesBigPixmap( bigPixmaps );
71 ToolButton2->setPixmap( Opie::Core::OResource::loadPixmap( "edit", Opie::Core::OResource::SmallIcon ) );
66 ToolButton2->setAutoRaise(TRUE); 72 ToolButton2->setAutoRaise(TRUE);
67 ToolButton2->setFocusPolicy(QWidget::NoFocus); 73 ToolButton2->setFocusPolicy(QWidget::NoFocus);
68 connect(ToolButton2,SIGNAL(clicked()),this,SLOT(showEditDialog())); 74 connect(ToolButton2,SIGNAL(clicked()),this,SLOT(showEditDialog()));
69 75
70 ToolButton3->setTextLabel("delete"); 76 ToolButton3->setTextLabel("delete");
71 ToolButton3->setPixmap(Resource::loadPixmap("editdelete")); 77 ToolButton3->setUsesBigPixmap( bigPixmaps );
78 ToolButton3->setPixmap( Opie::Core::OResource::loadPixmap( "editdelete", Opie::Core::OResource::SmallIcon ) );
72 ToolButton3->setAutoRaise(TRUE); 79 ToolButton3->setAutoRaise(TRUE);
73 ToolButton3->setFocusPolicy(QWidget::NoFocus); 80 ToolButton3->setFocusPolicy(QWidget::NoFocus);
74 connect(ToolButton3,SIGNAL(clicked()),m_PlayListSelection,SLOT(removeSelected())); 81 connect(ToolButton3,SIGNAL(clicked()),m_PlayListSelection,SLOT(removeSelected()));
75 82
76 ToolButton4->setTextLabel("up"); 83 ToolButton4->setTextLabel("up");
77 ToolButton4->setPixmap(Resource::loadPixmap("up")); 84 ToolButton4->setUsesBigPixmap( bigPixmaps );
85 ToolButton4->setPixmap( Opie::Core::OResource::loadPixmap( "up", Opie::Core::OResource::SmallIcon ) );
78 ToolButton4->setAutoRaise(TRUE); 86 ToolButton4->setAutoRaise(TRUE);
79 ToolButton4->setFocusPolicy(QWidget::NoFocus); 87 ToolButton4->setFocusPolicy(QWidget::NoFocus);
80 connect(ToolButton4,SIGNAL(clicked()),m_PlayListSelection,SLOT(moveSelectedUp())); 88 connect(ToolButton4,SIGNAL(clicked()),m_PlayListSelection,SLOT(moveSelectedUp()));
81 89
82 ToolButton5->setTextLabel("down"); 90 ToolButton5->setTextLabel("down");
83 ToolButton5->setPixmap(Resource::loadPixmap("down")); 91 ToolButton5->setUsesBigPixmap( bigPixmaps );
92 ToolButton5->setPixmap( Opie::Core::OResource::loadPixmap( "down", Opie::Core::OResource::SmallIcon ) );
84 ToolButton5->setAutoRaise(TRUE); 93 ToolButton5->setAutoRaise(TRUE);
85 ToolButton5->setFocusPolicy(QWidget::NoFocus); 94 ToolButton5->setFocusPolicy(QWidget::NoFocus);
86 95
87connect(ToolButton5,SIGNAL(clicked()),m_PlayListSelection,SLOT(moveSelectedDown())); 96connect(ToolButton5,SIGNAL(clicked()),m_PlayListSelection,SLOT(moveSelectedDown()));
88 97
89 98
90 99
91 100
92 QListViewItem *current = m_SuggestedCommandList->selectedItem(); 101 QListViewItem *current = m_SuggestedCommandList->selectedItem();
93 if ( current ) 102 if ( current )
94 item->moveItem( current ); 103 item->moveItem( current );
95 m_SuggestedCommandList->setSelected( item, TRUE ); 104 m_SuggestedCommandList->setSelected( item, TRUE );
96 m_SuggestedCommandList->ensureItemVisible( m_SuggestedCommandList->selectedItem() ); 105 m_SuggestedCommandList->ensureItemVisible( m_SuggestedCommandList->selectedItem() );
97 Config cfg( "Konsole" ); 106 Config cfg( "Konsole" );
98 cfg.setGroup("Commands"); 107 cfg.setGroup("Commands");
99 if (cfg.readEntry("Commands Set","FALSE") == "TRUE") { 108 if (cfg.readEntry("Commands Set","FALSE") == "TRUE") {
100 for (int i = 0; i < 100; i++) { 109 for (int i = 0; i < 100; i++) {
101 QString tmp; 110 QString tmp;
102 tmp = cfg.readEntry( QString::number(i),""); 111 tmp = cfg.readEntry( QString::number(i),"");
103 if (!tmp.isEmpty()) 112 if (!tmp.isEmpty())
104 m_PlayListSelection->addStringToSelection(tmp); 113 m_PlayListSelection->addStringToSelection(tmp);
105 } 114 }
106 } else { 115 } else {
107 116
108m_PlayListSelection->addStringToSelection("ls "); 117m_PlayListSelection->addStringToSelection("ls ");
109m_PlayListSelection->addStringToSelection("cardctl eject"); 118m_PlayListSelection->addStringToSelection("cardctl eject");
110m_PlayListSelection->addStringToSelection("cat "); 119m_PlayListSelection->addStringToSelection("cat ");
111m_PlayListSelection->addStringToSelection("cd "); 120m_PlayListSelection->addStringToSelection("cd ");
112m_PlayListSelection->addStringToSelection("chmod "); 121m_PlayListSelection->addStringToSelection("chmod ");
113m_PlayListSelection->addStringToSelection("cp "); 122m_PlayListSelection->addStringToSelection("cp ");
114m_PlayListSelection->addStringToSelection("dc "); 123m_PlayListSelection->addStringToSelection("dc ");
115m_PlayListSelection->addStringToSelection("df "); 124m_PlayListSelection->addStringToSelection("df ");
116m_PlayListSelection->addStringToSelection("dmesg"); 125m_PlayListSelection->addStringToSelection("dmesg");
117m_PlayListSelection->addStringToSelection("echo "); 126m_PlayListSelection->addStringToSelection("echo ");
118m_PlayListSelection->addStringToSelection("env"); 127m_PlayListSelection->addStringToSelection("env");
119m_PlayListSelection->addStringToSelection("find "); 128m_PlayListSelection->addStringToSelection("find ");
120m_PlayListSelection->addStringToSelection("free"); 129m_PlayListSelection->addStringToSelection("free");
121m_PlayListSelection->addStringToSelection("grep "); 130m_PlayListSelection->addStringToSelection("grep ");
122m_PlayListSelection->addStringToSelection("ifconfig "); 131m_PlayListSelection->addStringToSelection("ifconfig ");
123m_PlayListSelection->addStringToSelection("ipkg "); 132m_PlayListSelection->addStringToSelection("ipkg ");
124m_PlayListSelection->addStringToSelection("mkdir "); 133m_PlayListSelection->addStringToSelection("mkdir ");
125m_PlayListSelection->addStringToSelection("mv "); 134m_PlayListSelection->addStringToSelection("mv ");
126m_PlayListSelection->addStringToSelection("nc localhost 7776"); 135m_PlayListSelection->addStringToSelection("nc localhost 7776");
127m_PlayListSelection->addStringToSelection("nc localhost 7777"); 136m_PlayListSelection->addStringToSelection("nc localhost 7777");
128m_PlayListSelection->addStringToSelection("nslookup "); 137m_PlayListSelection->addStringToSelection("nslookup ");
129m_PlayListSelection->addStringToSelection("ping "); 138m_PlayListSelection->addStringToSelection("ping ");
130m_PlayListSelection->addStringToSelection("ps aux"); 139m_PlayListSelection->addStringToSelection("ps aux");
131m_PlayListSelection->addStringToSelection("pwd "); 140m_PlayListSelection->addStringToSelection("pwd ");
132m_PlayListSelection->addStringToSelection("rm "); 141m_PlayListSelection->addStringToSelection("rm ");
133m_PlayListSelection->addStringToSelection("rmdir "); 142m_PlayListSelection->addStringToSelection("rmdir ");
134m_PlayListSelection->addStringToSelection("route "); 143m_PlayListSelection->addStringToSelection("route ");
135m_PlayListSelection->addStringToSelection("set "); 144m_PlayListSelection->addStringToSelection("set ");
136m_PlayListSelection->addStringToSelection("traceroute"); 145m_PlayListSelection->addStringToSelection("traceroute");
137 146
138} 147}
139} 148}
140CommandEditDialog::~CommandEditDialog() 149CommandEditDialog::~CommandEditDialog()
141{ 150{
142} 151}
143 152
144void CommandEditDialog::accept() 153void CommandEditDialog::accept()
145{ 154{
146int i = 0; 155int i = 0;
147 Config *cfg = new Config("Konsole"); 156 Config *cfg = new Config("Konsole");
148 cfg->setGroup("Commands"); 157 cfg->setGroup("Commands");
149 cfg->clearGroup(); 158 cfg->clearGroup();
150 159
151 QListViewItemIterator it( m_PlayListSelection ); 160 QListViewItemIterator it( m_PlayListSelection );
152 161
153 for ( ; it.current(); ++it ) { 162 for ( ; it.current(); ++it ) {
154// odebug << it.current()->text(0) << oendl; 163// odebug << it.current()->text(0) << oendl;
155 cfg->writeEntry(QString::number(i),it.current()->text(0)); 164 cfg->writeEntry(QString::number(i),it.current()->text(0));
156 i++; 165 i++;
157 166
158 } 167 }
159 cfg->writeEntry("Commands Set","TRUE"); 168 cfg->writeEntry("Commands Set","TRUE");
160// odebug << "CommandEditDialog::accept() - written" << oendl; 169// odebug << "CommandEditDialog::accept() - written" << oendl;
161 delete cfg; 170 delete cfg;
162 emit commandsEdited(); 171 emit commandsEdited();
163 close(); 172 close();
164 173
165 174
166 175
167 176
168 177
169} 178}
170 179
171void CommandEditDialog::showEditDialog() 180void CommandEditDialog::showEditDialog()
172{ 181{
173editCommandBase *d = new editCommandBase(this,"smalleditdialog", TRUE); 182editCommandBase *d = new editCommandBase(this,"smalleditdialog", TRUE);
174d->setCaption("Edit command"); 183d->setCaption("Edit command");
175d->TextLabel->setText("Edit command:"); 184d->TextLabel->setText("Edit command:");
176d->commandEdit->setText(m_PlayListSelection->currentItem()->text(0)); 185d->commandEdit->setText(m_PlayListSelection->currentItem()->text(0));
177int i = d->exec(); 186int i = d->exec();
178if ((i==1) && (!(d->commandEdit->text()).isEmpty())) 187if ((i==1) && (!(d->commandEdit->text()).isEmpty()))
179 m_PlayListSelection->currentItem()->setText(0,(d->commandEdit->text())); 188 m_PlayListSelection->currentItem()->setText(0,(d->commandEdit->text()));
180} 189}
181 190
182void CommandEditDialog::showAddDialog() 191void CommandEditDialog::showAddDialog()
183{ 192{
184 193
185editCommandBase *d = new editCommandBase(this,"smalleditdialog", TRUE); 194editCommandBase *d = new editCommandBase(this,"smalleditdialog", TRUE);
186int i = d->exec(); 195int i = d->exec();
187if ((i==1) && (!(d->commandEdit->text()).isEmpty())) 196if ((i==1) && (!(d->commandEdit->text()).isEmpty()))
188m_PlayListSelection->addStringToSelection(d->commandEdit->text()); 197m_PlayListSelection->addStringToSelection(d->commandEdit->text());
189 198
190} 199}
191 200
diff --git a/core/apps/embeddedkonsole/konsole.cpp b/core/apps/embeddedkonsole/konsole.cpp
index de00494..7f3ea65 100644
--- a/core/apps/embeddedkonsole/konsole.cpp
+++ b/core/apps/embeddedkonsole/konsole.cpp
@@ -1,1129 +1,1138 @@
1 1
2/* ---------------------------------------------------------------------- */ 2/* ---------------------------------------------------------------------- */
3/* */ 3/* */
4/* [main.C] Konsole */ 4/* [main.C] Konsole */
5/* */ 5/* */
6/* ---------------------------------------------------------------------- */ 6/* ---------------------------------------------------------------------- */
7/* */ 7/* */
8/* Copyright (c) 1997,1998 by Lars Doelle <lars.doelle@on-line.de> */ 8/* Copyright (c) 1997,1998 by Lars Doelle <lars.doelle@on-line.de> */
9/* */ 9/* */
10/* This file is part of Konsole, an X terminal. */ 10/* This file is part of Konsole, an X terminal. */
11/* */ 11/* */
12/* The material contained in here more or less directly orginates from */ 12/* The material contained in here more or less directly orginates from */
13/* kvt, which is copyright (c) 1996 by Matthias Ettrich <ettrich@kde.org> */ 13/* kvt, which is copyright (c) 1996 by Matthias Ettrich <ettrich@kde.org> */
14/* */ 14/* */
15/* ---------------------------------------------------------------------- */ 15/* ---------------------------------------------------------------------- */
16/* */ 16/* */
17/* Ported Konsole to Qt/Embedded */ 17/* Ported Konsole to Qt/Embedded */
18/* */ 18/* */
19/* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */ 19/* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */
20/* */ 20/* */
21/* -------------------------------------------------------------------------- */ 21/* -------------------------------------------------------------------------- */
22// enhancements added by L.J. Potter <ljp@llornkcor.com> 22// enhancements added by L.J. Potter <ljp@llornkcor.com>
23// enhancements added by Phillip Kuhn 23// enhancements added by Phillip Kuhn
24 24
25#include <stdlib.h> 25#include <stdlib.h>
26#include <sys/types.h> 26#include <sys/types.h>
27#include <pwd.h> 27#include <pwd.h>
28#include <unistd.h> 28#include <unistd.h>
29 29
30#ifdef QT_QWS_OPIE 30#ifdef QT_QWS_OPIE
31#include <opie2/ocolorpopupmenu.h> 31#include <opie2/ocolorpopupmenu.h>
32#include <opie2/odebug.h> 32#include <opie2/odebug.h>
33#include <opie2/oresource.h>
34
33using namespace Opie; 35using namespace Opie;
34#endif 36#endif
35 37
36#include <qpe/resource.h>
37
38#include <qmenubar.h> 38#include <qmenubar.h>
39#include <qtabbar.h> 39#include <qtabbar.h>
40#include <qpe/config.h> 40#include <qpe/config.h>
41#include <qfontdatabase.h> 41#include <qfontdatabase.h>
42#include <qfile.h> 42#include <qfile.h>
43#include <qspinbox.h> 43#include <qspinbox.h>
44#include <qlayout.h> 44#include <qlayout.h>
45 45
46#include <sys/wait.h> 46#include <sys/wait.h>
47#include <stdio.h> 47#include <stdio.h>
48#include <stdlib.h> 48#include <stdlib.h>
49#include <assert.h> 49#include <assert.h>
50 50
51#include "konsole.h" 51#include "konsole.h"
52#include "commandeditdialog.h" 52#include "commandeditdialog.h"
53 53
54class EKNumTabBar : public QTabBar 54class EKNumTabBar : public QTabBar
55{ 55{
56public: 56public:
57 EKNumTabBar(QWidget *parent = 0, const char *name = 0) : 57 EKNumTabBar(QWidget *parent = 0, const char *name = 0) :
58 QTabBar(parent, name) 58 QTabBar(parent, name)
59 {} 59 {}
60 60
61 // QList<QTab> *getTabList() { return(tabList()); } 61 // QList<QTab> *getTabList() { return(tabList()); }
62 62
63 void numberTabs() 63 void numberTabs()
64 { 64 {
65 // Yes, it really is this messy. QTabWidget needs functions 65 // Yes, it really is this messy. QTabWidget needs functions
66 // that provide acces to tabs in a sequential way. 66 // that provide acces to tabs in a sequential way.
67 int m=INT_MIN; 67 int m=INT_MIN;
68 for (int i=0; i<count(); i++) 68 for (int i=0; i<count(); i++)
69 { 69 {
70 QTab* left=0; 70 QTab* left=0;
71 QListIterator<QTab> it(*tabList()); 71 QListIterator<QTab> it(*tabList());
72 int x=INT_MAX; 72 int x=INT_MAX;
73 for( QTab* t; (t=it.current()); ++it ) 73 for( QTab* t; (t=it.current()); ++it )
74 { 74 {
75 int tx = t->rect().x(); 75 int tx = t->rect().x();
76 if ( tx<x && tx>m ) 76 if ( tx<x && tx>m )
77 { 77 {
78 x = tx; 78 x = tx;
79 left = t; 79 left = t;
80 } 80 }
81 } 81 }
82 if ( left ) 82 if ( left )
83 { 83 {
84 left->setText(QString::number(i+1)); 84 left->setText(QString::number(i+1));
85 m = left->rect().x(); 85 m = left->rect().x();
86 } 86 }
87 } 87 }
88 } 88 }
89 89
90 virtual QSize sizeHint() const 90 virtual QSize sizeHint() const
91 { 91 {
92 if (isHidden()) 92 if (isHidden())
93 { 93 {
94 return(QSize(0,0)); 94 return(QSize(0,0));
95 } 95 }
96 else 96 else
97 { 97 {
98 QSize size = QTabBar::sizeHint(); 98 QSize size = QTabBar::sizeHint();
99 int shrink = 5; 99 int shrink = 5;
100 if (qApp->desktop()->width() > 600 || qApp->desktop()->height() > 600) 100 if (qApp->desktop()->width() > 600 || qApp->desktop()->height() > 600)
101 { 101 {
102 shrink = 10; 102 shrink = 10;
103 } 103 }
104 size.setHeight(size.height() - shrink); 104 size.setHeight(size.height() - shrink);
105 return(size); 105 return(size);
106 } 106 }
107 } 107 }
108 108
109}; 109};
110 110
111class EKNumTabWidget : public QTabWidget 111class EKNumTabWidget : public QTabWidget
112{ 112{
113public: 113public:
114 EKNumTabWidget(QWidget* parent) : QTabWidget(parent) 114 EKNumTabWidget(QWidget* parent) : QTabWidget(parent)
115 { 115 {
116 setTabBar(new EKNumTabBar(parent,"EKTabBar")); 116 setTabBar(new EKNumTabBar(parent,"EKTabBar"));
117 setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) ); 117 setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
118 } 118 }
119 119
120 EKNumTabBar *getTabBar() const 120 EKNumTabBar *getTabBar() const
121 { 121 {
122 return ((EKNumTabBar*)tabBar()); 122 return ((EKNumTabBar*)tabBar());
123 } 123 }
124 124
125 125
126 void addTab(QWidget* w) 126 void addTab(QWidget* w)
127 { 127 {
128 QTab* t = new QTab(QString::number(tabBar()->count()+1)); 128 QTab* t = new QTab(QString::number(tabBar()->count()+1));
129 QTabWidget::addTab(w,t); 129 QTabWidget::addTab(w,t);
130 } 130 }
131 131
132 void removeTab(QWidget* w) 132 void removeTab(QWidget* w)
133 { 133 {
134 removePage(w); 134 removePage(w);
135 ((EKNumTabBar*)tabBar())->numberTabs(); 135 ((EKNumTabBar*)tabBar())->numberTabs();
136 } 136 }
137}; 137};
138 138
139// This could be configurable or dynamicly generated from the bash history 139// This could be configurable or dynamicly generated from the bash history
140// file of the user 140// file of the user
141static const char *commonCmds[] = 141static const char *commonCmds[] =
142 { 142 {
143 "ls ", // I left this here, cause it looks better than the first alpha 143 "ls ", // I left this here, cause it looks better than the first alpha
144 "cardctl eject", 144 "cardctl eject",
145 "cat ", 145 "cat ",
146 "cd ", 146 "cd ",
147 "chmod ", 147 "chmod ",
148 "clear", 148 "clear",
149 "cp ", 149 "cp ",
150 "dc ", 150 "dc ",
151 "df ", 151 "df ",
152 "dmesg", 152 "dmesg",
153 "echo ", 153 "echo ",
154 "env", 154 "env",
155 "find ", 155 "find ",
156 "free", 156 "free",
157 "grep ", 157 "grep ",
158 "ifconfig ", 158 "ifconfig ",
159 "ipkg ", 159 "ipkg ",
160 "mkdir ", 160 "mkdir ",
161 "mv ", 161 "mv ",
162 "nc localhost 7776", 162 "nc localhost 7776",
163 "nc localhost 7777", 163 "nc localhost 7777",
164 "netstat ", 164 "netstat ",
165 "nslookup ", 165 "nslookup ",
166 "ping ", 166 "ping ",
167 "ps aux", 167 "ps aux",
168 "pwd ", 168 "pwd ",
169// "qcop QPE/System 'linkChanged(QString)' ''", 169// "qcop QPE/System 'linkChanged(QString)' ''",
170// "qcop QPE/System 'restart()'", 170// "qcop QPE/System 'restart()'",
171// "qcop QPE/System 'quit()'", 171// "qcop QPE/System 'quit()'",
172 "rm ", 172 "rm ",
173 "rmdir ", 173 "rmdir ",
174 "route ", 174 "route ",
175 "set ", 175 "set ",
176 "traceroute", 176 "traceroute",
177 177
178 /* 178 /*
179 "gzip", 179 "gzip",
180 "gunzip", 180 "gunzip",
181 "chgrp", 181 "chgrp",
182 "chown", 182 "chown",
183 "date", 183 "date",
184 "dd", 184 "dd",
185 "df", 185 "df",
186 "dmesg", 186 "dmesg",
187 "fuser", 187 "fuser",
188 "hostname", 188 "hostname",
189 "kill", 189 "kill",
190 "killall", 190 "killall",
191 "ln", 191 "ln",
192 "ping", 192 "ping",
193 "mount", 193 "mount",
194 "more", 194 "more",
195 "sort", 195 "sort",
196 "touch", 196 "touch",
197 "umount", 197 "umount",
198 "mknod", 198 "mknod",
199 "netstat", 199 "netstat",
200 */ 200 */
201 201
202 "exit", 202 "exit",
203 NULL 203 NULL
204 }; 204 };
205 205
206 206
207static void konsoleInit(const char** shell) { 207static void konsoleInit(const char** shell) {
208 if(setuid(getuid()) !=0) odebug << "setuid failed" << oendl; 208 if(setuid(getuid()) !=0) odebug << "setuid failed" << oendl;
209 if(setgid(getgid()) != 0) odebug << "setgid failed" << oendl; // drop privileges 209 if(setgid(getgid()) != 0) odebug << "setgid failed" << oendl; // drop privileges
210 210
211 211
212// QPEApplication::grabKeyboard(); // for CTRL and ALT 212// QPEApplication::grabKeyboard(); // for CTRL and ALT
213 213
214 odebug << "keyboard grabbed" << oendl; 214 odebug << "keyboard grabbed" << oendl;
215#ifdef FAKE_CTRL_AND_ALT 215#ifdef FAKE_CTRL_AND_ALT
216 odebug << "Fake Ctrl and Alt defined" << oendl; 216 odebug << "Fake Ctrl and Alt defined" << oendl;
217 QPEApplication::grabKeyboard(); // for CTRL and ALT 217 QPEApplication::grabKeyboard(); // for CTRL and ALT
218#endif 218#endif
219 219
220 *shell = getenv("SHELL"); 220 *shell = getenv("SHELL");
221 owarn << "SHell initially is " << *shell << "" << oendl; 221 owarn << "SHell initially is " << *shell << "" << oendl;
222 222
223 if (shell == NULL || *shell == '\0') { 223 if (shell == NULL || *shell == '\0') {
224 struct passwd *ent = 0; 224 struct passwd *ent = 0;
225 uid_t me = getuid(); 225 uid_t me = getuid();
226 *shell = "/bin/sh"; 226 *shell = "/bin/sh";
227 227
228 while ( (ent = getpwent()) != 0 ) { 228 while ( (ent = getpwent()) != 0 ) {
229 if (ent->pw_uid == me) { 229 if (ent->pw_uid == me) {
230 if (ent->pw_shell != "") 230 if (ent->pw_shell != "")
231 *shell = ent->pw_shell; 231 *shell = ent->pw_shell;
232 break; 232 break;
233 } 233 }
234 } 234 }
235 endpwent(); 235 endpwent();
236 } 236 }
237 237
238 if( putenv((char*)"COLORTERM=") !=0) 238 if( putenv((char*)"COLORTERM=") !=0)
239 odebug << "putenv failed" << oendl; // to trigger mc's color detection 239 odebug << "putenv failed" << oendl; // to trigger mc's color detection
240} 240}
241 241
242 242
243Konsole::Konsole(QWidget* parent, const char* name, WFlags fl) : 243Konsole::Konsole(QWidget* parent, const char* name, WFlags fl) :
244 QMainWindow(parent, name, fl) 244 QMainWindow(parent, name, fl)
245{ 245{
246 QStrList tmp; const char* shell; 246 QStrList tmp; const char* shell;
247 247
248 konsoleInit( &shell); 248 konsoleInit( &shell);
249 init(shell,tmp); 249 init(shell,tmp);
250} 250}
251 251
252Konsole::Konsole(const char* name, const char* _pgm, QStrList & _args, int) 252Konsole::Konsole(const char* name, const char* _pgm, QStrList & _args, int)
253 : QMainWindow(0, name) 253 : QMainWindow(0, name)
254{ 254{
255 init(_pgm,_args); 255 init(_pgm,_args);
256} 256}
257 257
258struct HistoryItem 258struct HistoryItem
259{ 259{
260 HistoryItem(int c, const QString &l) 260 HistoryItem(int c, const QString &l)
261 { 261 {
262 count = c; 262 count = c;
263 line = l; 263 line = l;
264 } 264 }
265 int count; 265 int count;
266 QString line; 266 QString line;
267}; 267};
268 268
269class HistoryList : public QList<HistoryItem> 269class HistoryList : public QList<HistoryItem>
270{ 270{
271 virtual int compareItems( QCollection::Item item1, QCollection::Item item2) 271 virtual int compareItems( QCollection::Item item1, QCollection::Item item2)
272 { 272 {
273 int c1 = ((HistoryItem*)item1)->count; 273 int c1 = ((HistoryItem*)item1)->count;
274 int c2 = ((HistoryItem*)item2)->count; 274 int c2 = ((HistoryItem*)item2)->count;
275 if (c1 > c2) 275 if (c1 > c2)
276 return(1); 276 return(1);
277 if (c1 < c2) 277 if (c1 < c2)
278 return(-1); 278 return(-1);
279 return(0); 279 return(0);
280 } 280 }
281}; 281};
282 282
283void Konsole::initCommandList() 283void Konsole::initCommandList()
284{ 284{
285 // odebug << "Konsole::initCommandList" << oendl; 285 // odebug << "Konsole::initCommandList" << oendl;
286 Config cfg( "Konsole" ); 286 Config cfg( "Konsole" );
287 cfg.setGroup("Commands"); 287 cfg.setGroup("Commands");
288 // commonCombo->setInsertionPolicy(QComboBox::AtCurrent); 288 // commonCombo->setInsertionPolicy(QComboBox::AtCurrent);
289 commonCombo->clear(); 289 commonCombo->clear();
290 290
291 if (cfg.readEntry("ShellHistory","TRUE") == "FALSE") { 291 if (cfg.readEntry("ShellHistory","TRUE") == "FALSE") {
292 QString histfilename = QString(getenv("HOME")) + "/.bash_history"; 292 QString histfilename = QString(getenv("HOME")) + "/.bash_history";
293 histfilename = cfg.readEntry("ShellHistoryPath",histfilename); 293 histfilename = cfg.readEntry("ShellHistoryPath",histfilename);
294 QFile histfile(histfilename); 294 QFile histfile(histfilename);
295 // note: compiler barfed on: 295 // note: compiler barfed on:
296 // QFile histfile(QString(getenv("HOME")) + "/.bash_history"); 296 // QFile histfile(QString(getenv("HOME")) + "/.bash_history");
297 if (histfile.open( IO_ReadOnly )) { 297 if (histfile.open( IO_ReadOnly )) {
298 QString line; 298 QString line;
299 uint i; 299 uint i;
300 HistoryList items; 300 HistoryList items;
301 301
302 int lineno = 0; 302 int lineno = 0;
303 while(!histfile.atEnd()) { 303 while(!histfile.atEnd()) {
304 if (histfile.readLine(line, 200) < 0) { 304 if (histfile.readLine(line, 200) < 0) {
305 break; 305 break;
306 } 306 }
307 line = line.left(line.length()-1); 307 line = line.left(line.length()-1);
308 lineno++; 308 lineno++;
309 309
310 for(i=0; i<items.count(); i++) { 310 for(i=0; i<items.count(); i++) {
311 if (line == items.at(i)->line) { 311 if (line == items.at(i)->line) {
312 // weight recent commands & repeated commands more 312 // weight recent commands & repeated commands more
313 // by adding up the index of each command 313 // by adding up the index of each command
314 items.at(i)->count += lineno; 314 items.at(i)->count += lineno;
315 break; 315 break;
316 } 316 }
317 } 317 }
318 if (i >= items.count()) { 318 if (i >= items.count()) {
319 items.append(new HistoryItem(lineno, line)); 319 items.append(new HistoryItem(lineno, line));
320 } 320 }
321 } 321 }
322 items.sort(); 322 items.sort();
323 int n = items.count(); 323 int n = items.count();
324 if (n > 40) { 324 if (n > 40) {
325 n = 40; 325 n = 40;
326 } 326 }
327 for(int i=0; i<n; i++) { 327 for(int i=0; i<n; i++) {
328 // should insert start of command, but keep whole thing 328 // should insert start of command, but keep whole thing
329 if (items.at(items.count()-i-1)->line.length() < 30) { 329 if (items.at(items.count()-i-1)->line.length() < 30) {
330 commonCombo->insertItem(items.at(items.count()-i-1)->line); 330 commonCombo->insertItem(items.at(items.count()-i-1)->line);
331 } 331 }
332 } 332 }
333 histfile.close(); 333 histfile.close();
334 } 334 }
335 } 335 }
336 if (cfg.readEntry("Commands Set","FALSE") == "FALSE") { 336 if (cfg.readEntry("Commands Set","FALSE") == "FALSE") {
337 for (int i = 0; commonCmds[i] != NULL; i++) { 337 for (int i = 0; commonCmds[i] != NULL; i++) {
338 commonCombo->insertItem(commonCmds[i]); 338 commonCombo->insertItem(commonCmds[i]);
339 } 339 }
340 } else { 340 } else {
341 for (int i = 0; i < 100; i++) { 341 for (int i = 0; i < 100; i++) {
342 if (!(cfg.readEntry( QString::number(i),"")).isEmpty()) 342 if (!(cfg.readEntry( QString::number(i),"")).isEmpty())
343 commonCombo->insertItem(cfg.readEntry( QString::number(i),"")); 343 commonCombo->insertItem(cfg.readEntry( QString::number(i),""));
344 } 344 }
345 } 345 }
346 346
347 347
348} 348}
349 349
350static void sig_handler(int x) 350static void sig_handler(int x)
351{ 351{
352 printf("got signal %d\n",x); 352 printf("got signal %d\n",x);
353} 353}
354 354
355void Konsole::init(const char* _pgm, QStrList & _args) 355void Konsole::init(const char* _pgm, QStrList & _args)
356{ 356{
357 357
358#if 0 358#if 0
359 for(int i=1; i<=31; i++) 359 for(int i=1; i<=31; i++)
360 { 360 {
361 if (i != SIGPIPE && i != SIGPROF && i != SIGSEGV 361 if (i != SIGPIPE && i != SIGPROF && i != SIGSEGV
362 && i != SIGINT && i != SIGILL && i != SIGTERM 362 && i != SIGINT && i != SIGILL && i != SIGTERM
363 && i != SIGBUS) 363 && i != SIGBUS)
364 signal(i,sig_handler); 364 signal(i,sig_handler);
365 } 365 }
366#endif 366#endif
367 signal(SIGSTOP, sig_handler); 367 signal(SIGSTOP, sig_handler);
368 signal(SIGCONT, sig_handler); 368 signal(SIGCONT, sig_handler);
369 signal(SIGTSTP, sig_handler); 369 signal(SIGTSTP, sig_handler);
370 370
371 b_scroll = TRUE; // histon; 371 b_scroll = TRUE; // histon;
372 n_keytab = 0; 372 n_keytab = 0;
373 n_render = 0; 373 n_render = 0;
374 startUp=0; 374 startUp=0;
375 fromMenu = FALSE; 375 fromMenu = FALSE;
376 fullscreen = false; 376 fullscreen = false;
377 377
378 setCaption( tr( "Konsole" ) ); 378 setCaption( tr( "Konsole" ) );
379 setIcon( Resource::loadPixmap( "konsole/Terminal" ) ); 379 setIcon( Opie::Core::OResource::loadPixmap( "konsole/Terminal", Opie::Core::OResource::SmallIcon ) );
380 380
381 Config cfg( "Konsole" ); 381 Config cfg( "Konsole" );
382 cfg.setGroup("Font"); 382 cfg.setGroup("Font");
383 QString tmp; 383 QString tmp;
384 384
385 // initialize the list of allowed fonts /////////////////////////////////// 385 // initialize the list of allowed fonts ///////////////////////////////////
386 386
387 QString cfgFontName = cfg.readEntry("FontName","Lcfont"); 387 QString cfgFontName = cfg.readEntry("FontName","Lcfont");
388 int cfgFontSize = cfg.readNumEntry("FontSize",18); 388 int cfgFontSize = cfg.readNumEntry("FontSize",18);
389 389
390 cfont = -1; 390 cfont = -1;
391 391
392 // this code causes repeated access to all the font files 392 // this code causes repeated access to all the font files
393 // which does slow down startup 393 // which does slow down startup
394 QFontDatabase fontDB; 394 QFontDatabase fontDB;
395 QStringList familyNames; 395 QStringList familyNames;
396 familyNames = fontDB.families( FALSE ); 396 familyNames = fontDB.families( FALSE );
397 QString s; 397 QString s;
398 int fontIndex = 0; 398 int fontIndex = 0;
399 int familyNum = 0; 399 int familyNum = 0;
400 fontList = new QPopupMenu( this ); 400 fontList = new QPopupMenu( this );
401 401
402 for(uint j = 0; j < (uint)familyNames.count(); j++) 402 for(uint j = 0; j < (uint)familyNames.count(); j++)
403 { 403 {
404 s = familyNames[j]; 404 s = familyNames[j];
405 if ( s.contains('-') ) 405 if ( s.contains('-') )
406 { 406 {
407 int i = s.find('-'); 407 int i = s.find('-');
408 s = s.right( s.length() - i - 1 ) + " [" + s.left( i ) + "]"; 408 s = s.right( s.length() - i - 1 ) + " [" + s.left( i ) + "]";
409 } 409 }
410 s[0] = s[0].upper(); 410 s[0] = s[0].upper();
411 411
412 QValueList<int> sizes = fontDB.pointSizes( familyNames[j] ); 412 QValueList<int> sizes = fontDB.pointSizes( familyNames[j] );
413 413
414 printf("family[%d] = %s with %d sizes\n", j, familyNames[j].latin1(), 414 printf("family[%d] = %s with %d sizes\n", j, familyNames[j].latin1(),
415 sizes.count()); 415 sizes.count());
416 416
417 if (sizes.count() > 0) 417 if (sizes.count() > 0)
418 { 418 {
419 QPopupMenu *sizeMenu; 419 QPopupMenu *sizeMenu;
420 QFont f; 420 QFont f;
421 int last_width = -1; 421 int last_width = -1;
422 sizeMenu = NULL; 422 sizeMenu = NULL;
423 423
424 for(uint i = 0; i < (uint)sizes.count() + 4; i++) 424 for(uint i = 0; i < (uint)sizes.count() + 4; i++)
425 { 425 {
426 // printf("family %s size %d ", familyNames[j].latin1(), sizes[i]); 426 // printf("family %s size %d ", familyNames[j].latin1(), sizes[i]);
427 // need to divide by 10 on the Z, but not otherwise 427 // need to divide by 10 on the Z, but not otherwise
428 int size; 428 int size;
429 429
430 if (i >= (uint)sizes.count()) 430 if (i >= (uint)sizes.count())
431 { 431 {
432 // try for expandable fonts 432 // try for expandable fonts
433 size = sizes[sizes.count()-1] + 2 * (i - sizes.count() + 1); 433 size = sizes[sizes.count()-1] + 2 * (i - sizes.count() + 1);
434 } 434 }
435 else 435 else
436 { 436 {
437 printf("sizes[%d] = %d\n", i, sizes[i]); 437 printf("sizes[%d] = %d\n", i, sizes[i]);
438 size = sizes[i]; 438 size = sizes[i];
439 } 439 }
440 440
441 f = QFont(familyNames[j], size); 441 f = QFont(familyNames[j], size);
442 f.setFixedPitch(true); 442 f.setFixedPitch(true);
443 QFontMetrics fm(f); 443 QFontMetrics fm(f);
444 // don't trust f.fixedPitch() or f.exactMatch(), they lie!! 444 // don't trust f.fixedPitch() or f.exactMatch(), they lie!!
445 if (fm.width("l") == fm.width("m") 445 if (fm.width("l") == fm.width("m")
446 && (i < (uint)sizes.count() 446 && (i < (uint)sizes.count()
447 || fm.width("m") > last_width)) 447 || fm.width("m") > last_width))
448 { 448 {
449 if (i < (uint)sizes.count()) 449 if (i < (uint)sizes.count())
450 { 450 {
451 last_width = fm.width("m"); 451 last_width = fm.width("m");
452 } 452 }
453 if (sizeMenu == NULL) 453 if (sizeMenu == NULL)
454 { 454 {
455 sizeMenu = new QPopupMenu(); 455 sizeMenu = new QPopupMenu();
456 } 456 }
457 int id = sizeMenu->insertItem(QString("%1").arg(size), fontIndex); 457 int id = sizeMenu->insertItem(QString("%1").arg(size), fontIndex);
458 sizeMenu->setItemParameter(id, fontIndex); 458 sizeMenu->setItemParameter(id, fontIndex);
459 sizeMenu->connectItem(id, this, SLOT(setFont(int))); 459 sizeMenu->connectItem(id, this, SLOT(setFont(int)));
460 QString name = s + " " + QString::number(size); 460 QString name = s + " " + QString::number(size);
461 fonts.append(new VTFont(name, f, familyNames[j], familyNum, size)); 461 fonts.append(new VTFont(name, f, familyNames[j], familyNum, size));
462 if (familyNames[j] == cfgFontName && size == cfgFontSize) 462 if (familyNames[j] == cfgFontName && size == cfgFontSize)
463 { 463 {
464 cfont = fontIndex; 464 cfont = fontIndex;
465 } 465 }
466 printf("FOUND: %s family %s size %d\n", name.latin1(), familyNames[j].latin1(), size); 466 printf("FOUND: %s family %s size %d\n", name.latin1(), familyNames[j].latin1(), size);
467 fontIndex++; 467 fontIndex++;
468 } 468 }
469 } 469 }
470 if (sizeMenu) 470 if (sizeMenu)
471 { 471 {
472 fontList->insertItem(s, sizeMenu, familyNum + 1000); 472 fontList->insertItem(s, sizeMenu, familyNum + 1000);
473 473
474 familyNum++; 474 familyNum++;
475 } 475 }
476 } 476 }
477 477
478 } 478 }
479 479
480 if (cfont < 0 || cfont >= (int)fonts.count()) 480 if (cfont < 0 || cfont >= (int)fonts.count())
481 { 481 {
482 cfont = 0; 482 cfont = 0;
483 } 483 }
484 484
485 // create terminal emulation framework //////////////////////////////////// 485 // create terminal emulation framework ////////////////////////////////////
486 nsessions = 0; 486 nsessions = 0;
487 487
488 tab = new EKNumTabWidget(this); 488 tab = new EKNumTabWidget(this);
489 // tab->setMargin(tab->margin()-5); 489 // tab->setMargin(tab->margin()-5);
490 connect(tab, SIGNAL(currentChanged(QWidget*)), this, SLOT(switchSession(QWidget*))); 490 connect(tab, SIGNAL(currentChanged(QWidget*)), this, SLOT(switchSession(QWidget*)));
491 491
492 // create terminal toolbar //////////////////////////////////////////////// 492 // create terminal toolbar ////////////////////////////////////////////////
493 setToolBarsMovable( FALSE ); 493 setToolBarsMovable( FALSE );
494 menuToolBar = new QToolBar( this ); 494 menuToolBar = new QToolBar( this );
495 menuToolBar->setHorizontalStretchable( TRUE ); 495 menuToolBar->setHorizontalStretchable( TRUE );
496 496
497 QMenuBar *menuBar = new QMenuBar( menuToolBar ); 497 QMenuBar *menuBar = new QMenuBar( menuToolBar );
498 498
499 setFont(cfont); 499 setFont(cfont);
500 500
501 configMenu = new QPopupMenu( this); 501 configMenu = new QPopupMenu( this);
502 colorMenu = new QPopupMenu( this); 502 colorMenu = new QPopupMenu( this);
503 scrollMenu = new QPopupMenu( this); 503 scrollMenu = new QPopupMenu( this);
504 editCommandListMenu = new QPopupMenu( this); 504 editCommandListMenu = new QPopupMenu( this);
505 505
506 configMenu->insertItem(tr("Command List"), editCommandListMenu); 506 configMenu->insertItem(tr("Command List"), editCommandListMenu);
507 507
508 bool listHidden; 508 bool listHidden;
509 cfg.setGroup("Menubar"); 509 cfg.setGroup("Menubar");
510 if( cfg.readEntry("Hidden","FALSE") == "TRUE") 510 if( cfg.readEntry("Hidden","FALSE") == "TRUE")
511 { 511 {
512 ec_cmdlist = editCommandListMenu->insertItem( tr( "Show command list" )); 512 ec_cmdlist = editCommandListMenu->insertItem( tr( "Show command list" ));
513 listHidden=TRUE; 513 listHidden=TRUE;
514 } 514 }
515 else 515 else
516 { 516 {
517 ec_cmdlist = editCommandListMenu->insertItem( tr( "Hide command list" )); 517 ec_cmdlist = editCommandListMenu->insertItem( tr( "Hide command list" ));
518 listHidden=FALSE; 518 listHidden=FALSE;
519 } 519 }
520 520
521 cfg.setGroup("Tabs"); 521 cfg.setGroup("Tabs");
522 522
523 tabMenu = new QPopupMenu(this); 523 tabMenu = new QPopupMenu(this);
524 tm_bottom = tabMenu->insertItem(tr("Bottom" )); 524 tm_bottom = tabMenu->insertItem(tr("Bottom" ));
525 tm_top = tabMenu->insertItem(tr("Top")); 525 tm_top = tabMenu->insertItem(tr("Top"));
526 tm_hidden = tabMenu->insertItem(tr("Hidden")); 526 tm_hidden = tabMenu->insertItem(tr("Hidden"));
527 527
528 configMenu->insertItem(tr("Tabs"), tabMenu); 528 configMenu->insertItem(tr("Tabs"), tabMenu);
529 529
530 tmp=cfg.readEntry("Position","Top"); 530 tmp=cfg.readEntry("Position","Top");
531 if(tmp=="Top") 531 if(tmp=="Top")
532 { 532 {
533 tab->setTabPosition(QTabWidget::Top); 533 tab->setTabPosition(QTabWidget::Top);
534 tab->getTabBar()->show(); 534 tab->getTabBar()->show();
535 tabPos = tm_top; 535 tabPos = tm_top;
536 } 536 }
537 else if (tmp=="Bottom") 537 else if (tmp=="Bottom")
538 { 538 {
539 tab->setTabPosition(QTabWidget::Bottom); 539 tab->setTabPosition(QTabWidget::Bottom);
540 tab->getTabBar()->show(); 540 tab->getTabBar()->show();
541 tabPos = tm_bottom; 541 tabPos = tm_bottom;
542 } 542 }
543 else 543 else
544 { 544 {
545 tab->getTabBar()->hide(); 545 tab->getTabBar()->hide();
546 tab->setMargin(tab->margin()); 546 tab->setMargin(tab->margin());
547 tabPos = tm_hidden; 547 tabPos = tm_hidden;
548 } 548 }
549 549
550 cm_bw = colorMenu->insertItem(tr( "Black on White")); 550 cm_bw = colorMenu->insertItem(tr( "Black on White"));
551 cm_wb = colorMenu->insertItem(tr( "White on Black")); 551 cm_wb = colorMenu->insertItem(tr( "White on Black"));
552 cm_gb = colorMenu->insertItem(tr( "Green on Black")); 552 cm_gb = colorMenu->insertItem(tr( "Green on Black"));
553 // cm_bt = colorMenu->insertItem(tr( "Black on Transparent")); 553 // cm_bt = colorMenu->insertItem(tr( "Black on Transparent"));
554 cm_br = colorMenu->insertItem(tr( "Black on Pink")); 554 cm_br = colorMenu->insertItem(tr( "Black on Pink"));
555 cm_rb = colorMenu->insertItem(tr( "Pink on Black")); 555 cm_rb = colorMenu->insertItem(tr( "Pink on Black"));
556 cm_gy = colorMenu->insertItem(tr( "Green on Yellow")); 556 cm_gy = colorMenu->insertItem(tr( "Green on Yellow"));
557 cm_bm = colorMenu->insertItem(tr( "Blue on Magenta")); 557 cm_bm = colorMenu->insertItem(tr( "Blue on Magenta"));
558 cm_mb = colorMenu->insertItem(tr( "Magenta on Blue")); 558 cm_mb = colorMenu->insertItem(tr( "Magenta on Blue"));
559 cm_cw = colorMenu->insertItem(tr( "Cyan on White")); 559 cm_cw = colorMenu->insertItem(tr( "Cyan on White"));
560 cm_wc = colorMenu->insertItem(tr( "White on Cyan")); 560 cm_wc = colorMenu->insertItem(tr( "White on Cyan"));
561 cm_bb = colorMenu->insertItem(tr( "Blue on Black")); 561 cm_bb = colorMenu->insertItem(tr( "Blue on Black"));
562 cm_ab = colorMenu->insertItem(tr( "Amber on Black")); 562 cm_ab = colorMenu->insertItem(tr( "Amber on Black"));
563 cm_default = colorMenu->insertItem(tr("default")); 563 cm_default = colorMenu->insertItem(tr("default"));
564 564
565#ifdef QT_QWS_OPIE 565#ifdef QT_QWS_OPIE
566 566
567 colorMenu->insertItem(tr( "Custom")); 567 colorMenu->insertItem(tr( "Custom"));
568#endif 568#endif
569 569
570 configMenu->insertItem(tr( "Colors") ,colorMenu); 570 configMenu->insertItem(tr( "Colors") ,colorMenu);
571 571
572 sessionList = new QPopupMenu(this); 572 sessionList = new QPopupMenu(this);
573 sessionList-> insertItem ( Resource::loadPixmap ( "konsole/Terminal" ), tr( "new session" ), this, 573 sessionList-> insertItem ( Opie::Core::OResource::loadPixmap( "konsole/Terminal", Opie::Core::OResource::SmallIcon ),
574 SLOT(newSession()) ); 574 tr( "new session" ), this, SLOT(newSession()) );
575 575
576 // connect( fontList, SIGNAL( activated(int) ), this, SLOT( fontChanged(int) )); 576 // connect( fontList, SIGNAL( activated(int) ), this, SLOT( fontChanged(int) ));
577 connect( configMenu, SIGNAL( activated(int) ), this, SLOT( configMenuSelected(int) )); 577 connect( configMenu, SIGNAL( activated(int) ), this, SLOT( configMenuSelected(int) ));
578 connect( colorMenu, SIGNAL( activated(int) ), this, SLOT( colorMenuIsSelected(int) )); 578 connect( colorMenu, SIGNAL( activated(int) ), this, SLOT( colorMenuIsSelected(int) ));
579 connect( tabMenu, SIGNAL( activated(int) ), this, SLOT( tabMenuSelected(int) )); 579 connect( tabMenu, SIGNAL( activated(int) ), this, SLOT( tabMenuSelected(int) ));
580 connect( scrollMenu, SIGNAL(activated(int)),this,SLOT(scrollMenuSelected(int))); 580 connect( scrollMenu, SIGNAL(activated(int)),this,SLOT(scrollMenuSelected(int)));
581 connect( editCommandListMenu,SIGNAL(activated(int)),this,SLOT(editCommandListMenuSelected(int))); 581 connect( editCommandListMenu,SIGNAL(activated(int)),this,SLOT(editCommandListMenuSelected(int)));
582 connect( sessionList, SIGNAL(activated(int)), this, SLOT( sessionListSelected(int) ) ); 582 connect( sessionList, SIGNAL(activated(int)), this, SLOT( sessionListSelected(int) ) );
583 583
584 menuBar->insertItem( tr("View"), configMenu ); 584 menuBar->insertItem( tr("View"), configMenu );
585 menuBar->insertItem( tr("Fonts"), fontList ); 585 menuBar->insertItem( tr("Fonts"), fontList );
586 menuBar->insertItem( tr("Sessions"), sessionList ); 586 menuBar->insertItem( tr("Sessions"), sessionList );
587 587
588 toolBar = new QToolBar( this ); 588 toolBar = new QToolBar( this );
589 589
590 QAction *a; 590 QAction *a;
591 591
592 // Button Commands 592 // Button Commands
593 a = new QAction( tr("New"), Resource::loadPixmap( "konsole/konsole" ), QString::null, 0, this, 0 ); 593 a = new QAction( tr("New"), Opie::Core::OResource::loadPixmap( "konsole/konsole", Opie::Core::OResource::SmallIcon ),
594 QString::null, 0, this, 0 );
594 connect( a, SIGNAL( activated() ), this, SLOT( newSession() ) ); 595 connect( a, SIGNAL( activated() ), this, SLOT( newSession() ) );
595 a->addTo( toolBar ); 596 a->addTo( toolBar );
596 597
597 a = new QAction( tr("Full Screen"), Resource::loadPixmap( "fullscreen" ), QString::null, 0, this, 0 ); 598 a = new QAction( tr("Full Screen"), Opie::Core::OResource::loadPixmap( "fullscreen", Opie::Core::OResource::SmallIcon ),
599 QString::null, 0, this, 0 );
598 connect( a, SIGNAL( activated() ), this, SLOT( toggleFullScreen() ) ); 600 connect( a, SIGNAL( activated() ), this, SLOT( toggleFullScreen() ) );
599 a->addTo( toolBar ); 601 a->addTo( toolBar );
600 602
601 a = new QAction( tr("Zoom"), Resource::loadPixmap( "zoom" ), QString::null, 0, this, 0 ); 603 a = new QAction( tr("Zoom"), Opie::Core::OResource::loadPixmap( "zoom", Opie::Core::OResource::SmallIcon ),
604 QString::null, 0, this, 0 );
602 connect( a, SIGNAL( activated() ), this, SLOT( cycleZoom() ) ); 605 connect( a, SIGNAL( activated() ), this, SLOT( cycleZoom() ) );
603 a->addTo( toolBar ); 606 a->addTo( toolBar );
604 607
605 608
606 a = new QAction( tr("Enter"), Resource::loadPixmap( "konsole/enter" ), QString::null, 0, this, 0 ); 609 a = new QAction( tr("Enter"), Opie::Core::OResource::loadPixmap( "konsole/enter", Opie::Core::OResource::SmallIcon ),
610 QString::null, 0, this, 0 );
607 connect( a, SIGNAL( activated() ), this, SLOT( hitEnter() ) ); a->addTo( toolBar ); 611 connect( a, SIGNAL( activated() ), this, SLOT( hitEnter() ) ); a->addTo( toolBar );
608 a = new QAction( tr("Space"), Resource::loadPixmap( "konsole/space" ), QString::null, 0, this, 0 ); 612 a = new QAction( tr("Space"), Opie::Core::OResource::loadPixmap( "konsole/space", Opie::Core::OResource::SmallIcon ),
613 QString::null, 0, this, 0 );
609 connect( a, SIGNAL( activated() ), this, SLOT( hitSpace() ) ); a->addTo( toolBar ); 614 connect( a, SIGNAL( activated() ), this, SLOT( hitSpace() ) ); a->addTo( toolBar );
610 a = new QAction( tr("Tab"), Resource::loadPixmap( "konsole/tab" ), QString::null, 0, this, 0 ); 615 a = new QAction( tr("Tab"), Opie::Core::OResource::loadPixmap( "konsole/tab", Opie::Core::OResource::SmallIcon ),
616 QString::null, 0, this, 0 );
611 connect( a, SIGNAL( activated() ), this, SLOT( hitTab() ) ); a->addTo( toolBar ); 617 connect( a, SIGNAL( activated() ), this, SLOT( hitTab() ) ); a->addTo( toolBar );
612 a = new QAction( tr("Up"), Resource::loadPixmap( "konsole/up" ), QString::null, 0, this, 0 ); 618 a = new QAction( tr("Up"), Opie::Core::OResource::loadPixmap( "konsole/up", Opie::Core::OResource::SmallIcon ),
619 QString::null, 0, this, 0 );
613 connect( a, SIGNAL( activated() ), this, SLOT( hitUp() ) ); a->addTo( toolBar ); 620 connect( a, SIGNAL( activated() ), this, SLOT( hitUp() ) ); a->addTo( toolBar );
614 a = new QAction( tr("Down"), Resource::loadPixmap( "konsole/down" ), QString::null, 0, this, 0 ); 621 a = new QAction( tr("Down"), Opie::Core::OResource::loadPixmap( "konsole/down", Opie::Core::OResource::SmallIcon ),
622 QString::null, 0, this, 0 );
615 connect( a, SIGNAL( activated() ), this, SLOT( hitDown() ) ); a->addTo( toolBar ); 623 connect( a, SIGNAL( activated() ), this, SLOT( hitDown() ) ); a->addTo( toolBar );
616 624
617 a = new QAction( tr("Paste"), Resource::loadPixmap( "paste" ), QString::null, 0, this, 0 ); 625 a = new QAction( tr("Paste"), Opie::Core::OResource::loadPixmap( "paste", Opie::Core::OResource::SmallIcon ),
626 QString::null, 0, this, 0 );
618 connect( a, SIGNAL( activated() ), this, SLOT( hitPaste() ) ); 627 connect( a, SIGNAL( activated() ), this, SLOT( hitPaste() ) );
619 a->addTo( toolBar ); 628 a->addTo( toolBar );
620 629
621 secondToolBar = new QToolBar( this ); 630 secondToolBar = new QToolBar( this );
622 secondToolBar->setHorizontalStretchable( TRUE ); 631 secondToolBar->setHorizontalStretchable( TRUE );
623 632
624 commonCombo = new QComboBox( secondToolBar ); 633 commonCombo = new QComboBox( secondToolBar );
625 // commonCombo->setMaximumWidth(236); 634 // commonCombo->setMaximumWidth(236);
626 635
627 ec_quick = editCommandListMenu->insertItem( tr( "Quick Edit" ) ); 636 ec_quick = editCommandListMenu->insertItem( tr( "Quick Edit" ) );
628 if( listHidden) 637 if( listHidden)
629 { 638 {
630 secondToolBar->hide(); 639 secondToolBar->hide();
631 editCommandListMenu->setItemEnabled(ec_quick ,FALSE); 640 editCommandListMenu->setItemEnabled(ec_quick ,FALSE);
632 } 641 }
633 ec_edit = editCommandListMenu->insertItem(tr( "Edit..." ) ); 642 ec_edit = editCommandListMenu->insertItem(tr( "Edit..." ) );
634 643
635 cfg.setGroup("Commands"); 644 cfg.setGroup("Commands");
636 commonCombo->setInsertionPolicy(QComboBox::AtCurrent); 645 commonCombo->setInsertionPolicy(QComboBox::AtCurrent);
637 646
638 initCommandList(); 647 initCommandList();
639 // for (int i = 0; commonCmds[i] != NULL; i++) { 648 // for (int i = 0; commonCmds[i] != NULL; i++) {
640 // commonCombo->insertItem( commonCmds[i], i ); 649 // commonCombo->insertItem( commonCmds[i], i );
641 // tmp = cfg.readEntry( QString::number(i),""); 650 // tmp = cfg.readEntry( QString::number(i),"");
642 // if(tmp != "") 651 // if(tmp != "")
643 // commonCombo->changeItem( tmp,i ); 652 // commonCombo->changeItem( tmp,i );
644 // } 653 // }
645 654
646 connect( commonCombo, SIGNAL( activated(int) ), this, SLOT( enterCommand(int) )); 655 connect( commonCombo, SIGNAL( activated(int) ), this, SLOT( enterCommand(int) ));
647 656
648 sm_none = scrollMenu->insertItem(tr( "None" )); 657 sm_none = scrollMenu->insertItem(tr( "None" ));
649 sm_left = scrollMenu->insertItem(tr( "Left" )); 658 sm_left = scrollMenu->insertItem(tr( "Left" ));
650 sm_right = scrollMenu->insertItem(tr( "Right" )); 659 sm_right = scrollMenu->insertItem(tr( "Right" ));
651 // scrollMenu->insertSeparator(4); 660 // scrollMenu->insertSeparator(4);
652 // scrollMenu->insertItem(tr( "Horizontal" )); 661 // scrollMenu->insertItem(tr( "Horizontal" ));
653 662
654 configMenu->insertItem(tr( "ScrollBar" ),scrollMenu); 663 configMenu->insertItem(tr( "ScrollBar" ),scrollMenu);
655 664
656 configMenu->insertItem(tr( "History..." ), this, SLOT(historyDialog())); 665 configMenu->insertItem(tr( "History..." ), this, SLOT(historyDialog()));
657 666
658 cm_wrap = configMenu->insertItem(tr( "Wrap" )); 667 cm_wrap = configMenu->insertItem(tr( "Wrap" ));
659 cfg.setGroup("ScrollBar"); 668 cfg.setGroup("ScrollBar");
660 configMenu->setItemChecked(cm_wrap, cfg.readBoolEntry("HorzScroll",0)); 669 configMenu->setItemChecked(cm_wrap, cfg.readBoolEntry("HorzScroll",0));
661 670
662 cm_beep = configMenu->insertItem(tr( "Use Beep" )); 671 cm_beep = configMenu->insertItem(tr( "Use Beep" ));
663 cfg.setGroup("Menubar"); 672 cfg.setGroup("Menubar");
664 configMenu->setItemChecked(cm_beep, cfg.readBoolEntry("useBeep",0)); 673 configMenu->setItemChecked(cm_beep, cfg.readBoolEntry("useBeep",0));
665 674
666 fullscreen_msg = new QLabel(this); 675 fullscreen_msg = new QLabel(this);
667 fullscreen_msg-> setAlignment ( AlignCenter | SingleLine ); 676 fullscreen_msg-> setAlignment ( AlignCenter | SingleLine );
668 fullscreen_msg-> hide(); 677 fullscreen_msg-> hide();
669 fullscreen_msg-> setSizePolicy ( QSizePolicy ( QSizePolicy::Expanding, QSizePolicy::Expanding )); 678 fullscreen_msg-> setSizePolicy ( QSizePolicy ( QSizePolicy::Expanding, QSizePolicy::Expanding ));
670 fullscreen_msg-> setAutoResize(true); 679 fullscreen_msg-> setAutoResize(true);
671 fullscreen_msg-> setFrameStyle(QFrame::PopupPanel | QFrame::Raised); 680 fullscreen_msg-> setFrameStyle(QFrame::PopupPanel | QFrame::Raised);
672 fullscreen_msg-> setText(tr("To exit fullscreen, tap here.")); 681 fullscreen_msg-> setText(tr("To exit fullscreen, tap here."));
673 682
674 fullscreen_timer = new QTimer(this); 683 fullscreen_timer = new QTimer(this);
675 connect(fullscreen_timer, SIGNAL(timeout()), 684 connect(fullscreen_timer, SIGNAL(timeout()),
676 this, SLOT(fullscreenTimeout())); 685 this, SLOT(fullscreenTimeout()));
677 show_fullscreen_msg = true; 686 show_fullscreen_msg = true;
678 687
679 //scrollMenuSelected(-29); 688 //scrollMenuSelected(-29);
680 // cfg.setGroup("ScrollBar"); 689 // cfg.setGroup("ScrollBar");
681 // if(cfg.readBoolEntry("HorzScroll",0)) { 690 // if(cfg.readBoolEntry("HorzScroll",0)) {
682 // if(cfg.readNumEntry("Position",2) == 0) 691 // if(cfg.readNumEntry("Position",2) == 0)
683 // te->setScrollbarLocation(1); 692 // te->setScrollbarLocation(1);
684 // else 693 // else
685 // te->setScrollbarLocation(0); 694 // te->setScrollbarLocation(0);
686 // te->setScrollbarLocation( cfg.readNumEntry("Position",2)); 695 // te->setScrollbarLocation( cfg.readNumEntry("Position",2));
687 // te->setWrapAt(120); 696 // te->setWrapAt(120);
688 // } 697 // }
689 // create applications ///////////////////////////////////////////////////// 698 // create applications /////////////////////////////////////////////////////
690 setCentralWidget(tab); 699 setCentralWidget(tab);
691 700
692 // load keymaps //////////////////////////////////////////////////////////// 701 // load keymaps ////////////////////////////////////////////////////////////
693 KeyTrans::loadAll(); 702 KeyTrans::loadAll();
694 for (int i = 0; i < KeyTrans::count(); i++) 703 for (int i = 0; i < KeyTrans::count(); i++)
695 { 704 {
696 KeyTrans* s = KeyTrans::find(i); 705 KeyTrans* s = KeyTrans::find(i);
697 assert( s ); 706 assert( s );
698 } 707 }
699 708
700 se_pgm = _pgm; 709 se_pgm = _pgm;
701 se_args = _args; 710 se_args = _args;
702 711
703 cfg.setGroup("CommandLine"); 712 cfg.setGroup("CommandLine");
704 713
705 if (cfg.hasKey("shell_args")) 714 if (cfg.hasKey("shell_args"))
706 { 715 {
707 QStringList se_args_list = cfg.readListEntry("shell_args",'|'); 716 QStringList se_args_list = cfg.readListEntry("shell_args",'|');
708 for(uint i = 0; i < se_args_list.count(); i++) 717 for(uint i = 0; i < se_args_list.count(); i++)
709 { 718 {
710 se_args.prepend(se_args_list[se_args_list.count() - i - 1].latin1()); 719 se_args.prepend(se_args_list[se_args_list.count() - i - 1].latin1());
711 } 720 }
712 } 721 }
713 else 722 else
714 { 723 {
715 se_args.prepend("--login"); 724 se_args.prepend("--login");
716 } 725 }
717 726
718 se_pgm = cfg.readEntry("shell_bin", QString(se_pgm)); 727 se_pgm = cfg.readEntry("shell_bin", QString(se_pgm));
719 728
720 // this is the "documentation" for those who know to look 729 // this is the "documentation" for those who know to look
721 if (! cfg.hasKey("shell_args")) 730 if (! cfg.hasKey("shell_args"))
722 { 731 {
723 cfg.writeEntry("shell_args",QStringList::fromStrList(se_args),'|'); 732 cfg.writeEntry("shell_args",QStringList::fromStrList(se_args),'|');
724 } 733 }
725 if (! cfg.hasKey("shell_bin")) 734 if (! cfg.hasKey("shell_bin"))
726 { 735 {
727 cfg.writeEntry("shell_bin",QString(se_pgm)); 736 cfg.writeEntry("shell_bin",QString(se_pgm));
728 } 737 }
729 738
730 parseCommandLine(); 739 parseCommandLine();
731 740
732 // read and apply default values /////////////////////////////////////////// 741 // read and apply default values ///////////////////////////////////////////
733 resize(321, 321); // Dummy. 742 resize(321, 321); // Dummy.
734 QSize currentSize = size(); 743 QSize currentSize = size();
735 if (currentSize != size()) 744 if (currentSize != size())
736 defaultSize = size(); 745 defaultSize = size();
737 746
738 747
739 /* allows us to catch cancel/escape */ 748 /* allows us to catch cancel/escape */
740 reparent ( 0, WStyle_Customize | WStyle_NoBorder, 749 reparent ( 0, WStyle_Customize | WStyle_NoBorder,
741 QPoint ( 0, 0 )); 750 QPoint ( 0, 0 ));
742} 751}
743 752
744void Konsole::show() 753void Konsole::show()
745{ 754{
746 if ( !nsessions ) 755 if ( !nsessions )
747 { 756 {
748 newSession(); 757 newSession();
749 } 758 }
750 QMainWindow::show(); 759 QMainWindow::show();
751 760
752} 761}
753 762
754void Konsole::initSession(const char*, QStrList &) 763void Konsole::initSession(const char*, QStrList &)
755{ 764{
756 QMainWindow::show(); 765 QMainWindow::show();
757} 766}
758 767
759Konsole::~Konsole() 768Konsole::~Konsole()
760{ 769{
761 while (nsessions > 0) 770 while (nsessions > 0)
762 { 771 {
763 doneSession(getTe(), 0); 772 doneSession(getTe(), 0);
764 } 773 }
765} 774}
766 775
767void 776void
768Konsole::historyDialog() 777Konsole::historyDialog()
769{ 778{
770 QDialog *d = new QDialog ( this, "histdlg", true ); 779 QDialog *d = new QDialog ( this, "histdlg", true );
771 // d-> setCaption ( tr( "History" )); 780 // d-> setCaption ( tr( "History" ));
772 781
773 QBoxLayout *lay = new QVBoxLayout ( d, 4, 4 ); 782 QBoxLayout *lay = new QVBoxLayout ( d, 4, 4 );
774 783
775 QLabel *l = new QLabel ( tr( "History Lines:" ), d ); 784 QLabel *l = new QLabel ( tr( "History Lines:" ), d );
776 lay-> addWidget ( l ); 785 lay-> addWidget ( l );
777 786
778 Config cfg( "Konsole" ); 787 Config cfg( "Konsole" );
779 cfg.setGroup("History"); 788 cfg.setGroup("History");
780 int hist = cfg.readNumEntry("history_lines",300); 789 int hist = cfg.readNumEntry("history_lines",300);
781 int avg_line = cfg.readNumEntry("avg_line_length",60); 790 int avg_line = cfg.readNumEntry("avg_line_length",60);
782 791
783 QSpinBox *spin = new QSpinBox ( 1, 100000, 20, d ); 792 QSpinBox *spin = new QSpinBox ( 1, 100000, 20, d );
784 spin-> setValue ( hist ); 793 spin-> setValue ( hist );
785 spin-> setWrapping ( true ); 794 spin-> setWrapping ( true );
786 spin-> setButtonSymbols ( QSpinBox::PlusMinus ); 795 spin-> setButtonSymbols ( QSpinBox::PlusMinus );
787 lay-> addWidget ( spin ); 796 lay-> addWidget ( spin );
788 797
789 if ( d-> exec ( ) == QDialog::Accepted ) 798 if ( d-> exec ( ) == QDialog::Accepted )
790 { 799 {
791 cfg.writeEntry("history_lines", spin->value()); 800 cfg.writeEntry("history_lines", spin->value());
792 cfg.writeEntry("avg_line_length", avg_line); 801 cfg.writeEntry("avg_line_length", avg_line);
793 if (getTe() != NULL) 802 if (getTe() != NULL)
794 { 803 {
795 getTe()->currentSession->setHistory(true); 804 getTe()->currentSession->setHistory(true);
796 } 805 }
797 } 806 }
798 807
799 delete d; 808 delete d;
800} 809}
801 810
802 811
803void Konsole::cycleZoom() 812void Konsole::cycleZoom()
804{ 813{
805 TEWidget* te = getTe(); 814 TEWidget* te = getTe();
806 QFont font = te->getVTFont(); 815 QFont font = te->getVTFont();
807 int size = font.pointSize(); 816 int size = font.pointSize();
808 changeFontSize(1); 817 changeFontSize(1);
809 font = te->getVTFont(); 818 font = te->getVTFont();
810 if (font.pointSize() <= size) 819 if (font.pointSize() <= size)
811 { 820 {
812 do 821 do
813 { 822 {
814 font = te->getVTFont(); 823 font = te->getVTFont();
815 size = font.pointSize(); 824 size = font.pointSize();
816 changeFontSize(-1); 825 changeFontSize(-1);
817 font = te->getVTFont(); 826 font = te->getVTFont();
818 } 827 }
819 while (font.pointSize() < size); 828 while (font.pointSize() < size);
820 } 829 }
821} 830}
822 831
823void Konsole::changeFontSize(int delta) 832void Konsole::changeFontSize(int delta)
824{ 833{
825 // printf("delta font size %d\n", delta); 834 // printf("delta font size %d\n", delta);
826 TEWidget* te = getTe(); 835 TEWidget* te = getTe();
827 QFont font = te->getVTFont(); 836 QFont font = te->getVTFont();
828 int size = font.pointSize(); 837 int size = font.pointSize();
829 int closest = delta > 0? 10000 : -10000; 838 int closest = delta > 0? 10000 : -10000;
830 int closest_font = -1; 839 int closest_font = -1;
831 for(uint i = 0; i < fonts.count(); i++) 840 for(uint i = 0; i < fonts.count(); i++)
832 { 841 {
833 if (fonts.at(i)->getFont() == font) 842 if (fonts.at(i)->getFont() == font)
834 { 843 {
835 if (delta > 0) 844 if (delta > 0)
836 { 845 {
837 if (i+1 < fonts.count() 846 if (i+1 < fonts.count()
838 && fonts.at(i+1)->getFamilyNum() == fonts.at(i)->getFamilyNum()) 847 && fonts.at(i+1)->getFamilyNum() == fonts.at(i)->getFamilyNum())
839 { 848 {
840 setFont(i+1); 849 setFont(i+1);
841 printf("font %d\n", i+1); 850 printf("font %d\n", i+1);
842 return; 851 return;
843 } 852 }
844 } 853 }
845 else if (delta < 0) 854 else if (delta < 0)
846 { 855 {
847 if (i > 0 856 if (i > 0
848 && fonts.at(i-1)->getFamilyNum() == fonts.at(i)->getFamilyNum()) 857 && fonts.at(i-1)->getFamilyNum() == fonts.at(i)->getFamilyNum())
849 { 858 {
850 setFont(i-1); 859 setFont(i-1);
851 printf("font %d\n", i-1); 860 printf("font %d\n", i-1);
852 return; 861 return;
853 } 862 }
854 } 863 }
855 } 864 }
856 int fsize = fonts.at(i)->getSize(); 865 int fsize = fonts.at(i)->getSize();
857 printf("%d size=%d fsize=%d closest=%d\n", i, size, fsize, closest); 866 printf("%d size=%d fsize=%d closest=%d\n", i, size, fsize, closest);
858 if ((delta > 0 && fsize > size && fsize < closest) 867 if ((delta > 0 && fsize > size && fsize < closest)
859 || (delta < 0 && fsize < size && fsize > closest)) 868 || (delta < 0 && fsize < size && fsize > closest))
860 { 869 {
861 closest = fsize; 870 closest = fsize;
862 closest_font = i; 871 closest_font = i;
863 } 872 }
864 } 873 }
865 if (closest_font >= 0) 874 if (closest_font >= 0)
866 { 875 {
867 printf("font closest %d (%d)\n", closest_font, closest); 876 printf("font closest %d (%d)\n", closest_font, closest);
868 setFont(closest_font); 877 setFont(closest_font);
869 } 878 }
870} 879}
871 880
872int Konsole::findFont(const QString& name, int size, bool exactMatch) 881int Konsole::findFont(const QString& name, int size, bool exactMatch)
873{ 882{
874 for(uint i = 0; i < fonts.count(); i++) 883 for(uint i = 0; i < fonts.count(); i++)
875 { 884 {
876 if (fonts.at(i)->getName() == name 885 if (fonts.at(i)->getName() == name
877 && fonts.at(i)->getSize() == size) 886 && fonts.at(i)->getSize() == size)
878 { 887 {
879 return(i); 888 return(i);
880 } 889 }
881 } 890 }
882 if (exactMatch) 891 if (exactMatch)
883 { 892 {
884 return(-1); 893 return(-1);
885 } 894 }
886 for(uint i = 0; i < fonts.count(); i++) 895 for(uint i = 0; i < fonts.count(); i++)
887 { 896 {
888 if (fonts.at(i)->getSize() == size) 897 if (fonts.at(i)->getSize() == size)
889 { 898 {
890 return(i); 899 return(i);
891 } 900 }
892 } 901 }
893 return(-1); 902 return(-1);
894} 903}
895 904
896void Konsole::setFont(int f) 905void Konsole::setFont(int f)
897{ 906{
898 VTFont* font = fonts.at(f); 907 VTFont* font = fonts.at(f);
899 if (font) 908 if (font)
900 { 909 {
901 TEWidget* te = getTe(); 910 TEWidget* te = getTe();
902 if (te != 0) 911 if (te != 0)
903 { 912 {
904 te->setVTFont(font->getFont()); 913 te->setVTFont(font->getFont());
905 } 914 }
906 cfont = f; 915 cfont = f;
907 916
908 int familyNum = font->getFamilyNum(); 917 int familyNum = font->getFamilyNum();
909 int size = font->getSize(); 918 int size = font->getSize();
910 printf("familyNum = %d size = %d count=%d\n", familyNum, size, 919 printf("familyNum = %d size = %d count=%d\n", familyNum, size,
911 fontList->count()); 920 fontList->count());
912 for(int i = 0; i < (int)fontList->count(); i++) 921 for(int i = 0; i < (int)fontList->count(); i++)
913 { 922 {
914 fontList->setItemChecked(i + 1000, i == familyNum); 923 fontList->setItemChecked(i + 1000, i == familyNum);
915 } 924 }
916 for(int i = 0; i < (int)fonts.count(); i++) 925 for(int i = 0; i < (int)fonts.count(); i++)
917 { 926 {
918 fontList->setItemChecked(i, fonts.at(i)->getFamilyNum() == familyNum 927 fontList->setItemChecked(i, fonts.at(i)->getFamilyNum() == familyNum
919 && fonts.at(i)->getSize() == size); 928 && fonts.at(i)->getSize() == size);
920 } 929 }
921 Config cfg( "Konsole" ); 930 Config cfg( "Konsole" );
922 cfg.setGroup("Font"); 931 cfg.setGroup("Font");
923 QString ss = "Session"+ QString::number(tab->currentPageIndex()+1); 932 QString ss = "Session"+ QString::number(tab->currentPageIndex()+1);
924 if (tab->currentPageIndex() == 0) 933 if (tab->currentPageIndex() == 0)
925 { 934 {
926 cfg.writeEntry("FontName", fonts.at(cfont)->getFamily()); 935 cfg.writeEntry("FontName", fonts.at(cfont)->getFamily());
927 cfg.writeEntry("FontSize", fonts.at(cfont)->getSize()); 936 cfg.writeEntry("FontSize", fonts.at(cfont)->getSize());
928 } 937 }
929 cfg.writeEntry("FontName"+ss, fonts.at(cfont)->getFamily()); 938 cfg.writeEntry("FontName"+ss, fonts.at(cfont)->getFamily());
930 cfg.writeEntry("FontSize"+ss, fonts.at(cfont)->getSize()); 939 cfg.writeEntry("FontSize"+ss, fonts.at(cfont)->getSize());
931 } 940 }
932} 941}
933 942
934#if 0 943#if 0
935void Konsole::fontChanged(int f) 944void Konsole::fontChanged(int f)
936{ 945{
937 VTFont* font = fonts.at(f); 946 VTFont* font = fonts.at(f);
938 if (font != 0) 947 if (font != 0)
939 { 948 {
940 for(uint i = 0; i < fonts.count(); i++) 949 for(uint i = 0; i < fonts.count(); i++)
941 { 950 {
942 fontList->setItemChecked(i, (i == (uint) f) ? TRUE : FALSE); 951 fontList->setItemChecked(i, (i == (uint) f) ? TRUE : FALSE);
943 } 952 }
944 953
945 cfont = f; 954 cfont = f;
946 955
947 TEWidget* te = getTe(); 956 TEWidget* te = getTe();
948 if (te != 0) 957 if (te != 0)
949 { 958 {
950 te->setVTFont(font->getFont()); 959 te->setVTFont(font->getFont());
951 } 960 }
952 } 961 }
953} 962}
954#endif 963#endif
955 964
956 965
957void Konsole::enterCommand(int c) 966void Konsole::enterCommand(int c)
958{ 967{
959 TEWidget* te = getTe(); 968 TEWidget* te = getTe();
960 if (te != 0) 969 if (te != 0)
961 { 970 {
962 if(!commonCombo->editable()) 971 if(!commonCombo->editable())
963 { 972 {
964 QString text = commonCombo->text(c); //commonCmds[c]; 973 QString text = commonCombo->text(c); //commonCmds[c];
965 te->emitText(text); 974 te->emitText(text);
966 } 975 }
967 else 976 else
968 { 977 {
969 changeCommand( commonCombo->text(c), c); 978 changeCommand( commonCombo->text(c), c);
970 } 979 }
971 } 980 }
972} 981}
973 982
974void Konsole::hitEnter() 983void Konsole::hitEnter()
975{ 984{
976 TEWidget* te = getTe(); 985 TEWidget* te = getTe();
977 if (te != 0) 986 if (te != 0)
978 { 987 {
979 te->emitText(QString("\r")); 988 te->emitText(QString("\r"));
980 } 989 }
981} 990}
982 991
983void Konsole::hitSpace() 992void Konsole::hitSpace()
984{ 993{
985 TEWidget* te = getTe(); 994 TEWidget* te = getTe();
986 if (te != 0) 995 if (te != 0)
987 { 996 {
988 te->emitText(QString(" ")); 997 te->emitText(QString(" "));
989 } 998 }
990} 999}
991 1000
992void Konsole::hitTab() 1001void Konsole::hitTab()
993{ 1002{
994 TEWidget* te = getTe(); 1003 TEWidget* te = getTe();
995 if (te != 0) 1004 if (te != 0)
996 { 1005 {
997 te->emitText(QString("\t")); 1006 te->emitText(QString("\t"));
998 } 1007 }
999} 1008}
1000 1009
1001void Konsole::hitPaste() 1010void Konsole::hitPaste()
1002{ 1011{
1003 TEWidget* te = getTe(); 1012 TEWidget* te = getTe();
1004 if (te != 0) 1013 if (te != 0)
1005 { 1014 {
1006 te->pasteClipboard(); 1015 te->pasteClipboard();
1007 } 1016 }
1008} 1017}
1009 1018
1010void Konsole::hitUp() 1019void Konsole::hitUp()
1011{ 1020{
1012 TEWidget* te = getTe(); 1021 TEWidget* te = getTe();
1013 if (te != 0) 1022 if (te != 0)
1014 { 1023 {
1015 QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Up, 0, 0); 1024 QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Up, 0, 0);
1016 QApplication::sendEvent( te, &ke ); 1025 QApplication::sendEvent( te, &ke );
1017 } 1026 }
1018} 1027}
1019 1028
1020void Konsole::hitDown() 1029void Konsole::hitDown()
1021{ 1030{
1022 TEWidget* te = getTe(); 1031 TEWidget* te = getTe();
1023 if (te != 0) 1032 if (te != 0)
1024 { 1033 {
1025 QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Down, 0, 0); 1034 QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Down, 0, 0);
1026 QApplication::sendEvent( te, &ke ); 1035 QApplication::sendEvent( te, &ke );
1027 } 1036 }
1028} 1037}
1029 1038
1030/** 1039/**
1031 This function calculates the size of the external widget 1040 This function calculates the size of the external widget
1032 needed for the internal widget to be 1041 needed for the internal widget to be
1033 */ 1042 */
1034QSize Konsole::calcSize(int columns, int lines) 1043QSize Konsole::calcSize(int columns, int lines)
1035{ 1044{
1036 TEWidget* te = getTe(); 1045 TEWidget* te = getTe();
1037 if (te != 0) 1046 if (te != 0)
1038 { 1047 {
1039 QSize size = te->calcSize(columns, lines); 1048 QSize size = te->calcSize(columns, lines);
1040 return size; 1049 return size;
1041 } 1050 }
1042 else 1051 else
1043 { 1052 {
1044 QSize size; 1053 QSize size;
1045 return size; 1054 return size;
1046 } 1055 }
1047} 1056}
1048 1057
1049/** 1058/**
1050 sets application window to a size based on columns X lines of the te 1059 sets application window to a size based on columns X lines of the te
1051 guest widget. Call with (0,0) for setting default size. 1060 guest widget. Call with (0,0) for setting default size.
1052*/ 1061*/
1053 1062
1054void Konsole::setColLin(int columns, int lines) 1063void Konsole::setColLin(int columns, int lines)
1055{ 1064{
1056 odebug << "konsole::setColLin:: Columns " << columns << "" << oendl; 1065 odebug << "konsole::setColLin:: Columns " << columns << "" << oendl;
1057 1066
1058 if ((columns==0) || (lines==0)) 1067 if ((columns==0) || (lines==0))
1059 { 1068 {
1060 if (defaultSize.isEmpty()) // not in config file : set default value 1069 if (defaultSize.isEmpty()) // not in config file : set default value
1061 { 1070 {
1062 defaultSize = calcSize(80,24); 1071 defaultSize = calcSize(80,24);
1063 // notifySize(24,80); // set menu items (strange arg order !) 1072 // notifySize(24,80); // set menu items (strange arg order !)
1064 } 1073 }
1065 resize(defaultSize); 1074 resize(defaultSize);
1066 } 1075 }
1067 else 1076 else
1068 { 1077 {
1069 resize(calcSize(columns, lines)); 1078 resize(calcSize(columns, lines));
1070 // notifySize(lines,columns); // set menu items (strange arg order !) 1079 // notifySize(lines,columns); // set menu items (strange arg order !)
1071 } 1080 }
1072} 1081}
1073 1082
1074/* 1083/*
1075void Konsole::setFont(int fontno) 1084void Konsole::setFont(int fontno)
1076{ 1085{
1077 QFont f; 1086 QFont f;
1078 if (fontno == 0) 1087 if (fontno == 0)
1079 f = defaultFont = QFont( "Helvetica", 12 ); 1088 f = defaultFont = QFont( "Helvetica", 12 );
1080 else 1089 else
1081 if (fonts[fontno][0] == '-') 1090 if (fonts[fontno][0] == '-')
1082 f.setRawName( fonts[fontno] ); 1091 f.setRawName( fonts[fontno] );
1083 else 1092 else
1084 { 1093 {
1085 f.setFamily(fonts[fontno]); 1094 f.setFamily(fonts[fontno]);
1086 f.setRawMode( TRUE ); 1095 f.setRawMode( TRUE );
1087 } 1096 }
1088 if ( !f.exactMatch() && fontno != 0) 1097 if ( !f.exactMatch() && fontno != 0)
1089 { 1098 {
1090 QString msg = i18n("Font `%1' not found.\nCheck README.linux.console for help.").arg(fonts[fontno]); 1099 QString msg = i18n("Font `%1' not found.\nCheck README.linux.console for help.").arg(fonts[fontno]);
1091 QMessageBox(this, msg); 1100 QMessageBox(this, msg);
1092 return; 1101 return;
1093 } 1102 }
1094 if (se) se->setFontNo(fontno); 1103 if (se) se->setFontNo(fontno);
1095 te->setVTFont(f); 1104 te->setVTFont(f);
1096 n_font = fontno; 1105 n_font = fontno;
1097} 1106}
1098*/ 1107*/
1099 1108
1100// --| color selection |------------------------------------------------------- 1109// --| color selection |-------------------------------------------------------
1101 1110
1102void Konsole::changeColumns(int /*columns*/) 1111void Konsole::changeColumns(int /*columns*/)
1103{ //FIXME this seems to cause silliness when reset command is executed 1112{ //FIXME this seems to cause silliness when reset command is executed
1104 // odebug << "change columns" << oendl; 1113 // odebug << "change columns" << oendl;
1105 // TEWidget* te = getTe(); 1114 // TEWidget* te = getTe();
1106 // if (te != 0) { 1115 // if (te != 0) {
1107 // setColLin(columns,te->Lines()); 1116 // setColLin(columns,te->Lines());
1108 // te->update(); 1117 // te->update();
1109 // } 1118 // }
1110} 1119}
1111 1120
1112//FIXME: If a child dies during session swap, 1121//FIXME: If a child dies during session swap,
1113// this routine might be called before 1122// this routine might be called before
1114// session swap is completed. 1123// session swap is completed.
1115 1124
1116void Konsole::doneSession(TEWidget* te, int ) 1125void Konsole::doneSession(TEWidget* te, int )
1117{ 1126{
1118 // TEWidget *te = NULL; 1127 // TEWidget *te = NULL;
1119 // if (sess->currentSession == tab->currentPage()) { 1128 // if (sess->currentSession == tab->currentPage()) {
1120 // printf("done current session\n"); 1129 // printf("done current session\n");
1121 // te = getTe(); 1130 // te = getTe();
1122 // } else { 1131 // } else {
1123 // int currentPage = tab->currentPageIndex(); 1132 // int currentPage = tab->currentPageIndex();
1124 // printf("done not current session\n"); 1133 // printf("done not current session\n");
1125 // for(int i = 0; i < nsessions; i++) { 1134 // for(int i = 0; i < nsessions; i++) {
1126 // tab->setCurrentPage(i); 1135 // tab->setCurrentPage(i);
1127 // printf("find session %d tab page %x session %x\n", 1136 // printf("find session %d tab page %x session %x\n",
1128 // i, tab->currentPage(), sess->currentSession); 1137 // i, tab->currentPage(), sess->currentSession);
1129 // if (tab->currentPage() == sess->currentSession) { 1138 // if (tab->currentPage() == sess->currentSession) {