diff --git a/libretroshare/src/services/p3gxschannels.cc b/libretroshare/src/services/p3gxschannels.cc index 7d181d021..a3eb07928 100644 --- a/libretroshare/src/services/p3gxschannels.cc +++ b/libretroshare/src/services/p3gxschannels.cc @@ -335,7 +335,16 @@ void p3GxsChannels::notifyChanges(std::vector &changes) } break; - case RsGxsNotify::TYPE_PUBLISHED: + case RsGxsNotify::TYPE_UPDATED: + { + auto ev = std::make_shared(); + ev->mChannelGroupId = grpChange->mGroupId; + ev->mChannelEventCode = RsChannelEventCode::UPDATED_CHANNEL; + rsEvents->postEvent(ev); + } + break; + + case RsGxsNotify::TYPE_PUBLISHED: case RsGxsNotify::TYPE_RECEIVED_NEW: { /* group received */ diff --git a/libretroshare/src/services/p3postbase.cc b/libretroshare/src/services/p3postbase.cc index f02ca7f75..3af96665b 100644 --- a/libretroshare/src/services/p3postbase.cc +++ b/libretroshare/src/services/p3postbase.cc @@ -188,6 +188,18 @@ void p3PostBase::notifyChanges(std::vector &changes) } break; + case RsGxsNotify::TYPE_UPDATED: + { + // Happens when the group data has changed. In this case we need to analyse the old and new group in order to detect possible notifications for clients + + auto ev = std::make_shared(); + ev->mPostedGroupId = grpChange->mGroupId; + ev->mPostedEventCode = RsPostedEventCode::UPDATED_POSTED_GROUP; + rsEvents->postEvent(ev); + } + break; + + case RsGxsNotify::TYPE_PUBLISHED: case RsGxsNotify::TYPE_RECEIVED_NEW: { diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelDialog.cpp b/retroshare-gui/src/gui/gxschannels/GxsChannelDialog.cpp index 1a63186b6..071993a90 100644 --- a/retroshare-gui/src/gui/gxschannels/GxsChannelDialog.cpp +++ b/retroshare-gui/src/gui/gxschannels/GxsChannelDialog.cpp @@ -73,10 +73,11 @@ void GxsChannelDialog::handleEvent_main_thread(std::shared_ptr ev updateGroupStatisticsReal(e->mChannelGroupId);// update the list immediately break; + case RsChannelEventCode::UPDATED_CHANNEL: // [[fallthrough]]; case RsChannelEventCode::RECEIVED_PUBLISH_KEY: // [[fallthrough]]; case RsChannelEventCode::NEW_CHANNEL: // [[fallthrough]]; - case RsChannelEventCode::SUBSCRIBE_STATUS_CHANGED:// reloads group summary (calling GxsGroupFrameDialog parent method) - updateDisplay(true); + case RsChannelEventCode::SUBSCRIBE_STATUS_CHANGED: + updateDisplay(true); // reloads group summary (calling GxsGroupFrameDialog parent method) break; default: