Удаление строки/блока из QTextEdit

Я борюсь с удалением блоков/строк из QTextEdit. Код ниже должен (? )работает, но по какой-то неизвестной мне причине это заканчивается бесконечным циклом. У меня есть подозрение, что next()и previous()не приветствуются, если редактируется QTextDocument.

QTextBlock block = document()->begin();
while (block.isValid()) {
    if (to_do_or_not_to_do(block)) {
        QTextCursor cursor(block);
        cursor.select(QTextCursor::BlockUnderCursor);
        cursor.removeSelectedText();
    }
    block = block.next();
}

Повторение с использованием QTextDocument::findBlockByNumber()и удаление блока таким же образом, как описано выше, также не сработало.

Я был бы признателен, если бы кто-нибудь указал мне правильное направление, как перебрать все блоки и удалить их, если это необходимо.

П.С.
В моем конкретном случае один блок = одна строка.
Qt 4.6.2, Ubuntu 10.04 x64

5
задан Andrejs Cainikovs 2 May 2012 в 16:32
поделиться