Show /WHOIS response in active window if configured for it.

master
Tomatix 5 years ago
parent 465b9fff0b
commit 7b896db33a
  1. 23
      IdealIRC/IRC.cpp
  2. 1
      IdealIRC/IRC.h

@ -571,10 +571,21 @@ void IRC::onMsgNumeric(const IRCPrefix& /*sender*/, const std::string& num, cons
else if (!ignoreVerbosity(num)) {
IWin* window = nullptr;
if (args.size() > 1)
window = MdiManager::instance().findWindow(&getStatus(), QString::fromStdString(args[1]));
if (!window)
window = &getStatus();
if (num == Numeric::RPL_WHOISUSER) {
auto& conf = ConfigMgr::instance();
m_receiveWhoisToCurrentWindow = conf.common("ShowWhoisActiveWindow").toInt();
}
if (m_receiveWhoisToCurrentWindow) {
window = getStatus().getActiveWindow();
}
else {
if (args.size() > 1)
window = MdiManager::instance().findWindow(&getStatus(), QString::fromStdString(args[1]));
if (!window)
window = &getStatus();
}
if (message.empty())
window->print(PrintType::Normal, argmsg.c_str());
@ -597,6 +608,10 @@ void IRC::onMsgNumeric(const IRCPrefix& /*sender*/, const std::string& num, cons
}
}
else if (num == Numeric::RPL_ENDOFWHOIS) {
m_receiveWhoisToCurrentWindow = false;
}
/* Script event */
{
ScriptArray pval;

@ -60,6 +60,7 @@ private:
bool m_disconnectForExit{ false };
IWinStatus& m_status;
int m_id; //! Used mainly for scripts
bool m_receiveWhoisToCurrentWindow{ false };
QStringList m_ignoreVerbosity; //! Used to mute certain message types from the server
bool ignoreVerbosity(const std::string& cmd);

Loading…
Cancel
Save