mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-11 18:45:17 -04:00
Merge pull request #1502 from defnax/added-group-icons-for-posted-links
Added group icons for posted links
This commit is contained in:
commit
bc8adb74c4
20 changed files with 690 additions and 328 deletions
|
@ -44,6 +44,7 @@ class RsPostedGroup
|
|||
|
||||
RsGroupMetaData mMeta;
|
||||
std::string mDescription;
|
||||
RsGxsImage mGroupImage;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -44,7 +44,15 @@ void RsGxsPostedPostItem::serial_process(RsGenericSerializer::SerializeJob j,RsG
|
|||
|
||||
void RsGxsPostedGroupItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx)
|
||||
{
|
||||
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_DESCR ,mGroup.mDescription,"mGroup.mDescription") ;
|
||||
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_DESCR ,mDescription,"mDescription") ;
|
||||
|
||||
if(j == RsGenericSerializer::DESERIALIZE && ctx.mOffset == ctx.mSize)
|
||||
return ;
|
||||
|
||||
if((j == RsGenericSerializer::SIZE_ESTIMATE || j == RsGenericSerializer::SERIALIZE) && mGroupImage.empty())
|
||||
return ;
|
||||
|
||||
RsTypeSerializer::serial_process<RsTlvItem>(j,ctx,mGroupImage,"mGroupImage") ;
|
||||
}
|
||||
|
||||
RsItem *RsGxsPostedSerialiser::create_item(uint16_t service_id,uint8_t item_subtype) const
|
||||
|
@ -109,6 +117,42 @@ void RsGxsPostedPostItem::clear()
|
|||
}
|
||||
void RsGxsPostedGroupItem::clear()
|
||||
{
|
||||
mGroup.mDescription.clear();
|
||||
mDescription.clear();
|
||||
mGroupImage.TlvClear();
|
||||
}
|
||||
|
||||
bool RsGxsPostedGroupItem::fromPostedGroup(RsPostedGroup &group, bool moveImage)
|
||||
{
|
||||
clear();
|
||||
meta = group.mMeta;
|
||||
mDescription = group.mDescription;
|
||||
|
||||
if (moveImage)
|
||||
{
|
||||
mGroupImage.binData.bin_data = group.mGroupImage.mData;
|
||||
mGroupImage.binData.bin_len = group.mGroupImage.mSize;
|
||||
group.mGroupImage.shallowClear();
|
||||
}
|
||||
else
|
||||
{
|
||||
mGroupImage.binData.setBinData(group.mGroupImage.mData, group.mGroupImage.mSize);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool RsGxsPostedGroupItem::toPostedGroup(RsPostedGroup &group, bool moveImage)
|
||||
{
|
||||
group.mMeta = meta;
|
||||
group.mDescription = mDescription;
|
||||
if (moveImage)
|
||||
{
|
||||
group.mGroupImage.take((uint8_t *) mGroupImage.binData.bin_data, mGroupImage.binData.bin_len);
|
||||
// mGroupImage doesn't have a ShallowClear at the moment!
|
||||
mGroupImage.binData.TlvShallowClear();
|
||||
}
|
||||
else
|
||||
{
|
||||
group.mGroupImage.copy((uint8_t *) mGroupImage.binData.bin_data, mGroupImage.binData.bin_len);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -42,8 +42,12 @@ public:
|
|||
|
||||
virtual void serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx);
|
||||
|
||||
RsPostedGroup mGroup;
|
||||
// use conversion functions to transform:
|
||||
bool fromPostedGroup(RsPostedGroup &group, bool moveImage);
|
||||
bool toPostedGroup(RsPostedGroup &group, bool moveImage);
|
||||
|
||||
std::string mDescription;
|
||||
RsTlvImage mGroupImage;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -79,9 +79,8 @@ bool p3Posted::getGroupData(const uint32_t &token, std::vector<RsPostedGroup> &g
|
|||
RsGxsPostedGroupItem* item = dynamic_cast<RsGxsPostedGroupItem*>(*vit);
|
||||
if (item)
|
||||
{
|
||||
RsPostedGroup grp = item->mGroup;
|
||||
item->mGroup.mMeta = item->meta;
|
||||
grp.mMeta = item->mGroup.mMeta;
|
||||
RsPostedGroup grp;
|
||||
item->toPostedGroup(grp, true);
|
||||
delete item;
|
||||
groups.push_back(grp);
|
||||
}
|
||||
|
@ -265,8 +264,8 @@ bool p3Posted::createGroup(uint32_t &token, RsPostedGroup &group)
|
|||
std::cerr << "p3Posted::createGroup()" << std::endl;
|
||||
|
||||
RsGxsPostedGroupItem* grpItem = new RsGxsPostedGroupItem();
|
||||
grpItem->mGroup = group;
|
||||
grpItem->meta = group.mMeta;
|
||||
grpItem->fromPostedGroup(group, true);
|
||||
|
||||
|
||||
RsGenExchange::publishGroup(token, grpItem);
|
||||
return true;
|
||||
|
@ -278,8 +277,8 @@ bool p3Posted::updateGroup(uint32_t &token, RsPostedGroup &group)
|
|||
std::cerr << "p3Posted::updateGroup()" << std::endl;
|
||||
|
||||
RsGxsPostedGroupItem* grpItem = new RsGxsPostedGroupItem();
|
||||
grpItem->mGroup = group;
|
||||
grpItem->meta = group.mMeta;
|
||||
grpItem->fromPostedGroup(group, true);
|
||||
|
||||
|
||||
RsGenExchange::updateGroup(token, grpItem);
|
||||
return true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue