X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fnetworkmodel.cpp;h=076e7047e7836a4b9494ed72b81f7a4fff484c65;hp=7890099b707938dd406db3502bc7aad27a262b72;hb=2d19986a8bafafec55b5d3b0474f7d76eb5f33b2;hpb=37c1534315c0c448b9991d2dc561691fe1b34c01
diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp
index 7890099b..076e7047 100644
--- a/src/client/networkmodel.cpp
+++ b/src/client/networkmodel.cpp
@@ -479,14 +479,39 @@ QVariant IrcUserItem::data(int column, int role) const {
QString IrcUserItem::toolTip(int column) const {
Q_UNUSED(column);
- QString toolTip = "" + nickName() + "
" + _ircUser->hostmask();
- if(_ircUser->isAway()) {
- toolTip += "
away";
- if(!_ircUser->awayMessage().isEmpty()) {
- toolTip += " (" + _ircUser->awayMessage() + ")";
+ QStringList toolTip(QString("%1").arg(nickName()));
+ if(_ircUser->isAway()) toolTip[0].append(" is away");
+ if(!_ircUser->awayMessage().isEmpty()) toolTip[0].append(QString(" (%1)").arg(_ircUser->awayMessage()));
+ if(!_ircUser->realName().isEmpty()) toolTip.append(_ircUser->realName());
+ if(!_ircUser->ircOperator().isEmpty()) toolTip.append(_ircUser->ircOperator());
+ toolTip.append(_ircUser->hostmask());
+
+ if(_ircUser->idleTime().isValid()) {
+ QDateTime now = QDateTime::currentDateTime();
+ QDateTime idle = _ircUser->idleTime();
+ int idleTime = idle.secsTo(now);
+
+ QList< QPair > timeUnit;
+ timeUnit.append(qMakePair(365*60*60, tr("year")));
+ timeUnit.append(qMakePair(24*60*60, tr("day")));
+ timeUnit.append(qMakePair(60*60, tr("h")));
+ timeUnit.append(qMakePair(60, tr("min")));
+ timeUnit.append(qMakePair(1, tr("sec")));
+
+ QString idleString(' ');
+ for(int i=0; i < timeUnit.size(); i++) {
+ int n = idleTime / timeUnit[i].first;
+ if(n > 0) {
+ idleString += QString("%1 %2 ").arg(QString::number(n), timeUnit[i].second);
+ }
+ idleTime = idleTime % timeUnit[i].first;
}
+ toolTip.append(QString("idling since %1").arg(idleString));
}
- return "" + toolTip + "
";
+
+ if(!_ircUser->server().isEmpty()) toolTip.append(QString("server: %1").arg(_ircUser->server()));
+
+ return QString(" %1
").arg(toolTip.join("
"));
}
void IrcUserItem::setNick(QString newNick) {