X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fchatline.cpp;h=d4c83909ffd10077707a7d227635df01870a096b;hb=858cba7fac9928549219de070397be65e1b92cde;hp=3ce33dfdf677ee6f09b63ea334d8b9e48fa0a0e0;hpb=d6b056e936ec441258d291b7a8af7b83f9f53016;p=quassel.git diff --git a/src/qtui/chatline.cpp b/src/qtui/chatline.cpp index 3ce33dfd..d4c83909 100644 --- a/src/qtui/chatline.cpp +++ b/src/qtui/chatline.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-07 by the Quassel IRC Team * + * Copyright (C) 2005-08 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,103 +18,37 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include -#include -#include - -#include "bufferinfo.h" -#include "chatitem.h" #include "chatline.h" +#include "chatlinemodel.h" #include "qtui.h" - -ChatLine::ChatLine(Message msg) : QGraphicsItem(), AbstractUiMsg() { - _styledTimestamp = QtUi::style()->styleString(msg.formattedTimestamp()); - _styledSender = QtUi::style()->styleString(msg.formattedSender()); - _styledText = QtUi::style()->styleString(msg.formattedText()); - _msgId = msg.msgId(); - _timestamp = msg.timestamp(); - - _tsColWidth = _senderColWidth = _textColWidth = 0; - QTextOption option; - option.setWrapMode(QTextOption::NoWrap); - _tsItem = new ChatItem(this); - _tsItem->setTextOption(option); - _tsItem->setText(_styledTimestamp); - - option.setAlignment(Qt::AlignRight); - _senderItem = new ChatItem(this); - _senderItem->setTextOption(option); - _senderItem->setText(_styledSender); - - option.setAlignment(Qt::AlignLeft); - option.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere); - _textItem = new ChatItem(this); - _textItem->setTextOption(option); - _textItem->setText(_styledText); - -} - -ChatLine::~ChatLine() { - -} - -QString ChatLine::sender() const { - return QString(); -} - -QString ChatLine::text() const { - return QString(); -} - -MsgId ChatLine::msgId() const { - return 0; -} - -BufferInfo ChatLine::bufferInfo() const { - Q_ASSERT(false); // do we actually need this function??? - return BufferInfo(); -} - -QDateTime ChatLine::timestamp() const { - return QDateTime(); -} - -QRectF ChatLine::boundingRect () const { - return childrenBoundingRect(); -} - -void ChatLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { - -} - -void ChatLine::setColumnWidths(int tsColWidth, int senderColWidth, int textColWidth) { - if(tsColWidth >= 0) { - _tsColWidth = tsColWidth; - _tsItem->setWidth(tsColWidth); - } - if(senderColWidth >= 0) { - _senderColWidth = senderColWidth; - _senderItem->setWidth(senderColWidth); +#include "uistyle.h" + +Chatline::Chatline(const Message &msg) : MessageItem(msg) { + _msg = QtUi::style()->styleMessage(msg); + +} + + +QVariant Chatline::data(int column, int role) const { + switch(role) { + case ChatlineModel::DisplayRole: + switch(column) { + case ChatlineModel::TimestampColumn: return _msg.timestamp.text; + case ChatlineModel::SenderColumn: return _msg.sender.text; + case ChatlineModel::TextColumn: return _msg.text.text; + } + break; + case ChatlineModel::FormatRole: + switch(column) { + case ChatlineModel::TimestampColumn: return QVariant::fromValue(_msg.timestamp.formats); + case ChatlineModel::SenderColumn: return QVariant::fromValue(_msg.sender.formats); + case ChatlineModel::TextColumn: return QVariant::fromValue(_msg.text.formats); + } + break; } - if(textColWidth >= 0) { - _textColWidth = textColWidth; - _textItem->setWidth(textColWidth); - } - layout(); -} - -void ChatLine::layout() { - prepareGeometryChange(); - _tsItem->setPos(QPointF(0, 0)); - _senderItem->setPos(QPointF(_tsColWidth + QtUi::style()->sepTsSender(), 0)); - _textItem->setPos(QPointF(_tsColWidth + QtUi::style()->sepTsSender() + _senderColWidth + QtUi::style()->sepSenderText(), 0)); + return MessageItem::data(column, role); } - -bool ChatLine::sceneEvent ( QEvent * event ) { - qDebug() <<(void*)this<< "receiving event"; - event->ignore(); +bool Chatline::setData(int column, const QVariant &value, int role) { return false; } - -