X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtopia%2Fchatwidget.cpp;h=4475962b350eb751055b84692fca437fb0786122;hp=6c3ffe20bd11c9c98bb8a4338fd0cdf725c9f440;hb=99c92e21b3b9eb5ed661632cdfb69aabfc6b2deb;hpb=068a9f975337b4d0b08a438a2abd10ddf94e259d diff --git a/src/qtopia/chatwidget.cpp b/src/qtopia/chatwidget.cpp index 6c3ffe20..4475962b 100644 --- a/src/qtopia/chatwidget.cpp +++ b/src/qtopia/chatwidget.cpp @@ -23,7 +23,8 @@ #include "chatwidget.h" ChatWidget::ChatWidget(QWidget *parent) : QTextEdit(parent) { - + setStyleSheet("background-color: rgba(255, 255, 255, 60%)"); + setTextInteractionFlags(Qt::TextBrowserInteraction); } void ChatWidget::setContents(QList lines) { @@ -45,7 +46,13 @@ void ChatWidget::appendMsg(AbstractUiMsg *msg) { } void ChatWidget::appendChatLine(ChatLine *line) { - append(line->text()); qDebug() << "appending"; + QTextCursor cursor = textCursor(); + moveCursor(QTextCursor::End); + if(!document()->isEmpty()) insertPlainText("\n"); + insertStyledText(line->styledSender()); + insertPlainText(" "); + insertStyledText(line->styledText()); + setTextCursor(cursor); } void ChatWidget::appendChatLines(QList list) { @@ -55,24 +62,34 @@ void ChatWidget::appendChatLines(QList list) { } void ChatWidget::prependChatLine(ChatLine *line) { - qDebug() << "prepending"; return; QTextCursor cursor = textCursor(); moveCursor(QTextCursor::Start); - insertHtml(line->text()); + bool flg = document()->isEmpty(); + insertStyledText(line->styledSender()); + insertPlainText(" "); + insertStyledText(line->styledText()); + if(!flg) insertPlainText("\n"); setTextCursor(cursor); - QTextCharFormat fmt; - fmt.setForeground(QBrush("#eeff33")); - QFont font("Courier", 8); - font.setFixedPitch(true); qDebug() << font.family(); - fmt.setFont(font); - //fmt.setBackground(QBrush("#112233")); - QTextCursor crsor(document()); - crsor.movePosition(QTextCursor::End, QTextCursor::KeepAnchor); - crsor.select(QTextCursor::Document); - crsor.setCharFormat(fmt); } void ChatWidget::prependChatLines(QList list) { + foreach(ChatLine *line, list) { + prependChatLine(line); + } +} +void ChatWidget::insertChatLine(ChatLine *line) { + if(!document()->isEmpty()) insertPlainText("\n"); + insertStyledText(line->styledSender()); + insertPlainText(" "); + insertStyledText(line->styledText()); +} +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)); + } }