From 0cfeb61fd9ed1c415bcd88796010843e87150e9c Mon Sep 17 00:00:00 2001 From: Bas Pape Date: Thu, 29 Aug 2013 20:28:27 +0200 Subject: [PATCH] Remove CoreBasicHandler::displayMsg without type. Incomprehensible code, which actually caused a segfault in most of the few places it was used. The only useful part is calling typeByTarget, but that can be done in the calling site just as well. --- src/core/corebasichandler.cpp | 15 ----------- src/core/corebasichandler.h | 1 - src/core/coreuserinputhandler.cpp | 42 +++++++++++++++---------------- 3 files changed, 21 insertions(+), 37 deletions(-) diff --git a/src/core/corebasichandler.cpp b/src/core/corebasichandler.cpp index c08b1c73..580739cb 100644 --- a/src/core/corebasichandler.cpp +++ b/src/core/corebasichandler.cpp @@ -145,18 +145,3 @@ void CoreBasicHandler::putCmd(const QString &cmd, const QByteArray ¶m, const list << param; emit putCmd(cmd, list, prefix); } - - -void CoreBasicHandler::displayMsg(Message::Type msgType, QString target, const QString &text, const QString &sender, Message::Flags flags) -{ - IrcChannel *channel = network()->ircChannel(target); - if (!channel) { - if (!target.isEmpty() && network()->prefixes().contains(target[0])) - target = target.mid(1); - - if (target.startsWith('$') || target.startsWith('#')) - target = nickFromMask(sender); - } - - emit displayMsg(msgType, typeByTarget(target), target, text, sender, flags); -} diff --git a/src/core/corebasichandler.h b/src/core/corebasichandler.h index 53f0de48..7ea4e818 100644 --- a/src/core/corebasichandler.h +++ b/src/core/corebasichandler.h @@ -58,7 +58,6 @@ signals: void putRawLine(const QByteArray &msg); protected: - void displayMsg(Message::Type, QString target, const QString &text, const QString &sender = "", Message::Flags flags = Message::None); void putCmd(const QString &cmd, const QByteArray ¶m, const QByteArray &prefix = QByteArray()); inline CoreNetwork *network() const { return _network; } diff --git a/src/core/coreuserinputhandler.cpp b/src/core/coreuserinputhandler.cpp index 12c13cdc..a5c0ce7f 100644 --- a/src/core/coreuserinputhandler.cpp +++ b/src/core/coreuserinputhandler.cpp @@ -187,7 +187,7 @@ void CoreUserInputHandler::handleDelkey(const BufferInfo &bufferInfo, const QStr return; if (!Cipher::neededFeaturesAvailable()) { - emit displayMsg(Message::Error, bufname, tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin.")); + emit displayMsg(Message::Error, typeByTarget(bufname), bufname, tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin.")); return; } @@ -197,7 +197,7 @@ void CoreUserInputHandler::handleDelkey(const BufferInfo &bufferInfo, const QStr parms.prepend(bufferInfo.bufferName()); if (parms.isEmpty()) { - emit displayMsg(Message::Info, bufname, + emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("[usage] /delkey deletes the encryption key for nick or channel or just /delkey when in a channel or query.")); return; } @@ -205,16 +205,16 @@ void CoreUserInputHandler::handleDelkey(const BufferInfo &bufferInfo, const QStr QString target = parms.at(0); if (network()->cipherKey(target).isEmpty()) { - emit displayMsg(Message::Info, bufname, tr("No key has been set for %1.").arg(target)); + emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("No key has been set for %1.").arg(target)); return; } network()->setCipherKey(target, QByteArray()); - emit displayMsg(Message::Info, bufname, tr("The key for %1 has been deleted.").arg(target)); + emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("The key for %1 has been deleted.").arg(target)); #else Q_UNUSED(msg) - emit displayMsg(Message::Error, bufname, tr("Error: Setting an encryption key requires Quassel to have been built " + emit displayMsg(Message::Error, typeByTarget(bufname), bufname, tr("Error: Setting an encryption key requires Quassel to have been built " "with support for the Qt Cryptographic Architecture (QCA2) library. " "Contact your distributor about a Quassel package with QCA2 " "support, or rebuild Quassel with QCA2 present.")); @@ -358,7 +358,7 @@ void CoreUserInputHandler::handleKeyx(const BufferInfo &bufferInfo, const QStrin return; if (!Cipher::neededFeaturesAvailable()) { - emit displayMsg(Message::Error, bufname, tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin.")); + emit displayMsg(Message::Error, typeByTarget(bufname), bufname, tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin.")); return; } @@ -367,7 +367,7 @@ void CoreUserInputHandler::handleKeyx(const BufferInfo &bufferInfo, const QStrin if (parms.count() == 0 && !bufferInfo.bufferName().isEmpty()) parms.prepend(bufferInfo.bufferName()); else if (parms.count() != 1) { - emit displayMsg(Message::Info, bufname, + emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("[usage] /keyx [] Initiates a DH1080 key exchange with the target.")); return; } @@ -375,7 +375,7 @@ void CoreUserInputHandler::handleKeyx(const BufferInfo &bufferInfo, const QStrin QString target = parms.at(0); if (network()->isChannelName(target)) { - emit displayMsg(Message::Info, bufname, tr("It is only possible to exchange keys in a query buffer.")); + emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("It is only possible to exchange keys in a query buffer.")); return; } @@ -385,16 +385,16 @@ void CoreUserInputHandler::handleKeyx(const BufferInfo &bufferInfo, const QStrin QByteArray pubKey = cipher->initKeyExchange(); if (pubKey.isEmpty()) - emit displayMsg(Message::Error, bufname, tr("Failed to initiate key exchange with %1.").arg(target)); + emit displayMsg(Message::Error, typeByTarget(bufname), bufname, tr("Failed to initiate key exchange with %1.").arg(target)); else { QList params; params << serverEncode(target) << serverEncode("DH1080_INIT ") + pubKey; emit putCmd("NOTICE", params); - emit displayMsg(Message::Info, bufname, tr("Initiated key exchange with %1.").arg(target)); + emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("Initiated key exchange with %1.").arg(target)); } #else Q_UNUSED(msg) - emit displayMsg(Message::Error, bufname, tr("Error: Setting an encryption key requires Quassel to have been built " + emit displayMsg(Message::Error, typeByTarget(bufname), bufname, tr("Error: Setting an encryption key requires Quassel to have been built " "with support for the Qt Cryptographic Architecture (QCA) library. " "Contact your distributor about a Quassel package with QCA " "support, or rebuild Quassel with QCA present.")); @@ -498,7 +498,7 @@ void CoreUserInputHandler::handleNotice(const BufferInfo &bufferInfo, const QStr QList params; params << serverEncode(bufferName) << channelEncode(bufferInfo.bufferName(), payload); emit putCmd("NOTICE", params); - emit displayMsg(Message::Notice, bufferName, payload, network()->myNick(), Message::Self); + emit displayMsg(Message::Notice, typeByTarget(bufferName), bufferName, payload, network()->myNick(), Message::Self); } @@ -602,7 +602,7 @@ void CoreUserInputHandler::handleSetkey(const BufferInfo &bufferInfo, const QStr return; if (!Cipher::neededFeaturesAvailable()) { - emit displayMsg(Message::Error, bufname, tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin.")); + emit displayMsg(Message::Error, typeByTarget(bufname), bufname, tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin.")); return; } @@ -611,7 +611,7 @@ void CoreUserInputHandler::handleSetkey(const BufferInfo &bufferInfo, const QStr if (parms.count() == 1 && !bufferInfo.bufferName().isEmpty()) parms.prepend(bufferInfo.bufferName()); else if (parms.count() != 2) { - emit displayMsg(Message::Info, bufname, + emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("[usage] /setkey sets the encryption key for nick or channel. " "/setkey when in a channel or query buffer sets the key for it.")); return; @@ -621,10 +621,10 @@ void CoreUserInputHandler::handleSetkey(const BufferInfo &bufferInfo, const QStr QByteArray key = parms.at(1).toLocal8Bit(); network()->setCipherKey(target, key); - emit displayMsg(Message::Info, bufname, tr("The key for %1 has been set.").arg(target)); + emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("The key for %1 has been set.").arg(target)); #else Q_UNUSED(msg) - emit displayMsg(Message::Error, bufname, tr("Error: Setting an encryption key requires Quassel to have been built " + emit displayMsg(Message::Error, typeByTarget(bufname), bufname, tr("Error: Setting an encryption key requires Quassel to have been built " "with support for the Qt Cryptographic Architecture (QCA) library. " "Contact your distributor about a Quassel package with QCA " "support, or rebuild Quassel with QCA present.")); @@ -640,7 +640,7 @@ void CoreUserInputHandler::handleShowkey(const BufferInfo &bufferInfo, const QSt return; if (!Cipher::neededFeaturesAvailable()) { - emit displayMsg(Message::Error, bufname, tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin.")); + emit displayMsg(Message::Error, typeByTarget(bufname), bufname, tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin.")); return; } @@ -650,7 +650,7 @@ void CoreUserInputHandler::handleShowkey(const BufferInfo &bufferInfo, const QSt parms.prepend(bufferInfo.bufferName()); if (parms.isEmpty()) { - emit displayMsg(Message::Info, bufname, tr("[usage] /showkey shows the encryption key for nick or channel or just /showkey when in a channel or query.")); + emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("[usage] /showkey shows the encryption key for nick or channel or just /showkey when in a channel or query.")); return; } @@ -658,15 +658,15 @@ void CoreUserInputHandler::handleShowkey(const BufferInfo &bufferInfo, const QSt QByteArray key = network()->cipherKey(target); if (key.isEmpty()) { - emit displayMsg(Message::Info, bufname, tr("No key has been set for %1.").arg(target)); + emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("No key has been set for %1.").arg(target)); return; } - emit displayMsg(Message::Info, bufname, tr("The key for %1 is %2:%3").arg(target, network()->cipherUsesCBC(target) ? "CBC" : "ECB", QString(key))); + emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("The key for %1 is %2:%3").arg(target, network()->cipherUsesCBC(target) ? "CBC" : "ECB", QString(key))); #else Q_UNUSED(msg) - emit displayMsg(Message::Error, bufname, tr("Error: Setting an encryption key requires Quassel to have been built " + emit displayMsg(Message::Error, typeByTarget(bufname), bufname, tr("Error: Setting an encryption key requires Quassel to have been built " "with support for the Qt Cryptographic Architecture (QCA2) library. " "Contact your distributor about a Quassel package with QCA2 " "support, or rebuild Quassel with QCA2 present.")); -- 2.20.1