From: Manuel Nickschas Date: Mon, 5 Nov 2007 00:40:48 +0000 (+0000) Subject: FIRST QuasselTopia version that actually has a chatwidget that _looks_ like X-Git-Tag: 0.1.0~83 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=fbc4df88ae0bb5e4d9394922395ce2ba29d9108e FIRST QuasselTopia version that actually has a chatwidget that _looks_ like a chatwidget, including colors and stuff... --- diff --git a/Quassel.kdevelop.filelist b/Quassel.kdevelop.filelist index 61b69b0d..a8958f7c 100644 --- a/Quassel.kdevelop.filelist +++ b/Quassel.kdevelop.filelist @@ -455,6 +455,10 @@ src/qtopia/qtopiamainwin.cpp src/qtopia/qtopiamainwin.h src/qtopia/qtopiastyle.cpp src/qtopia/qtopiastyle.h +src/qtopia/qtopiaui.cpp +src/qtopia/qtopiaui.h +src/qtopia/qtopiauistyle.cpp +src/qtopia/qtopiauistyle.h src/qtopia/topicbar.cpp src/qtopia/topicbar.h src/qtopia/ui diff --git a/src/qtopia/chatline.cpp b/src/qtopia/chatline.cpp index 3f447d22..d0fbf6e0 100644 --- a/src/qtopia/chatline.cpp +++ b/src/qtopia/chatline.cpp @@ -22,10 +22,11 @@ #include "chatline.h" #include "qtopiaui.h" +#include "qtopiauistyle.h" ChatLine::ChatLine(Message msg) { - //_styledSender = QtopiaUi::style()->styleString(msg.formattedSender()); - //_styledText = QtopiaUi::style()->styleString(msg.formattedText()); + _styledSender = QtopiaUi::style()->styleString(msg.formattedSender()); + _styledText = QtopiaUi::style()->styleString(msg.formattedText()); _timestamp = msg.timestamp(); _msgId = msg.msgId(); _bufferInfo = msg.buffer(); @@ -53,17 +54,14 @@ QDateTime ChatLine::timestamp() const { return _timestamp; } -QString ChatLine::htmlSender() const { - return _htmlSender; +UiStyle::StyledText ChatLine::styledSender() const { + return _styledSender; } -QString ChatLine::htmlText() const { - return _htmlText; +UiStyle::StyledText ChatLine::styledText() const { + return _styledText; } -QString ChatLine::htmlTimestamp() const { - return _htmlTimestamp; -} QString ChatLine::formattedToHtml(const QString &f) { diff --git a/src/qtopia/chatline.h b/src/qtopia/chatline.h index 61865c46..a25a056d 100644 --- a/src/qtopia/chatline.h +++ b/src/qtopia/chatline.h @@ -34,9 +34,8 @@ class ChatLine : public AbstractUiMsg { BufferInfo bufferInfo() const; QDateTime timestamp() const; - QString htmlSender() const; - QString htmlText() const; - QString htmlTimestamp() const; + UiStyle::StyledText styledSender() const; + UiStyle::StyledText styledText() const; private: QString _sender, _text, _htmlSender, _htmlText, _htmlTimestamp; diff --git a/src/qtopia/chatwidget.cpp b/src/qtopia/chatwidget.cpp index 6c3ffe20..8c81f448 100644 --- a/src/qtopia/chatwidget.cpp +++ b/src/qtopia/chatwidget.cpp @@ -23,7 +23,7 @@ #include "chatwidget.h" ChatWidget::ChatWidget(QWidget *parent) : QTextEdit(parent) { - + setStyleSheet("background-color: rgba(255, 255, 255, 60%)"); } void ChatWidget::setContents(QList lines) { @@ -45,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) { @@ -55,24 +58,30 @@ void ChatWidget::appendChatLines(QList list) { } void ChatWidget::prependChatLine(ChatLine *line) { - qDebug() << "prepending"; return; QTextCursor cursor = textCursor(); moveCursor(QTextCursor::Start); - insertHtml(line->text()); + insertChatLine(line); 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) { + 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)); + } } diff --git a/src/qtopia/chatwidget.h b/src/qtopia/chatwidget.h index 07de94ff..faa14c09 100644 --- a/src/qtopia/chatwidget.h +++ b/src/qtopia/chatwidget.h @@ -23,6 +23,7 @@ #include #include "chatline.h" +#include "qtopiauistyle.h" #include "quasselui.h" class ChatWidget : public QTextEdit { @@ -41,6 +42,8 @@ class ChatWidget : public QTextEdit { void appendChatLines(QList); private: + void insertChatLine(ChatLine *); + void insertStyledText(const QtopiaUiStyle::StyledText &); diff --git a/src/qtopia/qtopiamainwin.cpp b/src/qtopia/qtopiamainwin.cpp index 1f609692..fc98f618 100644 --- a/src/qtopia/qtopiamainwin.cpp +++ b/src/qtopia/qtopiamainwin.cpp @@ -87,8 +87,8 @@ void QtopiaMainWin::connectedToCore() { emit requestBacklog(id, 100, -1); } // FIXME just for testing: select first available buffer - if(Client::allBufferInfos().count() > 1) { - Buffer *b = Client::buffer(Client::allBufferInfos()[1]); + if(Client::allBufferInfos().count() > 2) { + Buffer *b = Client::buffer(Client::allBufferInfos()[2]); Client::bufferModel()->selectBuffer(b); } } diff --git a/src/qtopia/qtopiaui.cpp b/src/qtopia/qtopiaui.cpp index e41fb9b8..c34317b4 100644 --- a/src/qtopia/qtopiaui.cpp +++ b/src/qtopia/qtopiaui.cpp @@ -22,6 +22,8 @@ #include "qtopiamainwin.h" #include "qtopiauistyle.h" +QtopiaUiStyle *QtopiaUi::_style; + QtopiaUi::QtopiaUi(QtopiaMainWin *mw) : AbstractUi(), mainWin(mw) { _style = new QtopiaUiStyle(); connect(mainWin, SIGNAL(connectToCore(const QVariantMap &)), this, SIGNAL(connectToCore(const QVariantMap &))); @@ -40,7 +42,7 @@ void QtopiaUi::init() { } -QtopiaUiStyle *QtopiaUi::style() const { +QtopiaUiStyle *QtopiaUi::style() { return _style; } diff --git a/src/qtopia/qtopiaui.h b/src/qtopia/qtopiaui.h index 66ee17f9..716a011f 100644 --- a/src/qtopia/qtopiaui.h +++ b/src/qtopia/qtopiaui.h @@ -36,7 +36,7 @@ class QtopiaUi : public AbstractUi { void init(); AbstractUiMsg *layoutMsg(const Message &); - QtopiaUiStyle *style() const; + static QtopiaUiStyle *style(); protected slots: void connectedToCore(); @@ -44,7 +44,7 @@ class QtopiaUi : public AbstractUi { private: QtopiaMainWin *mainWin; - QtopiaUiStyle *_style; + static QtopiaUiStyle *_style; }; diff --git a/src/qtopia/qtopiauistyle.cpp b/src/qtopia/qtopiauistyle.cpp index 2716b229..5168ee48 100644 --- a/src/qtopia/qtopiauistyle.cpp +++ b/src/qtopia/qtopiauistyle.cpp @@ -23,7 +23,7 @@ QtopiaUiStyle::QtopiaUiStyle() : UiStyle() { QTextCharFormat def; - def.setFont(QFont("Verdana",6)); + def.setFont(QFont("Verdana",5)); setFormat(None, def); // We need to just set our internal formats; everything else is done by the base class... @@ -51,15 +51,15 @@ QtopiaUiStyle::QtopiaUiStyle() : UiStyle() { setFormat(JoinMsg, join); QTextCharFormat part; - part.setForeground(QBrush("#cd5c5c")); + part.setForeground(QBrush("#ff0000")); setFormat(PartMsg, part); QTextCharFormat quit; - quit.setForeground(QBrush("#cd5c5c")); + quit.setForeground(QBrush("#ff0000")); setFormat(QuitMsg, quit); QTextCharFormat kick; - kick.setForeground(QBrush("#cd5c5c")); + kick.setForeground(QBrush("#ff0000")); setFormat(KickMsg, kick); QTextCharFormat nren;