Preserve white-space in the input history.
[quassel.git] / src / uisupport / multilineedit.cpp
index e29ef20..0651abf 100644 (file)
@@ -43,12 +43,10 @@ MultiLineEdit::MultiLineEdit(QWidget *parent)
     _emacsMode(false),
     _lastDocumentHeight(-1)
 {
-#if QT_VERSION >= 0x040500
-    document()->setDocumentMargin(0); // new in Qt 4.5 and we really don't want it here
-#endif
+    document()->setDocumentMargin(0);
 
     setAcceptRichText(false);
-#ifdef HAVE_KDE4
+#ifdef HAVE_KDE
     enableFindReplace(false);
 #endif
 
@@ -56,6 +54,9 @@ MultiLineEdit::MultiLineEdit(QWidget *parent)
     setLineWrapEnabled(false);
     reset();
 
+    // Prevent QTextHtmlImporter::appendNodeText from eating whitespace
+    document()->setDefaultStyleSheet("span { white-space: pre-wrap; }");
+
     connect(this, SIGNAL(textChanged()), this, SLOT(on_textChanged()));
 
     _mircColorMap["00"] = "#ffffff";
@@ -206,7 +207,7 @@ void MultiLineEdit::setEmacsMode(bool enable)
 
 void MultiLineEdit::setSpellCheckEnabled(bool enable)
 {
-#ifdef HAVE_KDE4
+#ifdef HAVE_KDE
     setCheckSpellingEnabled(enable);
 #else
     Q_UNUSED(enable)
@@ -296,18 +297,7 @@ bool MultiLineEdit::event(QEvent *e)
 
 void MultiLineEdit::keyPressEvent(QKeyEvent *event)
 {
-    // Workaround the fact that Qt < 4.5 doesn't know InsertLineSeparator yet
-#if QT_VERSION >= 0x040500
     if (event == QKeySequence::InsertLineSeparator) {
-#else
-
-# ifdef Q_OS_MAC
-    if ((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && event->modifiers() & Qt::META) {
-# else
-    if ((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && event->modifiers() & Qt::SHIFT) {
-# endif
-#endif
-
         if (_mode == SingleLine) {
             event->accept();
             on_returnPressed();
@@ -470,7 +460,7 @@ void MultiLineEdit::keyPressEvent(QKeyEvent *event)
         }
     }
 
-#ifdef HAVE_KDE4
+#ifdef HAVE_KDE
     KTextEdit::keyPressEvent(event);
 #else
     QTextEdit::keyPressEvent(event);
@@ -564,22 +554,18 @@ QString MultiLineEdit::convertRichtextToMircCodes()
 
         cursor.clearSelection();
     }
-    if (color) {
-        color = false;
+
+    if (color)
         mircText.append('\x03');
-    }
-    if (underline) {
-        underline = false;
+
+    if (underline)
         mircText.append('\x1f');
-    }
-    if (italic) {
-        italic = false;
+
+    if (italic)
         mircText.append('\x1d');
-    }
-    if (bold) {
-        bold = false;
+
+    if (bold)
         mircText.append('\x02');
-    }
 
     return mircText;
 }