X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoresession.cpp;h=ef3b397b8ae6104655a7f215da5622b7c6be0f3d;hp=38d96acf8a01476082c55cb352eda53319a59333;hb=371368423788eec9f5756dc4cebb01aeb93d0e7a;hpb=b9828e0dd235964b8e2e97f844f4bed3476d3bd4 diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index 38d96acf..ef3b397b 100644 --- a/src/core/coresession.cpp +++ b/src/core/coresession.cpp @@ -230,7 +230,6 @@ void CoreSession::customEvent(QEvent *event) { } void CoreSession::processMessages() { - qDebug() << "processing" << _messageQueue.count() << "messages.."; if(_messageQueue.count() == 1) { const RawMessage &rawMsg = _messageQueue.first(); BufferInfo bufferInfo = Core::bufferInfo(user(), rawMsg.networkId, rawMsg.bufferType, rawMsg.target); @@ -251,7 +250,6 @@ void CoreSession::processMessages() { } messages << Message(bufferInfo, rawMsg.type, rawMsg.text, rawMsg.sender, rawMsg.flags); } - Core::storeMessages(messages); // FIXME: extend protocol to a displayMessages(MessageList) for(int i = 0; i < messages.count(); i++) { @@ -364,21 +362,30 @@ void CoreSession::createNetwork(const NetworkInfo &info_, const QStringList &per id = info.networkId.toInt(); if(!_networks.contains(id)) { + + // create persistent chans + QRegExp rx("\\s*(\\S+)(?:\\s*(\\S+))?\\s*"); + foreach(QString channel, persistentChans) { + if(!rx.exactMatch(channel)) { + qWarning() << QString("Invalid persistent channel declaration: %1").arg(channel); + continue; + } + Core::bufferInfo(user(), info.networkId, BufferInfo::ChannelBuffer, rx.cap(1), true); + Core::setChannelPersistent(user(), info.networkId, rx.cap(1), true); + if(!rx.cap(2).isEmpty()) + Core::setPersistentChannelKey(user(), info.networkId, rx.cap(1), rx.cap(2)); + } + CoreNetwork *net = new CoreNetwork(id, this); connect(net, SIGNAL(displayMsg(NetworkId, Message::Type, BufferInfo::Type, const QString &, const QString &, const QString &, Message::Flags)), - this, SLOT(recvMessageFromServer(NetworkId, Message::Type, BufferInfo::Type, const QString &, const QString &, const QString &, Message::Flags))); - connect(net, SIGNAL(displayStatusMsg(QString)), this, SLOT(recvStatusMsgFromServer(QString))); + SLOT(recvMessageFromServer(NetworkId, Message::Type, BufferInfo::Type, const QString &, const QString &, const QString &, Message::Flags))); + connect(net, SIGNAL(displayStatusMsg(QString)), SLOT(recvStatusMsgFromServer(QString))); net->setNetworkInfo(info); net->setProxy(signalProxy()); _networks[id] = net; signalProxy()->synchronize(net); emit networkCreated(id); - // create persistent chans - foreach(QString channel, persistentChans) { - Core::bufferInfo(user(), info.networkId, BufferInfo::ChannelBuffer, channel, true); - Core::setChannelPersistent(user(), info.networkId, channel, true); - } } else { qWarning() << qPrintable(tr("CoreSession::createNetwork(): Trying to create a network that already exists, updating instead!")); _networks[info.networkId]->requestSetNetworkInfo(info);