mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
Added posted comment creation
contextMnurequested does not seem to be working....may have to use an old fashioned non-derived treewidget. git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5894 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
744a78b140
commit
8cef4da896
@ -68,6 +68,7 @@ class RsPostedVote;
|
|||||||
typedef std::map<RsGxsGroupId, std::vector<RsPostedPost> > PostedPostResult;
|
typedef std::map<RsGxsGroupId, std::vector<RsPostedPost> > PostedPostResult;
|
||||||
typedef std::map<RsGxsGroupId, std::vector<RsPostedComment> > PostedCommentResult;
|
typedef std::map<RsGxsGroupId, std::vector<RsPostedComment> > PostedCommentResult;
|
||||||
typedef std::map<RsGxsGroupId, std::vector<RsPostedVote> > PostedVoteResult;
|
typedef std::map<RsGxsGroupId, std::vector<RsPostedVote> > PostedVoteResult;
|
||||||
|
typedef std::map<RsGxsGrpMsgIdPair, std::vector<RsPostedComment> > PostedRelatedCommentResult;
|
||||||
typedef std::pair<RsGxsGroupId, int32_t> GroupRank;
|
typedef std::pair<RsGxsGroupId, int32_t> GroupRank;
|
||||||
|
|
||||||
std::ostream &operator<<(std::ostream &out, const RsPostedGroup &group);
|
std::ostream &operator<<(std::ostream &out, const RsPostedGroup &group);
|
||||||
@ -93,6 +94,7 @@ virtual ~RsPosted() { return; }
|
|||||||
virtual bool getGroup(const uint32_t &token, std::vector<RsPostedGroup> &group) = 0;
|
virtual bool getGroup(const uint32_t &token, std::vector<RsPostedGroup> &group) = 0;
|
||||||
virtual bool getPost(const uint32_t &token, PostedPostResult &post) = 0;
|
virtual bool getPost(const uint32_t &token, PostedPostResult &post) = 0;
|
||||||
virtual bool getComment(const uint32_t &token, PostedCommentResult &comment) = 0;
|
virtual bool getComment(const uint32_t &token, PostedCommentResult &comment) = 0;
|
||||||
|
virtual bool getRelatedComment(const uint32_t& token, PostedRelatedCommentResult& comments) = 0;
|
||||||
virtual bool getGroupRank(const uint32_t &token, GroupRank& grpRank) = 0;
|
virtual bool getGroupRank(const uint32_t &token, GroupRank& grpRank) = 0;
|
||||||
|
|
||||||
virtual bool submitGroup(uint32_t &token, RsPostedGroup &group) = 0;
|
virtual bool submitGroup(uint32_t &token, RsPostedGroup &group) = 0;
|
||||||
@ -132,6 +134,7 @@ class RsPostedVote
|
|||||||
RsMsgMetaData mMeta;
|
RsMsgMetaData mMeta;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class RsGxsPostedCommentItem;
|
||||||
|
|
||||||
class RsPostedComment
|
class RsPostedComment
|
||||||
{
|
{
|
||||||
@ -142,6 +145,7 @@ class RsPostedComment
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RsPostedComment(const RsGxsPostedCommentItem& );
|
||||||
std::string mComment;
|
std::string mComment;
|
||||||
RsMsgMetaData mMeta;
|
RsMsgMetaData mMeta;
|
||||||
};
|
};
|
||||||
|
@ -7,6 +7,12 @@ const uint32_t RsPosted::FLAG_MSGTYPE_VOTE = 0x0004;
|
|||||||
|
|
||||||
RsPosted *rsPosted = NULL;
|
RsPosted *rsPosted = NULL;
|
||||||
|
|
||||||
|
RsPostedComment::RsPostedComment(const RsGxsPostedCommentItem & item)
|
||||||
|
{
|
||||||
|
mComment = item.mComment.mComment;
|
||||||
|
mMeta = item.meta;
|
||||||
|
}
|
||||||
|
|
||||||
p3Posted::p3Posted(RsGeneralDataService *gds, RsNetworkExchangeService *nes)
|
p3Posted::p3Posted(RsGeneralDataService *gds, RsNetworkExchangeService *nes)
|
||||||
: RsGenExchange(gds, nes, new RsGxsPostedSerialiser(), RS_SERVICE_GXSV1_TYPE_POSTED), RsPosted(this)
|
: RsGenExchange(gds, nes, new RsGxsPostedSerialiser(), RS_SERVICE_GXSV1_TYPE_POSTED), RsPosted(this)
|
||||||
{
|
{
|
||||||
@ -118,6 +124,11 @@ bool p3Posted::getComment(const uint32_t &token, PostedCommentResult &comments)
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool p3Posted::getRelatedComment(const uint32_t& token, PostedRelatedCommentResult &comments)
|
||||||
|
{
|
||||||
|
return RsGenExchange::getMsgRelatedDataT<RsGxsPostedCommentItem, RsPostedComment>(token, comments);
|
||||||
|
}
|
||||||
|
|
||||||
bool p3Posted::getGroupRank(const uint32_t &token, GroupRank &grpRank)
|
bool p3Posted::getGroupRank(const uint32_t &token, GroupRank &grpRank)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ public:
|
|||||||
bool getGroup(const uint32_t &token, std::vector<RsPostedGroup> &group);
|
bool getGroup(const uint32_t &token, std::vector<RsPostedGroup> &group);
|
||||||
bool getPost(const uint32_t &token, PostedPostResult& posts) ;
|
bool getPost(const uint32_t &token, PostedPostResult& posts) ;
|
||||||
bool getComment(const uint32_t &token, PostedCommentResult& comments) ;
|
bool getComment(const uint32_t &token, PostedCommentResult& comments) ;
|
||||||
|
bool getRelatedComment(const uint32_t& token, PostedRelatedCommentResult &comments);
|
||||||
bool getGroupRank(const uint32_t& token, GroupRank& grpRank);
|
bool getGroupRank(const uint32_t& token, GroupRank& grpRank);
|
||||||
|
|
||||||
bool submitGroup(uint32_t &token, RsPostedGroup &group);
|
bool submitGroup(uint32_t &token, RsPostedGroup &group);
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "PostedComments.h"
|
#include "PostedComments.h"
|
||||||
|
#include "PostedCreateCommentDialog.h"
|
||||||
|
|
||||||
#include <retroshare/rsposted.h>
|
#include <retroshare/rsposted.h>
|
||||||
|
|
||||||
@ -30,10 +31,8 @@
|
|||||||
|
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
#include <QDateTime>
|
||||||
|
|
||||||
/******
|
|
||||||
* #define PHOTO_DEBUG 1
|
|
||||||
*****/
|
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************
|
/****************************************************************
|
||||||
@ -64,15 +63,51 @@ PostedComments::PostedComments(QWidget *parent)
|
|||||||
ui.setupUi(this);
|
ui.setupUi(this);
|
||||||
ui.postFrame->setVisible(false);
|
ui.postFrame->setVisible(false);
|
||||||
ui.treeWidget->setup(rsPosted->getTokenService());
|
ui.treeWidget->setup(rsPosted->getTokenService());
|
||||||
|
connect(ui.treeWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(test(QPoint)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void PostedComments::test(QPoint p)
|
||||||
|
{
|
||||||
|
int x = p.x();
|
||||||
|
int y = p.y();
|
||||||
|
int c= x+y;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PostedComments::loadComments(const RsGxsMessageId& threadId )
|
void PostedComments::loadComments(const RsPostedPost& post)
|
||||||
{
|
{
|
||||||
std::cerr << "PostedComments::loadComments(" << threadId << ")";
|
std::cerr << "PostedComments::loadComments(" << post.mMeta.mOrigMsgId << ")";
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
|
|
||||||
|
mCurrentPost = post;
|
||||||
|
setUpPostFrame();
|
||||||
|
|
||||||
|
RsGxsGrpMsgIdPair threadId;
|
||||||
|
|
||||||
|
threadId.first = post.mMeta.mOrigMsgId;
|
||||||
|
threadId.second = post.mMeta.mGroupId;
|
||||||
|
|
||||||
ui.treeWidget->requestComments(threadId);
|
ui.treeWidget->requestComments(threadId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PostedComments::setUpPostFrame()
|
||||||
|
{
|
||||||
|
ui.postFrame->setVisible(true);
|
||||||
|
|
||||||
|
QDateTime qtime;
|
||||||
|
qtime.setTime_t(mCurrentPost.mMeta.mPublishTs);
|
||||||
|
QString timestamp = qtime.toString("dd.MMMM yyyy hh:mm");
|
||||||
|
ui.dateLabel->setText(timestamp);
|
||||||
|
ui.fromLabel->setText(QString::fromUtf8(mCurrentPost.mMeta.mAuthorId.c_str()));
|
||||||
|
ui.titleLabel->setText("<a href=" + QString::fromStdString(mCurrentPost.mLink) +
|
||||||
|
"><span style=\" text-decoration: underline; color:#0000ff;\">" +
|
||||||
|
QString::fromStdString(mCurrentPost.mMeta.mMsgName) + "</span></a>");
|
||||||
|
ui.siteLabel->setText("<a href=" + QString::fromStdString(mCurrentPost.mLink) +
|
||||||
|
"><span style=\" text-decoration: underline; color:#0000ff;\">" +
|
||||||
|
QString::fromStdString(mCurrentPost.mLink) + "</span></a>");
|
||||||
|
|
||||||
|
ui.scoreLabel->setText(QString("1"));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -42,12 +42,17 @@ public:
|
|||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
void loadComments(const RsGxsMessageId& );
|
void loadComments(const RsPostedPost& );
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
|
||||||
|
void test(QPoint p);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void loadRequest(const TokenQueue *queue, const TokenRequest &req) { return; }
|
void loadRequest(const TokenQueue *queue, const TokenRequest &req) { return; }
|
||||||
|
void setUpPostFrame();
|
||||||
|
|
||||||
TokenQueue *mPhotoQueue;
|
RsPostedPost mCurrentPost;
|
||||||
|
|
||||||
/* UI - from Designer */
|
/* UI - from Designer */
|
||||||
Ui::PostedComments ui;
|
Ui::PostedComments ui;
|
||||||
|
@ -344,6 +344,43 @@ border-radius: 10px}</string>
|
|||||||
</column>
|
</column>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_3">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="makeCommentButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Make Comment</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
|
@ -1,11 +1,27 @@
|
|||||||
#include "PostedCreateCommentDialog.h"
|
#include "PostedCreateCommentDialog.h"
|
||||||
#include "ui_PostedCreateCommentDialog.h"
|
#include "ui_PostedCreateCommentDialog.h"
|
||||||
|
|
||||||
PostedCreateCommentDialog::PostedCreateCommentDialog(QWidget *parent) :
|
PostedCreateCommentDialog::PostedCreateCommentDialog(TokenQueue *tokQ, const RsGxsGrpMsgIdPair &parentId, const RsGxsMessageId& threadId, QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::PostedCreateCommentDialog)
|
ui(new Ui::PostedCreateCommentDialog), mTokenQueue(tokQ), mParentId(parentId), mThreadId(threadId)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(createComment()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void PostedCreateCommentDialog::createComment()
|
||||||
|
{
|
||||||
|
RsPostedComment comment;
|
||||||
|
|
||||||
|
comment.mComment = ui->commentTextEdit->document()->toPlainText().toStdString();
|
||||||
|
comment.mMeta.mParentId = mParentId.second;
|
||||||
|
comment.mMeta.mGroupId = mParentId.first;
|
||||||
|
comment.mMeta.mThreadId = mThreadId;
|
||||||
|
|
||||||
|
uint32_t token;
|
||||||
|
rsPosted->submitComment(token, comment);
|
||||||
|
mTokenQueue->queueRequest(token, TOKENREQ_MSGINFO, RS_TOKREQ_ANSTYPE_ACK, 0);
|
||||||
|
close();
|
||||||
}
|
}
|
||||||
|
|
||||||
PostedCreateCommentDialog::~PostedCreateCommentDialog()
|
PostedCreateCommentDialog::~PostedCreateCommentDialog()
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
#define POSTEDCREATECOMMENTDIALOG_H
|
#define POSTEDCREATECOMMENTDIALOG_H
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
#include "retroshare/rsposted.h"
|
||||||
|
#include "util/TokenQueue.h"
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class PostedCreateCommentDialog;
|
class PostedCreateCommentDialog;
|
||||||
@ -12,11 +14,18 @@ class PostedCreateCommentDialog : public QDialog
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit PostedCreateCommentDialog(QWidget *parent = 0);
|
explicit PostedCreateCommentDialog(TokenQueue* tokQ, const RsGxsGrpMsgIdPair& parentId, const RsGxsMessageId& threadId, QWidget *parent = 0);
|
||||||
~PostedCreateCommentDialog();
|
~PostedCreateCommentDialog();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
|
||||||
|
void createComment();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::PostedCreateCommentDialog *ui;
|
Ui::PostedCreateCommentDialog *ui;
|
||||||
|
TokenQueue* mTokenQueue;
|
||||||
|
RsGxsGrpMsgIdPair mParentId;
|
||||||
|
RsGxsMessageId mThreadId;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // POSTEDCREATECOMMENTDIALOG_H
|
#endif // POSTEDCREATECOMMENTDIALOG_H
|
||||||
|
@ -1,38 +1,49 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<author/>
|
|
||||||
<comment/>
|
|
||||||
<exportmacro/>
|
|
||||||
<class>PostedCreateCommentDialog</class>
|
<class>PostedCreateCommentDialog</class>
|
||||||
<widget class="QDialog" name="PostedCreateCommentDialog">
|
<widget class="QDialog" name="PostedCreateCommentDialog">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>400</width>
|
<width>372</width>
|
||||||
<height>300</height>
|
<height>145</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Dialog</string>
|
<string>Make Comment</string>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<property name="geometry">
|
<item>
|
||||||
<rect>
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<x>30</x>
|
<item>
|
||||||
<y>240</y>
|
<widget class="QLabel" name="label">
|
||||||
<width>341</width>
|
<property name="text">
|
||||||
<height>32</height>
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
</rect>
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
</property>
|
p, li { white-space: pre-wrap; }
|
||||||
<property name="orientation">
|
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||||
<enum>Qt::Horizontal</enum>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Comment</span></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="standardButtons">
|
</widget>
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
</item>
|
||||||
</property>
|
<item>
|
||||||
</widget>
|
<widget class="QTextEdit" name="commentTextEdit"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="standardButtons">
|
||||||
|
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<pixmapfunction/>
|
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections>
|
<connections>
|
||||||
<connection>
|
<connection>
|
||||||
|
@ -49,7 +49,7 @@ PostedDialog::PostedDialog(QWidget *parent)
|
|||||||
{
|
{
|
||||||
ui.setupUi(this);
|
ui.setupUi(this);
|
||||||
|
|
||||||
mPostedList = new PostedListDialog(NULL);
|
mPostedList = new PostedListDialog(this, NULL);
|
||||||
mPostedComments = new PostedComments(NULL);
|
mPostedComments = new PostedComments(NULL);
|
||||||
|
|
||||||
QString list("List");
|
QString list("List");
|
||||||
@ -60,9 +60,10 @@ PostedDialog::PostedDialog(QWidget *parent)
|
|||||||
connect(mPostedList, SIGNAL(loadComments( std::string ) ), mPostedComments, SLOT(loadComments( std::string ) ) );
|
connect(mPostedList, SIGNAL(loadComments( std::string ) ), mPostedComments, SLOT(loadComments( std::string ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void PostedDialog::commentLoad(const RsGxsMessageId &msgId)
|
void PostedDialog::commentLoad(const RsPostedPost &post)
|
||||||
{
|
{
|
||||||
mPostedComments->loadComments(msgId);
|
mPostedComments->loadComments(post);
|
||||||
|
ui.tabWidget->setCurrentWidget(mPostedComments);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ public:
|
|||||||
* This should be used for loading comments of a message on a main comment viewing page
|
* This should be used for loading comments of a message on a main comment viewing page
|
||||||
* @param msgId the message id for which comments will be requested
|
* @param msgId the message id for which comments will be requested
|
||||||
*/
|
*/
|
||||||
virtual void commentLoad(const RsGxsMessageId& msgId) = 0;
|
virtual void commentLoad(const RsPostedPost&) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
class PostedListDialog;
|
class PostedListDialog;
|
||||||
@ -51,7 +51,7 @@ class PostedDialog : public MainPage, public CommentHolder
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
PostedDialog(QWidget *parent = 0);
|
PostedDialog(QWidget *parent = 0);
|
||||||
void commentLoad(const RsGxsMessageId &msgId);
|
void commentLoad(const RsPostedPost &);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -56,9 +56,10 @@ QString PostedGroupDialog::serviceHeader()
|
|||||||
return tr("Create New Posted Topic");
|
return tr("Create New Posted Topic");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QPixmap PostedGroupDialog::serviceImage()
|
QPixmap PostedGroupDialog::serviceImage()
|
||||||
{
|
{
|
||||||
return QPixmap(":/images/posted_add_64.png");
|
return QPixmap(":/images/posted_add_64.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PostedGroupDialog::service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta)
|
bool PostedGroupDialog::service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta)
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
/** Constructor */
|
/** Constructor */
|
||||||
PostedItem::PostedItem(PostedHolder *postHolder, const RsPostedPost &post)
|
PostedItem::PostedItem(PostedHolder *postHolder, const RsPostedPost &post)
|
||||||
:QWidget(NULL), mPostHolder(postHolder)
|
:QWidget(NULL), mPostHolder(postHolder), mPost(post)
|
||||||
{
|
{
|
||||||
setupUi(this);
|
setupUi(this);
|
||||||
setAttribute ( Qt::WA_DeleteOnClose, true );
|
setAttribute ( Qt::WA_DeleteOnClose, true );
|
||||||
@ -71,5 +71,5 @@ void PostedItem::loadComments()
|
|||||||
{
|
{
|
||||||
std::cerr << "PostedItem::loadComments() Requesting for " << mThreadId;
|
std::cerr << "PostedItem::loadComments() Requesting for " << mThreadId;
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
mPostHolder->showComments(mPost.mMeta.mMsgId);
|
mPostHolder->showComments(mPost);
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ class PostedHolder
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
virtual void showComments(const RsGxsMessageId& threadId) = 0;
|
virtual void showComments(const RsPostedPost& post) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -106,9 +106,9 @@ void PostedListDialog::newPost()
|
|||||||
cp.exec();
|
cp.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PostedListDialog::showComments(const RsGxsMessageId &threadId)
|
void PostedListDialog::showComments(const RsPostedPost& post)
|
||||||
{
|
{
|
||||||
mCommentHolder->commentLoad(threadId);
|
mCommentHolder->commentLoad(post);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PostedListDialog::updateDisplay()
|
void PostedListDialog::updateDisplay()
|
||||||
@ -403,6 +403,7 @@ void PostedListDialog::loadRequest(const TokenQueue *queue, const TokenRequest &
|
|||||||
break;
|
break;
|
||||||
case RS_TOKREQ_ANSTYPE_SUMMARY:
|
case RS_TOKREQ_ANSTYPE_SUMMARY:
|
||||||
loadGroupSummary(req.mToken);
|
loadGroupSummary(req.mToken);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
std::cerr << "Error, unexpected anstype:" << req.mAnsType << std::endl;
|
std::cerr << "Error, unexpected anstype:" << req.mAnsType << std::endl;
|
||||||
break;
|
break;
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#ifndef MRK_POSTED_LIST_DIALOG_H
|
#ifndef MRK_POSTED_LIST_DIALOG_H
|
||||||
#define MRK_POSTED_LIST_DIALOG_H
|
#define MRK_POSTED_LIST_DIALOG_H
|
||||||
|
|
||||||
|
|
||||||
#include "retroshare-gui/mainpage.h"
|
#include "retroshare-gui/mainpage.h"
|
||||||
#include "ui_PostedListDialog.h"
|
#include "ui_PostedListDialog.h"
|
||||||
|
|
||||||
@ -58,7 +59,7 @@ class PostedListDialog : public RsAutoUpdatePage, public PostedHolder, public To
|
|||||||
public:
|
public:
|
||||||
PostedListDialog(CommentHolder* commentHolder, QWidget *parent = 0);
|
PostedListDialog(CommentHolder* commentHolder, QWidget *parent = 0);
|
||||||
|
|
||||||
void showComments(const RsGxsMessageId &threadId);
|
void showComments(const RsPostedPost& post);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
|
@ -21,14 +21,16 @@
|
|||||||
|
|
||||||
#include <QMimeData>
|
#include <QMimeData>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
|
#include <QMenu>
|
||||||
|
|
||||||
#include "gui/gxs/GxsCommentTreeWidget.h"
|
#include "gui/gxs/GxsCommentTreeWidget.h"
|
||||||
|
#include "gui/Posted/PostedCreateCommentDialog.h"
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#define PCITEM_COLUMN_DATE 0
|
#define PCITEM_COLUMN_COMMENT 0
|
||||||
#define PCITEM_COLUMN_COMMENT 1
|
#define PCITEM_COLUMN_AUTHOR 1
|
||||||
#define PCITEM_COLUMN_AUTHOR 2
|
#define PCITEM_COLUMN_DATE 2
|
||||||
#define PCITEM_COLUMN_SERVSTRING 3
|
#define PCITEM_COLUMN_SERVSTRING 3
|
||||||
#define PCITEM_COLUMN_MSGID 4
|
#define PCITEM_COLUMN_MSGID 4
|
||||||
#define PCITEM_COLUMN_PARENTID 5
|
#define PCITEM_COLUMN_PARENTID 5
|
||||||
@ -38,54 +40,104 @@
|
|||||||
// Temporarily make this specific.
|
// Temporarily make this specific.
|
||||||
#include "retroshare/rsposted.h"
|
#include "retroshare/rsposted.h"
|
||||||
|
|
||||||
|
/* Images for context menu icons */
|
||||||
|
#define IMAGE_MESSAGE ":/images/folder-draft.png"
|
||||||
|
|
||||||
GxsCommentTreeWidget::GxsCommentTreeWidget(QWidget *parent)
|
GxsCommentTreeWidget::GxsCommentTreeWidget(QWidget *parent)
|
||||||
:QTreeWidget(parent), mRsService(NULL), mTokenQueue(NULL)
|
:QTreeWidget(parent), mRsService(NULL), mTokenQueue(NULL)
|
||||||
{
|
{
|
||||||
|
// QTreeWidget* widget = this;
|
||||||
|
|
||||||
|
|
||||||
|
// QFont font = QFont("ARIAL", 10);
|
||||||
|
// font.setBold(true);
|
||||||
|
|
||||||
|
// QString name("test");
|
||||||
|
// QTreeWidgetItem *item = new QTreeWidgetItem();
|
||||||
|
// item->setText(0, name);
|
||||||
|
// item->setFont(0, font);
|
||||||
|
// item->setSizeHint(0, QSize(18, 18));
|
||||||
|
// item->setForeground(0, QBrush(QColor(79, 79, 79)));
|
||||||
|
|
||||||
|
// addTopLevelItem(item);
|
||||||
|
// item->setExpanded(true);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GxsCommentTreeWidget::setCurrentMsgId(QTreeWidgetItem *current, QTreeWidgetItem *previous)
|
||||||
|
{
|
||||||
|
|
||||||
|
Q_UNUSED(previous);
|
||||||
|
|
||||||
|
if(current)
|
||||||
|
{
|
||||||
|
mCurrentMsgId = current->text(PCITEM_COLUMN_MSGID).toStdString();
|
||||||
|
}else{
|
||||||
|
mCurrentMsgId = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxsCommentTreeWidget::customPopUpMenu(const QPoint& point)
|
||||||
|
{
|
||||||
|
QMenu contextMnu( this );
|
||||||
|
contextMnu.addAction(QIcon(IMAGE_MESSAGE), tr("Submit Comment"), this, SLOT(makeComment()));
|
||||||
|
contextMnu.exec(QCursor::pos());
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxsCommentTreeWidget::makeComment()
|
||||||
|
{
|
||||||
|
|
||||||
|
if(mCurrentMsgId.empty())
|
||||||
|
{
|
||||||
|
PostedCreateCommentDialog pcc(mTokenQueue, mThreadId, mThreadId.second, this);
|
||||||
|
pcc.exec();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RsGxsGrpMsgIdPair msgId;
|
||||||
|
msgId.first = mThreadId.first;
|
||||||
|
msgId.second = mCurrentMsgId;
|
||||||
|
PostedCreateCommentDialog pcc(mTokenQueue, msgId, mThreadId.second, this);
|
||||||
|
pcc.exec();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GxsCommentTreeWidget::setup(RsTokenService *service)
|
void GxsCommentTreeWidget::setup(RsTokenService *service)
|
||||||
{
|
{
|
||||||
mRsService = service;
|
mRsService = service;
|
||||||
mTokenQueue = new TokenQueue(service, this);
|
mTokenQueue = new TokenQueue(service, this);
|
||||||
|
connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(customPopUpMenu(QPoint)));
|
||||||
|
connect(this, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(setCurrentMsgId(QTreeWidgetItem*, QTreeWidgetItem*)));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Load Comments */
|
/* Load Comments */
|
||||||
void GxsCommentTreeWidget::requestComments(std::string threadId)
|
void GxsCommentTreeWidget::requestComments(const RsGxsGrpMsgIdPair& threadId)
|
||||||
{
|
{
|
||||||
/* request comments */
|
/* request comments */
|
||||||
|
|
||||||
service_requestComments(threadId);
|
mThreadId = threadId;
|
||||||
|
service_requestComments(threadId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GxsCommentTreeWidget::service_requestComments(std::string threadId)
|
void GxsCommentTreeWidget::service_requestComments(const RsGxsGrpMsgIdPair& threadId)
|
||||||
{
|
{
|
||||||
/* request comments */
|
/* request comments */
|
||||||
//std::cerr << "GxsCommentTreeWidget::service_requestComments() ERROR must be overloaded!";
|
std::cerr << "GxsCommentTreeWidget::service_requestComments(" << threadId.second << ")";
|
||||||
//std::cerr << std::endl;
|
|
||||||
|
|
||||||
std::cerr << "GxsCommentTreeWidget::service_requestComments(" << threadId << ")";
|
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
|
|
||||||
RsTokReqOptions opts;
|
RsTokReqOptions opts;
|
||||||
|
opts.mReqType = GXS_REQUEST_TYPE_MSG_DATA;
|
||||||
|
opts.mOptions = RS_TOKREQOPT_MSG_THREAD | RS_TOKREQOPT_MSG_LATEST;
|
||||||
|
|
||||||
opts.mOptions = RS_TOKREQOPT_MSG_THREAD | RS_TOKREQOPT_MSG_LATEST;
|
std::vector<RsGxsGrpMsgIdPair> msgIds;
|
||||||
// opts.mFlagsFilter = RSPOSTED_MSGTYPE_COMMENT;
|
|
||||||
// opts.mFlagsMask = RSPOSTED_MSGTYPE_COMMENT;
|
|
||||||
|
|
||||||
std::list<std::string> msgIds;
|
|
||||||
msgIds.push_back(threadId);
|
msgIds.push_back(threadId);
|
||||||
|
|
||||||
mThreadId = threadId;
|
|
||||||
|
|
||||||
uint32_t token;
|
uint32_t token;
|
||||||
// mTokenQueue->requestMsgRelatedInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, msgIds, GXSCOMMENTS_LOADTHREAD);
|
mTokenQueue->requestMsgRelatedInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, msgIds, GXSCOMMENTS_LOADTHREAD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -138,7 +190,7 @@ void GxsCommentTreeWidget::completeItems()
|
|||||||
|
|
||||||
parent->addChild(pit->second);
|
parent->addChild(pit->second);
|
||||||
}
|
}
|
||||||
else if (parentId == mThreadId)
|
else if (parentId == mThreadId.second)
|
||||||
{
|
{
|
||||||
std::cerr << "GxsCommentTreeWidget::completeItems() Added to topLevelItems";
|
std::cerr << "GxsCommentTreeWidget::completeItems() Added to topLevelItems";
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
@ -206,64 +258,75 @@ void GxsCommentTreeWidget::loadThread(const uint32_t &token)
|
|||||||
completeItems();
|
completeItems();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GxsCommentTreeWidget::acknowledgeComment(const uint32_t &token)
|
||||||
|
{
|
||||||
|
RsGxsGrpMsgIdPair msgId;
|
||||||
|
rsPosted->acknowledgeMsg(token, msgId);
|
||||||
|
|
||||||
|
// simply reload data
|
||||||
|
service_requestComments(mThreadId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void GxsCommentTreeWidget::service_loadThread(const uint32_t &token)
|
void GxsCommentTreeWidget::service_loadThread(const uint32_t &token)
|
||||||
{
|
{
|
||||||
std::cerr << "GxsCommentTreeWidget::service_loadThread() ERROR must be overloaded!";
|
std::cerr << "GxsCommentTreeWidget::service_loadThread() ERROR must be overloaded!";
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
|
|
||||||
// RsPostedComment comment;
|
PostedRelatedCommentResult commentResult;
|
||||||
// while(rsPosted->getComment(token, comment))
|
rsPosted->getRelatedComment(token, commentResult);
|
||||||
// {
|
|
||||||
// /* convert to a QTreeWidgetItem */
|
|
||||||
// std::cerr << "GxsCommentTreeWidget::service_loadThread() Got Comment: " << comment;
|
|
||||||
// std::cerr << std::endl;
|
|
||||||
|
|
||||||
// QTreeWidgetItem *item = new QTreeWidgetItem();
|
|
||||||
// QString text;
|
|
||||||
|
|
||||||
// {
|
std::vector<RsPostedComment>& commentV = commentResult[mThreadId];
|
||||||
// QDateTime qtime;
|
std::vector<RsPostedComment>::iterator vit = commentV.begin();
|
||||||
// qtime.setTime_t(comment.mMeta.mPublishTs);
|
|
||||||
|
|
||||||
// text = qtime.toString("yyyy-MM-dd hh:mm:ss");
|
|
||||||
// item->setText(PCITEM_COLUMN_DATE, text);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// text = QString::fromUtf8(comment.mComment.c_str());
|
|
||||||
// item->setText(PCITEM_COLUMN_COMMENT, text);
|
|
||||||
|
|
||||||
// text = QString::fromUtf8(comment.mMeta.mAuthorId.c_str());
|
|
||||||
// if (text.isEmpty())
|
|
||||||
// {
|
|
||||||
// item->setText(PCITEM_COLUMN_AUTHOR, tr("Anonymous"));
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// item->setText(PCITEM_COLUMN_AUTHOR, text);
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
for(; vit != commentV.end(); vit++)
|
||||||
|
{
|
||||||
|
RsPostedComment& comment = *vit;
|
||||||
|
/* convert to a QTreeWidgetItem */
|
||||||
|
std::cerr << "GxsCommentTreeWidget::service_loadThread() Got Comment: " << comment.mMeta.mMsgId;
|
||||||
|
std::cerr << std::endl;
|
||||||
|
|
||||||
// text = QString::fromUtf8(comment.mMeta.mMsgId.c_str());
|
QTreeWidgetItem *item = new QTreeWidgetItem();
|
||||||
// item->setText(PCITEM_COLUMN_MSGID, text);
|
QString text;
|
||||||
|
|
||||||
// text = QString::fromUtf8(comment.mMeta.mParentId.c_str());
|
{
|
||||||
// item->setText(PCITEM_COLUMN_PARENTID, text);
|
QDateTime qtime;
|
||||||
|
qtime.setTime_t(comment.mMeta.mPublishTs);
|
||||||
|
|
||||||
// text = QString::fromUtf8(comment.mMeta.mServiceString.c_str());
|
text = qtime.toString("yyyy-MM-dd hh:mm:ss");
|
||||||
// item->setText(PCITEM_COLUMN_SERVSTRING, text);
|
item->setText(PCITEM_COLUMN_DATE, text);
|
||||||
|
}
|
||||||
|
|
||||||
// addItem(comment.mMeta.mMsgId, comment.mMeta.mParentId, item);
|
text = QString::fromUtf8(comment.mComment.c_str());
|
||||||
// }
|
item->setText(PCITEM_COLUMN_COMMENT, text);
|
||||||
|
|
||||||
|
text = QString::fromUtf8(comment.mMeta.mAuthorId.c_str());
|
||||||
|
if (text.isEmpty())
|
||||||
|
{
|
||||||
|
item->setText(PCITEM_COLUMN_AUTHOR, tr("Anonymous"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
item->setText(PCITEM_COLUMN_AUTHOR, text);
|
||||||
|
}
|
||||||
|
|
||||||
|
text = QString::fromUtf8(comment.mMeta.mMsgId.c_str());
|
||||||
|
item->setText(PCITEM_COLUMN_MSGID, text);
|
||||||
|
|
||||||
|
text = QString::fromUtf8(comment.mMeta.mParentId.c_str());
|
||||||
|
item->setText(PCITEM_COLUMN_PARENTID, text);
|
||||||
|
|
||||||
|
text = QString::fromUtf8(comment.mMeta.mServiceString.c_str());
|
||||||
|
item->setText(PCITEM_COLUMN_SERVSTRING, text);
|
||||||
|
|
||||||
|
addItem(comment.mMeta.mMsgId, comment.mMeta.mParentId, item);
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QTreeWidgetItem *GxsCommentTreeWidget::service_createMissingItem(std::string parent)
|
QTreeWidgetItem *GxsCommentTreeWidget::service_createMissingItem(const RsGxsMessageId& parent)
|
||||||
{
|
{
|
||||||
//std::cerr << "GxsCommentTreeWidget::service_createMissingItem() ERROR must be overloaded!";
|
|
||||||
//std::cerr << std::endl;
|
|
||||||
|
|
||||||
std::cerr << "GxsCommentTreeWidget::service_createMissingItem()";
|
std::cerr << "GxsCommentTreeWidget::service_createMissingItem()";
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
|
|
||||||
@ -280,13 +343,14 @@ QTreeWidgetItem *GxsCommentTreeWidget::service_createMissingItem(std::string par
|
|||||||
|
|
||||||
item->setText(PCITEM_COLUMN_SERVSTRING, text);
|
item->setText(PCITEM_COLUMN_SERVSTRING, text);
|
||||||
|
|
||||||
text = QString::fromUtf8(parent.c_str());
|
text = QString::fromUtf8(parent.c_str());
|
||||||
item->setText(PCITEM_COLUMN_PARENTID, text);
|
item->setText(PCITEM_COLUMN_PARENTID, text);
|
||||||
|
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void GxsCommentTreeWidget::loadRequest(const TokenQueue *queue, const TokenRequest &req)
|
void GxsCommentTreeWidget::loadRequest(const TokenQueue *queue, const TokenRequest &req)
|
||||||
{
|
{
|
||||||
std::cerr << "GxsCommentTreeWidget::loadRequest() UserType: " << req.mUserType;
|
std::cerr << "GxsCommentTreeWidget::loadRequest() UserType: " << req.mUserType;
|
||||||
@ -300,74 +364,26 @@ void GxsCommentTreeWidget::loadRequest(const TokenQueue *queue, const TokenReque
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* now switch on req */
|
/* now switch on req */
|
||||||
switch(req.mUserType)
|
switch(req.mType)
|
||||||
{
|
{
|
||||||
|
|
||||||
case GXSCOMMENTS_LOADTHREAD:
|
case TOKENREQ_MSGINFO:
|
||||||
loadThread(req.mToken);
|
{
|
||||||
break;
|
switch(req.mAnsType)
|
||||||
default:
|
{
|
||||||
std::cerr << "GxsCommentTreeWidget::loadRequest() UNKNOWN UserType ";
|
case RS_TOKREQ_ANSTYPE_ACK:
|
||||||
std::cerr << std::endl;
|
acknowledgeComment(req.mToken);
|
||||||
break;
|
break;
|
||||||
|
case RS_TOKREQ_ANSTYPE_DATA:
|
||||||
|
loadThread(req.mToken);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
std::cerr << "GxsCommentTreeWidget::loadRequest() UNKNOWN UserType ";
|
||||||
|
std::cerr << std::endl;
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
|
|
||||||
QMimeData * GxsCommentTreeWidget::mimeData ( const QList<QTreeWidgetItem *> items ) const
|
|
||||||
{
|
|
||||||
/* extract from each QTreeWidgetItem... all the member text */
|
|
||||||
QList<QTreeWidgetItem *>::const_iterator it;
|
|
||||||
QString text;
|
|
||||||
for(it = items.begin(); it != items.end(); it++)
|
|
||||||
{
|
|
||||||
QString line = QString("%1/%2/%3/").arg((*it)->text(SR_NAME_COL), (*it)->text(SR_HASH_COL), (*it)->text(SR_SIZE_COL));
|
|
||||||
|
|
||||||
bool isLocal = (*it)->data(SR_DATA_COL, SR_ROLE_LOCAL).toBool();
|
|
||||||
if (isLocal)
|
|
||||||
{
|
|
||||||
line += "Local";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
line += "Remote";
|
|
||||||
}
|
|
||||||
line += "/\n";
|
|
||||||
|
|
||||||
text += line;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::cerr << "Created MimeData:";
|
|
||||||
std::cerr << std::endl;
|
|
||||||
|
|
||||||
std::string str = text.toUtf8().constData();
|
|
||||||
std::cerr << str;
|
|
||||||
std::cerr << std::endl;
|
|
||||||
|
|
||||||
QMimeData *data = new QMimeData();
|
|
||||||
data->setData("application/x-rsfilelist", QByteArray(str.c_str()));
|
|
||||||
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QStringList GxsCommentTreeWidget::mimeTypes () const
|
|
||||||
{
|
|
||||||
QStringList list;
|
|
||||||
list.push_back("application/x-rsfilelist");
|
|
||||||
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Qt::DropActions GxsCommentTreeWidget::supportedDropActions () const
|
|
||||||
{
|
|
||||||
return Qt::CopyAction;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -44,42 +44,48 @@ class GxsCommentTreeWidget : public QTreeWidget, public TokenResponse
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GxsCommentTreeWidget(QWidget *parent = 0);
|
GxsCommentTreeWidget(QWidget *parent = 0);
|
||||||
void setup(RsTokenService *service);
|
void setup(RsTokenService *service);
|
||||||
|
|
||||||
void requestComments(std::string threadId);
|
void requestComments(const RsGxsGrpMsgIdPair& threadId);
|
||||||
|
void getCurrentMsgId(RsGxsMessageId& parentId);
|
||||||
|
void setCurrentMsgId(QTreeWidgetItem* current, QTreeWidgetItem* previous);
|
||||||
|
|
||||||
void loadRequest(const TokenQueue *queue, const TokenRequest &req);
|
void loadRequest(const TokenQueue *queue, const TokenRequest &req);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
/* to be overloaded */
|
/* to be overloaded */
|
||||||
virtual void service_requestComments(std::string threadId);
|
virtual void service_requestComments(const RsGxsGrpMsgIdPair& threadId);
|
||||||
virtual void service_loadThread(const uint32_t &token);
|
virtual void service_loadThread(const uint32_t &token);
|
||||||
virtual QTreeWidgetItem *service_createMissingItem(std::string parent);
|
virtual QTreeWidgetItem *service_createMissingItem(const RsGxsMessageId& parent);
|
||||||
|
|
||||||
void clearItems();
|
void clearItems();
|
||||||
void completeItems();
|
void completeItems();
|
||||||
|
|
||||||
void loadThread(const uint32_t &token);
|
void acknowledgeComment(const uint32_t& token);
|
||||||
|
void loadThread(const uint32_t &token);
|
||||||
void addItem(std::string itemId, std::string parentId, QTreeWidgetItem *item);
|
|
||||||
|
void addItem(std::string itemId, std::string parentId, QTreeWidgetItem *item);
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void customPopUpMenu(const QPoint& point);
|
||||||
|
private slots:
|
||||||
|
|
||||||
|
|
||||||
|
void makeComment();
|
||||||
|
|
||||||
/* Data */
|
protected:
|
||||||
std::string mThreadId;
|
|
||||||
|
|
||||||
std::map<std::string, QTreeWidgetItem *> mLoadingMap;
|
/* Data */
|
||||||
std::multimap<std::string, QTreeWidgetItem *> mPendingInsertMap;
|
RsGxsGrpMsgIdPair mThreadId;
|
||||||
|
RsGxsMessageId mCurrentMsgId;
|
||||||
|
|
||||||
TokenQueue *mTokenQueue;
|
std::map<std::string, QTreeWidgetItem *> mLoadingMap;
|
||||||
RsTokenService *mRsService;
|
std::multimap<std::string, QTreeWidgetItem *> mPendingInsertMap;
|
||||||
|
|
||||||
protected:
|
TokenQueue *mTokenQueue;
|
||||||
//virtual QMimeData * mimeData ( const QList<QTreeWidgetItem *> items ) const;
|
RsTokenService *mRsService;
|
||||||
//virtual QStringList mimeTypes () const;
|
|
||||||
//virtual Qt::DropActions supportedDropActions () const;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user