From 2d7fa70ddeddb4efdd1c2514a855cf9a6eef39bb Mon Sep 17 00:00:00 2001 From: Bas Pape Date: Tue, 27 Jul 2010 17:31:46 +0200 Subject: [PATCH] Parse idle and signon time when there is no IrcUser, fixes #1008 --- src/core/ircserverhandler.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/core/ircserverhandler.cpp b/src/core/ircserverhandler.cpp index 32a40f0d..84c6a194 100644 --- a/src/core/ircserverhandler.cpp +++ b/src/core/ircserverhandler.cpp @@ -886,7 +886,16 @@ void IrcServerHandler::handle317(const QString &prefix, const QList emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("[Whois] %1 is idling for %2 (%3)").arg(ircuser->nick()).arg(secondsToString(ircuser->idleTime().secsTo(now))).arg(ircuser->idleTime().toString())); } else { - emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("[Whois] idle message: %1").arg(userDecode(nick, params).join(" "))); + QDateTime now = QDateTime::currentDateTime(); + int idleSecs = serverDecode(params[1]).toInt(); + idleSecs *= -1; + QDateTime idleSince = now.addSecs(idleSecs); + if (params.size() > 3) { // we have a signon time + int loginTime = serverDecode(params[2]).toInt(); + QDateTime datetime = QDateTime::fromTime_t(loginTime); + emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("[Whois] %1 is logged in since %2").arg(nick).arg(datetime.toString())); + } + emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("[Whois] %1 is idling for %2 (%3)").arg(nick).arg(secondsToString(idleSince.secsTo(now))).arg(idleSince.toString())); } } -- 2.20.1