diff options
Diffstat (limited to 'textedit.cpp')
-rw-r--r-- | textedit.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/textedit.cpp b/textedit.cpp index da55681..202c3e8 100644 --- a/textedit.cpp +++ b/textedit.cpp @@ -31,10 +31,21 @@ void TextEdit::dropEvent(QDropEvent* event) void TextEdit::quote() { - QString text=this->toPlainText(); - text.replace("\n","\n> ",Qt::CaseSensitive); - text.insert(0,QString("> ")); - this->setPlainText(text); + + QTextCursor cursor(this->document()); + + // beginEditBlock and endEditBlock() let operation look like single undo/redo operation + cursor.beginEditBlock(); + cursor.setPosition(0); + cursor.insertText("> "); + while (!cursor.isNull() && !cursor.atEnd()) { + cursor.movePosition(QTextCursor::EndOfLine); + cursor.movePosition(QTextCursor::NextCharacter); + if(!cursor.atEnd()) + cursor.insertText("> "); + } + cursor.endEditBlock(); + } bool TextEdit::isKey(QString key) |