X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Fmultilineedit.cpp;h=eba272963560bfbcc4c43ae27e68a7f79427dfb2;hb=add9e1afd5a4ec7eb104a7cd111429037740a0a0;hp=7e89f499ae35cc0d322271e8aa0bc932f6f5a1c1;hpb=bf17ed48669a623ca447c35324f61360c98a9152;p=quassel.git diff --git a/src/uisupport/multilineedit.cpp b/src/uisupport/multilineedit.cpp index 7e89f499..eba27296 100644 --- a/src/uisupport/multilineedit.cpp +++ b/src/uisupport/multilineedit.cpp @@ -55,6 +55,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"; @@ -80,6 +83,14 @@ MultiLineEdit::~MultiLineEdit() { } +#if defined HAVE_KF5 || defined HAVE_KDE4 +void MultiLineEdit::createHighlighter() +{ + KTextEdit::createHighlighter(); + if (highlighter()) + highlighter()->setAutomatic(false); +} +#endif void MultiLineEdit::setCustomFont(const QFont &font) { @@ -167,13 +178,21 @@ void MultiLineEdit::updateSizeHint() // use the style to determine a decent size int h = qMin(qMax((int)document()->size().height() + scrollBarHeight, minPixelHeight), maxPixelHeight) + 2 * frameWidth(); +#if QT_VERSION < 0x050000 QStyleOptionFrameV2 opt; +#else + QStyleOptionFrame opt; +#endif opt.initFrom(this); opt.rect = QRect(0, 0, 100, h); opt.lineWidth = lineWidth(); opt.midLineWidth = midLineWidth(); opt.state |= QStyle::State_Sunken; - QSize s = style()->sizeFromContents(QStyle::CT_LineEdit, &opt, QSize(100, h).expandedTo(QApplication::globalStrut()), this); + QWidget *widget = this; +#ifdef Q_OS_MAC + widget = 0; +#endif + QSize s = style()->sizeFromContents(QStyle::CT_LineEdit, &opt, QSize(100, h).expandedTo(QApplication::globalStrut()), widget); if (s != _sizeHint) { _sizeHint = s; updateGeometry();