#include "buffersyncer.h"
#include "bufferviewmanager.h"
#include "clientbacklogmanager.h"
+#include "clientirclisthelper.h"
#include "global.h"
#include "identity.h"
#include "ircchannel.h"
_bufferSyncer(0),
_backlogManager(new ClientBacklogManager(this)),
_bufferViewManager(0),
+ _ircListHelper(new ClientIrcListHelper(this)),
_messageModel(0),
_connectedToCore(false),
_syncedToCore(false)
{
_monitorBuffer = new Buffer(BufferInfo(), this);
+ _signalProxy->synchronize(_ircListHelper);
+
connect(_backlogManager, SIGNAL(backlog(BufferId, const QVariantList &)),
this, SLOT(receiveBacklog(BufferId, const QVariantList &)));
}
}
void Client::coreNetworkRemoved(NetworkId id) {
- if(!_networks.contains(id)) return;
+ if(!_networks.contains(id))
+ return;
Network *net = _networks.take(id);
emit networkRemoved(net->networkId());
net->deleteLater();
? net->networkName() + ":"
: QString();
QString sender = networkName + msg.bufferInfo().bufferName() + ":" + msg.sender();
- Message mmsg = Message(msg.timestamp(), msg.bufferInfo(), msg.type(), msg.text(), sender, msg.flags());
+ Message mmsg = Message(msg.timestamp(), msg.bufferInfo(), msg.type(), msg.contents(), sender, msg.flags());
monitorBuffer()->appendMsg(mmsg);
}
emit messageReceived(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();
if(notificationSettings.highlightNick() == NotificationSettings::CurrentNick) {
nickList << net->myNick();
} else if(notificationSettings.highlightNick() == NotificationSettings::AllNicks) {
- nickList = identity(net->identity())->nicks();
+ const Identity *myIdentity = identity(net->identity());
+ if(myIdentity)
+ nickList = myIdentity->nicks();
}
foreach(QString nickname, nickList) {
QRegExp nickRegExp("^(.*\\W)?" + QRegExp::escape(nickname) + "(\\W.*)?$");
if((msg.type() & (Message::Plain | Message::Notice | Message::Action))
&& !(msg.flags() & Message::Self)
- && nickRegExp.exactMatch(msg.text())) {
+ && nickRegExp.exactMatch(msg.contents())) {
msg.setFlags(msg.flags() | Message::Highlight);
return;
}
}
if((msg.type() & (Message::Plain | Message::Notice | Message::Action))
&& !(msg.flags() & Message::Self)
- && userRegExp.exactMatch(msg.text())) {
+ && userRegExp.exactMatch(msg.contents())) {
msg.setFlags(msg.flags() | Message::Highlight);
return;
}
}
void Client::bufferRemoved(BufferId bufferId) {
- // first remove the buffer from has. this prohibits further lastSeenUpdates
+ // first remove the buffer from hash. this prohibits further lastSeenUpdates
Buffer *buff = 0;
if(_buffers.contains(bufferId)) {
buff = _buffers.take(bufferId);
+ layoutQueue.removeAll(buff);
disconnect(buff, 0, this, 0);
}