banChannel = bufferInfo.bufferName();
}
else {
- emit displayMsg(Message::Error, BufferInfo::StatusBuffer, "", QString("Error: channel unknown in command: /BAN %1").arg(msg));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Error,
+ BufferInfo::StatusBuffer,
+ "",
+ QString("Error: channel unknown in command: /BAN %1").arg(msg)
+ ));
return;
}
// generalizedHost changes <nick> to *!ident@*.sld.tld.
QString generalizedHost = ircuser->host();
if (generalizedHost.isEmpty()) {
- emit displayMsg(Message::Error, BufferInfo::StatusBuffer, "", QString("Error: host unknown in command: /BAN %1").arg(msg));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Error,
+ BufferInfo::StatusBuffer,
+ "",
+ QString("Error: host unknown in command: /BAN %1").arg(msg)
+ ));
return;
}
// FIXME make this a proper event
coreNetwork()->coreSession()->ctcpParser()->query(coreNetwork(), nick, ctcpTag, message);
- emit displayMsg(Message::Action, BufferInfo::StatusBuffer, "", verboseMessage, network()->myNick(), Message::Flag::Self);
+ emit displayMsg(NetworkInternalMessage(
+ Message::Action,
+ BufferInfo::StatusBuffer,
+ "",
+ verboseMessage,
+ network()->myNick(),
+ Message::Flag::Self
+ ));
}
void CoreUserInputHandler::handleDelkey(const BufferInfo& bufferInfo, const QString& msg)
return;
if (!Cipher::neededFeaturesAvailable()) {
- emit displayMsg(Message::Error,
- typeByTarget(bufname),
- bufname,
- tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin."));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Error,
+ typeByTarget(bufname),
+ bufname,
+ tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin.")
+ ));
return;
}
parms.prepend(bufferInfo.bufferName());
if (parms.isEmpty()) {
- emit displayMsg(Message::Info,
- typeByTarget(bufname),
- bufname,
- tr("[usage] /delkey <nick|channel> deletes the encryption key for nick or channel or just /delkey when in a "
- "channel or query."));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Info,
+ typeByTarget(bufname),
+ bufname,
+ tr("[usage] /delkey <nick|channel> deletes the encryption key for nick or channel or just /delkey when in a "
+ "channel or query.")
+ ));
return;
}
QString target = parms.at(0);
if (network()->cipherKey(target).isEmpty()) {
- emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("No key has been set for %1.").arg(target));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Info,
+ typeByTarget(bufname),
+ bufname,
+ tr("No key has been set for %1.").arg(target)
+ ));
return;
}
network()->setCipherKey(target, QByteArray());
- emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("The key for %1 has been deleted.").arg(target));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Info,
+ typeByTarget(bufname),
+ bufname,
+ tr("The key for %1 has been deleted.").arg(target)
+ ));
#else
Q_UNUSED(msg)
- 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."));
+ emit displayMsg(NetworkInternalMessage(
+ 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.")
+ ));
#endif
}
void CoreUserInputHandler::doMode(const BufferInfo& bufferInfo, const QChar& addOrRemove, const QChar& mode, const QString& nicks)
{
- QString m;
bool isNumber;
int maxModes = network()->support("MODES").toInt(&isNumber);
if (!isNumber || maxModes == 0)
QStringList nickList;
if (nicks == "*" && bufferInfo.type() == BufferInfo::ChannelBuffer) { // All users in channel
const QList<IrcUser*> users = network()->ircChannel(bufferInfo.bufferName())->ircUsers();
- foreach (IrcUser* user, users) {
+ for (IrcUser* user : users) {
if ((addOrRemove == '+' && !network()->ircChannel(bufferInfo.bufferName())->userModes(user).contains(mode))
|| (addOrRemove == '-' && network()->ircChannel(bufferInfo.bufferName())->userModes(user).contains(mode)))
nickList.append(user->nick());
return;
if (!Cipher::neededFeaturesAvailable()) {
- emit displayMsg(Message::Error,
- typeByTarget(bufname),
- bufname,
- tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin."));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Error,
+ typeByTarget(bufname),
+ bufname,
+ tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin.")
+ ));
return;
}
if (parms.count() == 0 && !bufferInfo.bufferName().isEmpty() && bufferInfo.acceptsRegularMessages())
parms.prepend(bufferInfo.bufferName());
else if (parms.count() != 1) {
- emit displayMsg(Message::Info,
- typeByTarget(bufname),
- bufname,
- tr("[usage] /keyx [<nick>] Initiates a DH1080 key exchange with the target."));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Info,
+ typeByTarget(bufname),
+ bufname,
+ tr("[usage] /keyx [<nick>] Initiates a DH1080 key exchange with the target.")
+ ));
return;
}
QString target = parms.at(0);
if (network()->isChannelName(target)) {
- emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("It is only possible to exchange keys in a query buffer."));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Info,
+ typeByTarget(bufname),
+ bufname,
+ tr("It is only possible to exchange keys in a query buffer.")
+ ));
return;
}
QByteArray pubKey = cipher->initKeyExchange();
if (pubKey.isEmpty())
- emit displayMsg(Message::Error, typeByTarget(bufname), bufname, tr("Failed to initiate key exchange with %1.").arg(target));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Error,
+ typeByTarget(bufname),
+ bufname,
+ tr("Failed to initiate key exchange with %1.").arg(target)
+ ));
else {
QList<QByteArray> params;
params << serverEncode(target) << serverEncode("DH1080_INIT ") + pubKey;
emit putCmd("NOTICE", params);
- emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("Initiated key exchange with %1.").arg(target));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Info,
+ typeByTarget(bufname),
+ bufname,
+ tr("Initiated key exchange with %1.").arg(target)
+ ));
}
#else
Q_UNUSED(msg)
- 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."));
+ emit displayMsg(NetworkInternalMessage(
+ 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.")
+ ));
#endif
}
// they need to be split into multiple messages.
QStringList messages = msg.split(QChar::LineFeed);
- foreach (auto message, messages) {
+ for (const auto& message : messages) {
// Handle each separated message independently
coreNetwork()->coreSession()->ctcpParser()->query(coreNetwork(), bufferInfo.bufferName(), "ACTION", message);
- emit displayMsg(Message::Action, bufferInfo.type(), bufferInfo.bufferName(), message, network()->myNick(), Message::Self);
+ emit displayMsg(NetworkInternalMessage(
+ Message::Action,
+ bufferInfo.type(),
+ bufferInfo.bufferName(),
+ message,
+ network()->myNick(),
+ Message::Self
+ ));
}
}
if (!params.isEmpty()) {
if (params[0] == "-reset" && params.count() == 1) {
network()->resetPersistentModes();
- emit displayMsg(Message::Info, BufferInfo::StatusBuffer, "", tr("Your persistent modes have been reset."));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Info,
+ BufferInfo::StatusBuffer,
+ "",
+ tr("Your persistent modes have been reset.")
+ ));
return;
}
if (!network()->isChannelName(params[0]) && !network()->isMyNick(params[0]))
// they need to be split into multiple messages.
QStringList messages = msg.section(' ', 1).split(QChar::LineFeed);
- foreach (auto message, messages) {
+ for (const auto& message : messages) {
// Handle each separated message independently
params.clear();
params << serverEncode(bufferName) << channelEncode(bufferInfo.bufferName(), message);
emit putCmd("NOTICE", params);
- emit displayMsg(Message::Notice, typeByTarget(bufferName), bufferName, message, network()->myNick(), Message::Self);
+ emit displayMsg(NetworkInternalMessage(
+ Message::Notice,
+ typeByTarget(bufferName),
+ bufferName,
+ message,
+ network()->myNick(),
+ Message::Self
+ ));
}
}
return; // server buffer
QByteArray encMsg = channelEncode(bufferInfo.bufferName(), msg);
- emit displayMsg(Message::Info, bufferInfo.type(), bufferInfo.bufferName(), msg, network()->myNick(), Message::Self);
+ emit displayMsg(NetworkInternalMessage(
+ Message::Info,
+ bufferInfo.type(),
+ bufferInfo.bufferName(),
+ msg,
+ network()->myNick(),
+ Message::Self
+ ));
}
// TODO: implement queries
// they need to be split into multiple messages.
QStringList messages = msg.section(' ', 1).split(QChar::LineFeed);
- foreach (auto message, messages) {
+ for (const auto& message : messages) {
// Handle each separated message independently
if (message.isEmpty()) {
- emit displayMsg(Message::Server,
- BufferInfo::QueryBuffer,
- target,
- tr("Starting query with %1").arg(target),
- network()->myNick(),
- Message::Self);
+ emit displayMsg(NetworkInternalMessage(
+ Message::Server,
+ BufferInfo::QueryBuffer,
+ target,
+ tr("Starting query with %1").arg(target),
+ network()->myNick(),
+ Message::Self
+ ));
// handleMsg is a no-op if message is empty
}
else {
- emit displayMsg(Message::Plain, BufferInfo::QueryBuffer, target, message, network()->myNick(), Message::Self);
+ emit displayMsg(NetworkInternalMessage(
+ Message::Plain,
+ BufferInfo::QueryBuffer,
+ target,
+ message,
+ network()->myNick(),
+ Message::Self
+ ));
// handleMsg needs the target specified at the beginning of the message
handleMsg(bufferInfo, target + " " + message);
}
// they need to be split into multiple messages.
QStringList messages = msg.split(QChar::LineFeed, QString::SkipEmptyParts);
- foreach (auto message, messages) {
+ for (const auto& message : messages) {
// Handle each separated message independently
#ifdef HAVE_QCA2
putPrivmsg(bufferInfo.bufferName(), message, encodeFunc, network()->cipher(bufferInfo.bufferName()));
#else
putPrivmsg(bufferInfo.bufferName(), message, encodeFunc);
#endif
- emit displayMsg(Message::Plain, bufferInfo.type(), bufferInfo.bufferName(), message, network()->myNick(), Message::Self);
+ emit displayMsg(NetworkInternalMessage(
+ Message::Plain,
+ bufferInfo.type(),
+ bufferInfo.bufferName(),
+ message,
+ network()->myNick(),
+ Message::Self
+ ));
}
}
return;
if (!Cipher::neededFeaturesAvailable()) {
- emit displayMsg(Message::Error,
- typeByTarget(bufname),
- bufname,
- tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin."));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Error,
+ typeByTarget(bufname),
+ bufname,
+ tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin.")
+ ));
return;
}
if (parms.count() == 1 && !bufferInfo.bufferName().isEmpty() && bufferInfo.acceptsRegularMessages())
parms.prepend(bufferInfo.bufferName());
else if (parms.count() != 2) {
- emit displayMsg(Message::Info,
- typeByTarget(bufname),
- bufname,
- tr("[usage] /setkey <nick|channel> <key> sets the encryption key for nick or channel. "
- "/setkey <key> when in a channel or query buffer sets the key for it."));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Info,
+ typeByTarget(bufname),
+ bufname,
+ tr("[usage] /setkey <nick|channel> <key> sets the encryption key for nick or channel. "
+ "/setkey <key> when in a channel or query buffer sets the key for it.")
+ ));
return;
}
QByteArray key = parms.at(1).toLocal8Bit();
network()->setCipherKey(target, key);
- emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("The key for %1 has been set.").arg(target));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Info,
+ typeByTarget(bufname),
+ bufname,
+ tr("The key for %1 has been set.").arg(target)
+ ));
#else
Q_UNUSED(msg)
- 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."));
+ emit displayMsg(NetworkInternalMessage(
+ 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.")
+ ));
#endif
}
return;
if (!Cipher::neededFeaturesAvailable()) {
- emit displayMsg(Message::Error,
- typeByTarget(bufname),
- bufname,
- tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin."));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Error,
+ typeByTarget(bufname),
+ bufname,
+ tr("Error: QCA provider plugin not found. It is usually provided by the qca-ossl plugin.")
+ ));
return;
}
parms.prepend(bufferInfo.bufferName());
if (parms.isEmpty()) {
- emit displayMsg(Message::Info,
- typeByTarget(bufname),
- bufname,
- tr("[usage] /showkey <nick|channel> shows the encryption key for nick or channel or just /showkey when in a "
- "channel or query."));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Info,
+ typeByTarget(bufname),
+ bufname,
+ tr("[usage] /showkey <nick|channel> shows the encryption key for nick or channel or just /showkey when in a "
+ "channel or query.")
+ ));
return;
}
QByteArray key = network()->cipherKey(target);
if (key.isEmpty()) {
- emit displayMsg(Message::Info, typeByTarget(bufname), bufname, tr("No key has been set for %1.").arg(target));
+ emit displayMsg(NetworkInternalMessage(
+ Message::Info,
+ typeByTarget(bufname),
+ bufname,
+ tr("No key has been set for %1.").arg(target)
+ ));
return;
}
- emit displayMsg(Message::Info,
- typeByTarget(bufname),
- bufname,
- tr("The key for %1 is %2:%3").arg(target, network()->cipherUsesCBC(target) ? "CBC" : "ECB", QString(key)));
+ emit displayMsg(NetworkInternalMessage(
+ 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,
- 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."));
+ emit displayMsg(NetworkInternalMessage(
+ 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.")
+ ));
#endif
}
// the stored command might be the result of an alias expansion, so we need to split it up again
QStringList commands = rawCommand.split(QRegExp("; ?"));
- foreach (QString command, commands) {
+ for (const QString& command : commands) {
handleUserInput(bufferInfo, command);
}
}