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

📄 editor.cpp

📁 用Qt4编写的linux IDE开发环境
💻 CPP
📖 第 1 页 / 共 3 页
字号:
void Editor::displayEditorToolbar( bool b ){	if (m_editorToolbar)		m_editorToolbar->setVisible( b );}//void Editor::toggleBreakpoint(int line, QString breakpointCondition, bool isTrue){    QTextCursor save = m_textEdit->textCursor();    int scroll = verticalScrollBar();    gotoLine( line, false );    QTextCursor cursor = m_textEdit->textCursor();    BlockUserData *blockUserData = (BlockUserData*)cursor.block().userData();    if ( !blockUserData )    {        blockUserData = new BlockUserData();        blockUserData->breakpoint = false;        blockUserData->bookmark = false;        blockUserData->isTrue = false;    }   	blockUserData->breakpoint = !blockUserData->breakpoint;    blockUserData->breakpointCondition = breakpointCondition;    blockUserData->isTrue = isTrue;    cursor.block().setUserData( blockUserData );    m_textEdit->setTextCursor( cursor );    m_textEdit->setTextCursor( save );    setVerticalScrollBar( scroll );    emit breakpoint(shortFilename(), line, blockUserData);    m_textEdit->lineNumbers()->update();}//void Editor::emitListBreakpoints(){    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 )		    emit breakpoint(shortFilename(), line, blockUserData);    }}//QString Editor::shortFilename(){    QString name = m_filename;    int pos = m_filename.lastIndexOf( "/" );    if ( pos != -1 )        name = name.mid(pos+1);    return name;}//QString Editor::directory(){    return m_filename.left( m_filename.length()-shortFilename().length()-1 );}QString Editor::shortFilename(QString nomLong){    QString name = nomLong;    int pos = nomLong.lastIndexOf( "/" );    if ( pos != -1 )        name = name.mid(pos+1);    return name;}//QString Editor::suffixe(QString filename){    return filename.section(".", -1, -1);}//void Editor::setExecutedLine(int line){    m_textEdit->setExecutedLine(line);}//void Editor::slotModifiedEditor(bool modified){    emit editorModified(this, modified);}////void Editor::slotComboClasses(QString text){    if ( !m_comboClasses )        return;    if ( text.isEmpty() )    {        m_comboClasses->clear();        m_comboClasses->addItems( classes() );        m_comboClasses->setCurrentIndex(0);        text = m_comboClasses->currentText();    }    if ( !classes().count() || (m_comboClasses->count() == 1 && m_comboClasses->itemText(0).simplified().isEmpty() ) )        m_comboClasses->setHidden( true );    else        m_comboClasses->setHidden( false );    m_comboMethods->setHidden( !classes().count() );    m_comboMethods->clear();    int width = 0;    foreach(QString line, methodes(text) )    {        int numLine = QString(line.section(QChar(255), -1)).toInt();        QString methode = line.left( line.indexOf(QChar(255)) );        methode.remove('\r').remove('\n');        QString typeRetour = " : " + methode.section(" ", 0, 0);        if ( typeRetour.contains("::") )            typeRetour = "";        methode = methode.section("::", 1, 1);        int last = methode.lastIndexOf(":");        if ( last != 1 && !inQuotations(last, methode) )            methode = methode.left( last );        methode += typeRetour;        QTextBlock block;        int n=1;        for (block = m_textEdit->document()->begin(); block.isValid() && n != numLine; block = block.next(), n++ )            ;        m_comboMethods->addItem(methode, QVariant(block.text()));        width = qMax(width, fontMetrics().width( methode ) );    }    m_comboMethods->setGeometry(m_comboClasses->x()+m_comboClasses->width()+6, m_comboMethods->y(), qMin(500, width+30), m_comboMethods->height());    m_comboMethods->setCurrentIndex(0);}//void Editor::slotComboMethods(int index){    m_textEdit->gotoLine(1, false);    QString s = m_comboMethods->itemData(index).toString();    m_textEdit->find( s );    gotoLine( m_textEdit->currentLineNumber(), true);}//void Editor::setSyntaxColors(QTextCharFormat a, QTextCharFormat b, QTextCharFormat c, QTextCharFormat d, QTextCharFormat e, QTextCharFormat f, QTextCharFormat g){    m_textEdit->setSyntaxColors(a, b, c, d, e, f, g);}//void Editor::slotOtherFile(){    m_mainimpl->openFile( QStringList(m_nameOtherFile) );}//void Editor::setNameOtherFile(QString oldName, QString newName){    /* When a file is renamed in files browser (by a right-click the "Rename..."), this function is called on    all editors to rename the other file.    */    if ( oldName != m_nameOtherFile )        return;    updateOtherFile(newName);}//void Editor::methodsList(){    if ( NULL == m_comboMethods )    {        QApplication::beep();    }    else    {        QLineEdit* pLineEdit = m_comboMethods->lineEdit();        pLineEdit->setSelection(0, pLineEdit->text().count());        m_comboMethods->showPopup();        m_comboMethods->setFocus();    }}//void Editor::setTextColor(QColor textColor){	m_textEdit->setTextColor(textColor);}//void Editor::slotMessagesBuild(QString list, QString directory){    /*  If your language is not translated in QDevelop and if g++ display the errors and warnings in your language,     modify the two strings below "error" and "warning" to adapt in your language. Also have a look at logbuild.cpp */    bool messageContainsWarnings = false;    bool messageContainsErrors = false;    foreach(QString message, list.split("\n"))    {        if ( !message.isEmpty() )        {        	bool error = false;            message.remove( "\r" );		    QString filename = message.section(":", 0, 0).replace("\\", "/").replace("//", "/");		    int numLine = message.section(":", 1, 1).toInt();		    if ( numLine == 0 )		        continue;		    QString absoluteName = QDir(directory+"/"+filename).absolutePath();		    if( absoluteName.endsWith("-qdeveloptmp.cpp") )		    	absoluteName = absoluteName.section("-qdeveloptmp.cpp", 0, 0) + ".cpp";		    if( absoluteName != m_filename )		    	continue;            if ( LogBuild::containsError(message) )            {                // Error                error = true;                messageContainsErrors = true;                if( message.toLower().contains("error") )		            message = message.section("error", 1).simplified();		        else if( message.toLower().contains( LogBuild::tr("error").toLower() ) )		            message = message.section(LogBuild::tr("error"), 1).simplified();            }            else if ( LogBuild::containsWarning(message) )            {                // Warning                error = false;                messageContainsWarnings = true;                if( message.toLower().contains("warning") )		            message = message.section("warning", 1).simplified();		        else if( message.toLower().contains( LogBuild::tr("warning").toLower() ) )		            message = message.section(LogBuild::tr("warning"), 1).simplified();            }            if( message.startsWith(":") )            	message = message.section(":", 1).simplified();		    int line = 1;		    for ( QTextBlock block = m_textEdit->document()->begin(); block.isValid(); block = block.next(), line++ )		    {		    	if( line != numLine )		    		continue;		        BlockUserData *blockUserData = (BlockUserData*)block.userData();			    if ( !blockUserData )			    {			        blockUserData = new BlockUserData();			        blockUserData->breakpoint = false;			        blockUserData->bookmark = false;			        blockUserData->block = block;			    }			    if( error && !blockUserData->errorString.contains(message) )	        		blockUserData->errorString += message + "\n";	        	else if( !error && !blockUserData->warningString.contains(message) )	        		blockUserData->warningString += message + "\n";			    block.setUserData( blockUserData );			    break;		    }        }    }    m_textEdit->lineNumbers()->update();	int state = 0;    for ( QTextBlock block = m_textEdit->document()->begin(); block.isValid(); block = block.next() )    {	    BlockUserData *blockUserData = (BlockUserData*)block.userData();	    if ( !blockUserData )	    {	        blockUserData = new BlockUserData();	        blockUserData->breakpoint = false;	        blockUserData->bookmark = false;	        blockUserData->block = block;	    }	    if( blockUserData && !blockUserData->errorString.isEmpty() )	    {	    	state = 2;	    	break;    	}	    else if( blockUserData && !blockUserData->warningString.isEmpty() )	    	state = 1;    }   	m_mainimpl->automaticCompilationState(this, state);}void Editor::clearErrorsAndWarnings(){    int line = 1;    for ( QTextBlock block = m_textEdit->document()->begin(); block.isValid(); block = block.next(), line++ )    {        BlockUserData *blockUserData = (BlockUserData*)block.userData();        if ( blockUserData  )        {        	blockUserData->errorString = "";        	blockUserData->warningString = "";		    block.setUserData( blockUserData );       	}    }    m_textEdit->lineNumbers()->update();}void Editor::slotEndBuild(){	QFile::remove( tempFilename() );}void Editor::nextWarningError(){    int line = 1;    for ( QTextBlock block = m_textEdit->document()->begin(); block.isValid(); block = block.next(), line++ )    {        BlockUserData *blockUserData = (BlockUserData*)block.userData();        if ( line>currentLineNumber() && blockUserData && (!blockUserData->errorString.isEmpty() || !blockUserData->warningString.isEmpty()) )        {        	gotoLine(line, true);        	break;       	}    }}void Editor::previousWarningError(){    int line = currentLineNumber();    for ( QTextBlock block = m_textEdit->textCursor().block(); block.isValid(); block = block.previous(), line-- )    {        BlockUserData *blockUserData = (BlockUserData*)block.userData();        if ( line<currentLineNumber() && blockUserData && (!blockUserData->errorString.isEmpty() || !blockUserData->warningString.isEmpty()) )        {        	gotoLine(line, true);        	break;       	}    }}

⌨️ 快捷键说明

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