diff --git a/retroshare-gui/src/gui/NewsFeed.cpp b/retroshare-gui/src/gui/NewsFeed.cpp index fc42faf7f..4b08caec9 100644 --- a/retroshare-gui/src/gui/NewsFeed.cpp +++ b/retroshare-gui/src/gui/NewsFeed.cpp @@ -1403,7 +1403,7 @@ void NewsFeed::openChat(const RsPeerId &peerId) ChatDialog::chatFriend(ChatId(peerId)); } -void NewsFeed::openComments(uint32_t /*type*/, const RsGxsGroupId &/*groupId*/, const RsGxsMessageId &/*msgId*/, const QString &/*title*/) +void NewsFeed::openComments(uint32_t /*type*/, const RsGxsGroupId &/*groupId*/, const QVector& versions,const RsGxsMessageId &/*msgId*/, const QString &/*title*/) { std::cerr << "NewsFeed::openComments() Not Handled Yet"; std::cerr << std::endl; diff --git a/retroshare-gui/src/gui/NewsFeed.h b/retroshare-gui/src/gui/NewsFeed.h index 28b8dabaa..b97476435 100644 --- a/retroshare-gui/src/gui/NewsFeed.h +++ b/retroshare-gui/src/gui/NewsFeed.h @@ -58,7 +58,7 @@ public: virtual QScrollArea *getScrollArea(); virtual void deleteFeedItem(QWidget *item, uint32_t type); virtual void openChat(const RsPeerId& peerId); - virtual void openComments(uint32_t type, const RsGxsGroupId &groupId, const RsGxsMessageId &msgId, const QString &title); + virtual void openComments(uint32_t type, const RsGxsGroupId &groupId, const QVector &versions, const RsGxsMessageId &msgId, const QString &title); static void testFeeds(uint notifyFlags); static void testFeed(FeedNotify *feedNotify); diff --git a/retroshare-gui/src/gui/Posted/PostedItem.cpp b/retroshare-gui/src/gui/Posted/PostedItem.cpp index 8541e2c3e..d26b1e5c8 100644 --- a/retroshare-gui/src/gui/Posted/PostedItem.cpp +++ b/retroshare-gui/src/gui/Posted/PostedItem.cpp @@ -411,7 +411,13 @@ void PostedItem::loadComments() if (mFeedHolder) { QString title = QString::fromUtf8(mPost.mMeta.mMsgName.c_str()); - mFeedHolder->openComments(0, mPost.mMeta.mGroupId, mPost.mMeta.mMsgId, title); + +#warning (csoler) Posted item versions not handled yet. When it is the case, start here. + + QVector post_versions ; + post_versions.push_back(mPost.mMeta.mMsgId) ; + + mFeedHolder->openComments(0, mPost.mMeta.mGroupId, post_versions,mPost.mMeta.mMsgId, title); } } diff --git a/retroshare-gui/src/gui/Posted/PostedListWidget.cpp b/retroshare-gui/src/gui/Posted/PostedListWidget.cpp index a333d3fbd..d321933eb 100644 --- a/retroshare-gui/src/gui/Posted/PostedListWidget.cpp +++ b/retroshare-gui/src/gui/Posted/PostedListWidget.cpp @@ -139,9 +139,9 @@ void PostedListWidget::openChat(const RsPeerId & /*peerId*/) return; } -void PostedListWidget::openComments(uint32_t /*feed_type*/, const RsGxsGroupId &groupId, const RsGxsMessageId &msgId, const QString &title) +void PostedListWidget::openComments(uint32_t /*feed_type*/, const RsGxsGroupId &groupId, const QVector &versions, const RsGxsMessageId &msgId, const QString &title) { - emit loadComment(groupId, msgId, title); + emit loadComment(groupId, versions,msgId, title); } void PostedListWidget::newPost() diff --git a/retroshare-gui/src/gui/Posted/PostedListWidget.h b/retroshare-gui/src/gui/Posted/PostedListWidget.h index be6c5411f..89f95e995 100644 --- a/retroshare-gui/src/gui/Posted/PostedListWidget.h +++ b/retroshare-gui/src/gui/Posted/PostedListWidget.h @@ -52,7 +52,7 @@ public: virtual QScrollArea *getScrollArea(); virtual void deleteFeedItem(QWidget *item, uint32_t type); virtual void openChat(const RsPeerId& peerId); - virtual void openComments(uint32_t type, const RsGxsGroupId &groupId, const RsGxsMessageId &msgId, const QString &title); + virtual void openComments(uint32_t type, const RsGxsGroupId &groupId, const QVector &versions, const RsGxsMessageId &msgId, const QString &title); /* GXS functions */ virtual void loadRequest(const TokenQueue *queue, const TokenRequest &req); diff --git a/retroshare-gui/src/gui/feeds/FeedHolder.h b/retroshare-gui/src/gui/feeds/FeedHolder.h index d39947bcc..44b07777b 100644 --- a/retroshare-gui/src/gui/feeds/FeedHolder.h +++ b/retroshare-gui/src/gui/feeds/FeedHolder.h @@ -37,7 +37,7 @@ public: virtual QScrollArea *getScrollArea() = 0; virtual void deleteFeedItem(QWidget *item, uint32_t type) = 0; virtual void openChat(const RsPeerId& peerId) = 0; - virtual void openComments(uint32_t type, const RsGxsGroupId &groupId, const RsGxsMessageId &msgId, const QString &title) = 0; + virtual void openComments(uint32_t type, const RsGxsGroupId &groupId, const QVector &msg_versions, const RsGxsMessageId &msgId, const QString &title)=0; // Workaround for QTBUG-3372 void lockLayout(QWidget *feedItem, bool lock); diff --git a/retroshare-gui/src/gui/gxs/GxsCommentContainer.cpp b/retroshare-gui/src/gui/gxs/GxsCommentContainer.cpp index 890ca75b7..9f62a0359 100644 --- a/retroshare-gui/src/gui/gxs/GxsCommentContainer.cpp +++ b/retroshare-gui/src/gui/gxs/GxsCommentContainer.cpp @@ -54,7 +54,7 @@ void GxsCommentContainer::setup() ui.tabWidget->hideCloseButton(index); } -void GxsCommentContainer::commentLoad(const RsGxsGroupId &grpId, const RsGxsMessageId &msgId, const QString &title) +void GxsCommentContainer::commentLoad(const RsGxsGroupId &grpId, const std::set& msg_versions,const RsGxsMessageId &msgId, const QString &title) { QString comments = title; if (title.length() > MAX_COMMENT_TITLE) @@ -68,7 +68,7 @@ void GxsCommentContainer::commentLoad(const RsGxsGroupId &grpId, const RsGxsMess QWidget *commentHeader = createHeaderWidget(grpId, msgId); commentDialog->setCommentHeader(commentHeader); - commentDialog->commentLoad(grpId, msgId); + commentDialog->commentLoad(grpId, msg_versions, msgId); ui.tabWidget->addTab(commentDialog, comments); } diff --git a/retroshare-gui/src/gui/gxs/GxsCommentContainer.h b/retroshare-gui/src/gui/gxs/GxsCommentContainer.h index 086aee640..6388891df 100644 --- a/retroshare-gui/src/gui/gxs/GxsCommentContainer.h +++ b/retroshare-gui/src/gui/gxs/GxsCommentContainer.h @@ -40,7 +40,7 @@ public: GxsCommentContainer(QWidget *parent = 0); void setup(); - void commentLoad(const RsGxsGroupId &grpId, const RsGxsMessageId &msgId, const QString &title); + void commentLoad(const RsGxsGroupId &grpId, const std::set &msg_versions, const RsGxsMessageId &msgId, const QString &title); virtual GxsServiceDialog *createServiceDialog() = 0; virtual QString getServiceName() = 0; @@ -67,9 +67,9 @@ public: virtual ~GxsServiceDialog() { return; } - void commentLoad(const RsGxsGroupId &grpId, const RsGxsMessageId &msgId, const QString &title) + void commentLoad(const RsGxsGroupId &grpId, const std::set& msg_versions,const RsGxsMessageId &msgId, const QString &title) { - mContainer->commentLoad(grpId, msgId, title); + mContainer->commentLoad(grpId, msg_versions,msgId, title); } private: diff --git a/retroshare-gui/src/gui/gxs/GxsCommentDialog.cpp b/retroshare-gui/src/gui/gxs/GxsCommentDialog.cpp index cb97584b9..f846abc97 100644 --- a/retroshare-gui/src/gui/gxs/GxsCommentDialog.cpp +++ b/retroshare-gui/src/gui/gxs/GxsCommentDialog.cpp @@ -59,20 +59,16 @@ GxsCommentDialog::~GxsCommentDialog() delete(ui); } -void GxsCommentDialog::commentLoad(const RsGxsGroupId &grpId, const RsGxsMessageId &msgId) +void GxsCommentDialog::commentLoad(const RsGxsGroupId &grpId, const std::set& msg_versions,const RsGxsMessageId& most_recent_msgId) { - std::cerr << "GxsCommentDialog::commentLoad(" << grpId << ", " << msgId << ")"; + std::cerr << "GxsCommentDialog::commentLoad(" << grpId << ", most recent msg version: " << most_recent_msgId << ")"; std::cerr << std::endl; mGrpId = grpId; - mMsgId = msgId; + mMostRecentMsgId = most_recent_msgId; + mMsgVersions = msg_versions; - RsGxsGrpMsgIdPair threadId; - - threadId.first = grpId; - threadId.second = msgId; - - ui->treeWidget->requestComments(threadId); + ui->treeWidget->requestComments(mGrpId,msg_versions,most_recent_msgId); } void GxsCommentDialog::refresh() @@ -80,7 +76,7 @@ void GxsCommentDialog::refresh() std::cerr << "GxsCommentDialog::refresh()"; std::cerr << std::endl; - commentLoad(mGrpId, mMsgId); + commentLoad(mGrpId, mMsgVersions,mMostRecentMsgId); } void GxsCommentDialog::idChooserReady() diff --git a/retroshare-gui/src/gui/gxs/GxsCommentDialog.h b/retroshare-gui/src/gui/gxs/GxsCommentDialog.h index 6edeb0948..7874168a3 100644 --- a/retroshare-gui/src/gui/gxs/GxsCommentDialog.h +++ b/retroshare-gui/src/gui/gxs/GxsCommentDialog.h @@ -39,10 +39,10 @@ public: virtual ~GxsCommentDialog(); void setCommentHeader(QWidget *header); - void commentLoad(const RsGxsGroupId &grpId, const RsGxsMessageId &msgId); + void commentLoad(const RsGxsGroupId &grpId, const std::set &msg_versions, const RsGxsMessageId &most_recent_msgId); RsGxsGroupId groupId() { return mGrpId; } - RsGxsMessageId messageId() { return mMsgId; } + RsGxsMessageId messageId() { return mMostRecentMsgId; } private slots: void refresh(); @@ -51,7 +51,8 @@ private slots: private: RsGxsGroupId mGrpId; - RsGxsMessageId mMsgId; + RsGxsMessageId mMostRecentMsgId; + std::set mMsgVersions; /* UI - from Designer */ Ui::GxsCommentDialog *ui; diff --git a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp index c9e930725..aabeb07c4 100644 --- a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp +++ b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp @@ -50,11 +50,13 @@ #define COMMENT_VOTE_ACK 0x001234 +#define POST_CELL_SIZE_ROLE (Qt::UserRole+1) +#define POST_COLOR_ROLE (Qt::UserRole+2) /* Images for context menu icons */ #define IMAGE_MESSAGE ":/images/folder-draft.png" -#define IMAGE_VOTEUP ":/images/vote_up.png" -#define IMAGE_VOTEDOWN ":/images/vote_down.png" +#define IMAGE_VOTEUP ":/images/vote_up.png" +#define IMAGE_VOTEDOWN ":/images/vote_down.png" // This class allows to draw the item using an appropriate size @@ -65,7 +67,7 @@ public: QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { - return index.data(Qt::UserRole+1).toSize() ; + return index.data(POST_CELL_SIZE_ROLE).toSize() ; } virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const @@ -99,7 +101,7 @@ public: path.addRoundedRect(QRectF(m/7.0,m/7.0,s.width()+m/2.0,s.height()+m/2.0),m,m) ; QPen pen(Qt::gray,m/7.0f); p.setPen(pen); - p.fillPath(path,QColor::fromHsv( index.data(Qt::UserRole+2).toInt()/255.0*360,40,200)); // Would be nice to vary the color according to the post author + p.fillPath(path,QColor::fromHsv( index.data(POST_COLOR_ROLE).toInt()/255.0*360,40,220)); // varies the color according to the post author p.drawPath(path); QAbstractTextDocumentLayout::PaintContext ctx; @@ -109,7 +111,7 @@ public: painter->drawPixmap(r.topLeft(),px); - const_cast(index.model())->setData(index,px.size(),Qt::UserRole+1); + const_cast(index.model())->setData(index,px.size(),POST_CELL_SIZE_ROLE); } private: @@ -152,14 +154,14 @@ GxsCommentTreeWidget::~GxsCommentTreeWidget() } } -void GxsCommentTreeWidget::setCurrentMsgId(QTreeWidgetItem *current, QTreeWidgetItem *previous) +void GxsCommentTreeWidget::setCurrentCommentMsgId(QTreeWidgetItem *current, QTreeWidgetItem *previous) { Q_UNUSED(previous); if(current) { - mCurrentMsgId = RsGxsMessageId(current->text(PCITEM_COLUMN_MSGID).toStdString()); + mCurrentCommentMsgId = RsGxsMessageId(current->text(PCITEM_COLUMN_MSGID).toStdString()); } } @@ -167,9 +169,9 @@ void GxsCommentTreeWidget::customPopUpMenu(const QPoint& /*point*/) { QMenu contextMnu( this ); QAction* action = contextMnu.addAction(QIcon(IMAGE_MESSAGE), tr("Reply to Comment"), this, SLOT(replyToComment())); - action->setDisabled(mCurrentMsgId.isNull()); + action->setDisabled(mCurrentCommentMsgId.isNull()); action = contextMnu.addAction(QIcon(IMAGE_MESSAGE), tr("Submit Comment"), this, SLOT(makeComment())); - action->setDisabled(mThreadId.first.isNull()); + action->setDisabled(mMsgVersions.empty()); contextMnu.addSeparator(); @@ -179,7 +181,7 @@ void GxsCommentTreeWidget::customPopUpMenu(const QPoint& /*point*/) action->setDisabled(mVoterId.isNull()); - if (!mCurrentMsgId.isNull()) + if (!mCurrentCommentMsgId.isNull()) { // not implemented yet /* @@ -205,7 +207,8 @@ void GxsCommentTreeWidget::voteUp() { std::cerr << "GxsCommentTreeWidget::voteUp()"; std::cerr << std::endl; - vote(mThreadId.first, mThreadId.second, mCurrentMsgId, mVoterId, true); + + vote(mGroupId, mLatestMsgId, mCurrentCommentMsgId, mVoterId, true); } @@ -213,7 +216,8 @@ void GxsCommentTreeWidget::voteDown() { std::cerr << "GxsCommentTreeWidget::voteDown()"; std::cerr << std::endl; - vote(mThreadId.first, mThreadId.second, mCurrentMsgId, mVoterId, false); + + vote(mGroupId, mLatestMsgId, mCurrentCommentMsgId, mVoterId, false); } void GxsCommentTreeWidget::setVoteId(const RsGxsId &voterId) @@ -283,16 +287,16 @@ void GxsCommentTreeWidget::banUser() void GxsCommentTreeWidget::makeComment() { - GxsCreateCommentDialog pcc(mTokenQueue, mCommentService, mThreadId, mThreadId.second, this); + GxsCreateCommentDialog pcc(mTokenQueue, mCommentService, std::make_pair(mGroupId,mLatestMsgId), mLatestMsgId, this); pcc.exec(); } void GxsCommentTreeWidget::replyToComment() { RsGxsGrpMsgIdPair msgId; - msgId.first = mThreadId.first; - msgId.second = mCurrentMsgId; - GxsCreateCommentDialog pcc(mTokenQueue, mCommentService, msgId, mThreadId.second, this); + msgId.first = mGroupId; + msgId.second = mCurrentCommentMsgId; + GxsCreateCommentDialog pcc(mTokenQueue, mCommentService, msgId, mLatestMsgId, this); pcc.exec(); } @@ -309,29 +313,37 @@ void GxsCommentTreeWidget::setup(RsTokenService *token_service, RsGxsCommentServ /* Load Comments */ -void GxsCommentTreeWidget::requestComments(const RsGxsGrpMsgIdPair& threadId) +void GxsCommentTreeWidget::requestComments(const RsGxsGroupId& group, const std::set& message_versions,const RsGxsMessageId& most_recent_message) { /* request comments */ - mThreadId = threadId; - service_requestComments(threadId); + mGroupId = group ; + mMsgVersions = message_versions ; + mLatestMsgId = most_recent_message; + + service_requestComments(group,message_versions); } -void GxsCommentTreeWidget::service_requestComments(const RsGxsGrpMsgIdPair& threadId) +void GxsCommentTreeWidget::service_requestComments(const RsGxsGroupId& group_id,const std::set & msgIds) { /* request comments */ - std::cerr << "GxsCommentTreeWidget::service_requestComments(" << threadId.second << ")"; - std::cerr << std::endl; + std::cerr << "GxsCommentTreeWidget::service_requestComments for group " << group_id << std::endl; + + std::vector ids_to_ask; + + for(std::set::const_iterator it(msgIds.begin());it!=msgIds.end();++it) + { + std::cerr << " asking for msg " << *it << std::endl; + + ids_to_ask.push_back(std::make_pair(group_id,*it)); + } RsTokReqOptions opts; opts.mReqType = GXS_REQUEST_TYPE_MSG_RELATED_DATA; opts.mOptions = RS_TOKREQOPT_MSG_THREAD | RS_TOKREQOPT_MSG_LATEST; - std::vector msgIds; - msgIds.push_back(threadId); - uint32_t token; - mTokenQueue->requestMsgRelatedInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, msgIds, GXSCOMMENTS_LOADTHREAD); + mTokenQueue->requestMsgRelatedInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, ids_to_ask, GXSCOMMENTS_LOADTHREAD); } @@ -384,7 +396,7 @@ void GxsCommentTreeWidget::completeItems() parent->addChild(pit->second); } - else if (parentId == mThreadId.second) + else if (mMsgVersions.find(parentId) != mMsgVersions.end()) { std::cerr << "GxsCommentTreeWidget::completeItems() Added to topLevelItems"; std::cerr << std::endl; @@ -458,7 +470,7 @@ void GxsCommentTreeWidget::acknowledgeComment(const uint32_t &token) mCommentService->acknowledgeComment(token, msgId); // simply reload data - service_requestComments(mThreadId); + service_requestComments(mGroupId,mMsgVersions); } @@ -468,7 +480,7 @@ void GxsCommentTreeWidget::acknowledgeVote(const uint32_t &token) if (mCommentService->acknowledgeVote(token, msgId)) { // reload data if vote was added. - service_requestComments(mThreadId); + service_requestComments(mGroupId,mMsgVersions); } } @@ -508,7 +520,7 @@ void GxsCommentTreeWidget::service_loadThread(const uint32_t &token) RsGxsId authorId = comment.mMeta.mAuthorId; item->setId(authorId, PCITEM_COLUMN_AUTHOR, false); - item->setData(PCITEM_COLUMN_COMMENT,Qt::UserRole+2,QVariant(authorId.toByteArray()[1])); + item->setData(PCITEM_COLUMN_COMMENT,POST_COLOR_ROLE,QVariant(authorId.toByteArray()[1])); text = QString::number(comment.mScore); item->setText(PCITEM_COLUMN_SCORE, text); diff --git a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.h b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.h index e9f87bce6..dcc2db991 100644 --- a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.h +++ b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.h @@ -39,7 +39,7 @@ public: ~GxsCommentTreeWidget(); void setup(RsTokenService *token_service, RsGxsCommentService *comment_service); - void requestComments(const RsGxsGrpMsgIdPair& threadId); + void requestComments(const RsGxsGroupId& group, const std::set &message_versions, const RsGxsMessageId &most_recent_message); void getCurrentMsgId(RsGxsMessageId& parentId); void applyRankings(std::map& positions); @@ -49,7 +49,7 @@ public: protected: /* to be overloaded */ - virtual void service_requestComments(const RsGxsGrpMsgIdPair& threadId); + virtual void service_requestComments(const RsGxsGroupId &group_id, const std::set &msgIds); virtual void service_loadThread(const uint32_t &token); virtual QTreeWidgetItem *service_createMissingItem(const RsGxsMessageId& parent); @@ -65,7 +65,7 @@ protected: public slots: void customPopUpMenu(const QPoint& point); - void setCurrentMsgId(QTreeWidgetItem* current, QTreeWidgetItem* previous); + void setCurrentCommentMsgId(QTreeWidgetItem* current, QTreeWidgetItem* previous); void makeComment(); @@ -85,8 +85,10 @@ protected: const RsGxsMessageId &parentId, const RsGxsId &authorId, bool up); /* Data */ - RsGxsGrpMsgIdPair mThreadId; - RsGxsMessageId mCurrentMsgId; + RsGxsGroupId mGroupId; + std::set mMsgVersions; + RsGxsMessageId mLatestMsgId; + RsGxsMessageId mCurrentCommentMsgId; RsGxsId mVoterId; std::map mLoadingMap; diff --git a/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.cpp b/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.cpp index 6ab4ca165..8ae997eab 100644 --- a/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.cpp +++ b/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.cpp @@ -525,7 +525,7 @@ void GxsGroupFrameDialog::sharePublishKey() shareUi.exec(); } -void GxsGroupFrameDialog::loadComment(const RsGxsGroupId &grpId, const RsGxsMessageId &msgId, const QString &title) +void GxsGroupFrameDialog::loadComment(const RsGxsGroupId &grpId, const QVector& msg_versions, const RsGxsMessageId &most_recent_msgId, const QString &title) { RsGxsCommentService *commentService = getCommentService(); if (!commentService) { @@ -533,7 +533,8 @@ void GxsGroupFrameDialog::loadComment(const RsGxsGroupId &grpId, const RsGxsMess return; } - GxsCommentDialog *commentDialog = commentWidget(msgId); + GxsCommentDialog *commentDialog = commentWidget(most_recent_msgId); + if (!commentDialog) { QString comments = title; if (title.length() > MAX_COMMENT_TITLE) @@ -544,12 +545,16 @@ void GxsGroupFrameDialog::loadComment(const RsGxsGroupId &grpId, const RsGxsMess commentDialog = new GxsCommentDialog(this, mInterface->getTokenService(), commentService); - QWidget *commentHeader = createCommentHeaderWidget(grpId, msgId); + QWidget *commentHeader = createCommentHeaderWidget(grpId, most_recent_msgId); if (commentHeader) { commentDialog->setCommentHeader(commentHeader); } - commentDialog->commentLoad(grpId, msgId); + std::set msgv; + for(int i=0;icommentLoad(grpId, msgv,most_recent_msgId); int index = ui->messageTabWidget->addTab(commentDialog, comments); ui->messageTabWidget->setTabIcon(index, QIcon(IMAGE_COMMENT)); @@ -620,12 +625,12 @@ GxsMessageFrameWidget *GxsGroupFrameDialog::createMessageWidget(const RsGxsGroup connect(msgWidget, SIGNAL(groupChanged(QWidget*)), this, SLOT(messageTabInfoChanged(QWidget*))); connect(msgWidget, SIGNAL(waitingChanged(QWidget*)), this, SLOT(messageTabWaitingChanged(QWidget*))); - connect(msgWidget, SIGNAL(loadComment(RsGxsGroupId,RsGxsMessageId,QString)), this, SLOT(loadComment(RsGxsGroupId,RsGxsMessageId,QString))); + connect(msgWidget, SIGNAL(loadComment(RsGxsGroupId,QVector,RsGxsMessageId,QString)), this, SLOT(loadComment(RsGxsGroupId,QVector,RsGxsMessageId,QString))); return msgWidget; } -GxsCommentDialog *GxsGroupFrameDialog::commentWidget(const RsGxsMessageId &msgId) +GxsCommentDialog *GxsGroupFrameDialog::commentWidget(const RsGxsMessageId& msgId) { int tabCount = ui->messageTabWidget->count(); for (int index = 0; index < tabCount; ++index) { diff --git a/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.h b/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.h index 3b74b8214..8138cc1e1 100644 --- a/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.h +++ b/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.h @@ -126,7 +126,7 @@ private slots: void sharePublishKey(); - void loadComment(const RsGxsGroupId &grpId, const RsGxsMessageId &msgId, const QString &title); + void loadComment(const RsGxsGroupId &grpId, const QVector& msg_versions,const RsGxsMessageId &most_recent_msgId, const QString &title); private: virtual QString text(TextType type) = 0; diff --git a/retroshare-gui/src/gui/gxs/GxsMessageFrameWidget.h b/retroshare-gui/src/gui/gxs/GxsMessageFrameWidget.h index d604be716..71d0ae2a1 100644 --- a/retroshare-gui/src/gui/gxs/GxsMessageFrameWidget.h +++ b/retroshare-gui/src/gui/gxs/GxsMessageFrameWidget.h @@ -54,7 +54,7 @@ public: signals: void groupChanged(QWidget *widget); void waitingChanged(QWidget *widget); - void loadComment(const RsGxsGroupId &groupId, const RsGxsMessageId &msgId, const QString &title); + void loadComment(const RsGxsGroupId &groupId, const QVector& msg_versions,const RsGxsMessageId &msgId, const QString &title); protected: virtual void setAllMessagesReadDo(bool read, uint32_t &token) = 0; diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidget.cpp b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidget.cpp index bae5cfee4..c3e6fe731 100644 --- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidget.cpp +++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidget.cpp @@ -207,9 +207,9 @@ void GxsChannelPostsWidget::openChat(const RsPeerId & /*peerId*/) } // Callback from Widget->FeedHolder->ServiceDialog->CommentContainer->CommentDialog, -void GxsChannelPostsWidget::openComments(uint32_t /*type*/, const RsGxsGroupId &groupId, const RsGxsMessageId &msgId, const QString &title) +void GxsChannelPostsWidget::openComments(uint32_t /*type*/, const RsGxsGroupId &groupId, const QVector& msg_versions,const RsGxsMessageId &msgId, const QString &title) { - emit loadComment(groupId, msgId, title); + emit loadComment(groupId, msg_versions,msgId, title); } void GxsChannelPostsWidget::createMsg() diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidget.h b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidget.h index 541fcc506..ddeb474a0 100644 --- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidget.h +++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidget.h @@ -61,7 +61,7 @@ public: virtual QScrollArea *getScrollArea(); virtual void deleteFeedItem(QWidget *item, uint32_t type); virtual void openChat(const RsPeerId& peerId); - virtual void openComments(uint32_t type, const RsGxsGroupId &groupId, const RsGxsMessageId &msgId, const QString &title); + virtual void openComments(uint32_t type, const RsGxsGroupId &groupId, const QVector &msg_versions, const RsGxsMessageId &msgId, const QString &title); protected: /* GxsMessageFramePostWidget */