return _bufferInfo;
}
-QList<AbstractUiMsg *> Buffer::contents() const {
+const QList<AbstractUiMsg *> &Buffer::contents() const {
return layoutedMsgs;
}
void Buffer::prependMsg(const Message &msg) {
// check for duplicate first
- if(contents().count() > 0 && msg.msgId() >= contents().first()->msgId()) {
+ if(!layoutedMsgs.isEmpty() && msg.msgId() >= layoutedMsgs.first()->msgId()) {
return;
}
updateActivityLevel(msg);
}
bool Buffer::layoutMsg() {
- if(layoutQueue.count()) {
- AbstractUiMsg *m = Client::layoutMsg(layoutQueue.takeFirst());
- layoutedMsgs.prepend(m);
- emit msgPrepended(m);
- }
- return layoutQueue.count();
+ if(layoutQueue.isEmpty())
+ return false;
+
+ AbstractUiMsg *m = Client::layoutMsg(layoutQueue.takeFirst());
+ layoutedMsgs.prepend(m);
+ emit msgPrepended(m);
+
+ return !layoutQueue.isEmpty();
}
void Buffer::setVisible(bool visible) {
_isVisible = visible;
setActivityLevel(NoActivity);
- if(!layoutedMsgs.count()) return;
+ if(layoutedMsgs.isEmpty())
+ return;
setLastSeenMsg(layoutedMsgs.last()->msgId());
}
Buffer(BufferInfo, QObject *parent = 0);
BufferInfo bufferInfo() const;
- QList<AbstractUiMsg *> contents() const;
+ const QList<AbstractUiMsg *> &contents() const;
inline bool isVisible() const { return _isVisible; }
inline MsgId lastSeenMsg() const { return _lastSeenMsg; }
inline ActivityLevel activityLevel() const { return _activityLevel; }
MsgId _lastSeenMsg;
ActivityLevel _activityLevel;
- QList<Message> layoutQueue;
+ QLinkedList<Message> layoutQueue;
QList<AbstractUiMsg *> layoutedMsgs;
void updateActivityLevel(const Message &msg);
void Client::receiveBacklog(BufferId bufferId, const QVariantList &msgs) {
Buffer *buffer_ = buffer(bufferId);
if(!buffer_) {
- qWarning() << "Client::recvBacklogData(): received Backlog for unknown Buffer:" << bufferId;
+ qWarning() << "Client::receiveBacklog(): received Backlog for unknown Buffer:" << bufferId;
return;
}
if(buffer->layoutMsg()) {
layoutQueue.append(buffer); // Buffer has more messages in its queue --> Round Robin
return;
- }
+ }
if(layoutQueue.isEmpty())
layoutTimer->stop();
Buffer *_monitorBuffer;
QTimer *layoutTimer;
- QList<Buffer *> layoutQueue;
+ QLinkedList<Buffer *> layoutQueue;
static AccountId _currentCoreAccount;
/**
* \param m The message to be layouted and rendered
*/
-ChatLineOld::ChatLineOld(Message m) {
+QColor ChatLineOld::_highlightColor;
+ChatLineOld::ChatLineOld(const Message &m) {
hght = 0;
-
msg = m;
selectionMode = None;
isHighlight = false;
formatMsg(msg);
- QtUiSettings s("QtUi/Colors");
- _highlightColor = s.value("highlightColor", QVariant(QColor("lightcoral"))).value<QColor>();
+ if(!_highlightColor.isValid()) {
+ QtUiSettings s("QtUi/Colors");
+ _highlightColor = s.value("highlightColor", QVariant(QColor("lightcoral"))).value<QColor>();
+ }
}
ChatLineOld::~ChatLineOld() {
-
}
void ChatLineOld::formatMsg(Message msg) {
Q_OBJECT
public:
- ChatLineOld(Message message);
+ ChatLineOld(const Message &message);
virtual ~ChatLineOld();
qreal layout(qreal tsWidth, qreal nickWidth, qreal textWidth);
QList<FormatRange> calcFormatRanges(const UiStyle::StyledText &);
QList<FormatRange> calcFormatRanges(const UiStyle::StyledText &, const QTextLayout::FormatRange &additional);
- QColor _highlightColor;
+ static QColor _highlightColor;
};
#endif
#include "qtui.h"
#include "mainwin.h"
+#include "chatline-old.h"
QtUiStyle *QtUi::_style;
-QtUi::QtUi() : AbstractUi() {
+QtUi::QtUi()
+ : AbstractUi()
+{
mainWin = new MainWin(this);
_style = new QtUiStyle;
connect(mainWin, SIGNAL(connectToCore(const QVariantMap &)), this, SIGNAL(connectToCore(const QVariantMap &)));
connect(mainWin, SIGNAL(disconnectFromCore()), this, SIGNAL(disconnectFromCore()));
-
}
QtUi::~QtUi() {
}
AbstractUiMsg *QtUi::layoutMsg(const Message &msg) {
- return mainWin->layoutMsg(msg);
+ return new ChatLineOld(msg);
}
void QtUi::connectedToCore() {
{ using namespace Global;
quasselVersion = "0.2.0-beta1-pre";
- quasselDate = "2008-04-30";
- quasselBuild = 800;
+ quasselDate = "2008-05-01";
+ quasselBuild = 803;
//! Minimum client build number the core needs
clientBuildNeeded = 731;