mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-07-30 09:48:59 -04:00
added handling of channel, forum and posted events in GUI
This commit is contained in:
parent
eef5a5a8ef
commit
4fe6e46410
6 changed files with 174 additions and 74 deletions
|
@ -81,10 +81,6 @@ NewsFeed::NewsFeed(QWidget *parent) :
|
|||
/* Invoke the Qt Designer generated object setup routine */
|
||||
ui->setupUi(this);
|
||||
|
||||
mTokenQueueChannel = NULL;
|
||||
mTokenQueueForum = NULL;
|
||||
mTokenQueuePosted = NULL;
|
||||
|
||||
setUpdateWhenInvisible(true);
|
||||
|
||||
if (!instance) {
|
||||
|
@ -134,16 +130,6 @@ NewsFeed::~NewsFeed()
|
|||
if (instance == this) {
|
||||
instance = NULL;
|
||||
}
|
||||
|
||||
if (mTokenQueueChannel) {
|
||||
delete(mTokenQueueChannel);
|
||||
}
|
||||
if (mTokenQueueForum) {
|
||||
delete(mTokenQueueForum);
|
||||
}
|
||||
if (mTokenQueuePosted) {
|
||||
delete(mTokenQueuePosted);
|
||||
}
|
||||
}
|
||||
|
||||
UserNotify *NewsFeed::getUserNotify(QObject *parent)
|
||||
|
@ -199,6 +185,79 @@ void NewsFeed::handleEvent_main_thread(std::shared_ptr<const RsEvent> event)
|
|||
|
||||
if(event->mType == RsEventType::GXS_CIRCLES && (flags & RS_FEED_TYPE_CIRCLE))
|
||||
handleCircleEvent(event);
|
||||
|
||||
if(event->mType == RsEventType::GXS_CHANNELS && (flags & RS_FEED_TYPE_CHANNEL))
|
||||
handleChannelEvent(event);
|
||||
|
||||
if(event->mType == RsEventType::GXS_FORUMS && (flags & RS_FEED_TYPE_FORUM))
|
||||
handleForumEvent(event);
|
||||
|
||||
if(event->mType == RsEventType::GXS_POSTED && (flags & RS_FEED_TYPE_POSTED))
|
||||
handlePostedEvent(event);
|
||||
}
|
||||
|
||||
void NewsFeed::handlePostedEvent(std::shared_ptr<const RsEvent> event)
|
||||
{
|
||||
const RsGxsPostedEvent *pe = dynamic_cast<const RsGxsPostedEvent*>(event.get());
|
||||
if(!pe)
|
||||
return;
|
||||
|
||||
switch(pe->mPostedEventCode)
|
||||
{
|
||||
case RsGxsPostedEvent::NEW_POSTED_GROUP: addFeedItem( new PostedGroupItem(this, NEWSFEED_POSTEDNEWLIST, pe->mPostedGroupId, false, true));
|
||||
break;
|
||||
|
||||
case RsGxsPostedEvent::NEW_MESSAGE: addFeedItem( new PostedItem(this, NEWSFEED_POSTEDMSGLIST, pe->mPostedGroupId, pe->mPostedMsgId, false, true));
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void NewsFeed::handleForumEvent(std::shared_ptr<const RsEvent> event)
|
||||
{
|
||||
const RsGxsForumEvent *pe = dynamic_cast<const RsGxsForumEvent*>(event.get());
|
||||
if(!pe)
|
||||
return;
|
||||
|
||||
switch(pe->mForumEventCode)
|
||||
{
|
||||
case RsGxsForumEvent::UPDATED_FORUM:
|
||||
case RsGxsForumEvent::NEW_FORUM: addFeedItem(new GxsForumGroupItem(this, NEWSFEED_FORUMNEWLIST, pe->mForumGroupId, false, true));
|
||||
break;
|
||||
|
||||
case RsGxsForumEvent::UPDATED_MESSAGE:
|
||||
case RsGxsForumEvent::NEW_MESSAGE: addFeedItem(new GxsForumMsgItem(this, NEWSFEED_FORUMNEWLIST, pe->mForumGroupId, pe->mForumMsgId, false, true));
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void NewsFeed::handleChannelEvent(std::shared_ptr<const RsEvent> event)
|
||||
{
|
||||
const RsGxsChannelEvent *pe = dynamic_cast<const RsGxsChannelEvent*>(event.get());
|
||||
if(!pe)
|
||||
return;
|
||||
|
||||
switch(pe->mChannelEventCode)
|
||||
{
|
||||
case RsGxsChannelEvent::UPDATED_CHANNEL:
|
||||
case RsGxsChannelEvent::NEW_CHANNEL: addFeedItem(new GxsChannelGroupItem(this, NEWSFEED_CHANNELNEWLIST, pe->mChannelGroupId, false, true));
|
||||
break;
|
||||
|
||||
case RsGxsChannelEvent::UPDATED_MESSAGE:
|
||||
case RsGxsChannelEvent::NEW_MESSAGE: addFeedItem(new GxsChannelPostItem(this, NEWSFEED_CHANNELNEWLIST, pe->mChannelGroupId, pe->mChannelMsgId, false, true));
|
||||
break;
|
||||
|
||||
case RsGxsChannelEvent::RECEIVED_PUBLISH_KEY: addFeedItem(new GxsChannelGroupItem(this, NEWSFEED_CHANNELPUBKEYLIST, pe->mChannelGroupId, false, true));
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void NewsFeed::handleCircleEvent(std::shared_ptr<const RsEvent> event)
|
||||
|
@ -248,7 +307,6 @@ void NewsFeed::handleCircleEvent(std::shared_ptr<const RsEvent> event)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void NewsFeed::handleConnectionEvent(std::shared_ptr<const RsEvent> event)
|
||||
{
|
||||
const RsConnectionEvent *pe = dynamic_cast<const RsConnectionEvent*>(event.get());
|
||||
|
@ -360,7 +418,6 @@ void NewsFeed::updateDisplay()
|
|||
if (flags & RS_FEED_TYPE_SECURITY_IP)
|
||||
addFeedItemSecurityWrongExternalIpReported(fi, false);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case RS_FEED_ITEM_CHANNEL_NEW:
|
||||
if (flags & RS_FEED_TYPE_CHANNEL)
|
||||
|
@ -442,6 +499,7 @@ void NewsFeed::updateDisplay()
|
|||
if (flags & RS_FEED_TYPE_POSTED)
|
||||
addFeedItemPostedMsg(fi);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
case RS_FEED_ITEM_BLOG_NEW:
|
||||
|
@ -494,7 +552,6 @@ void NewsFeed::updateDisplay()
|
|||
|
||||
void NewsFeed::testFeeds(uint notifyFlags)
|
||||
{
|
||||
#ifdef TODO
|
||||
if (!instance) {
|
||||
return;
|
||||
}
|
||||
|
@ -510,6 +567,7 @@ void NewsFeed::testFeeds(uint notifyFlags)
|
|||
|
||||
RsFeedItem fi;
|
||||
|
||||
#ifdef TODO
|
||||
switch(type) {
|
||||
case RS_FEED_TYPE_PEER:
|
||||
fi.mId1 = rsPeers->getOwnId().toStdString();
|
||||
|
@ -652,12 +710,12 @@ void NewsFeed::testFeeds(uint notifyFlags)
|
|||
break;
|
||||
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
instance->ui->feedWidget->enableCountChangedSignal(true);
|
||||
|
||||
instance->sendNewsFeedChanged();
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef TO_REMOVE
|
||||
|
@ -697,7 +755,6 @@ void NewsFeed::loadCircleGroup(const uint32_t &token)
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void NewsFeed::loadChannelGroup(const uint32_t &token)
|
||||
{
|
||||
|
@ -970,9 +1027,11 @@ void NewsFeed::loadPostedMessage(const uint32_t &token)
|
|||
instance->addFeedItemPostedMsg(fi);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void NewsFeed::loadRequest(const TokenQueue *queue, const TokenRequest &req)
|
||||
{
|
||||
#ifdef TO_REMOVE
|
||||
if (queue == mTokenQueueChannel) {
|
||||
switch (req.mUserType) {
|
||||
case TOKEN_TYPE_GROUP:
|
||||
|
@ -994,7 +1053,6 @@ void NewsFeed::loadRequest(const TokenQueue *queue, const TokenRequest &req)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef TO_REMOVE
|
||||
if (queue == mTokenQueueCircle) {
|
||||
switch (req.mUserType) {
|
||||
case TOKEN_TYPE_GROUP:
|
||||
|
@ -1011,7 +1069,6 @@ void NewsFeed::loadRequest(const TokenQueue *queue, const TokenRequest &req)
|
|||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (queue == mTokenQueueForum) {
|
||||
switch (req.mUserType) {
|
||||
|
@ -1050,6 +1107,7 @@ void NewsFeed::loadRequest(const TokenQueue *queue, const TokenRequest &req)
|
|||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void NewsFeed::testFeed(FeedNotify *feedNotify)
|
||||
|
@ -1167,7 +1225,6 @@ void NewsFeed::addFeedItemPeerHello(const RsFeedItem &fi)
|
|||
std::cerr << std::endl;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
void NewsFeed::addFeedItemPeerNew(const RsFeedItem &fi)
|
||||
{
|
||||
|
@ -1183,7 +1240,6 @@ void NewsFeed::addFeedItemPeerNew(const RsFeedItem &fi)
|
|||
#endif
|
||||
}
|
||||
|
||||
#ifdef TO_REMOVE
|
||||
void NewsFeed::addFeedItemPeerOffset(const RsFeedItem &fi)
|
||||
{
|
||||
/* make new widget */
|
||||
|
@ -1254,7 +1310,6 @@ void NewsFeed::addFeedItemSecurityUnknownOut(const RsFeedItem &fi)
|
|||
std::cerr << std::endl;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
void NewsFeed::addFeedItemSecurityIpBlacklisted(const RsFeedItem &fi, bool isTest)
|
||||
{
|
||||
|
@ -1270,7 +1325,6 @@ void NewsFeed::addFeedItemSecurityIpBlacklisted(const RsFeedItem &fi, bool isTes
|
|||
#endif
|
||||
}
|
||||
|
||||
#ifdef TO_REMOVE
|
||||
void NewsFeed::addFeedItemSecurityWrongExternalIpReported(const RsFeedItem &fi, bool isTest)
|
||||
{
|
||||
/* make new widget */
|
||||
|
@ -1284,7 +1338,6 @@ void NewsFeed::addFeedItemSecurityWrongExternalIpReported(const RsFeedItem &fi,
|
|||
std::cerr << std::endl;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
void NewsFeed::addFeedItemChannelNew(const RsFeedItem &fi)
|
||||
{
|
||||
|
@ -1468,6 +1521,7 @@ void NewsFeed::addFeedItemPostedMsg(const RsFeedItem &fi)
|
|||
std::cerr << std::endl;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
void NewsFeed::addFeedItemBlogNew(const RsFeedItem &fi)
|
||||
|
|
|
@ -107,37 +107,13 @@ private:
|
|||
void handleSecurityEvent(std::shared_ptr<const RsEvent> event);
|
||||
void handleConnectionEvent(std::shared_ptr<const RsEvent> event);
|
||||
void handleCircleEvent(std::shared_ptr<const RsEvent> event);
|
||||
void handleForumEvent(std::shared_ptr<const RsEvent> event);
|
||||
void handlePostedEvent(std::shared_ptr<const RsEvent> event);
|
||||
void handleChannelEvent(std::shared_ptr<const RsEvent> event);
|
||||
|
||||
void addFeedItem(FeedItem *item);
|
||||
void addFeedItemIfUnique(FeedItem *item, bool replace);
|
||||
void remUniqueFeedItem(FeedItem *item);
|
||||
|
||||
void addFeedItemPeerConnect(const RsFeedItem &fi);
|
||||
void addFeedItemPeerDisconnect(const RsFeedItem &fi);
|
||||
void addFeedItemPeerHello(const RsFeedItem &fi);
|
||||
void addFeedItemPeerNew(const RsFeedItem &fi);
|
||||
void addFeedItemPeerOffset(const RsFeedItem &fi);
|
||||
|
||||
void addFeedItemSecurityConnectAttempt(const RsFeedItem &fi);
|
||||
void addFeedItemSecurityAuthDenied(const RsFeedItem &fi);
|
||||
void addFeedItemSecurityUnknownIn(const RsFeedItem &fi);
|
||||
void addFeedItemSecurityUnknownOut(const RsFeedItem &fi);
|
||||
void addFeedItemSecurityIpBlacklisted(const RsFeedItem &fi, bool isTest);
|
||||
void addFeedItemSecurityWrongExternalIpReported(const RsFeedItem &fi, bool isTest);
|
||||
|
||||
void addFeedItemChannelNew(const RsFeedItem &fi);
|
||||
// void addFeedItemChannelUpdate(const RsFeedItem &fi);
|
||||
void addFeedItemChannelMsg(const RsFeedItem &fi);
|
||||
void addFeedItemChannelPublishKey(const RsFeedItem &fi);
|
||||
|
||||
void addFeedItemForumNew(const RsFeedItem &fi);
|
||||
// void addFeedItemForumUpdate(const RsFeedItem &fi);
|
||||
void addFeedItemForumMsg(const RsFeedItem &fi);
|
||||
|
||||
void addFeedItemPostedNew(const RsFeedItem &fi);
|
||||
// void addFeedItemPostedUpdate(const RsFeedItem &fi);
|
||||
void addFeedItemPostedMsg(const RsFeedItem &fi);
|
||||
|
||||
#if 0
|
||||
void addFeedItemBlogNew(const RsFeedItem &fi);
|
||||
void addFeedItemBlogMsg(const RsFeedItem &fi);
|
||||
|
@ -147,27 +123,7 @@ private:
|
|||
void addFeedItemMessage(const RsFeedItem &fi);
|
||||
void addFeedItemFilesNew(const RsFeedItem &fi);
|
||||
|
||||
void addFeedItemCircleMembReq(const RsFeedItem &fi);
|
||||
void remFeedItemCircleMembReq(const RsFeedItem &fi);
|
||||
void addFeedItemCircleInvitRec(const RsFeedItem &fi);
|
||||
|
||||
virtual void loadChannelGroup(const uint32_t &token);
|
||||
virtual void loadChannelPost(const uint32_t &token);
|
||||
virtual void loadChannelPublishKey(const uint32_t &token);
|
||||
|
||||
virtual void loadForumGroup(const uint32_t &token);
|
||||
virtual void loadForumMessage(const uint32_t &token);
|
||||
virtual void loadForumPublishKey(const uint32_t &token);
|
||||
|
||||
virtual void loadPostedGroup(const uint32_t &token);
|
||||
virtual void loadPostedMessage(const uint32_t &token);
|
||||
|
||||
private:
|
||||
TokenQueue *mTokenQueueChannel;
|
||||
TokenQueue *mTokenQueueCircle;
|
||||
TokenQueue *mTokenQueueForum;
|
||||
TokenQueue *mTokenQueuePosted;
|
||||
|
||||
/* UI - from Designer */
|
||||
Ui::NewsFeed *ui;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue