From a2bf6dec2ea5a72d15a3310f8a7abc11988228c4 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Thu, 1 May 2008 12:53:13 +0000 Subject: [PATCH] Merging r800:803 from trunk to branches/0.3. --- build/buildconf.pri | 7 ++++--- src/client/buffer.cpp | 21 ++++++++++++--------- src/client/buffer.h | 4 ++-- src/client/client.cpp | 4 ++-- src/client/client.h | 2 +- src/qtui/chatline-old.cpp | 11 ++++++----- src/qtui/chatline-old.h | 4 ++-- src/qtui/qtui.cpp | 8 +++++--- src/uisupport/nickviewfilter.cpp | 30 ++++++++++-------------------- src/uisupport/nickviewfilter.h | 6 +++++- version.inc | 4 ++-- 11 files changed, 51 insertions(+), 50 deletions(-) diff --git a/build/buildconf.pri b/build/buildconf.pri index ddda143d..25d9928f 100644 --- a/build/buildconf.pri +++ b/build/buildconf.pri @@ -8,9 +8,10 @@ release { } win32 { - CONFIG = warn_on uic resources qt silent windows - static { - CONFIG += release static + static { + CONFIG = release warn_on uic resources qt windows static + } else { + CONFIG = warn_on uic resources qt silent windows } } 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 5f22eef2..a8cc7f93 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -528,7 +528,7 @@ void Client::receiveBacklog(BufferId bufferId, const QVariantList &msgs) { 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; } @@ -564,7 +564,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 6cd8420a..4e7eb0e2 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -230,7 +230,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 46c657ce..e0fac9c4 100644 --- a/src/qtui/qtui.cpp +++ b/src/qtui/qtui.cpp @@ -24,16 +24,18 @@ # include "chatlinemodel.h" #endif #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() { @@ -59,7 +61,7 @@ MessageModel *QtUi::createMessageModel(QObject *parent) { } AbstractUiMsg *QtUi::layoutMsg(const Message &msg) { - return mainWin->layoutMsg(msg); + return new ChatLineOld(msg); } void QtUi::connectedToCore() { diff --git a/src/uisupport/nickviewfilter.cpp b/src/uisupport/nickviewfilter.cpp index 907034d7..53327691 100644 --- a/src/uisupport/nickviewfilter.cpp +++ b/src/uisupport/nickviewfilter.cpp @@ -19,13 +19,9 @@ ***************************************************************************/ #include "nickviewfilter.h" - #include "networkmodel.h" - #include "uisettings.h" -#include - /****************************************************************************************** * NickViewFilter ******************************************************************************************/ @@ -37,6 +33,14 @@ NickViewFilter::NickViewFilter(const BufferId &bufferId, NetworkModel *parent) setDynamicSortFilter(true); setSortCaseSensitivity(Qt::CaseInsensitive); setSortRole(TreeModel::SortRole); + loadColors(); +} + +void NickViewFilter::loadColors() { + UiSettings s("QtUi/Colors"); + _FgOnlineStatus = s.value("onlineStatusFG", QVariant(QColor(Qt::black))).value(); + _FgAwayStatus = s.value("awayStatusFG", QVariant(QColor(Qt::gray))).value(); + // FIXME: use the style interface instead of qsettings } QVariant NickViewFilter::data(const QModelIndex &index, int role) const { @@ -44,26 +48,12 @@ QVariant NickViewFilter::data(const QModelIndex &index, int role) const { return foreground(index); else return QSortFilterProxyModel::data(index, role); -// else { -// QVariant d = -// if(role == 0) -// qDebug() << index << role << d; -// return d; -// } } QVariant NickViewFilter::foreground(const QModelIndex &index) const { - UiSettings s("QtUi/Colors"); - QVariant onlineStatusFG = s.value("onlineStatusFG", QVariant(QColor(Qt::black))); - QVariant awayStatusFG = s.value("awayStatusFG", QVariant(QColor(Qt::gray))); - if(!index.data(NetworkModel::ItemActiveRole).toBool()) - return awayStatusFG.value(); - - return onlineStatusFG.value(); - - // FIXME:: make colors configurable; - // FIXME: use the style interface instead of qsettings + return _FgAwayStatus; + return _FgOnlineStatus; } diff --git a/src/uisupport/nickviewfilter.h b/src/uisupport/nickviewfilter.h index 38b7ca3a..534600fc 100644 --- a/src/uisupport/nickviewfilter.h +++ b/src/uisupport/nickviewfilter.h @@ -21,13 +21,13 @@ #ifndef NICKVIEWFILTER_H #define NICKVIEWFILTER_H +#include #include #include "types.h" class NetworkModel; // This is proxymodel is purely for the sorting right now -// the old nickmodel is stored for future reference in /devnotes class NickViewFilter : public QSortFilterProxyModel { Q_OBJECT @@ -41,6 +41,10 @@ protected: private: BufferId _bufferId; + QColor _FgOnlineStatus; + QColor _FgAwayStatus; + + void loadColors(); }; #endif diff --git a/version.inc b/version.inc index fc54420b..56d80eec 100644 --- a/version.inc +++ b/version.inc @@ -4,8 +4,8 @@ { using namespace Global; quasselVersion = "0.2.0-beta1-pre"; - quasselDate = "2008-04-29"; - quasselBuild = 797; + quasselDate = "2008-05-01"; + quasselBuild = 803; //! Minimum client build number the core needs clientBuildNeeded = 731; -- 2.20.1