mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-12-26 16:09:35 -05:00
fixed re-load of GXS groups (forums/channels) when the read flag is changed
This commit is contained in:
parent
6805875333
commit
79e676edbe
@ -2010,7 +2010,7 @@ void RsGenExchange::processMsgMetaChanges()
|
||||
|
||||
if (!msgIds.empty()) {
|
||||
RS_STACK_MUTEX(mGenMtx);
|
||||
RsGxsMsgChange* c = new RsGxsMsgChange(RsGxsNotify::TYPE_PROCESSED, true);
|
||||
RsGxsMsgChange* c = new RsGxsMsgChange(RsGxsNotify::TYPE_PROCESSED, false);
|
||||
c->msgChangeMap = msgIds;
|
||||
mNotifications.push_back(c);
|
||||
}
|
||||
|
@ -218,8 +218,7 @@ RsGenExchange::ServiceCreate_Return p3GxsChannels::service_CreateGroup(RsGxsGrpI
|
||||
void p3GxsChannels::notifyChanges(std::vector<RsGxsNotify *> &changes)
|
||||
{
|
||||
#ifdef GXSCHANNELS_DEBUG
|
||||
std::cerr << "p3GxsChannels::notifyChanges()";
|
||||
std::cerr << std::endl;
|
||||
std::cerr << "p3GxsChannels::notifyChanges() : " << changes.size() << "changes to notify" << std::endl;
|
||||
#endif
|
||||
|
||||
p3Notify *notify = NULL;
|
||||
|
@ -68,7 +68,13 @@ void RsGxsUpdateBroadcastBase::updateBroadcastChanged()
|
||||
/* Update only update when the widget is visible. */
|
||||
if (mUpdateWhenInvisible || !widget || widget->isVisible()) {
|
||||
|
||||
if (!mGrpIds.empty() || !mGrpIdsMeta.empty() || !mMsgIds.empty() || !mMsgIdsMeta.empty())
|
||||
// (cyril) Re-load the entire group is new messages are here, or if group metadata has changed (e.g. visibility permissions, admin rights, etc).
|
||||
// Do not re-load if Msg data has changed, which means basically the READ flag has changed, because this action is done in the UI in the
|
||||
// first place so there's no need to re-update the UI once this is done.
|
||||
//
|
||||
// The question to whether we should re=load when mGrpIds is not empty is still open. It's not harmful anyway.
|
||||
|
||||
if (!mGrpIds.empty() || !mGrpIdsMeta.empty() /*|| !mMsgIds.empty()*/ || !mMsgIdsMeta.empty())
|
||||
mFillComplete = true ;
|
||||
|
||||
securedUpdateDisplay();
|
||||
|
@ -45,20 +45,21 @@ RsGxsUpdateBroadcast *RsGxsUpdateBroadcast::get(RsGxsIfaceHelper *ifaceImpl)
|
||||
|
||||
void RsGxsUpdateBroadcast::onChangesReceived(const RsGxsChanges& changes)
|
||||
{
|
||||
#ifdef DEBUG_GXS_BROADCAST
|
||||
#ifndef DEBUG_GXS_BROADCAST
|
||||
std::cerr << "onChangesReceived()" << std::endl;
|
||||
|
||||
{
|
||||
std::cerr << "Received changes for service " << (void*)changes.mService << ", expecting service " << (void*)mIfaceImpl->getTokenService() << std::endl;
|
||||
std::cerr << " changes content: " << std::endl;
|
||||
for(std::list<RsGxsGroupId>::const_iterator it(changes.mGrps.begin());it!=changes.mGrps.end();++it) std::cerr << " grp id: " << *it << std::endl;
|
||||
for(std::list<RsGxsGroupId>::const_iterator it(changes.mGrpsMeta.begin());it!=changes.mGrpsMeta.end();++it) std::cerr << " grp meta: " << *it << std::endl;
|
||||
for(std::list<RsGxsGroupId>::const_iterator it(changes.mGrps.begin());it!=changes.mGrps.end();++it)
|
||||
std::cerr << "[GRP CHANGE] grp id: " << *it << std::endl;
|
||||
for(std::list<RsGxsGroupId>::const_iterator it(changes.mGrpsMeta.begin());it!=changes.mGrpsMeta.end();++it)
|
||||
std::cerr << "[GRP CHANGE] grp meta: " << *it << std::endl;
|
||||
for(std::map<RsGxsGroupId,std::vector<RsGxsMessageId> >::const_iterator it(changes.mMsgs.begin());it!=changes.mMsgs.end();++it)
|
||||
for(uint32_t i=0;i<it->second.size();++i)
|
||||
std::cerr << " grp id: " << it->first << ". Msg ID " << it->second[i] << std::endl;
|
||||
std::cerr << "[MSG CHANGE] grp id: " << it->first << ". Msg ID " << it->second[i] << std::endl;
|
||||
for(std::map<RsGxsGroupId,std::vector<RsGxsMessageId> >::const_iterator it(changes.mMsgsMeta.begin());it!=changes.mMsgsMeta.end();++it)
|
||||
for(uint32_t i=0;i<it->second.size();++i)
|
||||
std::cerr << " grp id: " << it->first << ". Msg Meta " << it->second[i] << std::endl;
|
||||
std::cerr << "[MSG CHANGE] grp id: " << it->first << ". Msg Meta " << it->second[i] << std::endl;
|
||||
}
|
||||
#endif
|
||||
if(changes.mService != mIfaceImpl->getTokenService())
|
||||
|
Loading…
Reference in New Issue
Block a user