From ef5fca5e5ee98bc1a24007fa733418ebb4d6cf8b Mon Sep 17 00:00:00 2001 From: AsamK Date: Fri, 7 Aug 2015 19:08:10 +0200 Subject: [PATCH] Resolve nicks from gxsId in lobby chat history --- retroshare-gui/src/gui/chat/ChatWidget.cpp | 17 +++++++++++++++-- .../src/gui/im_history/ImHistoryBrowser.cpp | 15 ++++++++++++++- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/retroshare-gui/src/gui/chat/ChatWidget.cpp b/retroshare-gui/src/gui/chat/ChatWidget.cpp index 5e8067577..81baa6f7e 100644 --- a/retroshare-gui/src/gui/chat/ChatWidget.cpp +++ b/retroshare-gui/src/gui/chat/ChatWidget.cpp @@ -321,8 +321,21 @@ void ChatWidget::init(const ChatId &chat_id, const QString &title) // it can happen that a message is first added to the message history // and later the gui receives the message through notify // avoid this by not adding history entries if their age is < 2secs - if((time(NULL)-2) > historyIt->recvTime) - addChatMsg(historyIt->incoming, QString::fromUtf8(historyIt->peerName.c_str()), QDateTime::fromTime_t(historyIt->sendTime), QDateTime::fromTime_t(historyIt->recvTime), QString::fromUtf8(historyIt->message.c_str()), MSGTYPE_HISTORY); + if ((time(NULL)-2) <= historyIt->recvTime) + continue; + + QString name; + if (chatId.isLobbyId()) { + RsIdentityDetails details; + if (rsIdentity->getIdDetails(RsGxsId(historyIt->peerName), details)) + name = QString::fromUtf8(details.mNickname.c_str()); + else + name = QString::fromUtf8(historyIt->peerName.c_str()); + } else { + name = QString::fromUtf8(historyIt->peerName.c_str()); + } + + addChatMsg(historyIt->incoming, name, QDateTime::fromTime_t(historyIt->sendTime), QDateTime::fromTime_t(historyIt->recvTime), QString::fromUtf8(historyIt->message.c_str()), MSGTYPE_HISTORY); } } } diff --git a/retroshare-gui/src/gui/im_history/ImHistoryBrowser.cpp b/retroshare-gui/src/gui/im_history/ImHistoryBrowser.cpp index 6e49396ef..a59f71656 100644 --- a/retroshare-gui/src/gui/im_history/ImHistoryBrowser.cpp +++ b/retroshare-gui/src/gui/im_history/ImHistoryBrowser.cpp @@ -36,6 +36,7 @@ #include "rshare.h" #include +#include #include "gui/settings/rsharesettings.h" #include "gui/notifyqt.h" @@ -272,7 +273,19 @@ void ImHistoryBrowser::fillItem(QListWidgetItem *itemWidget, HistoryMsg& msg) } QString messageText = RsHtml().formatText(NULL, QString::fromUtf8(msg.message.c_str()), formatTextFlag); - QString formatMsg = style.formatMessage(type, QString::fromUtf8(msg.peerName.c_str()), QDateTime::fromTime_t(msg.sendTime), messageText); + + QString name; + if (m_chatId.isLobbyId()) { + RsIdentityDetails details; + if (rsIdentity->getIdDetails(RsGxsId(msg.peerName), details)) + name = QString::fromUtf8(details.mNickname.c_str()); + else + name = QString::fromUtf8(msg.peerName.c_str()); + } else { + name = QString::fromUtf8(msg.peerName.c_str()); + } + + QString formatMsg = style.formatMessage(type, name, QDateTime::fromTime_t(msg.sendTime), messageText); itemWidget->setData(Qt::DisplayRole, qVariantFromValue(IMHistoryItemPainter(formatMsg))); itemWidget->setData(ROLE_MSGID, msg.msgId);