From: Bas Pape Date: Tue, 27 Jul 2010 15:31:46 +0000 (+0200) Subject: Parse idle and signon time when there is no IrcUser, fixes #1008 X-Git-Tag: 0.7-beta1~1 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=2d7fa70ddeddb4efdd1c2514a855cf9a6eef39bb Parse idle and signon time when there is no IrcUser, fixes #1008 --- 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())); } }