+ return _id;
+}
+
+QVariant IrcUserItem::data(int column, int role) const {
+ switch(role) {
+ case NetworkModel::ItemActiveRole:
+ return isActive();
+ case NetworkModel::ItemTypeRole:
+ return NetworkModel::IrcUserItemType;
+ case NetworkModel::BufferIdRole:
+ return parent()->data(column, role);
+ case NetworkModel::NetworkIdRole:
+ return parent()->data(column, role);
+ case NetworkModel::BufferInfoRole:
+ return parent()->data(column, role);
+ default:
+ return PropertyMapItem::data(column, role);
+ }
+}
+
+QString IrcUserItem::toolTip(int column) const {
+ Q_UNUSED(column);
+ QStringList toolTip(QString("<b>%1</b>").arg(nickName()));
+ if(_ircUser->userModes() != "") toolTip[0].append(QString(" (%1)").arg(_ircUser->userModes()));
+ 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(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.append(_ircUser->hostmask().remove(0, _ircUser->hostmask().indexOf("!")+1));
+
+ 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)));
+ }
+ if(_ircUser->loginTime().isValid()) {
+ toolTip.append(tr("login time: %1").arg(_ircUser->loginTime().toString()));
+ }
+
+ if(!_ircUser->server().isEmpty()) toolTip.append(tr("server: %1").arg(_ircUser->server()));
+
+ return QString("<p> %1 </p>").arg(toolTip.join("<br />"));