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

📄 textreplacement.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
字号:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the qt3to4 porting application of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "textreplacement.h"bool TextReplacements::insert(QByteArray newText, int insertPosition, int currentLenght){    //bubble sort the new replacement into the list    int i;    for(i=0; i<textReplacementList.size(); ++i) {        if (insertPosition == textReplacementList.at(i).insertPosition)            return false; // multiple replacements on the same insertPosition is not allowed.        if(insertPosition < textReplacementList.at(i).insertPosition)            break;  //we found the right position    }    //++i;  //  cout << "inserting new text " << newText.constData() << endl;    // %s at %d overwriting %d bytes at list pos %d\n", newText.constData(), insertPosition, currentLenght, i);    TextReplacement rep;    rep.newText=newText;    rep.insertPosition=insertPosition;    rep.currentLenght=currentLenght;    textReplacementList.insert(i, rep);    return true;}void TextReplacements::clear(){    textReplacementList.clear();}QByteArray TextReplacements::apply(QByteArray current){    QByteArray newData=current;    int i;    int replacementOffset=0;    for(i=0; i<textReplacementList.size(); ++i) {        TextReplacement rep=textReplacementList.at(i);        //printf("applying new text %s insert at %d overwriting %d bytes \n", rep.newText.constData(), rep.insertPosition, rep.currentLenght);        newData.remove(rep.insertPosition+replacementOffset, rep.currentLenght);        newData.insert(rep.insertPosition+replacementOffset, rep.newText);        //modify all remaining replacements if we change the document length        replacementOffset+=(rep.newText.size() - rep.currentLenght);    }    return newData;}TextReplacements &TextReplacements::operator+=(const TextReplacements &other){    foreach(TextReplacement rep, other.replacements()) {        insert(rep.newText, rep.insertPosition, rep.currentLenght);    }    return *this;}

⌨️ 快捷键说明

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