⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 konsole.cpp

📁 Trolltech公司发布的图形界面操作系统。可在qt-embedded-2.3.10平台上编译为嵌入式图形界面操作系统。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
void Konsole::initSession(const char*, QStrList &){  QMainWindow::show();}/*! */Konsole::~Konsole(){    while (nsessions > 0) {      doneSession(getTe()->currentSession, 0);    }  Config cfg("Konsole");  cfg.setGroup("Konsole");  cfg.writeEntry("FontID", cfont);}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());        }    }}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);                    }    }}void Konsole::hitEnter(){    TEWidget* te = getTe();    if (te != 0) {    te->emitText(QString("\r"));    }}void Konsole::hitSpace(){    TEWidget* te = getTe();    if (te != 0) {    te->emitText(QString(" "));    }}void Konsole::hitTab(){    TEWidget* te = getTe();    if (te != 0) {    te->emitText(QString("\t"));    }}void Konsole::hitPaste(){    TEWidget* te = getTe();    if (te != 0) {    te->pasteClipboard();    }}void Konsole::hitUp(){    TEWidget* te = getTe();    if (te != 0) {    QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Up, 0, 0);    QApplication::sendEvent( te, &ke );    }}void Konsole::hitDown(){    TEWidget* te = getTe();    if (te != 0) {    QKeyEvent ke( QKeyEvent::KeyPress, Qt::Key_Down, 0, 0);    QApplication::sendEvent( te, &ke );    }}/**   This function calculates the size of the external widget   needed for the internal widget to be............. */QSize Konsole::calcSize(int columns, int lines) {    TEWidget* te = getTe();    if (te != 0) {    QSize size = te->calcSize(columns, lines);    return size;    } else {  QSize size;  return size;    }}/*!    sets application window to a size based on \a columns X \a lines of the     guest widget. Call with (0,0) for setting default size.*/void Konsole::setColLin(int columns, int lines){  if ((columns==0) || (lines==0))  {    if (defaultSize.isEmpty()) // not in config file : set default value    {      defaultSize = calcSize(80,24);      // notifySize(24,80); // set menu items (strange arg order !)    }    resize(defaultSize);  } else {    resize(calcSize(columns, lines));    // notifySize(lines,columns); // set menu items (strange arg order !)  }}/*void Konsole::setFont(int fontno){  QFont f;  if (fontno == 0)    f = defaultFont = QFont( "Helvetica", 12  );  else  if (fonts[fontno][0] == '-')    f.setRawName( fonts[fontno] );  else  {    f.setFamily(fonts[fontno]);    f.setRawMode( TRUE );  }  if ( !f.exactMatch() && fontno != 0)  {    QString msg = i18n("Font `%1' not found.\nCheck README.linux.console for help.").arg(fonts[fontno]);    QMessageBox(this,  msg);    return;  }  if (se) se->setFontNo(fontno);  te->setVTFont(f);  n_font = fontno;}*/// --| color selection |-------------------------------------------------------void Konsole::changeColumns(int columns){  TEWidget* te = getTe();  if (te != 0) {  setColLin(columns,te->Lines());  te->update();  }}//FIXME: If a child dies during session swap,//       this routine might be called before//       session swap is completed.void Konsole::doneSession(TESession*, int ){  TEWidget *te = getTe();  if (te != 0) {    te->currentSession->setConnect(FALSE);    tab->removeTab(te);    delete te->currentSession;    delete te;    nsessions--;    if (!newAct->isEnabled())        newAct->setEnabled(true);  }  if (nsessions == 0) {  close();  }}void Konsole::newSession() {    if(nsessions < 15) {    // seems to be something weird about 16 tabs on the Zaurus.... memory?        TEWidget* te = new TEWidget(tab);//  te->setBackgroundMode(PaletteBase); //we want transparent!!    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(TESession*,int)), this, SLOT(doneSession(TESession*,int)) );    se->run();    se->setConnect(TRUE);    se->setHistory(b_scroll);    tab->setCurrentPage(nsessions);    nsessions++;    if (nsessions == 15)         newAct->setEnabled(FALSE);    setColor();    }}TEWidget* Konsole::getTe() {  if (nsessions) {    return (TEWidget *) tab->currentPage();  } else {    return 0;  }}void Konsole::switchSession(QWidget* w) {  TEWidget* te = (TEWidget *) w;  QFont teFnt = te->getVTFont();  for(uint i = 0; i < fonts.count(); i++) {    VTFont *fnt = fonts.at(i);    bool cf = fnt->getFont() == teFnt;    fontList->setItemChecked(i, cf);    if (cf) {      cfont = i;    }  }}void Konsole::colorMenuSelected(int iD){ // this is NOT pretty, elegant or anything else besides functional//        QString temp;//        temp.sprintf("%d", iD);//      qDebug(temp);    TEWidget* te = getTe();    Config cfg("Konsole");    cfg.setGroup("Colors");    QColor foreground;    QColor background;    colorMenu->setItemChecked(lastSelectedMenu,FALSE);    ColorEntry m_table[TABLE_COLORS];    const ColorEntry * defaultCt=te->getdefaultColorTable();      /////////// fore back    int i;    if(iD==-8) { // default default        for (i = 0; i < TABLE_COLORS; i++)  {            m_table[i].color = defaultCt[i].color;            if(i==1 || i == 11)                m_table[i].transparent=1;            cfg.writeEntry("Schema","8");            colorMenu->setItemChecked(-8,TRUE);        }    } else {        if(iD==-5) { // green black            foreground.setRgb(0x18,255,0x18);            background.setRgb(0x00,0x00,0x00);            cfg.writeEntry("Schema","5");            colorMenu->setItemChecked(-5,TRUE);        }        if(iD==-6) { // black white            foreground.setRgb(0x00,0x00,0x00);            background.setRgb(0xFF,0xFF,0xFF);            cfg.writeEntry("Schema","6");            colorMenu->setItemChecked(-6,TRUE);        }        if(iD==-7) { // white black            foreground.setRgb(0xFF,0xFF,0xFF);            background.setRgb(0x00,0x00,0x00);            cfg.writeEntry("Schema","7");            colorMenu->setItemChecked(-7,TRUE);        }        if(iD==-9) {// Black, Red            foreground.setRgb(0x00,0x00,0x00);            background.setRgb(0xB2,0x18,0x18);            cfg.writeEntry("Schema","9");            colorMenu->setItemChecked(-9,TRUE);        }        if(iD==-10) {// Red, Black            foreground.setRgb(230,31,31); //0xB2,0x18,0x18            background.setRgb(0x00,0x00,0x00);            cfg.writeEntry("Schema","10");            colorMenu->setItemChecked(-10,TRUE);        }        if(iD==-11) {// Green, Yellow - is ugly//            foreground.setRgb(0x18,0xB2,0x18);            foreground.setRgb(36,139,10);//            background.setRgb(0xB2,0x68,0x18);            background.setRgb(255,255,0);            cfg.writeEntry("Schema","11");            colorMenu->setItemChecked(-11,TRUE);        }        if(iD==-12) {// Blue,  Magenta//            foreground.setRgb(0x18,0xB2,0xB2);//            background.setRgb(0x18,0x18,0xB2);	    foreground.setRgb(0x18,0x18,0xB2);            background.setRgb(0xB2,0x00,0xB2);            cfg.writeEntry("Schema","12");            colorMenu->setItemChecked(-12,TRUE);        }        if(iD==-13) {// Magenta, Blue//            foreground.setRgb(0x18,0x18,0xB2);//            background.setRgb(0x18,0xB2,0xB2);            foreground.setRgb(0xB2,0x00,0xB2);            background.setRgb(0x18,0x18,0xB2);            cfg.writeEntry("Schema","13");            colorMenu->setItemChecked(-13,TRUE);        }        if(iD==-14) {// Cyan,  White            foreground.setRgb(0x18,0xB2,0xB2);            background.setRgb(0xFF,0xFF,0xFF);            cfg.writeEntry("Schema","14");            colorMenu->setItemChecked(-14,TRUE);        }        if(iD==-15) {// White, Cyan            background.setRgb(0x18,0xB2,0xB2);            foreground.setRgb(0xFF,0xFF,0xFF);            cfg.writeEntry("Schema","15");            colorMenu->setItemChecked(-15,TRUE);        }        if(iD==-16) {// Black, Blue            background.setRgb(0x00,0x00,0x00);            foreground.setRgb(0x18,0xB2,0xB2);            cfg.writeEntry("Schema","16");            colorMenu->setItemChecked(-16,TRUE);        }        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;        }    }    lastSelectedMenu = iD;    te->setColorTable(m_table);    update();}void Konsole::configMenuSelected(int iD){//      QString temp;//      temp.sprintf("%d",iD);//      qDebug(temp);    TEWidget* te = getTe();    Config cfg("Konsole");    cfg.setGroup("Menubar");    if( iD  == -2) {        if(!secondToolBar->isHidden()) {            secondToolBar->hide();            configMenu->changeItem( iD,tr("Show Command List"));            cfg.writeEntry("Hidden","TRUE");            configMenu->setItemEnabled(-20 ,FALSE);        } else {            secondToolBar->show();            configMenu->changeItem( iD,tr("Hide Command List"));            cfg.writeEntry("Hidden","FALSE");            configMenu->setItemEnabled(-20 ,TRUE);        }    }    if( iD  == -3) {        cfg.setGroup("Tabs");        QString tmp=cfg.readEntry("Position","Bottom");        if(tmp=="Top") { // No tr            tab->setTabPosition(QTabWidget::Bottom);            configMenu->changeItem( iD,tr("Tabs on Top"));            cfg.writeEntry("Position","Bottom");        } else {            tab->setTabPosition(QTabWidget::Top);            configMenu->changeItem( iD,tr("Tabs on Bottom"));            cfg.writeEntry("Position","Top");        }    }    if( iD  == -20) {        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);            te->setFocus();        }    }}void Konsole::changeCommand(const QString &text, int c){    Config cfg("Konsole");    cfg.setGroup("Commands");    if(commonCmds[c] != text) {        cfg.writeEntry(QString::number(c),text);        commonCombo->clearEdit();        commonCombo->setCurrentItem(c);            }}/*! */void Konsole::setColor(){    Config cfg("Konsole");    cfg.setGroup("Colors");    int scheme = cfg.readNumEntry("Schema",8);     colorMenuSelected( -scheme); }// QDOC_SKIP_END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -