X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoresession.cpp;h=5eed0eb01561d4fd32a20c2b1c3fb7006843a7e1;hp=961fcafefd6a8ae4722b5aa3069361436848cbec;hb=4e40c486dea949244b73beaf73d5ceb1ef591b5b;hpb=42d328e94a3bed8e6b0a32e7a234281e6d184325 diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index 961fcafe..5eed0eb0 100644 --- a/src/core/coresession.cpp +++ b/src/core/coresession.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2019 by the Quassel Project * + * Copyright (C) 2005-2020 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -207,11 +207,11 @@ void CoreSession::loadSettings() // migrate to db QList ids = s.identityIds(); - QList networkInfos = Core::networks(user()); + std::vector networkInfos = Core::networks(user()); for (IdentityId id : ids) { CoreIdentity identity(s.identity(id)); IdentityId newId = Core::createIdentity(user(), identity); - QList::iterator networkIter = networkInfos.begin(); + auto networkIter = networkInfos.begin(); while (networkIter != networkInfos.end()) { if (networkIter->identity == id) { networkIter->identity = newId; @@ -244,10 +244,8 @@ void CoreSession::saveSessionState() const void CoreSession::restoreSessionState() { - QList nets = Core::connectedNetworks(user()); - CoreNetwork* net = nullptr; - for (NetworkId id : nets) { - net = network(id); + for (NetworkId id : Core::connectedNetworks(user())) { + auto net = network(id); Q_ASSERT(net); net->connectToIrc(); } @@ -325,8 +323,18 @@ void CoreSession::recvMessageFromServer(RawMessage msg) // check for HardStrictness ignore CoreNetwork* currentNetwork = network(msg.networkId); QString networkName = currentNetwork ? currentNetwork->networkName() : QString(""); - if (_ignoreListManager.match(msg, networkName) == IgnoreListManager::HardStrictness) + switch (_ignoreListManager.match(msg, networkName)) { + case IgnoreListManager::StrictnessType::HardStrictness: + // Drop the message permanently return; + case IgnoreListManager::StrictnessType::SoftStrictness: + // Mark the message as (dynamically) ignored + msg.flags |= Message::Flag::Ignored; + break; + case IgnoreListManager::StrictnessType::UnmatchedStrictness: + // Keep the message unmodified + break; + } if (currentNetwork && _highlightRuleManager.match(msg, currentNetwork->myNick(), currentNetwork->identityPtr()->nicks())) msg.flags |= Message::Flag::Highlight; @@ -359,7 +367,7 @@ void CoreSession::processMessageEvent(MessageEvent* event) }); } -QList CoreSession::buffers() const +std::vector CoreSession::buffers() const { return Core::requestBuffers(user()); } @@ -531,17 +539,11 @@ Protocol::SessionState CoreSession::sessionState() const /*** Identity Handling ***/ void CoreSession::createIdentity(const Identity& identity, const QVariantMap& additional) { -#ifndef HAVE_SSL - Q_UNUSED(additional) -#endif - CoreIdentity coreIdentity(identity); -#ifdef HAVE_SSL if (additional.contains("KeyPem")) coreIdentity.setSslKey(additional["KeyPem"].toByteArray()); if (additional.contains("CertPem")) coreIdentity.setSslCert(additional["CertPem"].toByteArray()); -#endif qDebug() << Q_FUNC_INFO; IdentityId id = Core::createIdentity(user(), coreIdentity); if (!id.isValid()) @@ -659,7 +661,6 @@ void CoreSession::removeNetwork(NetworkId id) void CoreSession::destroyNetwork(NetworkId id) { - QList removedBuffers = Core::requestBufferIdsForNetwork(user(), id); Network* net = _networks.take(id); if (net && Core::removeNetwork(user(), id)) { // make sure that all unprocessed RawMessages from this network are removed @@ -673,7 +674,7 @@ void CoreSession::destroyNetwork(NetworkId id) } } // remove buffers from syncer - for (BufferId bufferId : removedBuffers) { + for (BufferId bufferId : Core::requestBufferIdsForNetwork(user(), id)) { _bufferSyncer->removeBuffer(bufferId); } emit networkRemoved(id);