";
+
+ tooltip << "" << nickName();
+ if (_ircUser->userModes() != "") {
+ //TODO: Translate user Modes and add them to the table below
+ tooltip << " (" << _ircUser->userModes() << ")";
}
- if (!_ircUser->realName().isEmpty()) toolTip.append(_ircUser->realName());
- if (!_ircUser->ircOperator().isEmpty()) toolTip.append(QString("%1 %2").arg(nickName()).arg(_ircUser->ircOperator()));
- if (!_ircUser->suserHost().isEmpty()) toolTip.append(_ircUser->suserHost());
- if (!_ircUser->whoisServiceReply().isEmpty()) toolTip.append(_ircUser->whoisServiceReply());
+ tooltip << "
";
- toolTip.append(_ircUser->hostmask().remove(0, _ircUser->hostmask().indexOf("!")+1));
+ auto addRow = [&](const QString& key, const QString& value, bool condition = true) {
+ if (condition)
+ {
+ tooltip << "" << key << " | " << value << " |
";
+ }
+ };
+
+ tooltip << "";
+ if (_ircUser->isAway()) {
+ QString awayMessage(tr("(unknown)"));
+ if(!_ircUser->awayMessage().isEmpty()) {
+ awayMessage = _ircUser->awayMessage();
+ }
+ addRow(tr("Away Message"), awayMessage);
+ }
+ addRow(tr("Realname"), _ircUser->realName(), !_ircUser->realName().isEmpty());
+ addRow(tr("Operator"), _ircUser->ircOperator(), !_ircUser->ircOperator().isEmpty());
+ addRow(tr("Suser Host"), _ircUser->suserHost(),!_ircUser->suserHost().isEmpty());
+ addRow(tr("Whois Service Reply"), _ircUser->whoisServiceReply(), !_ircUser->whoisServiceReply().isEmpty());
+ addRow(tr("Hostmask"), _ircUser->hostmask().remove(0, _ircUser->hostmask().indexOf("!")+1));
+ addRow(tr("Operator"), _ircUser->ircOperator(), !_ircUser->ircOperator().isEmpty());
if (_ircUser->idleTime().isValid()) {
QDateTime now = QDateTime::currentDateTime();
QDateTime idle = _ircUser->idleTime();
int idleTime = idle.secsTo(now);
- toolTip.append(tr("idling since %1").arg(secondsToString(idleTime)));
+ addRow(tr("Idling since"), secondsToString(idleTime));
}
+
if (_ircUser->loginTime().isValid()) {
- toolTip.append(tr("login time: %1").arg(_ircUser->loginTime().toString()));
+ addRow(tr("Login time"), _ircUser->loginTime().toString());
}
- if (!_ircUser->server().isEmpty()) toolTip.append(tr("server: %1").arg(_ircUser->server()));
+ addRow(tr("Server"), _ircUser->server(), !_ircUser->server().isEmpty());
- return QString(" %1
").arg(toolTip.join("
"));
+ tooltip << "
";
+ return strTooltip;
}