/***************************************************************************
- * Copyright (C) 2005-2019 by the Quassel Project *
+ * Copyright (C) 2005-2022 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
// migrate to db
QList<IdentityId> ids = s.identityIds();
- QList<NetworkInfo> networkInfos = Core::networks(user());
+ std::vector<NetworkInfo> networkInfos = Core::networks(user());
for (IdentityId id : ids) {
CoreIdentity identity(s.identity(id));
IdentityId newId = Core::createIdentity(user(), identity);
- QList<NetworkInfo>::iterator networkIter = networkInfos.begin();
+ auto networkIter = networkInfos.begin();
while (networkIter != networkInfos.end()) {
if (networkIter->identity == id) {
networkIter->identity = newId;
void CoreSession::restoreSessionState()
{
- QList<NetworkId> 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();
}
// 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;
});
}
-QList<BufferInfo> CoreSession::buffers() const
+std::vector<BufferInfo> CoreSession::buffers() const
{
return Core::requestBuffers(user());
}
/*** 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())
void CoreSession::destroyNetwork(NetworkId id)
{
- QList<BufferId> 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
}
}
// remove buffers from syncer
- for (BufferId bufferId : removedBuffers) {
+ for (BufferId bufferId : Core::requestBufferIdsForNetwork(user(), id)) {
_bufferSyncer->removeBuffer(bufferId);
}
emit networkRemoved(id);