From: Marcus Eggenberger Date: Thu, 1 May 2008 12:31:36 +0000 (+0000) Subject: performance++ X-Git-Tag: 0.2.0-beta1~14 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=374ea2a5188930b880ad67584a9b0055022feecf performance++ --- diff --git a/src/client/buffer.cpp b/src/client/buffer.cpp index c6737bc5..c020424a 100644 --- a/src/client/buffer.cpp +++ b/src/client/buffer.cpp @@ -42,7 +42,7 @@ BufferInfo Buffer::bufferInfo() const { return _bufferInfo; } -QList Buffer::contents() const { +const QList &Buffer::contents() const { return layoutedMsgs; } @@ -55,7 +55,7 @@ void Buffer::appendMsg(const Message &msg) { 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); @@ -63,18 +63,21 @@ void Buffer::prependMsg(const Message &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()); } diff --git a/src/client/buffer.h b/src/client/buffer.h index afaa07f3..44e6efd1 100644 --- a/src/client/buffer.h +++ b/src/client/buffer.h @@ -50,7 +50,7 @@ public: Buffer(BufferInfo, QObject *parent = 0); BufferInfo bufferInfo() const; - QList contents() const; + const QList &contents() const; inline bool isVisible() const { return _isVisible; } inline MsgId lastSeenMsg() const { return _lastSeenMsg; } inline ActivityLevel activityLevel() const { return _activityLevel; } @@ -74,7 +74,7 @@ private: MsgId _lastSeenMsg; ActivityLevel _activityLevel; - QList layoutQueue; + QLinkedList layoutQueue; QList layoutedMsgs; void updateActivityLevel(const Message &msg); diff --git a/src/client/client.cpp b/src/client/client.cpp index 8d606891..536f2f79 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -503,7 +503,7 @@ void Client::recvStatusMsg(QString /*net*/, QString /*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; } @@ -538,7 +538,7 @@ void Client::layoutMsg() { if(buffer->layoutMsg()) { layoutQueue.append(buffer); // Buffer has more messages in its queue --> Round Robin return; - } + } if(layoutQueue.isEmpty()) layoutTimer->stop(); diff --git a/src/client/client.h b/src/client/client.h index b7e079e6..bd31c322 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -228,7 +228,7 @@ private: Buffer *_monitorBuffer; QTimer *layoutTimer; - QList layoutQueue; + QLinkedList layoutQueue; static AccountId _currentCoreAccount; diff --git a/src/qtui/chatline-old.cpp b/src/qtui/chatline-old.cpp index 2df6bbb4..497017da 100644 --- a/src/qtui/chatline-old.cpp +++ b/src/qtui/chatline-old.cpp @@ -29,20 +29,21 @@ /** * \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(); + if(!_highlightColor.isValid()) { + QtUiSettings s("QtUi/Colors"); + _highlightColor = s.value("highlightColor", QVariant(QColor("lightcoral"))).value(); + } } ChatLineOld::~ChatLineOld() { - } void ChatLineOld::formatMsg(Message msg) { diff --git a/src/qtui/chatline-old.h b/src/qtui/chatline-old.h index f4877a96..5ce5fc3f 100644 --- a/src/qtui/chatline-old.h +++ b/src/qtui/chatline-old.h @@ -44,7 +44,7 @@ class ChatLineOld : public QObject, public AbstractUiMsg { Q_OBJECT public: - ChatLineOld(Message message); + ChatLineOld(const Message &message); virtual ~ChatLineOld(); qreal layout(qreal tsWidth, qreal nickWidth, qreal textWidth); @@ -107,7 +107,7 @@ class ChatLineOld : public QObject, public AbstractUiMsg { QList calcFormatRanges(const UiStyle::StyledText &); QList calcFormatRanges(const UiStyle::StyledText &, const QTextLayout::FormatRange &additional); - QColor _highlightColor; + static QColor _highlightColor; }; #endif diff --git a/src/qtui/qtui.cpp b/src/qtui/qtui.cpp index a7993597..b3539217 100644 --- a/src/qtui/qtui.cpp +++ b/src/qtui/qtui.cpp @@ -21,16 +21,18 @@ #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() { @@ -47,7 +49,7 @@ QtUiStyle *QtUi::style() { } AbstractUiMsg *QtUi::layoutMsg(const Message &msg) { - return mainWin->layoutMsg(msg); + return new ChatLineOld(msg); } void QtUi::connectedToCore() { diff --git a/version.inc b/version.inc index 98f829ee..56d80eec 100644 --- a/version.inc +++ b/version.inc @@ -4,8 +4,8 @@ { 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;