Switched retrieve of posts in GxsMessageFramePostWidget from "requestMsgRelatedInfo" to "requestMsgInfo".

This commit is contained in:
thunder2 2015-08-13 15:22:48 +02:00
parent b1101ed429
commit 4095d9d5c9
6 changed files with 70 additions and 73 deletions

View File

@ -44,14 +44,14 @@ PostedListWidget::PostedListWidget(const RsGxsGroupId &postedId, QWidget *parent
ui->setupUi(this); ui->setupUi(this);
/* Setup UI helper */ /* Setup UI helper */
mStateHelper->addWidget(mTokenTypeAllPosts, ui->hotSortButton);
mStateHelper->addWidget(mTokenTypeAllPosts, ui->newSortButton);
mStateHelper->addWidget(mTokenTypeAllPosts, ui->topSortButton);
mStateHelper->addWidget(mTokenTypePosts, ui->hotSortButton); mStateHelper->addWidget(mTokenTypePosts, ui->hotSortButton);
mStateHelper->addWidget(mTokenTypePosts, ui->newSortButton); mStateHelper->addWidget(mTokenTypePosts, ui->newSortButton);
mStateHelper->addWidget(mTokenTypePosts, ui->topSortButton); mStateHelper->addWidget(mTokenTypePosts, ui->topSortButton);
mStateHelper->addWidget(mTokenTypeRelatedPosts, ui->hotSortButton);
mStateHelper->addWidget(mTokenTypeRelatedPosts, ui->newSortButton);
mStateHelper->addWidget(mTokenTypeRelatedPosts, ui->topSortButton);
mStateHelper->addWidget(mTokenTypeGroupData, ui->submitPostButton); mStateHelper->addWidget(mTokenTypeGroupData, ui->submitPostButton);
mStateHelper->addWidget(mTokenTypeGroupData, ui->subscribeToolButton); mStateHelper->addWidget(mTokenTypeGroupData, ui->subscribeToolButton);
@ -107,7 +107,7 @@ void PostedListWidget::processSettings(bool /*load*/)
QIcon PostedListWidget::groupIcon() QIcon PostedListWidget::groupIcon()
{ {
if (mStateHelper->isLoading(mTokenTypeGroupData) || mStateHelper->isLoading(mTokenTypePosts)) { if (mStateHelper->isLoading(mTokenTypeGroupData) || mStateHelper->isLoading(mTokenTypeAllPosts)) {
// return QIcon(":/images/kalarm.png"); // return QIcon(":/images/kalarm.png");
} }
@ -526,7 +526,7 @@ bool PostedListWidget::insertGroupData(const uint32_t &token, RsGroupMetaData &m
return false; return false;
} }
void PostedListWidget::insertPosts(const uint32_t &token, GxsMessageFramePostThread */*thread*/) void PostedListWidget::insertAllPosts(const uint32_t &token, GxsMessageFramePostThread */*thread*/)
{ {
std::vector<RsPostedPost> posts; std::vector<RsPostedPost> posts;
rsPosted->getPostData(token, posts); rsPosted->getPostData(token, posts);
@ -541,10 +541,10 @@ void PostedListWidget::insertPosts(const uint32_t &token, GxsMessageFramePostThr
applyRanking(); applyRanking();
} }
void PostedListWidget::insertRelatedPosts(const uint32_t &token) void PostedListWidget::insertPosts(const uint32_t &token)
{ {
std::vector<RsPostedPost> posts; std::vector<RsPostedPost> posts;
rsPosted->getRelatedPosts(token, posts); rsPosted->getPostData(token, posts);
std::vector<RsPostedPost>::iterator vit; std::vector<RsPostedPost>::iterator vit;
for(vit = posts.begin(); vit != posts.end(); ++vit) for(vit = posts.begin(); vit != posts.end(); ++vit)

View File

@ -60,8 +60,8 @@ public:
protected: protected:
/* GxsMessageFramePostWidget */ /* GxsMessageFramePostWidget */
virtual bool insertGroupData(const uint32_t &token, RsGroupMetaData &metaData); virtual bool insertGroupData(const uint32_t &token, RsGroupMetaData &metaData);
virtual void insertPosts(const uint32_t &token, GxsMessageFramePostThread *thread); virtual void insertAllPosts(const uint32_t &token, GxsMessageFramePostThread *thread);
virtual void insertRelatedPosts(const uint32_t &token); virtual void insertPosts(const uint32_t &token);
virtual void clearPosts(); virtual void clearPosts();
virtual bool navigatePostItem(const RsGxsMessageId& msgId); virtual bool navigatePostItem(const RsGxsMessageId& msgId);

View File

@ -36,8 +36,8 @@ GxsMessageFramePostWidget::GxsMessageFramePostWidget(RsGxsIfaceHelper *ifaceImpl
mFillThread = NULL; mFillThread = NULL;
mTokenTypeGroupData = nextTokenType(); mTokenTypeGroupData = nextTokenType();
mTokenTypeAllPosts = nextTokenType();
mTokenTypePosts = nextTokenType(); mTokenTypePosts = nextTokenType();
mTokenTypeRelatedPosts = nextTokenType();
} }
GxsMessageFramePostWidget::~GxsMessageFramePostWidget() GxsMessageFramePostWidget::~GxsMessageFramePostWidget()
@ -76,7 +76,7 @@ bool GxsMessageFramePostWidget::navigate(const RsGxsMessageId &msgId)
return false; return false;
} }
if (mStateHelper->isLoading(mTokenTypePosts) || mStateHelper->isLoading(mTokenTypeRelatedPosts)) { if (mStateHelper->isLoading(mTokenTypeAllPosts) || mStateHelper->isLoading(mTokenTypePosts)) {
mNavigatePendingMsgId = msgId; mNavigatePendingMsgId = msgId;
/* No information if group is available */ /* No information if group is available */
@ -88,7 +88,7 @@ bool GxsMessageFramePostWidget::navigate(const RsGxsMessageId &msgId)
bool GxsMessageFramePostWidget::isLoading() bool GxsMessageFramePostWidget::isLoading()
{ {
if (mStateHelper->isLoading(mTokenTypePosts) || mStateHelper->isLoading(mTokenTypeRelatedPosts)) { if (mStateHelper->isLoading(mTokenTypeAllPosts) || mStateHelper->isLoading(mTokenTypePosts)) {
return true; return true;
} }
@ -100,7 +100,7 @@ void GxsMessageFramePostWidget::updateDisplay(bool complete)
if (complete) { if (complete) {
/* Fill complete */ /* Fill complete */
requestGroupData(); requestGroupData();
requestPosts(); requestAllPosts();
return; return;
} }
@ -118,14 +118,14 @@ void GxsMessageFramePostWidget::updateDisplay(bool complete)
if (!groupId().isNull() && std::find(grpIds.begin(), grpIds.end(), groupId()) != grpIds.end()) { if (!groupId().isNull() && std::find(grpIds.begin(), grpIds.end(), groupId()) != grpIds.end()) {
updateGroup = true; updateGroup = true;
/* Do we need to fill all posts? */ /* Do we need to fill all posts? */
requestPosts(); requestAllPosts();
} else { } else {
std::map<RsGxsGroupId, std::vector<RsGxsMessageId> > msgs; std::map<RsGxsGroupId, std::vector<RsGxsMessageId> > msgs;
getAllMsgIds(msgs); getAllMsgIds(msgs);
if (!msgs.empty()) { if (!msgs.empty()) {
std::map<RsGxsGroupId, std::vector<RsGxsMessageId> >::const_iterator mit = msgs.find(groupId()); std::map<RsGxsGroupId, std::vector<RsGxsMessageId> >::const_iterator mit = msgs.find(groupId());
if (mit != msgs.end()) { if (mit != msgs.end()) {
requestRelatedPosts(mit->second); requestPosts(mit->second);
} }
} }
} }
@ -155,7 +155,7 @@ void GxsMessageFramePostWidget::fillThreadFinished()
/* Current thread has finished */ /* Current thread has finished */
mFillThread = NULL; mFillThread = NULL;
mStateHelper->setLoading(mTokenTypePosts, false); mStateHelper->setLoading(mTokenTypeAllPosts, false);
emit groupChanged(this); emit groupChanged(this);
if (!mNavigatePendingMsgId.isNull()) { if (!mNavigatePendingMsgId.isNull()) {
@ -258,10 +258,10 @@ void GxsMessageFramePostWidget::loadGroupData(const uint32_t &token)
emit groupChanged(this); emit groupChanged(this);
} }
void GxsMessageFramePostWidget::requestPosts() void GxsMessageFramePostWidget::requestAllPosts()
{ {
#ifdef ENABLE_DEBUG #ifdef ENABLE_DEBUG
std::cerr << "GxsMessageFramePostWidget::requestPosts()"; std::cerr << "GxsMessageFramePostWidget::requestAllPosts()";
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
@ -269,7 +269,7 @@ void GxsMessageFramePostWidget::requestPosts()
/* Request all posts */ /* Request all posts */
mTokenQueue->cancelActiveRequestTokens(mTokenTypePosts); mTokenQueue->cancelActiveRequestTokens(mTokenTypeAllPosts);
if (mFillThread) { if (mFillThread) {
/* Stop current fill thread */ /* Stop current fill thread */
@ -277,20 +277,20 @@ void GxsMessageFramePostWidget::requestPosts()
mFillThread = NULL; mFillThread = NULL;
thread->stop(false); thread->stop(false);
mStateHelper->setLoading(mTokenTypePosts, false); mStateHelper->setLoading(mTokenTypeAllPosts, false);
} }
clearPosts(); clearPosts();
if (groupId().isNull()) { if (groupId().isNull()) {
mStateHelper->setActive(mTokenTypePosts, false); mStateHelper->setActive(mTokenTypeAllPosts, false);
mStateHelper->setLoading(mTokenTypePosts, false); mStateHelper->setLoading(mTokenTypeAllPosts, false);
mStateHelper->clear(mTokenTypePosts); mStateHelper->clear(mTokenTypeAllPosts);
emit groupChanged(this); emit groupChanged(this);
return; return;
} }
mStateHelper->setLoading(mTokenTypePosts, true); mStateHelper->setLoading(mTokenTypeAllPosts, true);
emit groupChanged(this); emit groupChanged(this);
std::list<RsGxsGroupId> groupIds; std::list<RsGxsGroupId> groupIds;
@ -300,17 +300,17 @@ void GxsMessageFramePostWidget::requestPosts()
opts.mReqType = GXS_REQUEST_TYPE_MSG_DATA; opts.mReqType = GXS_REQUEST_TYPE_MSG_DATA;
uint32_t token; uint32_t token;
mTokenQueue->requestMsgInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, groupIds, mTokenTypePosts); mTokenQueue->requestMsgInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, groupIds, mTokenTypeAllPosts);
} }
void GxsMessageFramePostWidget::loadPosts(const uint32_t &token) void GxsMessageFramePostWidget::loadAllPosts(const uint32_t &token)
{ {
#ifdef ENABLE_DEBUG #ifdef ENABLE_DEBUG
std::cerr << "GxsMessageFramePostWidget::loadPosts()"; std::cerr << "GxsMessageFramePostWidget::loadAllPosts()";
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
mStateHelper->setActive(mTokenTypePosts, true); mStateHelper->setActive(mTokenTypeAllPosts, true);
if (useThread()) { if (useThread()) {
/* Create fill thread */ /* Create fill thread */
@ -321,15 +321,15 @@ void GxsMessageFramePostWidget::loadPosts(const uint32_t &token)
connect(mFillThread, SIGNAL(addPost(QVariant,bool,int,int)), this, SLOT(fillThreadAddPost(QVariant,bool,int,int)), Qt::BlockingQueuedConnection); connect(mFillThread, SIGNAL(addPost(QVariant,bool,int,int)), this, SLOT(fillThreadAddPost(QVariant,bool,int,int)), Qt::BlockingQueuedConnection);
#ifdef ENABLE_DEBUG #ifdef ENABLE_DEBUG
std::cerr << "GxsMessageFramePostWidget::loadPosts() Start fill thread" << std::endl; std::cerr << "GxsMessageFramePostWidget::loadAllPosts() Start fill thread" << std::endl;
#endif #endif
/* Start thread */ /* Start thread */
mFillThread->start(); mFillThread->start();
} else { } else {
insertPosts(token, NULL); insertAllPosts(token, NULL);
mStateHelper->setLoading(mTokenTypePosts, false); mStateHelper->setLoading(mTokenTypeAllPosts, false);
if (!mNavigatePendingMsgId.isNull()) { if (!mNavigatePendingMsgId.isNull()) {
navigate(mNavigatePendingMsgId); navigate(mNavigatePendingMsgId);
@ -341,21 +341,21 @@ void GxsMessageFramePostWidget::loadPosts(const uint32_t &token)
emit groupChanged(this); emit groupChanged(this);
} }
void GxsMessageFramePostWidget::requestRelatedPosts(const std::vector<RsGxsMessageId> &msgIds) void GxsMessageFramePostWidget::requestPosts(const std::vector<RsGxsMessageId> &msgIds)
{ {
#ifdef ENABLE_DEBUG #ifdef ENABLE_DEBUG
std::cerr << "GxsMessageFramePostWidget::requestRelatedPosts()"; std::cerr << "GxsMessageFramePostWidget::requestPosts()";
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
mNavigatePendingMsgId.clear(); mNavigatePendingMsgId.clear();
mTokenQueue->cancelActiveRequestTokens(mTokenTypeRelatedPosts); mTokenQueue->cancelActiveRequestTokens(mTokenTypePosts);
if (groupId().isNull()) { if (groupId().isNull()) {
mStateHelper->setActive(mTokenTypeRelatedPosts, false); mStateHelper->setActive(mTokenTypePosts, false);
mStateHelper->setLoading(mTokenTypeRelatedPosts, false); mStateHelper->setLoading(mTokenTypePosts, false);
mStateHelper->clear(mTokenTypeRelatedPosts); mStateHelper->clear(mTokenTypePosts);
emit groupChanged(this); emit groupChanged(this);
return; return;
} }
@ -364,33 +364,30 @@ void GxsMessageFramePostWidget::requestRelatedPosts(const std::vector<RsGxsMessa
return; return;
} }
mStateHelper->setLoading(mTokenTypeRelatedPosts, true); mStateHelper->setLoading(mTokenTypePosts, true);
emit groupChanged(this); emit groupChanged(this);
RsTokReqOptions opts; RsTokReqOptions opts;
opts.mReqType = GXS_REQUEST_TYPE_MSG_RELATED_DATA; opts.mReqType = GXS_REQUEST_TYPE_MSG_DATA;
opts.mOptions = RS_TOKREQOPT_MSG_VERSIONS;
uint32_t token; uint32_t token;
std::vector<RsGxsGrpMsgIdPair> relatedMsgIds; GxsMsgReq requestMsgIds;
for (std::vector<RsGxsMessageId>::const_iterator msgIt = msgIds.begin(); msgIt != msgIds.end(); ++msgIt) { requestMsgIds[groupId()] = msgIds;
relatedMsgIds.push_back(RsGxsGrpMsgIdPair(groupId(), *msgIt)); mTokenQueue->requestMsgInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, requestMsgIds, mTokenTypePosts);
}
mTokenQueue->requestMsgRelatedInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, relatedMsgIds, mTokenTypeRelatedPosts);
} }
void GxsMessageFramePostWidget::loadRelatedPosts(const uint32_t &token) void GxsMessageFramePostWidget::loadPosts(const uint32_t &token)
{ {
#ifdef ENABLE_DEBUG #ifdef ENABLE_DEBUG
std::cerr << "GxsMessageFramePostWidget::loadRelatedPosts()"; std::cerr << "GxsMessageFramePostWidget::loadPosts()";
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
mStateHelper->setActive(mTokenTypeRelatedPosts, true); mStateHelper->setActive(mTokenTypePosts, true);
insertRelatedPosts(token); insertPosts(token);
mStateHelper->setLoading(mTokenTypeRelatedPosts, false); mStateHelper->setLoading(mTokenTypePosts, false);
emit groupChanged(this); emit groupChanged(this);
if (!mNavigatePendingMsgId.isNull()) { if (!mNavigatePendingMsgId.isNull()) {
@ -414,13 +411,13 @@ void GxsMessageFramePostWidget::loadRequest(const TokenQueue *queue, const Token
return; return;
} }
if (req.mUserType == mTokenTypePosts) { if (req.mUserType == mTokenTypeAllPosts) {
loadPosts(req.mToken); loadAllPosts(req.mToken);
return; return;
} }
if (req.mUserType == mTokenTypeRelatedPosts) { if (req.mUserType == mTokenTypePosts) {
loadRelatedPosts(req.mToken); loadPosts(req.mToken);
return; return;
} }
} }
@ -465,7 +462,7 @@ void GxsMessageFramePostThread::run()
std::cerr << "GxsMessageFramePostThread::run()" << std::endl; std::cerr << "GxsMessageFramePostThread::run()" << std::endl;
#endif #endif
mParent->insertPosts(mToken, this); mParent->insertAllPosts(mToken, this);
#ifdef ENABLE_DEBUG #ifdef ENABLE_DEBUG
std::cerr << "GxsMessageFramePostThread::run() stopped: " << (stopped() ? "yes" : "no") << std::endl; std::cerr << "GxsMessageFramePostThread::run() stopped: " << (stopped() ? "yes" : "no") << std::endl;

View File

@ -68,13 +68,13 @@ protected:
void loadGroupData(const uint32_t &token); void loadGroupData(const uint32_t &token);
virtual bool insertGroupData(const uint32_t &token, RsGroupMetaData &metaData) = 0; virtual bool insertGroupData(const uint32_t &token, RsGroupMetaData &metaData) = 0;
void requestPosts(); void requestAllPosts();
void loadPosts(const uint32_t &token); void loadAllPosts(const uint32_t &token);
virtual void insertPosts(const uint32_t &token, GxsMessageFramePostThread *thread) = 0; virtual void insertAllPosts(const uint32_t &token, GxsMessageFramePostThread *thread) = 0;
void requestRelatedPosts(const std::vector<RsGxsMessageId> &msgIds); void requestPosts(const std::vector<RsGxsMessageId> &msgIds);
void loadRelatedPosts(const uint32_t &token); void loadPosts(const uint32_t &token);
virtual void insertRelatedPosts(const uint32_t &token) = 0; virtual void insertPosts(const uint32_t &token) = 0;
private slots: private slots:
void fillThreadFinished(); void fillThreadFinished();
@ -82,8 +82,8 @@ private slots:
protected: protected:
uint32_t mTokenTypeGroupData; uint32_t mTokenTypeGroupData;
uint32_t mTokenTypeAllPosts;
uint32_t mTokenTypePosts; uint32_t mTokenTypePosts;
uint32_t mTokenTypeRelatedPosts;
RsGxsMessageId mNavigatePendingMsgId; RsGxsMessageId mNavigatePendingMsgId;
private: private:

View File

@ -55,11 +55,11 @@ GxsChannelPostsWidget::GxsChannelPostsWidget(const RsGxsGroupId &channelId, QWid
/* Setup UI helper */ /* Setup UI helper */
mStateHelper->addWidget(mTokenTypePosts, ui->progressBar, UISTATE_LOADING_VISIBLE); mStateHelper->addWidget(mTokenTypeAllPosts, ui->progressBar, UISTATE_LOADING_VISIBLE);
mStateHelper->addWidget(mTokenTypePosts, ui->loadingLabel, UISTATE_LOADING_VISIBLE); mStateHelper->addWidget(mTokenTypeAllPosts, ui->loadingLabel, UISTATE_LOADING_VISIBLE);
mStateHelper->addWidget(mTokenTypePosts, ui->filterLineEdit); mStateHelper->addWidget(mTokenTypeAllPosts, ui->filterLineEdit);
mStateHelper->addWidget(mTokenTypeRelatedPosts, ui->loadingLabel, UISTATE_LOADING_VISIBLE); mStateHelper->addWidget(mTokenTypePosts, ui->loadingLabel, UISTATE_LOADING_VISIBLE);
mStateHelper->addLoadPlaceholder(mTokenTypeGroupData, ui->nameLabel); mStateHelper->addLoadPlaceholder(mTokenTypeGroupData, ui->nameLabel);
@ -175,7 +175,7 @@ void GxsChannelPostsWidget::groupNameChanged(const QString &name)
QIcon GxsChannelPostsWidget::groupIcon() QIcon GxsChannelPostsWidget::groupIcon()
{ {
if (mStateHelper->isLoading(mTokenTypeGroupData) || mStateHelper->isLoading(mTokenTypePosts)) { if (mStateHelper->isLoading(mTokenTypeGroupData) || mStateHelper->isLoading(mTokenTypeAllPosts)) {
return QIcon(":/images/kalarm.png"); return QIcon(":/images/kalarm.png");
} }
@ -488,7 +488,7 @@ bool GxsChannelPostsWidget::insertGroupData(const uint32_t &token, RsGroupMetaDa
return false; return false;
} }
void GxsChannelPostsWidget::insertPosts(const uint32_t &token, GxsMessageFramePostThread *thread) void GxsChannelPostsWidget::insertAllPosts(const uint32_t &token, GxsMessageFramePostThread *thread)
{ {
std::vector<RsGxsChannelPost> posts; std::vector<RsGxsChannelPost> posts;
rsGxsChannels->getPostData(token, posts); rsGxsChannels->getPostData(token, posts);
@ -496,10 +496,10 @@ void GxsChannelPostsWidget::insertPosts(const uint32_t &token, GxsMessageFramePo
insertChannelPosts(posts, thread, false); insertChannelPosts(posts, thread, false);
} }
void GxsChannelPostsWidget::insertRelatedPosts(const uint32_t &token) void GxsChannelPostsWidget::insertPosts(const uint32_t &token)
{ {
std::vector<RsGxsChannelPost> posts; std::vector<RsGxsChannelPost> posts;
rsGxsChannels->getRelatedPosts(token, posts); rsGxsChannels->getPostData(token, posts);
insertChannelPosts(posts, NULL, true); insertChannelPosts(posts, NULL, true);
} }

View File

@ -67,8 +67,8 @@ protected:
/* GxsMessageFramePostWidget */ /* GxsMessageFramePostWidget */
virtual void groupNameChanged(const QString &name); virtual void groupNameChanged(const QString &name);
virtual bool insertGroupData(const uint32_t &token, RsGroupMetaData &metaData); virtual bool insertGroupData(const uint32_t &token, RsGroupMetaData &metaData);
virtual void insertPosts(const uint32_t &token, GxsMessageFramePostThread *thread); virtual void insertAllPosts(const uint32_t &token, GxsMessageFramePostThread *thread);
virtual void insertRelatedPosts(const uint32_t &token); virtual void insertPosts(const uint32_t &token);
virtual void clearPosts(); virtual void clearPosts();
virtual bool useThread() { return mUseThread; } virtual bool useThread() { return mUseThread; }
virtual void fillThreadCreatePost(const QVariant &post, bool related, int current, int count); virtual void fillThreadCreatePost(const QVariant &post, bool related, int current, int count);