From: Ludovic Fauvet Date: Tue, 11 Nov 2008 10:37:34 +0000 (+0100) Subject: Fix a cursor selection bug in the Messages logs (see #2163) X-Git-Tag: 1.0.0-pre1~2183 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=7c8f1b05e8d2b4aa1717e623eb683337e6f1dced;p=vlc Fix a cursor selection bug in the Messages logs (see #2163) Also introduce a smart selection where the selection is restored after text is inserted. Signed-off-by: RĂ©mi Denis-Courmont --- diff --git a/modules/gui/qt4/dialogs/messages.cpp b/modules/gui/qt4/dialogs/messages.cpp index 46aa53b7aa..dd8d9fe69b 100644 --- a/modules/gui/qt4/dialogs/messages.cpp +++ b/modules/gui/qt4/dialogs/messages.cpp @@ -166,7 +166,11 @@ void MessagesDialog::sinkMessage (msg_item_t *item, unsigned) || (item->i_type == VLC_MSG_DBG && verbosityBox->value() < 2 )) return; - messages->textCursor().movePosition( QTextCursor::End ); + // Saving cursor selection + int startPos = messages->textCursor().selectionStart(); + int endPos = messages->textCursor().selectionEnd(); + + messages->moveCursor( QTextCursor::End ); messages->setFontItalic( true ); messages->setTextColor( "darkBlue" ); messages->insertPlainText( qfu( item->psz_module ) ); @@ -198,6 +202,13 @@ void MessagesDialog::sinkMessage (msg_item_t *item, unsigned) messages->insertPlainText( qfu(item->psz_msg) ); messages->insertPlainText( "\n" ); messages->ensureCursorVisible(); + + // Restoring saved cursor selection + QTextCursor cur = messages->textCursor(); + cur.movePosition( QTextCursor::Start ); + cur.movePosition( QTextCursor::NextCharacter, QTextCursor::MoveAnchor, startPos ); + cur.movePosition( QTextCursor::NextCharacter, QTextCursor::KeepAnchor, endPos - startPos ); + messages->setTextCursor( cur ); } void MessagesDialog::buildTree( QTreeWidgetItem *parentItem,