added mechanism for voting. Not working yet

This commit is contained in:
csoler 2020-08-11 22:10:22 +02:00
parent 4bc90ea9ad
commit 347b3ac9aa
5 changed files with 29 additions and 2 deletions

View File

@ -172,6 +172,8 @@ public:
virtual bool getBoardsServiceStatistics(GxsServiceStatistic& stat) =0;
virtual bool voteForPost(bool up,const RsGxsGroupId& postGrpId,const RsGxsMessageId& postMsgId,const RsGxsId& voterId) =0;
enum RS_DEPRECATED RankType {TopRankType, HotRankType, NewRankType };
RS_DEPRECATED_FOR(getBoardsInfo)

View File

@ -442,6 +442,12 @@ bool p3Posted::createBoard(RsPostedGroup& board)
return true;
}
bool p3Posted::voteForPost(bool up,const RsGxsGroupId& postGrpId,const RsGxsMessageId& postMsgId,const RsGxsId& voterId)
{
std::cerr << "(EE) " << __PRETTY_FUNCTION__ << ": Not implemented yet"<< std::endl;
return true;
}
bool p3Posted::editBoard(RsPostedGroup& board)
{
uint32_t token;

View File

@ -84,7 +84,9 @@ virtual void receiveHelperChanges(std::vector<RsGxsNotify*>& changes)
bool createBoard(RsPostedGroup& board) override;
virtual bool getGroupData(const uint32_t &token, std::vector<RsPostedGroup> &groups) override;
bool voteForPost(bool up,const RsGxsGroupId& postGrpId,const RsGxsMessageId& postMsgId,const RsGxsId& voterId) override;
virtual bool getGroupData(const uint32_t &token, std::vector<RsPostedGroup> &groups) override;
virtual bool getPostData(const uint32_t &token, std::vector<RsPostedPost> &posts, std::vector<RsGxsComment> &cmts, std::vector<RsGxsVote> &vots) override;
virtual bool getPostData(const uint32_t &token, std::vector<RsPostedPost> &posts, std::vector<RsGxsComment> &cmts) override;
virtual bool getPostData(const uint32_t &token, std::vector<RsPostedPost> &posts) override;

View File

@ -145,6 +145,8 @@ QWidget *PostedPostDelegate::createEditor(QWidget *parent, const QStyleOptionVie
{
QWidget *w = new BoardPostDisplayWidget(post,mDisplayMode,parent);
QObject::connect(w,SIGNAL(vote(RsGxsGrpMsgIdPair,bool)),this,SLOT(voteMsg(RsGxsGrpMsgIdPair,bool)));
w->adjustSize();
w->setFixedSize(option.rect.size());
@ -176,6 +178,8 @@ PostedListWidgetWithModel::PostedListWidgetWithModel(const RsGxsGroupId& postedI
ui->postsTree->sortByColumn(0, Qt::AscendingOrder);
ui->postsTree->setAutoSelect(true);
ui->idChooser->setFlags(IDCHOOSER_ID_REQUIRED);
connect(ui->sortStrategy_CB,SIGNAL(currentIndexChanged(int)),this,SLOT(updateSorting(int)));
connect(ui->nextButton,SIGNAL(clicked()),this,SLOT(next10Posts()));
connect(ui->prevButton,SIGNAL(clicked()),this,SLOT(prev10Posts()));
@ -630,7 +634,7 @@ void PostedListWidgetWithModel::insertBoardDetails(const RsPostedGroup& group)
ui->logoLabel->setPixmap(chanImage);
ui->logoLabel->setFixedSize(QSize(ui->logoLabel->height()*chanImage.width()/(float)chanImage.height(),ui->logoLabel->height())); // make the logo have the same aspect ratio than the original image
ui->submitPostButton->setEnabled(bool(group.mMeta.mSubscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_PUBLISH));
//ui->submitPostButton->setEnabled(bool(group.mMeta.mSubscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_PUBLISH));
ui->subscribeToolButton->setSubscribed(IS_GROUP_SUBSCRIBED(group.mMeta.mSubscribeFlags));
ui->subscribeToolButton->setEnabled(true);
@ -917,6 +921,18 @@ void PostedListWidgetWithModel::subscribeGroup(bool subscribe)
} );
}
void PostedListWidgetWithModel::voteMsg(RsGxsGrpMsgIdPair msg,bool up_or_down)
{
RsGxsId voter_id ;
if(ui->idChooser->getChosenId(voter_id) != GxsIdChooser::KnowId)
{
std::cerr << "(EE) No id returned by GxsIdChooser. Somthing's wrong?" << std::endl;
return;
}
rsPosted->voteForPost(up_or_down,msg.first,msg.second,voter_id);
}
#ifdef TODO
class PostedPostsReadData
{

View File

@ -135,6 +135,7 @@ private slots:
public slots:
void handlePostsTreeSizeChange(QSize size);
void voteMsg(RsGxsGrpMsgIdPair msg,bool up_or_down);
private:
void processSettings(bool load);