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

📄 editor.cpp

📁 用Qt4编写的linux IDE开发环境
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        m_checksum = check;    }    m_timerCheckLastModified.start( 5000 );    return ret;}//bool Editor::close(){    bool ret = m_textEdit->close( m_filename );    if ( ret )        clearAllBookmarks();    return ret;}//void Editor::setSyntaxHighlight(bool activate){    if ( activate && !QString(":c:cpp:cc:h:").contains( ":"+m_filename.section(".", -1, -1).toLower()+":" ) )        return;    m_textEdit->setSyntaxHighlight(activate);}//bool Editor::save(){    return m_textEdit->save( m_filename, m_lastModified);}//void Editor::gotoLine( int line, bool moveTop ){    m_textEdit->gotoLine( line, moveTop );}//void Editor::slotFindPrevious(){    m_backward = true;    slotFindWidget_textChanged(uiFind.editFind->text(), true);}//void Editor::slotFindNext(){    m_backward = false;    slotFindWidget_textChanged(uiFind.editFind->text(), true);}//void Editor::find(){    autoHideTimer->stop();    m_findWidget->show();    uiFind.editFind->setFocus(Qt::ShortcutFocusReason);    if ( m_textEdit->textCursor().selectedText().length() )        uiFind.editFind->setText( m_textEdit->textCursor().selectedText() );    else        uiFind.editFind->setText( m_textEdit->wordUnderCursor() );    uiFind.editFind->selectAll();    autoHideTimer->start();}//return current selected text or word under cursorQString Editor::selection(){    if ( m_textEdit->textCursor().selectedText().length() )        return ( m_textEdit->textCursor().selectedText() );    else        return ( m_textEdit->wordUnderCursor() );}//void Editor::setFocus(){    m_findWidget->hide();    m_textEdit->setFocus(Qt::OtherFocusReason);}//void Editor::findContinue(){    //slotFindWidget_textChanged(uiFind.editFind->text(), true);    slotFindNext();}//void Editor::findPrevious(){    slotFindPrevious();}//void Editor::slotFindWidget_textChanged(QString text, bool fromButton){    int options = 0;    if ( m_backward )        options |= QTextDocument::FindBackward;    if ( uiFind.checkWholeWords->isChecked() )        options |= QTextDocument::FindWholeWords;    if ( uiFind.checkCase->isChecked() )        options |= QTextDocument::FindCaseSensitively;    m_textEdit->slotFind(uiFind, text, (QTextDocument::FindFlags)options,fromButton);    autoHideTimer->start();}//QStringList Editor::classes(){    QStringList liste = m_classesMethodsList.keys();    liste.sort();    return liste;}//QStringList Editor::methodes(QString classe){    QStringList liste;    foreach(QString line, m_classesMethodsList.value( classe ) )    liste += QStringList(line.section("::", 1, 1)+"::"+ line.section("::", 0, 0));    liste.sort();    QStringList liste2;    foreach(QString ligne2, liste)    liste2 += QStringList(ligne2.section("::", 1, 1)+"::"+ ligne2.section("::", 0, 0));    return liste2;}//void Editor::slotClassesMethodsList(){    if ( !m_comboClasses ) return;    int width = 0;    const QList<ParsedItem> *list;    list = m_mainimpl->treeClassesItems();    if ( list->isEmpty() )        return;    m_comboClasses->clear();    m_classesMethodsList.clear();    for (int i = 0; i < list->size(); ++i)    {        ParsedItem parsedItem = list->at( i );        if ( ( parsedItem.kind == "p" || parsedItem.kind == "f" )                && parsedItem.implementation.section("|", 0, 0) == filename() )        {            QString numLine = parsedItem.implementation.section("|", -1, -1);            QString returnName = parsedItem.ex_cmd;            if ( returnName.left( returnName.indexOf("::") ).indexOf("\t") != -1 )                returnName = returnName.left( returnName.indexOf("::") ).section("\t", 0, 0);            else if ( returnName.left( returnName.indexOf("::") ).indexOf(" ") != -1 )                returnName = returnName.left( returnName.indexOf("::") ).section(" ", 0, 0);            else                returnName = "";            QString add = returnName+" " +parsedItem.classname+"::"+parsedItem.name+parsedItem.signature+QChar(255)+numLine;            QStringList methodes = m_classesMethodsList.value(parsedItem.classname);            methodes << add;            if ( !parsedItem.classname.simplified().isEmpty() )            {                width = qMax(width, fontMetrics().width( parsedItem.classname ) );            }            m_classesMethodsList[parsedItem.classname] = methodes;        }    }    m_comboClasses->setGeometry(m_comboClasses->x(), m_comboClasses->y(), qMin(350, width+30), m_comboClasses->height());    slotComboClasses();    return;}//bool Editor::inQuotations(int position, QString text){    int debutQuote = 0, finQuote;    bool realBegin = false;    do    {        do        {            debutQuote = text.indexOf("\"", debutQuote);            if ( debutQuote > 0 && (text.at(debutQuote-1) == '\\' || text.at(debutQuote-1) == '\'') )            {                debutQuote++;                realBegin = false;            }            else            {                realBegin = true;            }        }        while (!realBegin);        finQuote = -1;        if ( debutQuote != -1 )        {            finQuote = debutQuote+1;            bool realEnd = false;            do            {                finQuote = text.indexOf("\"", finQuote);                if ( finQuote > 0 && text.at(finQuote-1) == '\\' )                {                    finQuote++;                    realEnd = false;                }                else                {                    realEnd = true;                }            }            while (!realEnd);        }        if ( debutQuote!=-1 && finQuote!=-1 )        {            if ( position > debutQuote && position < finQuote )            {                return true;            }        }        debutQuote = finQuote+1;    }    while ( debutQuote!=-1 && finQuote!=-1 );    // Idem with "'"    debutQuote = 0, finQuote=0;    realBegin = false;    do    {        do        {            debutQuote = text.indexOf('\'', debutQuote);            if ( debutQuote > 0 && (text.at(debutQuote-1) == '\\' || text.at(debutQuote-1) == '\"') )            {                debutQuote++;                realBegin = false;            }            else            {                realBegin = true;            }        }        while (!realBegin);        finQuote = -1;        if ( debutQuote != -1 )        {            finQuote = debutQuote+1;            bool realEnd = false;            do            {                finQuote = text.indexOf('\'', finQuote);                if ( finQuote > 0 && (text.at(finQuote-1) == '\\' || text.at(finQuote-1) == '\"') )                {                    finQuote++;                    realEnd = false;                }                else                {                    realEnd = true;                }            }            while (!realEnd);        }        if ( debutQuote!=-1 && finQuote!=-1 )        {            if ( position > debutQuote && position < finQuote )            {                return true;            }        }        debutQuote = finQuote+1;    }    while ( debutQuote!=-1 && finQuote!=-1 );    return false;}//void Editor::toggleBookmark(int line){    QTextCursor save = m_textEdit->textCursor();    int scroll = verticalScrollBar();    gotoLine( line, false );    m_textEdit->textCursor().movePosition(QTextCursor::StartOfLine, QTextCursor::MoveAnchor);    m_textEdit->textCursor().movePosition(QTextCursor::EndOfLine, QTextCursor::KeepAnchor);    QString s = m_textEdit->textCursor().block().text().simplified();    //    QTextCursor cursor = m_textEdit->textCursor();    bool activate;    BlockUserData *blockUserData = (BlockUserData*)cursor.block().userData();    if ( !blockUserData )    {        blockUserData = new BlockUserData();        blockUserData->breakpoint = false;        blockUserData->bookmark = false;        blockUserData->block = cursor.block();    }    blockUserData->bookmark = !blockUserData->bookmark;    cursor.block().setUserData( blockUserData );    activate = blockUserData->bookmark;    m_textEdit->setTextCursor( cursor );    //    //emit bookmark(this, s, QPair<bool,QTextBlock>(activate, cursor.block()));    m_mainimpl->toggleBookmark(this, s, activate, cursor.block());    m_textEdit->setTextCursor( save );    setVerticalScrollBar( scroll );    m_textEdit->lineNumbers()->update();}//QList<int> Editor::bookmarksList(){    QList<int> list;    int line = 1;    for ( QTextBlock block = m_textEdit->document()->begin(); block.isValid(); block = block.next(), line++ )    {        BlockUserData *blockUserData = (BlockUserData*)block.userData();        if ( blockUserData && blockUserData->bookmark )            list << line;    }    return list;}//QList<QTextBlock> Editor::breakpointsList(){    QList<QTextBlock> list;    int line = 1;    for ( QTextBlock block = m_textEdit->document()->begin(); block.isValid(); block = block.next(), line++ )    {        BlockUserData *blockUserData = (BlockUserData*)block.userData();        if ( blockUserData && blockUserData->breakpoint )            list << block;    }    return list;}

⌨️ 快捷键说明

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