From c873421914cb36a475113ee369defce60d317c2d Mon Sep 17 00:00:00 2001 From: csoler Date: Tue, 16 Sep 2014 19:11:22 +0000 Subject: [PATCH] fixed tooltip and proper display of IDs in forums. Commented out class GxsIdTreeWidgetItem, which is unused and very similar to GxsIdRSTreeWidgetItem. fixed display of from field in messages. Still, it would be better to use a clean GxsIdRSTreeWidget instead of this QListWidget class git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7541 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- retroshare-gui/src/gui/MessagesDialog.cpp | 9 +++++++++ .../src/gui/gxs/GxsCommentTreeWidget.cpp | 2 +- retroshare-gui/src/gui/gxs/GxsIdDetails.cpp | 2 +- retroshare-gui/src/gui/gxs/GxsIdTreeWidget.cpp | 15 +++++++++++++-- retroshare-gui/src/gui/gxs/GxsIdTreeWidget.h | 2 ++ .../src/gui/gxs/GxsIdTreeWidgetItem.cpp | 10 ++++++---- retroshare-gui/src/gui/gxs/GxsIdTreeWidgetItem.h | 2 ++ .../src/gui/gxsforums/GxsForumThreadWidget.cpp | 6 +++--- 8 files changed, 37 insertions(+), 11 deletions(-) diff --git a/retroshare-gui/src/gui/MessagesDialog.cpp b/retroshare-gui/src/gui/MessagesDialog.cpp index 30f41e9b0..c2842beda 100644 --- a/retroshare-gui/src/gui/MessagesDialog.cpp +++ b/retroshare-gui/src/gui/MessagesDialog.cpp @@ -1110,6 +1110,15 @@ void MessagesDialog::insertMessages() text = "RetroShare"; } else { text = QString::fromUtf8(rsPeers->getPeerName(it->srcId).c_str()); + std::cerr << "(messages) getting name for id " << it->srcId << " => \"" << text.toStdString() << "\"" << std::endl; + if(text == "") + { + RsIdentityDetails details; + if (rsIdentity->getIdDetails(RsGxsId(it->srcId), details) && !details.mNickname.empty()) + text = QString::fromUtf8(details.mNickname.c_str()) ; + else + text = "GXS_id(" + QString::fromStdString(it->srcId.toStdString())+")" ; + } } } else { if (gotInfo || rsMsgs->getMessage(it->msgId, msgInfo)) { diff --git a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp index b4577363f..3e7c704de 100644 --- a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp +++ b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp @@ -408,7 +408,7 @@ void GxsCommentTreeWidget::service_loadThread(const uint32_t &token) std::cerr << "GxsCommentTreeWidget::service_loadThread() Got Comment: " << comment.mMeta.mMsgId; std::cerr << std::endl; - GxsIdTreeWidgetItem *item = new GxsIdTreeWidgetItem(); + GxsIdRSTreeWidgetItem *item = new GxsIdRSTreeWidgetItem(NULL); QString text; { diff --git a/retroshare-gui/src/gui/gxs/GxsIdDetails.cpp b/retroshare-gui/src/gui/gxs/GxsIdDetails.cpp index 0673779c9..02374110d 100644 --- a/retroshare-gui/src/gui/gxs/GxsIdDetails.cpp +++ b/retroshare-gui/src/gui/gxs/GxsIdDetails.cpp @@ -169,7 +169,7 @@ bool GxsIdDetails::MakeIdDesc(const RsGxsId &id, bool doIcons, QString &str, std if (!rsIdentity->getIdDetails(id, details)) { - std::cerr << "GxsIdTreeWidget::MakeIdDesc() FAILED TO GET ID"; + std::cerr << "GxsIdTreeWidget::MakeIdDesc() FAILED TO GET ID " << id; std::cerr << std::endl; str = QObject::tr("Loading... ") + QString::fromStdString(id.toStdString().substr(0,5)); diff --git a/retroshare-gui/src/gui/gxs/GxsIdTreeWidget.cpp b/retroshare-gui/src/gui/gxs/GxsIdTreeWidget.cpp index df2c35e34..1e6b830aa 100644 --- a/retroshare-gui/src/gui/gxs/GxsIdTreeWidget.cpp +++ b/retroshare-gui/src/gui/gxs/GxsIdTreeWidget.cpp @@ -102,7 +102,7 @@ void GxsIdRSItemDelegate::paint( QPainter * painter, std::cerr << "GxsIdRSItemDelegate::paint()"; std::cerr << std::endl; - RsGxsId id ( mTree->ItemTextFromIndex(index, mGxsIdColumn).toStdString()); + RsGxsId id ( mTree->ItemIdFromIndex(index, mGxsIdColumn)); paintGxsId(painter, option, id); } @@ -157,7 +157,18 @@ void GxsIdRSTreeWidget::setGxsIdColumn(int col) setItemDelegateForColumn(col, mIdDelegate); } - +RsGxsId GxsIdRSTreeWidget::ItemIdFromIndex(const QModelIndex & index, int column ) const +{ + // get real item. + QTreeWidgetItem *item = itemFromIndex(index); + if (!item) + { + std::cerr << "GxsIdTreeWidget::ItemTextFromIndex() Invalid Item"; + std::cerr << std::endl; + return RsGxsId(); + } + return RsGxsId(item->data(column,Qt::UserRole).toString().toStdString()); +} QString GxsIdRSTreeWidget::ItemTextFromIndex(const QModelIndex & index, int column ) const { // get real item. diff --git a/retroshare-gui/src/gui/gxs/GxsIdTreeWidget.h b/retroshare-gui/src/gui/gxs/GxsIdTreeWidget.h index 423f82664..e8e9510bb 100644 --- a/retroshare-gui/src/gui/gxs/GxsIdTreeWidget.h +++ b/retroshare-gui/src/gui/gxs/GxsIdTreeWidget.h @@ -27,6 +27,7 @@ #include #include +#include "retroshare/rsgxsifacetypes.h" #include "gui/common/RSTreeWidget.h" /***** @@ -88,6 +89,7 @@ public: void setGxsIdColumn(int col); QString ItemTextFromIndex(const QModelIndex & index, int column ) const; +RsGxsId ItemIdFromIndex(const QModelIndex & index, int column ) const; private: GxsIdRSItemDelegate *mIdDelegate; diff --git a/retroshare-gui/src/gui/gxs/GxsIdTreeWidgetItem.cpp b/retroshare-gui/src/gui/gxs/GxsIdTreeWidgetItem.cpp index 24b624d44..9c45b2320 100644 --- a/retroshare-gui/src/gui/gxs/GxsIdTreeWidgetItem.cpp +++ b/retroshare-gui/src/gui/gxs/GxsIdTreeWidgetItem.cpp @@ -93,12 +93,12 @@ void GxsIdRSTreeWidgetItem::loadId() setIcon(mColumn, combinedIcon); } setToolTip(mColumn,comment) ; + setText(mColumn, desc); + setData(mColumn,Qt::UserRole, QString::fromStdString(mId.toStdString())); - setText(mColumn, desc); - - if (loaded) + if (loaded) { - std::cerr << " GxsIdRSTreeWidgetItem::loadId() Loaded Okay"; + std::cerr << " GxsIdRSTreeWidgetItem::loadId() Loaded Okay"; std::cerr << std::endl; return; } @@ -113,6 +113,7 @@ void GxsIdRSTreeWidgetItem::loadId() } } +#if 0 /** Constructor */ GxsIdTreeWidgetItem::GxsIdTreeWidgetItem(QTreeWidget *parent) : QObject(NULL), QTreeWidgetItem(parent), mCount(0), mColumn(0) @@ -193,3 +194,4 @@ void GxsIdTreeWidgetItem::loadId() connect(rApp, SIGNAL(secondTick()), this, SLOT(loadId())); } } +#endif diff --git a/retroshare-gui/src/gui/gxs/GxsIdTreeWidgetItem.h b/retroshare-gui/src/gui/gxs/GxsIdTreeWidgetItem.h index d2f8393af..652b2a852 100644 --- a/retroshare-gui/src/gui/gxs/GxsIdTreeWidgetItem.h +++ b/retroshare-gui/src/gui/gxs/GxsIdTreeWidgetItem.h @@ -57,6 +57,7 @@ private: int mColumn; }; +#if 0 class GxsIdTreeWidgetItem : public QObject, public QTreeWidgetItem { Q_OBJECT @@ -78,5 +79,6 @@ private: int mCount; int mColumn; }; +#endif #endif diff --git a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp index 03f433a11..4e78d85d9 100644 --- a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp +++ b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp @@ -782,7 +782,7 @@ void GxsForumThreadWidget::fillThreadStatus(QString text) QTreeWidgetItem *GxsForumThreadWidget::convertMsgToThreadWidget(const RsGxsForumMsg &msg, bool useChildTS, uint32_t filterColumn) { - GxsIdRSTreeWidgetItem *item = new GxsIdRSTreeWidgetItem(mThreadCompareRole); + GxsIdRSTreeWidgetItem *item = new GxsIdRSTreeWidgetItem(mThreadCompareRole); item->moveToThread(ui->threadTreeWidget->thread()); QString text; @@ -810,8 +810,8 @@ QTreeWidgetItem *GxsForumThreadWidget::convertMsgToThreadWidget(const RsGxsForum item->setText(COLUMN_THREAD_DATE, text); item->setData(COLUMN_THREAD_DATE, ROLE_THREAD_SORT, sort); - item->setText(COLUMN_THREAD_AUTHOR, QString::fromStdString(msg.mMeta.mAuthorId.toStdString())); - //item->setId(msg.mMeta.mAuthorId, COLUMN_THREAD_AUTHOR); + //item->setText(COLUMN_THREAD_AUTHOR, QString::fromStdString(msg.mMeta.mAuthorId.toStdString())); + item->setId(msg.mMeta.mAuthorId, COLUMN_THREAD_AUTHOR); //#TODO #if 0 text = QString::fromUtf8(authorName.c_str());