From 3b85747276e9899017f0dbce186a3cc51abf8a4b Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=BCdiger=20Sonderfeld?= Date: Tue, 9 Mar 2010 20:57:46 +0100 Subject: [PATCH] emacs bindings: added M-t (transpose words) --- src/uisupport/multilineedit.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/uisupport/multilineedit.cpp b/src/uisupport/multilineedit.cpp index 114c6134..aeaecd56 100644 --- a/src/uisupport/multilineedit.cpp +++ b/src/uisupport/multilineedit.cpp @@ -394,6 +394,26 @@ void MultiLineEdit::keyPressEvent(QKeyEvent *event) { textCursor().insertText(text.left(1).toUpper() + text.mid(1).toLower()); return; } + + case Qt::Key_T: { // transpose words + moveCursor(QTextCursor::StartOfWord); + moveCursor(QTextCursor::EndOfWord, QTextCursor::KeepAnchor); + QString const word1 = textCursor().selectedText(); + textCursor().clearSelection(); + moveCursor(QTextCursor::WordRight); + moveCursor(QTextCursor::EndOfWord, QTextCursor::KeepAnchor); + QString const word2 = textCursor().selectedText(); + if(!word2.isEmpty() && !word1.isEmpty()) { + textCursor().insertText(word1); + moveCursor(QTextCursor::WordLeft); + moveCursor(QTextCursor::WordLeft); + moveCursor(QTextCursor::EndOfWord, QTextCursor::KeepAnchor); + textCursor().insertText(word2); + moveCursor(QTextCursor::WordRight); + moveCursor(QTextCursor::EndOfWord); + } + return; + } } } } -- 2.20.1