emacs bindings: added M-u/l/c (upper/lower/capitalize word)
[quassel.git] / src / uisupport / multilineedit.cpp
index 69e8f6c..114c613 100644 (file)
@@ -349,7 +349,9 @@ void MultiLineEdit::keyPressEvent(QKeyEvent *event) {
         return;
       }
     }
-    else if(event->modifiers() & Qt::MetaModifier) {
+    else if(event->modifiers() & Qt::MetaModifier ||
+            event->modifiers() & Qt::AltModifier)
+    {
       switch(event->key()) {
       case Qt::Key_Right:
         moveCursor(QTextCursor::WordRight);
@@ -369,6 +371,29 @@ void MultiLineEdit::keyPressEvent(QKeyEvent *event) {
       case Qt::Key_Greater:
         moveCursor(QTextCursor::End);
         return;
+
+        // modify
+      case Qt::Key_D:
+        moveCursor(QTextCursor::WordRight, QTextCursor::KeepAnchor);
+        cut();
+        return;
+
+      case Qt::Key_U: // uppercase word
+        moveCursor(QTextCursor::WordRight, QTextCursor::KeepAnchor);
+        textCursor().insertText(textCursor().selectedText().toUpper());
+        return;
+
+      case Qt::Key_L: // lowercase word
+        moveCursor(QTextCursor::WordRight, QTextCursor::KeepAnchor);
+        textCursor().insertText(textCursor().selectedText().toLower());
+        return;
+
+      case Qt::Key_C: { // capitalize word
+        moveCursor(QTextCursor::WordRight, QTextCursor::KeepAnchor);
+        QString const text = textCursor().selectedText();
+        textCursor().insertText(text.left(1).toUpper() + text.mid(1).toLower());
+        return;
+      }
       }
     }
   }