-rw-r--r-- | core/apps/embeddedkonsole/TEHistory.cpp | 2 | ||||
-rw-r--r-- | core/apps/embeddedkonsole/TEScreen.cpp | 2 | ||||
-rw-r--r-- | core/apps/embeddedkonsole/TEWidget.cpp | 4 | ||||
-rw-r--r-- | core/apps/embeddedkonsole/commandeditdialog.cpp | 2 | ||||
-rw-r--r-- | core/apps/embeddedkonsole/konsole.cpp | 31 |
5 files changed, 21 insertions, 20 deletions
diff --git a/core/apps/embeddedkonsole/TEHistory.cpp b/core/apps/embeddedkonsole/TEHistory.cpp index 504cd13..2417af1 100644 --- a/core/apps/embeddedkonsole/TEHistory.cpp +++ b/core/apps/embeddedkonsole/TEHistory.cpp @@ -45,97 +45,97 @@ */ HistoryScroll::HistoryScroll() { m_lines = NULL; m_max_lines = 0; m_cells = NULL; m_max_cells = 0; m_num_lines = 0; m_first_line = 0; m_last_cell = 0; m_start_line = 0; } HistoryScroll::~HistoryScroll() { setSize(0,0); } void HistoryScroll::setSize(int lines, int cells) { // could try to preserve the existing data... // printf("setSize(%d,%d)\n", lines, cells); if (m_lines) { delete m_lines; m_lines = NULL; } if (m_cells) { delete m_cells; m_cells = NULL; } m_max_lines = m_max_cells = 0; if (lines > 0 && cells > 0) { m_max_lines = lines; m_lines = new int[m_max_lines]; m_lines[0] = 0; m_max_cells = cells; m_cells = new ca[m_max_cells]; } m_first_line = 0; m_num_lines = 0; m_last_cell = 0; m_start_line = 0; } void HistoryScroll::setScroll(bool on) { - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("History"); // printf("setScroll(%d)\n", on); if (on) { int lines = cfg.readNumEntry("history_lines",300); int avg_line = cfg.readNumEntry("avg_line_length",60); int cells = lines * avg_line; setSize(lines,cells); } else { setSize(0,0); } } bool HistoryScroll::hasScroll() { return (m_max_lines > 0); } int HistoryScroll::getLines() { return(m_num_lines); } int HistoryScroll::getLineLen(int lineno) { if (!hasScroll()) return 0; if (lineno >= m_num_lines) { // printf("getLineLen(%d) out of range %d\n", lineno, m_num_lines); return(0); } int len = startOfLine(lineno+1) - startOfLine(lineno); if (len < 0) { len += m_max_cells; } // printf("getLineLen(%d) = %d\n", lineno, len); return(len); } int HistoryScroll::startOfLine(int lineno) { // printf("startOfLine(%d) =", lineno); if (!hasScroll()) return 0; assert(lineno >= 0 && lineno <= m_num_lines); if (lineno < m_num_lines) { int index = lineno + m_first_line; if (index >= m_max_lines) index -= m_max_lines; // printf("%d\n", m_lines[index]); return(m_lines[index]); diff --git a/core/apps/embeddedkonsole/TEScreen.cpp b/core/apps/embeddedkonsole/TEScreen.cpp index 4ebc28e..3dbcec2 100644 --- a/core/apps/embeddedkonsole/TEScreen.cpp +++ b/core/apps/embeddedkonsole/TEScreen.cpp @@ -517,97 +517,97 @@ ca* TEScreen::getCookedImage() for (y = 0; (y < lines) && (y < (hist.getLines()-histCursor)); y++) { int len = QMIN(columns,hist.getLineLen(y+histCursor)); int yp = y*columns; int yq = (y+histCursor)*columns; hist.getCells(y+histCursor,0,len,merged+yp); for (x = len; x < columns; x++) merged[yp+x] = dft; for (x = 0; x < columns; x++) { int p=x + yp; int q=x + yq; if ( ( q >= sel_TL ) && ( q <= sel_BR ) ) reverseRendition(&merged[p]); // for selection } } if (lines >= hist.getLines()-histCursor) { for (y = (hist.getLines()-histCursor); y < lines ; y++) { int yp = y*columns; int yq = (y+histCursor)*columns; int yr = (y-hist.getLines()+histCursor)*columns; for (x = 0; x < columns; x++) { int p = x + yp; int q = x + yq; int r = x + yr; merged[p] = image[r]; if ( q >= sel_TL && q <= sel_BR ) reverseRendition(&merged[p]); // for selection } } } // evtl. inverse display if (getMode(MODE_Screen)) { int i,n = lines*columns; for (i = 0; i < n; i++) reverseRendition(&merged[i]); // for reverse display } if (getMode(MODE_Cursor) && (cuY+(hist.getLines()-histCursor) < lines)) // cursor visible reverseRendition(&merged[loc(cuX,cuY+(hist.getLines()-histCursor))]); return merged; } /*! */ void TEScreen::reset() { - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("ScrollBar"); if( !cfg.readBoolEntry("HorzScroll",0) ) setMode(MODE_Wrap ); saveMode(MODE_Wrap ); // wrap at end of margin resetMode(MODE_Origin); saveMode(MODE_Origin); // position refere to [1,1] resetMode(MODE_Insert); saveMode(MODE_Insert); // overstroke setMode(MODE_Cursor); // cursor visible resetMode(MODE_Screen); // screen not inverse resetMode(MODE_NewLine); tmargin=0; bmargin=lines-1; setDefaultRendition(); saveCursor(); clear(); } /*! Clear the entire screen and home the cursor. */ void TEScreen::clear() { clearEntireScreen(); home(); } /*! Moves the cursor left one column. */ void TEScreen::BackSpace() { cuX = QMAX(0,cuX-1); if (BS_CLEARS) image[loc(cuX,cuY)].c = ' '; } /*! */ void TEScreen::Tabulate() { // note that TAB is a format effector (does not write ' '); cursorRight(1); while(cuX < columns-1 && !tabstops[cuX]) cursorRight(1); } void TEScreen::clearTabStops() diff --git a/core/apps/embeddedkonsole/TEWidget.cpp b/core/apps/embeddedkonsole/TEWidget.cpp index 98c3cdf..2e3e0f5 100644 --- a/core/apps/embeddedkonsole/TEWidget.cpp +++ b/core/apps/embeddedkonsole/TEWidget.cpp @@ -261,97 +261,97 @@ void TEWidget::fontChange(const QFont &) strcmp(QFont::encodingName(font().charSet()).ascii(),"iso10646") ? vt100extended : #endif identicalMap; propagateSize(); update(); } void TEWidget::setVTFont(const QFont& f) { QFrame::setFont(f); } QFont TEWidget::getVTFont() { return font(); } void TEWidget::setFont(const QFont &) { // ignore font change request if not coming from konsole itself } /* ------------------------------------------------------------------------- */ /* */ /* Constructor / Destructor */ /* */ /* ------------------------------------------------------------------------- */ TEWidget::TEWidget(QWidget *parent, const char *name) : QFrame(parent,name) { #ifndef QT_NO_CLIPBOARD cb = QApplication::clipboard(); QObject::connect( (QObject*)cb, SIGNAL(dataChanged()), this, SLOT(onClearSelection()) ); #endif scrollbar = new QScrollBar(this); scrollbar->setCursor( arrowCursor ); connect(scrollbar, SIGNAL(valueChanged(int)), this, SLOT(scrollChanged(int))); hScrollbar = new QScrollBar(this); hScrollbar->setCursor( arrowCursor ); hScrollbar->setOrientation(QScrollBar::Horizontal); // hScrollbar->setMaximumHeight(16); connect( hScrollbar, SIGNAL(valueChanged(int)), this, SLOT( hScrollChanged(int))); - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("ScrollBar"); switch( cfg.readNumEntry("Position",2)){ case 0: scrollLoc = SCRNONE; break; case 1: scrollLoc = SCRLEFT; break; case 2: scrollLoc = SCRRIGHT; break; }; useHorzScroll=cfg.readBoolEntry("HorzScroll",0); blinkT = new QTimer(this); connect(blinkT, SIGNAL(timeout()), this, SLOT(blinkEvent())); // blinking = FALSE; blinking = TRUE; resizing = FALSE; actSel = 0; image = 0; lines = 1; columns = 1; font_w = 1; font_h = 1; font_a = 1; word_selection_mode = FALSE; hposition = 0; vcolumns = 0; useBeep = true; setMouseMarks(TRUE); setVTFont( QFont("fixed") ); setColorTable(base_color_table); // init color table qApp->installEventFilter( this ); //FIXME: see below // KCursor::setAutoHideCursor( this, true ); // Init DnD //////////////////////////////////////////////////////////////// currentSession = NULL; // setAcceptDrops(true); // attempt // m_drop = new QPopupMenu(this); // m_drop->insertItem( QString("Paste"), 0); // m_drop->insertItem( QString("cd"), 1); // connect(m_drop, SIGNAL(activated(int)), SLOT(drop_menu_activated(int))); @@ -1182,97 +1182,97 @@ void TEWidget::frameChanged() /* Sound */ /* */ /* ------------------------------------------------------------------------- */ void TEWidget::Bell() { //#ifdef QT_QWS_SL5XXX //# ifndef QT_NO_COP if(useBeep) QCopEnvelope( "QPE/TaskBar", "soundAlarm()" ); //# endif //#else //# ifndef QT_NO_SOUND // QSound::play(Resource::findSound("alarm")); //# endif //#endif // QApplication::beep(); } /* ------------------------------------------------------------------------- */ /* */ /* Auxiluary */ /* */ /* ------------------------------------------------------------------------- */ void TEWidget::clearImage() // initialize the image // for internal use only { for (int y = 0; y < lines; y++) for (int x = 0; x < columns; x++) { image[loc(x,y)].c = 0xff; //' '; image[loc(x,y)].f = 0xff; //DEFAULT_FORE_COLOR; image[loc(x,y)].b = 0xff; //DEFAULT_BACK_COLOR; image[loc(x,y)].r = 0xff; //DEFAULT_RENDITION; } } // Create Image /////////////////////////////////////////////////////// void TEWidget::calcGeometry() { int showhscrollbar = 1; int hwidth = 0; int dcolumns; - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("ScrollBar"); useHorzScroll=cfg.readBoolEntry("HorzScroll",0); if(vcolumns == 0) showhscrollbar = 0; if(showhscrollbar == 1) hwidth = QApplication::style().scrollBarExtent().width(); scrollbar->resize(QApplication::style().scrollBarExtent().width(), contentsRect().height() - hwidth); switch(scrollLoc) { case SCRNONE : columns = ( contentsRect().width() - 2 * rimX ) / font_w; dcolumns = columns; if(vcolumns) columns = vcolumns; blX = (contentsRect().width() - (columns*font_w) ) / 2; if(showhscrollbar) blX = -hposition * font_w; brX = blX; scrollbar->hide(); break; case SCRLEFT : columns = ( contentsRect().width() - 2 * rimX - scrollbar->width()) / font_w; dcolumns = columns; if(vcolumns) columns = vcolumns; brX = (contentsRect().width() - (columns*font_w) - scrollbar->width() ) / 2; if(showhscrollbar) brX = -hposition * font_w; blX = brX + scrollbar->width(); scrollbar->move(contentsRect().topLeft()); scrollbar->show(); break; case SCRRIGHT: columns = ( contentsRect().width() - 2 * rimX - scrollbar->width()) / font_w; dcolumns = columns; if(vcolumns) columns = vcolumns; blX = (contentsRect().width() - (columns*font_w) - scrollbar->width() ) / 2; if(showhscrollbar) blX = -hposition * font_w; brX = blX; scrollbar->move(contentsRect().topRight() - QPoint(scrollbar->width()-1,0)); scrollbar->show(); break; } //FIXME: support 'rounding' styles lines = ( contentsRect().height() - 2 * rimY ) / font_h; bY = (contentsRect().height() - (lines *font_h)) / 2; if(showhscrollbar == 1) { diff --git a/core/apps/embeddedkonsole/commandeditdialog.cpp b/core/apps/embeddedkonsole/commandeditdialog.cpp index 03cba87..b23db18 100644 --- a/core/apps/embeddedkonsole/commandeditdialog.cpp +++ b/core/apps/embeddedkonsole/commandeditdialog.cpp @@ -57,97 +57,97 @@ CommandEditDialog::CommandEditDialog(QWidget *parent, const char* name, WFlags f item = new QListViewItem( m_SuggestedCommandList,"route "); item = new QListViewItem( m_SuggestedCommandList,"cardctl eject "); m_SuggestedCommandList->setSelected(m_SuggestedCommandList->firstChild(),TRUE); m_SuggestedCommandList->sort(); connect( m_SuggestedCommandList, SIGNAL( clicked( QListViewItem * ) ), m_PlayListSelection, SLOT( addToSelection( QListViewItem *) ) ); ToolButton1->setTextLabel("new"); ToolButton1->setPixmap(Resource::loadPixmap("new")); ToolButton1->setAutoRaise(TRUE); ToolButton1->setFocusPolicy(QWidget::NoFocus); connect(ToolButton1,SIGNAL(clicked()),this,SLOT(showAddDialog())); ToolButton2->setTextLabel("edit"); ToolButton2->setPixmap(Resource::loadPixmap("edit")); ToolButton2->setAutoRaise(TRUE); ToolButton2->setFocusPolicy(QWidget::NoFocus); connect(ToolButton2,SIGNAL(clicked()),this,SLOT(showEditDialog())); ToolButton3->setTextLabel("delete"); ToolButton3->setPixmap(Resource::loadPixmap("editdelete")); ToolButton3->setAutoRaise(TRUE); ToolButton3->setFocusPolicy(QWidget::NoFocus); connect(ToolButton3,SIGNAL(clicked()),m_PlayListSelection,SLOT(removeSelected())); ToolButton4->setTextLabel("up"); ToolButton4->setPixmap(Resource::loadPixmap("up")); ToolButton4->setAutoRaise(TRUE); ToolButton4->setFocusPolicy(QWidget::NoFocus); connect(ToolButton4,SIGNAL(clicked()),m_PlayListSelection,SLOT(moveSelectedUp())); ToolButton5->setTextLabel("down"); ToolButton5->setPixmap(Resource::loadPixmap("down")); ToolButton5->setAutoRaise(TRUE); ToolButton5->setFocusPolicy(QWidget::NoFocus); connect(ToolButton5,SIGNAL(clicked()),m_PlayListSelection,SLOT(moveSelectedDown())); QListViewItem *current = m_SuggestedCommandList->selectedItem(); if ( current ) item->moveItem( current ); m_SuggestedCommandList->setSelected( item, TRUE ); m_SuggestedCommandList->ensureItemVisible( m_SuggestedCommandList->selectedItem() ); - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("Commands"); if (cfg.readEntry("Commands Set","FALSE") == "TRUE") { for (int i = 0; i < 100; i++) { QString tmp; tmp = cfg.readEntry( QString::number(i),""); if (!tmp.isEmpty()) m_PlayListSelection->addStringToSelection(tmp); } } else { m_PlayListSelection->addStringToSelection("ls "); m_PlayListSelection->addStringToSelection("cardctl eject"); m_PlayListSelection->addStringToSelection("cat "); m_PlayListSelection->addStringToSelection("cd "); m_PlayListSelection->addStringToSelection("chmod "); m_PlayListSelection->addStringToSelection("cp "); m_PlayListSelection->addStringToSelection("dc "); m_PlayListSelection->addStringToSelection("df "); m_PlayListSelection->addStringToSelection("dmesg"); m_PlayListSelection->addStringToSelection("echo "); m_PlayListSelection->addStringToSelection("env"); m_PlayListSelection->addStringToSelection("find "); m_PlayListSelection->addStringToSelection("free"); m_PlayListSelection->addStringToSelection("grep "); m_PlayListSelection->addStringToSelection("ifconfig "); m_PlayListSelection->addStringToSelection("ipkg "); m_PlayListSelection->addStringToSelection("mkdir "); m_PlayListSelection->addStringToSelection("mv "); m_PlayListSelection->addStringToSelection("nc localhost 7776"); m_PlayListSelection->addStringToSelection("nc localhost 7777"); m_PlayListSelection->addStringToSelection("nslookup "); m_PlayListSelection->addStringToSelection("ping "); m_PlayListSelection->addStringToSelection("ps aux"); m_PlayListSelection->addStringToSelection("pwd "); m_PlayListSelection->addStringToSelection("rm "); m_PlayListSelection->addStringToSelection("rmdir "); m_PlayListSelection->addStringToSelection("route "); m_PlayListSelection->addStringToSelection("set "); m_PlayListSelection->addStringToSelection("traceroute"); } } CommandEditDialog::~CommandEditDialog() { } void CommandEditDialog::accept() { diff --git a/core/apps/embeddedkonsole/konsole.cpp b/core/apps/embeddedkonsole/konsole.cpp index 46c0203..3289a04 100644 --- a/core/apps/embeddedkonsole/konsole.cpp +++ b/core/apps/embeddedkonsole/konsole.cpp @@ -1,70 +1,71 @@ /* ---------------------------------------------------------------------- */ /* */ /* [main.C] Konsole */ /* */ /* ---------------------------------------------------------------------- */ /* */ /* Copyright (c) 1997,1998 by Lars Doelle <lars.doelle@on-line.de> */ /* */ /* This file is part of Konsole, an X terminal. */ /* */ /* The material contained in here more or less directly orginates from */ /* kvt, which is copyright (c) 1996 by Matthias Ettrich <ettrich@kde.org> */ /* */ /* ---------------------------------------------------------------------- */ /* */ /* Ported Konsole to Qt/Embedded */ /* */ /* Copyright (C) 2000 by John Ryland <jryland@trolltech.com> */ /* */ /* -------------------------------------------------------------------------- */ // enhancements added by L.J. Potter <ljp@llornkcor.com> +// enhancements added by Phillip Kuhn //#define QT_QWS_OPIE #include <stdlib.h> #ifdef QT_QWS_OPIE #include <opie2/ocolorpopupmenu.h> #endif #include <qpe/resource.h> #include <qdir.h> #include <qevent.h> #include <qdragobject.h> #include <qobjectlist.h> #include <qtoolbutton.h> #include <qtoolbar.h> #include <qpushbutton.h> #include <qfontdialog.h> #include <qglobal.h> #include <qpainter.h> #include <qmenubar.h> #include <qmessagebox.h> #include <qaction.h> #include <qapplication.h> #include <qfontmetrics.h> #include <qcombobox.h> #include <qevent.h> #include <qtabwidget.h> #include <qtabbar.h> #include <qpe/config.h> #include <qstringlist.h> #include <qpalette.h> #include <qfontdatabase.h> #include <qfile.h> #include <qspinbox.h> #include <qlayout.h> #include <qvbox.h> #include <sys/wait.h> #include <stdio.h> #include <stdlib.h> #include <assert.h> #include "konsole.h" #include "keytrans.h" #include "commandeditdialog.h" class EKNumTabBar : public QTabBar @@ -216,97 +217,97 @@ static const char *commonCmds[] = */ "exit", NULL }; Konsole::Konsole(QWidget* parent, const char* name, WFlags fl) : QMainWindow(parent, name, fl) { QStrList args; init("/bin/bash",args); } Konsole::Konsole(const char* name, const char* _pgm, QStrList & _args, int) : QMainWindow(0, name) { init(_pgm,_args); } struct HistoryItem { HistoryItem(int c, const QString &l) { count = c; line = l; } int count; QString line; }; class HistoryList : public QList<HistoryItem> { virtual int compareItems( QCollection::Item item1, QCollection::Item item2) { int c1 = ((HistoryItem*)item1)->count; int c2 = ((HistoryItem*)item2)->count; if (c1 > c2) return(1); if (c1 < c2) return(-1); return(0); } }; void Konsole::initCommandList() { // qDebug("Konsole::initCommandList"); - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("Commands"); // commonCombo->setInsertionPolicy(QComboBox::AtCurrent); commonCombo->clear(); if (cfg.readEntry("ShellHistory","TRUE") == "TRUE") { QString histfilename = QString(getenv("HOME")) + "/.bash_history"; histfilename = cfg.readEntry("ShellHistoryPath",histfilename); QFile histfile(histfilename); // note: compiler barfed on: // QFile histfile(QString(getenv("HOME")) + "/.bash_history"); if (histfile.open( IO_ReadOnly )) { QString line; uint i; HistoryList items; int lineno = 0; while(!histfile.atEnd()) { if (histfile.readLine(line, 200) < 0) { break; } line = line.left(line.length()-1); lineno++; for(i=0; i<items.count(); i++) { if (line == items.at(i)->line) { // weight recent commands & repeated commands more // by adding up the index of each command items.at(i)->count += lineno; break; } } if (i >= items.count()) { items.append(new HistoryItem(lineno, line)); } } items.sort(); int n = items.count(); if (n > 40) { n = 40; } @@ -326,97 +327,97 @@ void Konsole::initCommandList() for (int i = 0; commonCmds[i] != NULL; i++) { commonCombo->insertItem(commonCmds[i]); } } else { for (int i = 0; i < 100; i++) { if (!(cfg.readEntry( QString::number(i),"")).isEmpty()) commonCombo->insertItem(cfg.readEntry( QString::number(i),"")); } } } static void sig_handler(int x) { printf("got signal %d\n",x); } void Konsole::init(const char* _pgm, QStrList & _args) { #if 0 for(int i=1; i<=31; i++) { if (i != SIGPIPE && i != SIGPROF && i != SIGSEGV && i != SIGINT && i != SIGILL && i != SIGTERM && i != SIGBUS) signal(i,sig_handler); } #endif signal(SIGSTOP, sig_handler); signal(SIGCONT, sig_handler); signal(SIGTSTP, sig_handler); b_scroll = TRUE; // histon; n_keytab = 0; n_render = 0; startUp=0; fromMenu = FALSE; fullscreen = false; setCaption( "Qkonsole" ); setIcon( Resource::loadPixmap( "qkonsole/qkonsole" ) ); - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("Font"); QString tmp; // initialize the list of allowed fonts /////////////////////////////////// QString cfgFontName = cfg.readEntry("FontName","Lcfont"); int cfgFontSize = cfg.readNumEntry("FontSize",18); cfont = -1; // this code causes repeated access to all the font files // which does slow down startup QFontDatabase fontDB; QStringList familyNames; familyNames = fontDB.families( FALSE ); QString s; int fontIndex = 0; int familyNum = 0; fontList = new QPopupMenu( this ); for(uint j = 0; j < (uint)familyNames.count(); j++) { s = familyNames[j]; if ( s.contains('-') ) { int i = s.find('-'); s = s.right( s.length() - i - 1 ) + " [" + s.left( i ) + "]"; } s[0] = s[0].upper(); QValueList<int> sizes = fontDB.pointSizes( familyNames[j] ); printf("family[%d] = %s with %d sizes\n", j, familyNames[j].latin1(), sizes.count()); if (sizes.count() > 0) { QPopupMenu *sizeMenu; QFont f; int last_width = -1; sizeMenu = NULL; for(uint i = 0; i < (uint)sizes.count() + 4; i++) { // printf("family %s size %d ", familyNames[j].latin1(), sizes[i]); // need to divide by 10 on the Z, but not otherwise int size; @@ -739,97 +740,97 @@ void Konsole::init(const char* _pgm, QStrList & _args) parseCommandLine(); // read and apply default values /////////////////////////////////////////// resize(321, 321); // Dummy. QSize currentSize = size(); if (currentSize != size()) defaultSize = size(); /* allows us to catch cancel/escape */ reparent ( 0, WStyle_Customize | WStyle_NoBorder, QPoint ( 0, 0 )); } void Konsole::show() { if ( !nsessions ) { newSession(); } QMainWindow::show(); } void Konsole::initSession(const char*, QStrList &) { QMainWindow::show(); } Konsole::~Konsole() { while (nsessions > 0) { doneSession(getTe(), 0); } } void Konsole::historyDialog() { QDialog *d = new QDialog ( this, "histdlg", true ); // d-> setCaption ( tr( "History" )); QBoxLayout *lay = new QVBoxLayout ( d, 4, 4 ); QLabel *l = new QLabel ( tr( "History Lines:" ), d ); lay-> addWidget ( l ); - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("History"); int hist = cfg.readNumEntry("history_lines",300); int avg_line = cfg.readNumEntry("avg_line_length",60); QSpinBox *spin = new QSpinBox ( 1, 100000, 20, d ); spin-> setValue ( hist ); spin-> setWrapping ( true ); spin-> setButtonSymbols ( QSpinBox::PlusMinus ); lay-> addWidget ( spin ); if ( d-> exec ( ) == QDialog::Accepted ) { cfg.writeEntry("history_lines", spin->value()); cfg.writeEntry("avg_line_length", avg_line); if (getTe() != NULL) { getTe()->currentSession->setHistory(true); } } delete d; } void Konsole::cycleZoom() { TEWidget* te = getTe(); QFont font = te->getVTFont(); int size = font.pointSize(); changeFontSize(1); font = te->getVTFont(); if (font.pointSize() <= size) { do { font = te->getVTFont(); size = font.pointSize(); changeFontSize(-1); font = te->getVTFont(); } while (font.pointSize() < size); } } void Konsole::changeFontSize(int delta) { // printf("delta font size %d\n", delta); TEWidget* te = getTe(); @@ -882,97 +883,97 @@ int Konsole::findFont(QString name, int size, bool exactMatch) { for(uint i = 0; i < fonts.count(); i++) { if (fonts.at(i)->getName() == name && fonts.at(i)->getSize() == size) { return(i); } } if (exactMatch) { return(-1); } for(uint i = 0; i < fonts.count(); i++) { if (fonts.at(i)->getSize() == size) { return(i); } } return(-1); } void Konsole::setFont(int f) { VTFont* font = fonts.at(f); if (font) { TEWidget* te = getTe(); if (te != 0) { te->setVTFont(font->getFont()); } cfont = f; int familyNum = font->getFamilyNum(); int size = font->getSize(); printf("familyNum = %d size = %d count=%d\n", familyNum, size, fontList->count()); for(int i = 0; i < (int)fontList->count(); i++) { fontList->setItemChecked(i + 1000, i == familyNum); } for(int i = 0; i < (int)fonts.count(); i++) { fontList->setItemChecked(i, fonts.at(i)->getFamilyNum() == familyNum && fonts.at(i)->getSize() == size); } - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("Font"); QString ss = "Session"+ QString::number(tab->currentPageIndex()+1); if (tab->currentPageIndex() == 0) { cfg.writeEntry("FontName", fonts.at(cfont)->getFamily()); cfg.writeEntry("FontSize", fonts.at(cfont)->getSize()); } cfg.writeEntry("FontName"+ss, fonts.at(cfont)->getFamily()); cfg.writeEntry("FontSize"+ss, fonts.at(cfont)->getSize()); } } #if 0 void Konsole::fontChanged(int f) { VTFont* font = fonts.at(f); if (font != 0) { for(uint i = 0; i < fonts.count(); i++) { fontList->setItemChecked(i, (i == (uint) f) ? TRUE : FALSE); } cfont = f; TEWidget* te = getTe(); if (te != 0) { te->setVTFont(font->getFont()); } } } #endif void Konsole::enterCommand(int c) { TEWidget* te = getTe(); if (te != 0) { if(!commonCombo->editable()) { QString text = commonCombo->text(c); //commonCmds[c]; te->emitText(text); } else { changeCommand( commonCombo->text(c), c); @@ -1127,97 +1128,97 @@ void Konsole::doneSession(TEWidget* te, int ) // TEWidget *te = NULL; // if (sess->currentSession == tab->currentPage()) { // printf("done current session\n"); // te = getTe(); // } else { // int currentPage = tab->currentPageIndex(); // printf("done not current session\n"); // for(int i = 0; i < nsessions; i++) { // tab->setCurrentPage(i); // printf("find session %d tab page %x session %x\n", // i, tab->currentPage(), sess->currentSession); // if (tab->currentPage() == sess->currentSession) { // printf("found session %d\n", i); // te = tab->currentPage(); // break; // } // } // tab->setCurrentPage(currentPage); // } if (te != 0) { te->currentSession->setConnect(FALSE); tab->removeTab(te); delete te->currentSession; delete te; sessionList->removeItem(nsessions); nsessions--; } if (nsessions == 0) { close(); } } void Konsole::changeTitle(TEWidget* te, QString newTitle ) { if (te == getTe()) { setCaption(newTitle + " - QKonsole"); } } void Konsole::newSession() { if(nsessions < 15) { // seems to be something weird about 16 tabs on the Zaurus.... memory? TEWidget* te = new TEWidget(tab); - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("Menubar"); // FIXME use more defaults from config file te->useBeep=cfg.readBoolEntry("useBeep",0); // te->setBackgroundMode(PaletteBase); //we want transparent!! cfg.setGroup("Font"); QString sn = "Session" + QString::number(nsessions+1); printf("read font session %s\n", sn.latin1()); QString fontName = cfg.readEntry("FontName"+sn, cfg.readEntry("FontName", fonts.at(cfont)->getFamily())); int fontSize = cfg.readNumEntry("FontSize"+sn, cfg.readNumEntry("FontSize", fonts.at(cfont)->getSize())); cfont = findFont(fontName, fontSize, false); printf("lookup font %s size %d got %d\n", fontName.latin1(), fontSize, cfont); if (cfont < 0) cfont = 0; te->setVTFont(fonts.at(cfont)->getFont()); tab->addTab(te); TESession* se = new TESession(this, te, se_pgm, se_args, "xterm"); te->currentSession = se; connect( se, SIGNAL(done(TEWidget*,int)), this, SLOT(doneSession(TEWidget*,int)) ); connect( se, SIGNAL(changeTitle(TEWidget*,QString)), this, SLOT(changeTitle(TEWidget*,QString)) ); connect(te, SIGNAL(changeFontSize(int)), this, SLOT(changeFontSize(int))); connect(te, SIGNAL(changeSession(int)), this, SLOT(changeSession(int))); connect(te, SIGNAL(newSession()), this, SLOT(newSession())); connect(te, SIGNAL(toggleFullScreen()), this, SLOT(toggleFullScreen())); connect(te, SIGNAL(setFullScreen(bool)), this, SLOT(setFullScreen(bool))); se->run(); se->setConnect(TRUE); se->setHistory(b_scroll); nsessions++; sessionList->insertItem(QString::number(nsessions), nsessions); sessionListSelected(nsessions); doWrap(); setColor(nsessions-1); } } TEWidget* Konsole::getTe() { if (nsessions) { @@ -1366,97 +1367,97 @@ void Konsole::setFullScreen ( bool b ) } } else { showNormal ( ); reparent ( 0, WStyle_Customize, QPoint ( 0, 0 )); resize ( normalsize ); showMaximized ( ); normalsize = QSize ( ); menuToolBar->show(); toolBar->show(); if(! listHidden) { secondToolBar->show(); } // commonCombo->show(); menuToolBar->show(); if (tabPos != tm_hidden) { tab->getTabBar()->show(); } } tab->setMargin(tab->margin()); // cause setup to run } void Konsole::fullscreenTimeout() { fullscreen_msg->hide(); } void Konsole::colorMenuIsSelected(int iD) { fromMenu = TRUE; colorMenuSelected(iD); } /// ------------------------------- some new stuff by L.J. Potter void Konsole::colorMenuSelected(int iD) { // this is NOT pretty, elegant or anything else besides functional // QString temp; // qDebug( temp.sprintf("colormenu %d", iD)); TEWidget* te = getTe(); - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("Colors"); ColorEntry m_table[TABLE_COLORS]; const ColorEntry * defaultCt=te->getdefaultColorTable(); int i; // te->color_menu_item = iD; colorMenu->setItemChecked(cm_ab,FALSE); colorMenu->setItemChecked(cm_bb,FALSE); colorMenu->setItemChecked(cm_wc,FALSE); colorMenu->setItemChecked(cm_cw,FALSE); colorMenu->setItemChecked(cm_mb,FALSE); colorMenu->setItemChecked(cm_bm,FALSE); colorMenu->setItemChecked(cm_gy,FALSE); colorMenu->setItemChecked(cm_rb,FALSE); colorMenu->setItemChecked(cm_br,FALSE); colorMenu->setItemChecked(cm_wb,FALSE); colorMenu->setItemChecked(cm_bw,FALSE); colorMenu->setItemChecked(cm_gb,FALSE); if(iD==cm_default) { // default default printf("default colors\n"); for (i = 0; i < TABLE_COLORS; i++) { m_table[i].color = defaultCt[i].color; if(i==1 || i == 11) m_table[i].transparent=1; colorMenu->setItemChecked(cm_default,TRUE); } te->setColorTable(m_table); } if(iD==cm_gb) { // green black foreground.setRgb(100,255,100); // (0x18,255,0x18); background.setRgb(0x00,0x00,0x00); colorMenu->setItemChecked(cm_gb,TRUE); } if(iD==cm_bw) { // black white foreground.setRgb(0x00,0x00,0x00); background.setRgb(0xFF,0xFF,0xFF); colorMenu->setItemChecked(cm_bw,TRUE); } if(iD==cm_wb) { // white black @@ -1550,251 +1551,251 @@ void Konsole::colorMenuSelected(int iD) QString ss = QString("Session%1").arg(tabBar->currentTab()); // printf("current tab = %d\n", tabBar->currentTab()); if (tabBar->currentTab() == 0) { cfg.writeEntry("foregroundRed",QString::number(foreground.red())); cfg.writeEntry("foregroundGreen",QString::number(foreground.green())); cfg.writeEntry("foregroundBlue",QString::number(foreground.blue())); cfg.writeEntry("backgroundRed",QString::number(background.red())); cfg.writeEntry("backgroundGreen",QString::number(background.green())); cfg.writeEntry("backgroundBlue",QString::number(background.blue())); } cfg.writeEntry("foregroundRed"+ss,QString::number(foreground.red())); cfg.writeEntry("foregroundGreen"+ss,QString::number(foreground.green())); cfg.writeEntry("foregroundBlue"+ss,QString::number(foreground.blue())); cfg.writeEntry("backgroundRed"+ss,QString::number(background.red())); cfg.writeEntry("backgroundGreen"+ss,QString::number(background.green())); cfg.writeEntry("backgroundBlue"+ss,QString::number(background.blue())); update(); } void Konsole::setColors(QColor foreground, QColor background) { int i; ColorEntry m_table[TABLE_COLORS]; TEWidget* te = getTe(); const ColorEntry * defaultCt=te->getdefaultColorTable(); for (i = 0; i < TABLE_COLORS; i++) { if(i==0 || i == 10) { m_table[i].color = foreground; } else if(i==1 || i == 11) { m_table[i].color = background; m_table[i].transparent=0; } else m_table[i].color = defaultCt[i].color; } te->setColorTable(m_table); } void Konsole::tabMenuSelected(int id) { - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("Tabs"); tabMenu->setItemChecked(tabPos, false); if (id == tm_bottom) { printf("set bottom tab\n"); tab->getTabBar()->show(); tab->setTabPosition(QTabWidget::Bottom); tab->getTabBar()->show(); cfg.writeEntry("Position","Bottom"); } else if (id == tm_top) { printf("set top tab\n"); tab->getTabBar()->show(); tab->setTabPosition(QTabWidget::Bottom); tab->setTabPosition(QTabWidget::Top); tab->getTabBar()->show(); cfg.writeEntry("Position","Top"); } else if (id == tm_hidden) { tab->getTabBar()->hide(); tab->setMargin(tab->margin()); cfg.writeEntry("Position","Hidden"); } tabMenu->setItemChecked(id, true); tabPos = id; } void Konsole::configMenuSelected(int iD) { // QString temp; // qDebug( temp.sprintf("configmenu %d",iD)); TEWidget* te = getTe(); - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("Menubar"); if(iD == cm_wrap) { cfg.setGroup("ScrollBar"); bool b=cfg.readBoolEntry("HorzScroll",0); b=!b; cfg.writeEntry("HorzScroll", b ); cfg.write(); doWrap(); if(cfg.readNumEntry("Position",2) == 0) { te->setScrollbarLocation(1); } else { te->setScrollbarLocation(0); } te->setScrollbarLocation( cfg.readNumEntry("Position",2)); } if(iD == cm_beep) { cfg.setGroup("Menubar"); bool b=cfg.readBoolEntry("useBeep",0); b=!b; cfg.writeEntry("useBeep", b ); cfg.write(); configMenu->setItemChecked(cm_beep,b); te->useBeep=b; } } void Konsole::changeCommand(const QString &text, int c) { - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("Commands"); if(commonCmds[c] != text) { cfg.writeEntry(QString::number(c),text); commonCombo->clearEdit(); commonCombo->setCurrentItem(c); } } void Konsole::setColor(int sess) { - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("Colors"); QColor foreground, background; QString ss = QString("Session") + QString::number(sess); foreground.setRgb(cfg.readNumEntry("foregroundRed"+ss, cfg.readNumEntry("foregroundRed",0xff)), cfg.readNumEntry("foregroundGreen"+ss, cfg.readNumEntry("foregroundGreen",0xff)), cfg.readNumEntry("foregroundBlue"+ss, cfg.readNumEntry("foregroundBlue",0xff))); background.setRgb(cfg.readNumEntry("backgroundRed"+ss, cfg.readNumEntry("backgroundRed",0)), cfg.readNumEntry("backgroundGreen"+ss, cfg.readNumEntry("backgroundGreen",0)), cfg.readNumEntry("backgroundBlue"+ss, cfg.readNumEntry("backgroundBlue",0))); setColors(foreground, background); } void Konsole::scrollMenuSelected(int index) { // qDebug( "scrollbar menu %d",index); TEWidget* te = getTe(); - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("ScrollBar"); if(index == sm_none) { te->setScrollbarLocation(0); cfg.writeEntry("Position",0); } else if(index == sm_left) { te->setScrollbarLocation(1); cfg.writeEntry("Position",1); } else if(index == sm_right) { te->setScrollbarLocation(2); cfg.writeEntry("Position",2); } scrollMenu->setItemChecked(sm_none, index == sm_none); scrollMenu->setItemChecked(sm_left, index == sm_left); scrollMenu->setItemChecked(sm_right, index == sm_right); } // case -29: { // bool b=cfg.readBoolEntry("HorzScroll",0); // cfg.writeEntry("HorzScroll", !b ); // cfg.write(); // if(cfg.readNumEntry("Position",2) == 0) { // te->setScrollbarLocation(1); // te->setWrapAt(0); // } else { // te->setScrollbarLocation(0); // te->setWrapAt(120); // } // te->setScrollbarLocation( cfg.readNumEntry("Position",2)); // } // break; void Konsole::editCommandListMenuSelected(int iD) { // QString temp; // qDebug( temp.sprintf("edit command list %d",iD)); // FIXME: more cleanup needed here TEWidget* te = getTe(); - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("Menubar"); if( iD == ec_cmdlist) { if(!secondToolBar->isHidden()) { secondToolBar->hide(); configMenu->changeItem( iD,tr( "Show Command List" )); cfg.writeEntry("Hidden","TRUE"); configMenu->setItemEnabled(ec_edit ,FALSE); configMenu->setItemEnabled(ec_quick ,FALSE); } else { secondToolBar->show(); configMenu->changeItem( iD,tr( "Hide Command List" )); cfg.writeEntry("Hidden","FALSE"); configMenu->setItemEnabled(ec_edit ,TRUE); configMenu->setItemEnabled(ec_quick ,TRUE); if(cfg.readEntry("EditEnabled","FALSE")=="TRUE") { configMenu->setItemChecked(ec_edit,TRUE); commonCombo->setEditable( TRUE ); } else { configMenu->setItemChecked(ec_edit,FALSE); commonCombo->setEditable( FALSE ); } } } if( iD == ec_quick) { cfg.setGroup("Commands"); // qDebug("enableCommandEdit"); if( !configMenu->isItemChecked(iD) ) { commonCombo->setEditable( TRUE ); configMenu->setItemChecked(iD,TRUE); commonCombo->setCurrentItem(0); cfg.writeEntry("EditEnabled","TRUE"); } else { commonCombo->setEditable( FALSE ); configMenu->setItemChecked(iD,FALSE); cfg.writeEntry("EditEnabled","FALSE"); commonCombo->setFocusPolicy(QWidget::NoFocus); @@ -1820,99 +1821,99 @@ void Konsole::setDocument( const QString &cmd) { QString cmd2; cmd2=cmd.right(cmd.length()-3)+" &"; system(cmd2.latin1()); if(startUp <= 1 && nsessions < 2) { doneSession(getTe(), 0); exit(0); } else doneSession(getTe(), 0); } else { if (te != 0) { te->emitText(cmd+"\r"); } } startUp++; } // what is the point of this when you can just // run commands by using the shell directly?? void Konsole::parseCommandLine() { QString cmd; // newSession(); for (int i=1;i< qApp->argc();i++) { if( QString(qApp->argv()[i]) == "-e") { i++; for ( int j=i;j< qApp->argc();j++) { cmd+=QString(qApp->argv()[j])+" "; } cmd.stripWhiteSpace(); system(cmd.latin1()); exit(0);//close(); } // end -e switch } startUp++; } void Konsole::changeForegroundColor(const QColor &color) { - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("Colors"); int r, g, b; color.rgb(&r,&g,&b); foreground.setRgb(r,g,b); cfg.writeEntry("foreground",color.name()); qDebug("foreground "+color.name()); cfg.write(); qDebug("do other dialog"); #ifdef QT_QWS_OPIE Opie::OColorPopupMenu* penColorPopupMenu2 = new Opie::OColorPopupMenu(Qt::black, this,"background color"); connect(penColorPopupMenu2, SIGNAL(colorSelected(const QColor&)), this, SLOT(changeBackgroundColor(const QColor&))); penColorPopupMenu2->exec(); #endif } void Konsole::changeBackgroundColor(const QColor &color) { qDebug("Change background"); - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("Colors"); int r, g, b; color.rgb(&r,&g,&b); background.setRgb(r,g,b); cfg.writeEntry("background",color.name()); qDebug("background "+color.name()); cfg.write(); } void Konsole::doWrap() { - Config cfg("Qkonsole"); + Config cfg( "Konsole" ); cfg.setGroup("ScrollBar"); TEWidget* te = getTe(); if( !cfg.readBoolEntry("HorzScroll",0)) { te->setWrapAt(0); configMenu->setItemChecked( cm_wrap,TRUE); } else { // te->setWrapAt(90); te->setWrapAt(120); configMenu->setItemChecked( cm_wrap,FALSE); } } |