Can some one explain what I am doing wrong here ?. What I need is to select a text in QTextEdit and make some changes in the selected block texts.
debug prints selected block texts just fine but only when I remove "cursor.insertText("replace block text");". Once added back it screwing up somehow the block numbers and the entire concept. How to do it right ?
int start = cursor.selectionStart();
int end = cursor.selectionEnd();
if(!cursor.hasSelection())
return;
int startLine = cursor.blockNumber();
int lastLine = cursor.blockNumber();
qDebug() << start << end;
for(int blockNUmber = startLine; blockNUmber <= lastLine; blockNUmber++)
{
QTextBlock block
= document
()->findBlockByNumber
(blockNUmber
);
qDebug() << blockNUmber << block.position() << blockText;
cursor.clearSelection();
cursor.
setPosition(block.
position(),
QTextCursor::KeepAnchor);
cursor.insertText("replace block text");
}
QTextCursor cursor = this->textCursor();
int start = cursor.selectionStart();
int end = cursor.selectionEnd();
if(!cursor.hasSelection())
return;
cursor.setPosition(start, QTextCursor::KeepAnchor);
int startLine = cursor.blockNumber();
cursor.setPosition(end, QTextCursor::KeepAnchor);
int lastLine = cursor.blockNumber();
qDebug() << start << end;
for(int blockNUmber = startLine; blockNUmber <= lastLine; blockNUmber++)
{
QTextBlock block = document()->findBlockByNumber(blockNUmber);
QString blockText = block.text();
qDebug() << blockNUmber << block.position() << blockText;
cursor.clearSelection();
cursor.setPosition(block.position(),QTextCursor::KeepAnchor);
cursor.insertText("replace block text");
}
To copy to clipboard, switch view to plain text mode
Bookmarks