X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtopia%2Fchatwidget.cpp;h=8c81f4485785f4513b1593e59015ec1a6525ba02;hp=f7eaed2d3f74def50308def43af1908321576e2e;hb=99fb0a0f1f66ae5117fa64cc204256e5b3a19499;hpb=52380175425bdab29f825c9cd17a0e4c1952c2db diff --git a/src/qtopia/chatwidget.cpp b/src/qtopia/chatwidget.cpp index f7eaed2d..8c81f448 100644 --- a/src/qtopia/chatwidget.cpp +++ b/src/qtopia/chatwidget.cpp @@ -19,10 +19,11 @@ ***************************************************************************/ #include +#include #include "chatwidget.h" ChatWidget::ChatWidget(QWidget *parent) : QTextEdit(parent) { - + setStyleSheet("background-color: rgba(255, 255, 255, 60%)"); } void ChatWidget::setContents(QList lines) { @@ -44,7 +45,10 @@ void ChatWidget::appendMsg(AbstractUiMsg *msg) { } void ChatWidget::appendChatLine(ChatLine *line) { - append(line->text()); qDebug() << "appending"; + QTextCursor cursor = textCursor(); + moveCursor(QTextCursor::End); + insertChatLine(line); + setTextCursor(cursor); } void ChatWidget::appendChatLines(QList list) { @@ -56,11 +60,28 @@ void ChatWidget::appendChatLines(QList list) { void ChatWidget::prependChatLine(ChatLine *line) { QTextCursor cursor = textCursor(); moveCursor(QTextCursor::Start); - insertHtml(line->text()); + insertChatLine(line); setTextCursor(cursor); } void ChatWidget::prependChatLines(QList list) { + foreach(ChatLine *line, list) { + prependChatLine(line); + } +} +void ChatWidget::insertChatLine(ChatLine *line) { + insertStyledText(line->styledSender()); + insertPlainText(" "); + insertStyledText(line->styledText()); + insertPlainText("\n"); +} +void ChatWidget::insertStyledText(const QtopiaUiStyle::StyledText &stext) { + QTextCursor cursor = textCursor(); + foreach(QTextLayout::FormatRange format, stext.formats) { + cursor.setCharFormat(format.format); + setTextCursor(cursor); + insertPlainText(stext.text.mid(format.start, format.length)); + } }