Added notify of received groups and messages for forums and channels to libretroshare.

Show GxsChannelPostItem in NewsFeed.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7675 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2014-11-13 22:03:12 +00:00
parent 67215c7ffe
commit 33f785f200
6 changed files with 281 additions and 211 deletions

View file

@ -63,6 +63,9 @@ const uint32_t RS_CHAT_TABBED_WINDOW = 0x0008;
const uint32_t RS_CHAT_BLINK = 0x0010; const uint32_t RS_CHAT_BLINK = 0x0010;
const uint32_t RS_FEED_TYPE_PEER = 0x0010; const uint32_t RS_FEED_TYPE_PEER = 0x0010;
const uint32_t RS_FEED_TYPE_CHANNEL = 0x0020;
const uint32_t RS_FEED_TYPE_FORUM = 0x0040;
//const uint32_t RS_FEED_TYPE_BLOG = 0x0080;
const uint32_t RS_FEED_TYPE_CHAT = 0x0100; const uint32_t RS_FEED_TYPE_CHAT = 0x0100;
const uint32_t RS_FEED_TYPE_MSG = 0x0200; const uint32_t RS_FEED_TYPE_MSG = 0x0200;
const uint32_t RS_FEED_TYPE_FILES = 0x0400; const uint32_t RS_FEED_TYPE_FILES = 0x0400;
@ -82,6 +85,18 @@ const uint32_t RS_FEED_ITEM_SEC_BAD_CERTIFICATE = RS_FEED_TYPE_SECURITY | 0
const uint32_t RS_FEED_ITEM_SEC_INTERNAL_ERROR = RS_FEED_TYPE_SECURITY | 0x0007; const uint32_t RS_FEED_ITEM_SEC_INTERNAL_ERROR = RS_FEED_TYPE_SECURITY | 0x0007;
const uint32_t RS_FEED_ITEM_SEC_MISSING_CERTIFICATE = RS_FEED_TYPE_SECURITY | 0x0008; const uint32_t RS_FEED_ITEM_SEC_MISSING_CERTIFICATE = RS_FEED_TYPE_SECURITY | 0x0008;
const uint32_t RS_FEED_ITEM_CHANNEL_NEW = RS_FEED_TYPE_CHANNEL | 0x0001;
//const uint32_t RS_FEED_ITEM_CHANNEL_UPDATE = RS_FEED_TYPE_CHANNEL | 0x0002;
const uint32_t RS_FEED_ITEM_CHANNEL_MSG = RS_FEED_TYPE_CHANNEL | 0x0003;
const uint32_t RS_FEED_ITEM_FORUM_NEW = RS_FEED_TYPE_FORUM | 0x0001;
//const uint32_t RS_FEED_ITEM_FORUM_UPDATE = RS_FEED_TYPE_FORUM | 0x0002;
const uint32_t RS_FEED_ITEM_FORUM_MSG = RS_FEED_TYPE_FORUM | 0x0003;
//const uint32_t RS_FEED_ITEM_BLOG_NEW = RS_FEED_TYPE_BLOG | 0x0001;
//const uint32_t RS_FEED_ITEM_BLOG_UPDATE = RS_FEED_TYPE_BLOG | 0x0002;
//const uint32_t RS_FEED_ITEM_BLOG_MSG = RS_FEED_TYPE_BLOG | 0x0003;
const uint32_t RS_FEED_ITEM_CHAT_NEW = RS_FEED_TYPE_CHAT | 0x0001; const uint32_t RS_FEED_ITEM_CHAT_NEW = RS_FEED_TYPE_CHAT | 0x0001;
const uint32_t RS_FEED_ITEM_MESSAGE = RS_FEED_TYPE_MSG | 0x0001; const uint32_t RS_FEED_ITEM_MESSAGE = RS_FEED_TYPE_MSG | 0x0001;
const uint32_t RS_FEED_ITEM_FILES_NEW = RS_FEED_TYPE_FILES | 0x0001; const uint32_t RS_FEED_ITEM_FILES_NEW = RS_FEED_TYPE_FILES | 0x0001;

View file

@ -33,6 +33,9 @@
#include "retroshare/rsgxsflags.h" #include "retroshare/rsgxsflags.h"
#include "retroshare/rsfiles.h" #include "retroshare/rsfiles.h"
#include "rsserver/p3face.h"
#include "retroshare/rsnotify.h"
#include <stdio.h> #include <stdio.h>
// For Dummy Msgs. // For Dummy Msgs.
@ -128,6 +131,12 @@ void p3GxsChannels::notifyChanges(std::vector<RsGxsNotify *> &changes)
std::cerr << "p3GxsChannels::notifyChanges()"; std::cerr << "p3GxsChannels::notifyChanges()";
std::cerr << std::endl; std::cerr << std::endl;
p3Notify *notify = NULL;
if (!changes.empty())
{
notify = RsServer::notify();
}
/* iterate through and grab any new messages */ /* iterate through and grab any new messages */
std::list<RsGxsGroupId> unprocessedGroups; std::list<RsGxsGroupId> unprocessedGroups;
@ -135,26 +144,64 @@ void p3GxsChannels::notifyChanges(std::vector<RsGxsNotify *> &changes)
for(it = changes.begin(); it != changes.end(); ++it) for(it = changes.begin(); it != changes.end(); ++it)
{ {
RsGxsMsgChange *msgChange = dynamic_cast<RsGxsMsgChange *>(*it); RsGxsMsgChange *msgChange = dynamic_cast<RsGxsMsgChange *>(*it);
if (msgChange && !msgChange->metaChange()) if (msgChange)
{ {
std::cerr << "p3GxsChannels::notifyChanges() Found Message Change Notification"; if (msgChange->getType() == RsGxsNotify::TYPE_RECEIVE)
std::cerr << std::endl;
std::map<RsGxsGroupId, std::vector<RsGxsMessageId> > &msgChangeMap = msgChange->msgChangeMap;
std::map<RsGxsGroupId, std::vector<RsGxsMessageId> >::iterator mit;
for(mit = msgChangeMap.begin(); mit != msgChangeMap.end(); ++mit)
{ {
std::cerr << "p3GxsChannels::notifyChanges() Msgs for Group: " << mit->first; /* message received */
if (notify)
{
std::map<RsGxsGroupId, std::vector<RsGxsMessageId> > &msgChangeMap = msgChange->msgChangeMap;
std::map<RsGxsGroupId, std::vector<RsGxsMessageId> >::iterator mit;
for (mit = msgChangeMap.begin(); mit != msgChangeMap.end(); ++mit)
{
std::vector<RsGxsMessageId>::iterator mit1;
for (mit1 = mit->second.begin(); mit1 != mit->second.end(); ++mit1)
{
notify->AddFeedItem(RS_FEED_ITEM_CHANNEL_MSG, mit->first.toStdString(), mit1->toStdString());
}
}
}
}
if (!msgChange->metaChange())
{
std::cerr << "p3GxsChannels::notifyChanges() Found Message Change Notification";
std::cerr << std::endl; std::cerr << std::endl;
if (autoDownloadEnabled(mit->first)) std::map<RsGxsGroupId, std::vector<RsGxsMessageId> > &msgChangeMap = msgChange->msgChangeMap;
std::map<RsGxsGroupId, std::vector<RsGxsMessageId> >::iterator mit;
for(mit = msgChangeMap.begin(); mit != msgChangeMap.end(); ++mit)
{ {
std::cerr << "p3GxsChannels::notifyChanges() AutoDownload for Group: " << mit->first; std::cerr << "p3GxsChannels::notifyChanges() Msgs for Group: " << mit->first;
std::cerr << std::endl; std::cerr << std::endl;
/* problem is most of these will be comments and votes, if (autoDownloadEnabled(mit->first))
* should make it occasional - every 5mins / 10minutes TODO */ {
unprocessedGroups.push_back(mit->first); std::cerr << "p3GxsChannels::notifyChanges() AutoDownload for Group: " << mit->first;
std::cerr << std::endl;
/* problem is most of these will be comments and votes,
* should make it occasional - every 5mins / 10minutes TODO */
unprocessedGroups.push_back(mit->first);
}
}
}
}
else
{
if (notify && (*it)->getType() == RsGxsNotify::TYPE_RECEIVE)
{
RsGxsGroupChange *grpChange = dynamic_cast<RsGxsGroupChange *>(*it);
if (grpChange)
{
/* group received */
std::list<RsGxsGroupId> &grpList = grpChange->mGrpIdList;
std::list<RsGxsGroupId>::iterator git;
for (git = grpList.begin(); git != grpList.end(); ++git)
{
notify->AddFeedItem(RS_FEED_ITEM_CHANNEL_NEW, git->toStdString());
}
} }
} }
} }

View file

@ -28,6 +28,8 @@
#include <retroshare/rsidentity.h> #include <retroshare/rsidentity.h>
#include "rsserver/p3face.h"
#include "retroshare/rsnotify.h"
#include "retroshare/rsgxsflags.h" #include "retroshare/rsgxsflags.h"
#include <stdio.h> #include <stdio.h>
@ -98,6 +100,51 @@ uint32_t p3GxsForums::forumsAuthenPolicy()
void p3GxsForums::notifyChanges(std::vector<RsGxsNotify *> &changes) void p3GxsForums::notifyChanges(std::vector<RsGxsNotify *> &changes)
{ {
if (!changes.empty())
{
p3Notify *notify = RsServer::notify();
if (notify)
{
std::vector<RsGxsNotify*>::iterator it;
for(it = changes.begin(); it != changes.end(); ++it)
{
RsGxsNotify *c = *it;
if (c->getType() == RsGxsNotify::TYPE_RECEIVE)
{
RsGxsMsgChange *msgChange = dynamic_cast<RsGxsMsgChange*>(c);
if (msgChange)
{
std::map<RsGxsGroupId, std::vector<RsGxsMessageId> > &msgChangeMap = msgChange->msgChangeMap;
std::map<RsGxsGroupId, std::vector<RsGxsMessageId> >::iterator mit;
for (mit = msgChangeMap.begin(); mit != msgChangeMap.end(); ++mit)
{
std::vector<RsGxsMessageId>::iterator mit1;
for (mit1 = mit->second.begin(); mit1 != mit->second.end(); ++mit1)
{
notify->AddFeedItem(RS_FEED_ITEM_FORUM_MSG, mit->first.toStdString(), mit1->toStdString());
}
}
continue;
}
RsGxsGroupChange *grpChange = dynamic_cast<RsGxsGroupChange *>(*it);
if (grpChange)
{
/* group received */
std::list<RsGxsGroupId> &grpList = grpChange->mGrpIdList;
std::list<RsGxsGroupId>::iterator git;
for (git = grpList.begin(); git != grpList.end(); ++git)
{
notify->AddFeedItem(RS_FEED_ITEM_FORUM_NEW, git->toStdString());
}
continue;
}
}
}
}
}
RsGxsIfaceHelper::receiveChanges(changes); RsGxsIfaceHelper::receiveChanges(changes);
} }

View file

@ -30,12 +30,10 @@
#include <retroshare/rsmsgs.h> #include <retroshare/rsmsgs.h>
#include <retroshare/rsplugin.h> #include <retroshare/rsplugin.h>
#if 0 //#include "feeds/ChanNewItem.h"
#include "feeds/ChanNewItem.h" #include "feeds/GxsChannelPostItem.h"
#include "feeds/ChanMsgItem.h" //#include "feeds/ForumNewItem.h"
#include "feeds/ForumNewItem.h" //#include "feeds/ForumMsgItem.h"
#include "feeds/ForumMsgItem.h"
#endif
#include "settings/rsettingswin.h" #include "settings/rsettingswin.h"
#ifdef BLOGS #ifdef BLOGS
@ -54,20 +52,20 @@
#include "msgs/MessageComposer.h" #include "msgs/MessageComposer.h"
#include "common/FeedNotify.h" #include "common/FeedNotify.h"
const uint32_t NEWSFEED_PEERLIST = 0x0001; const uint32_t NEWSFEED_PEERLIST = 0x0001;
const uint32_t NEWSFEED_FORUMNEWLIST = 0x0002;
const uint32_t NEWSFEED_FORUMMSGLIST = 0x0003;
const uint32_t NEWSFEED_CHANNELNEWLIST = 0x0004;
const uint32_t NEWSFEED_CHANNELMSGLIST = 0x0005;
#if 0 #if 0
const uint32_t NEWSFEED_FORUMNEWLIST = 0x0002; const uint32_t NEWSFEED_BLOGNEWLIST = 0x0006;
const uint32_t NEWSFEED_FORUMMSGLIST = 0x0003; const uint32_t NEWSFEED_BLOGMSGLIST = 0x0007;
const uint32_t NEWSFEED_CHANNEWLIST = 0x0004;
const uint32_t NEWSFEED_CHANMSGLIST = 0x0005;
const uint32_t NEWSFEED_BLOGNEWLIST = 0x0006;
const uint32_t NEWSFEED_BLOGMSGLIST = 0x0007;
#endif #endif
const uint32_t NEWSFEED_MESSAGELIST = 0x0008; const uint32_t NEWSFEED_MESSAGELIST = 0x0008;
const uint32_t NEWSFEED_CHATMSGLIST = 0x0009; const uint32_t NEWSFEED_CHATMSGLIST = 0x0009;
const uint32_t NEWSFEED_SECLIST = 0x000a; const uint32_t NEWSFEED_SECLIST = 0x000a;
/***** /*****
* #define NEWS_DEBUG 1 * #define NEWS_DEBUG 1
@ -174,33 +172,33 @@ void NewsFeed::updateDisplay()
addFeedItemSecurityUnknownOut(fi); addFeedItemSecurityUnknownOut(fi);
break; break;
#if 0 case RS_FEED_ITEM_CHANNEL_NEW:
case RS_FEED_ITEM_CHAN_NEW: if (flags & RS_FEED_TYPE_CHANNEL)
if (flags & RS_FEED_TYPE_CHAN) addFeedItemChannelNew(fi);
addFeedItemChanNew(fi);
break; break;
case RS_FEED_ITEM_CHAN_UPDATE: // case RS_FEED_ITEM_CHANNEL_UPDATE:
if (flags & RS_FEED_TYPE_CHAN) // if (flags & RS_FEED_TYPE_CHANNEL)
addFeedItemChanUpdate(fi); // addFeedItemChannelUpdate(fi);
break; // break;
case RS_FEED_ITEM_CHAN_MSG: case RS_FEED_ITEM_CHANNEL_MSG:
if (flags & RS_FEED_TYPE_CHAN) if (flags & RS_FEED_TYPE_CHANNEL)
addFeedItemChanMsg(fi); addFeedItemChannelMsg(fi);
break; break;
case RS_FEED_ITEM_FORUM_NEW: case RS_FEED_ITEM_FORUM_NEW:
if (flags & RS_FEED_TYPE_FORUM) if (flags & RS_FEED_TYPE_FORUM)
addFeedItemForumNew(fi); addFeedItemForumNew(fi);
break; break;
case RS_FEED_ITEM_FORUM_UPDATE: // case RS_FEED_ITEM_FORUM_UPDATE:
if (flags & RS_FEED_TYPE_FORUM) // if (flags & RS_FEED_TYPE_FORUM)
addFeedItemForumUpdate(fi); // addFeedItemForumUpdate(fi);
break; // break;
case RS_FEED_ITEM_FORUM_MSG: case RS_FEED_ITEM_FORUM_MSG:
if (flags & RS_FEED_TYPE_FORUM) if (flags & RS_FEED_TYPE_FORUM)
addFeedItemForumMsg(fi); addFeedItemForumMsg(fi);
break; break;
#if 0
case RS_FEED_ITEM_BLOG_NEW: case RS_FEED_ITEM_BLOG_NEW:
if (flags & RS_FEED_TYPE_BLOG) if (flags & RS_FEED_TYPE_BLOG)
addFeedItemBlogNew(fi); addFeedItemBlogNew(fi);
@ -284,7 +282,7 @@ void NewsFeed::testFeeds(uint notifyFlags)
break; break;
#if 0 #if 0
case RS_FEED_TYPE_CHAN: case RS_FEED_TYPE_CHANNEL:
{ {
std::list<ChannelInfo> channelList; std::list<ChannelInfo> channelList;
rsChannels->getChannelList(channelList); rsChannels->getChannelList(channelList);
@ -516,12 +514,10 @@ void NewsFeed::addFeedItemIfUnique(QWidget *item, int itemType, const RsPeerId &
addFeedItem(item); addFeedItem(item);
} }
void NewsFeed::addFeedItemPeerConnect(RsFeedItem &fi) void NewsFeed::addFeedItemPeerConnect(RsFeedItem &fi)
{ {
/* make new widget */ /* make new widget */
PeerItem *pi = new PeerItem(this, NEWSFEED_PEERLIST, RsPeerId(fi.mId1), PEER_TYPE_CONNECT, false); PeerItem *pi = new PeerItem(this, NEWSFEED_PEERLIST, RsPeerId(fi.mId1), PEER_TYPE_CONNECT, false);
/* store */
/* add to layout */ /* add to layout */
addFeedItem(pi); addFeedItem(pi);
@ -533,12 +529,10 @@ void NewsFeed::addFeedItemPeerConnect(RsFeedItem &fi)
} }
void NewsFeed::addFeedItemPeerDisconnect(RsFeedItem &fi) void NewsFeed::addFeedItemPeerDisconnect(RsFeedItem &fi)
{ {
/* make new widget */ /* make new widget */
PeerItem *pi = new PeerItem(this, NEWSFEED_PEERLIST, RsPeerId(fi.mId1), PEER_TYPE_STD, false); PeerItem *pi = new PeerItem(this, NEWSFEED_PEERLIST, RsPeerId(fi.mId1), PEER_TYPE_STD, false);
/* store */
/* add to layout */ /* add to layout */
addFeedItem(pi); addFeedItem(pi);
@ -549,12 +543,10 @@ void NewsFeed::addFeedItemPeerDisconnect(RsFeedItem &fi)
#endif #endif
} }
void NewsFeed::addFeedItemPeerHello(RsFeedItem &fi) void NewsFeed::addFeedItemPeerHello(RsFeedItem &fi)
{ {
/* make new widget */ /* make new widget */
PeerItem *pi = new PeerItem(this, NEWSFEED_PEERLIST, RsPeerId(fi.mId1), PEER_TYPE_HELLO, false); PeerItem *pi = new PeerItem(this, NEWSFEED_PEERLIST, RsPeerId(fi.mId1), PEER_TYPE_HELLO, false);
/* store */
/* add to layout */ /* add to layout */
addFeedItem(pi); addFeedItem(pi);
@ -565,12 +557,10 @@ void NewsFeed::addFeedItemPeerHello(RsFeedItem &fi)
#endif #endif
} }
void NewsFeed::addFeedItemPeerNew(RsFeedItem &fi) void NewsFeed::addFeedItemPeerNew(RsFeedItem &fi)
{ {
/* make new widget */ /* make new widget */
PeerItem *pi = new PeerItem(this, NEWSFEED_PEERLIST, RsPeerId(fi.mId1), PEER_TYPE_NEW_FOF, false); PeerItem *pi = new PeerItem(this, NEWSFEED_PEERLIST, RsPeerId(fi.mId1), PEER_TYPE_NEW_FOF, false);
/* store */
/* add to layout */ /* add to layout */
addFeedItem(pi); addFeedItem(pi);
@ -581,15 +571,13 @@ void NewsFeed::addFeedItemPeerNew(RsFeedItem &fi)
#endif #endif
} }
void NewsFeed::addFeedItemSecurityConnectAttempt(RsFeedItem &fi) void NewsFeed::addFeedItemSecurityConnectAttempt(RsFeedItem &fi)
{ {
/* make new widget */ /* make new widget */
SecurityItem *pi = new SecurityItem(this, NEWSFEED_SECLIST, RsPgpId(fi.mId1), RsPeerId(fi.mId2), fi.mId3, fi.mId4, fi.mType, false); SecurityItem *pi = new SecurityItem(this, NEWSFEED_SECLIST, RsPgpId(fi.mId1), RsPeerId(fi.mId2), fi.mId3, fi.mId4, fi.mType, false);
/* store */
/* add to layout */ /* add to layout */
addFeedItemIfUnique(pi, fi.mType, RsPeerId(fi.mId2), false); addFeedItemIfUnique(pi, fi.mType, RsPeerId(fi.mId2), false);
#ifdef NEWS_DEBUG #ifdef NEWS_DEBUG
std::cerr << "NewsFeed::addFeedItemSecurityConnectAttempt()"; std::cerr << "NewsFeed::addFeedItemSecurityConnectAttempt()";
@ -597,15 +585,13 @@ void NewsFeed::addFeedItemSecurityConnectAttempt(RsFeedItem &fi)
#endif #endif
} }
void NewsFeed::addFeedItemSecurityAuthDenied(RsFeedItem &fi) void NewsFeed::addFeedItemSecurityAuthDenied(RsFeedItem &fi)
{ {
/* make new widget */ /* make new widget */
SecurityItem *pi = new SecurityItem(this, NEWSFEED_SECLIST, RsPgpId(fi.mId1), RsPeerId(fi.mId2), fi.mId3, fi.mId4, fi.mType, false); SecurityItem *pi = new SecurityItem(this, NEWSFEED_SECLIST, RsPgpId(fi.mId1), RsPeerId(fi.mId2), fi.mId3, fi.mId4, fi.mType, false);
/* store */
/* add to layout */ /* add to layout */
addFeedItemIfUnique(pi, RS_FEED_ITEM_SEC_AUTH_DENIED, RsPeerId(fi.mId2), false); addFeedItemIfUnique(pi, RS_FEED_ITEM_SEC_AUTH_DENIED, RsPeerId(fi.mId2), false);
#ifdef NEWS_DEBUG #ifdef NEWS_DEBUG
std::cerr << "NewsFeed::addFeedItemSecurityAuthDenied()"; std::cerr << "NewsFeed::addFeedItemSecurityAuthDenied()";
@ -613,15 +599,13 @@ void NewsFeed::addFeedItemSecurityAuthDenied(RsFeedItem &fi)
#endif #endif
} }
void NewsFeed::addFeedItemSecurityUnknownIn(RsFeedItem &fi) void NewsFeed::addFeedItemSecurityUnknownIn(RsFeedItem &fi)
{ {
/* make new widget */ /* make new widget */
SecurityItem *pi = new SecurityItem(this, NEWSFEED_SECLIST, RsPgpId(fi.mId1), RsPeerId(fi.mId2), fi.mId3, fi.mId4, RS_FEED_ITEM_SEC_UNKNOWN_IN, false); SecurityItem *pi = new SecurityItem(this, NEWSFEED_SECLIST, RsPgpId(fi.mId1), RsPeerId(fi.mId2), fi.mId3, fi.mId4, RS_FEED_ITEM_SEC_UNKNOWN_IN, false);
/* store */
/* add to layout */ /* add to layout */
addFeedItemIfUnique(pi, RS_FEED_ITEM_SEC_UNKNOWN_IN, RsPeerId(fi.mId2), false); addFeedItemIfUnique(pi, RS_FEED_ITEM_SEC_UNKNOWN_IN, RsPeerId(fi.mId2), false);
#ifdef NEWS_DEBUG #ifdef NEWS_DEBUG
std::cerr << "NewsFeed::addFeedItemSecurityUnknownIn()"; std::cerr << "NewsFeed::addFeedItemSecurityUnknownIn()";
@ -629,15 +613,13 @@ void NewsFeed::addFeedItemSecurityUnknownIn(RsFeedItem &fi)
#endif #endif
} }
void NewsFeed::addFeedItemSecurityUnknownOut(RsFeedItem &fi) void NewsFeed::addFeedItemSecurityUnknownOut(RsFeedItem &fi)
{ {
/* make new widget */ /* make new widget */
SecurityItem *pi = new SecurityItem(this, NEWSFEED_SECLIST, RsPgpId(fi.mId1), RsPeerId(fi.mId2), fi.mId3, fi.mId4, RS_FEED_ITEM_SEC_UNKNOWN_OUT, false); SecurityItem *pi = new SecurityItem(this, NEWSFEED_SECLIST, RsPgpId(fi.mId1), RsPeerId(fi.mId2), fi.mId3, fi.mId4, RS_FEED_ITEM_SEC_UNKNOWN_OUT, false);
/* store */
/* add to layout */ /* add to layout */
addFeedItemIfUnique(pi, RS_FEED_ITEM_SEC_UNKNOWN_OUT, RsPeerId(fi.mId2), false); addFeedItemIfUnique(pi, RS_FEED_ITEM_SEC_UNKNOWN_OUT, RsPeerId(fi.mId2), false);
#ifdef NEWS_DEBUG #ifdef NEWS_DEBUG
std::cerr << "NewsFeed::addFeedItemSecurityUnknownOut()"; std::cerr << "NewsFeed::addFeedItemSecurityUnknownOut()";
@ -645,17 +627,13 @@ void NewsFeed::addFeedItemSecurityUnknownOut(RsFeedItem &fi)
#endif #endif
} }
#if 0 void NewsFeed::addFeedItemChannelNew(RsFeedItem &fi)
void NewsFeed::addFeedItemChanNew(RsFeedItem &fi)
{ {
/* make new widget */ /* make new widget */
ChanNewItem *cni = new ChanNewItem(this, NEWSFEED_CHANNEWLIST, fi.mId1, false, true); // ChanNewItem *cni = new ChanNewItem(this, NEWSFEED_CHANNEWLIST, fi.mId1, false, true);
/* store in list */
/* add to layout */ /* add to layout */
addFeedItem(cni); // addFeedItem(cni);
#ifdef NEWS_DEBUG #ifdef NEWS_DEBUG
std::cerr << "NewsFeed::addFeedItemChanNew()"; std::cerr << "NewsFeed::addFeedItemChanNew()";
@ -663,31 +641,34 @@ void NewsFeed::addFeedItemChanNew(RsFeedItem &fi)
#endif #endif
} }
void NewsFeed::addFeedItemChanUpdate(RsFeedItem &fi) //void NewsFeed::addFeedItemChannelUpdate(RsFeedItem &fi)
{ //{
/* make new widget */ // /* make new widget */
ChanNewItem *cni = new ChanNewItem(this, NEWSFEED_CHANNEWLIST, fi.mId1, false, false); // ChanNewItem *cni = new ChanNewItem(this, NEWSFEED_CHANNEWLIST, fi.mId1, false, false);
/* store in list */ // /* add to layout */
// addFeedItem(cni);
//#ifdef NEWS_DEBUG
// std::cerr << "NewsFeed::addFeedItemChanUpdate()";
// std::cerr << std::endl;
//#endif
//}
void NewsFeed::addFeedItemChannelMsg(RsFeedItem &fi)
{
RsGxsGroupId grpId(fi.mId1);
RsGxsMessageId msgId(fi.mId2);
if (grpId.isNull() || msgId.isNull()) {
return;
}
/* make new widget */
GxsChannelPostItem *item = new GxsChannelPostItem(this, NEWSFEED_CHANNELNEWLIST, grpId, msgId, false, true);
/* add to layout */ /* add to layout */
addFeedItem(cni); addFeedItem(item);
#ifdef NEWS_DEBUG
std::cerr << "NewsFeed::addFeedItemChanUpdate()";
std::cerr << std::endl;
#endif
}
void NewsFeed::addFeedItemChanMsg(RsFeedItem &fi)
{
/* make new widget */
ChanMsgItem *cm = new ChanMsgItem(this, NEWSFEED_CHANMSGLIST, fi.mId1, fi.mId2, false);
/* store in forum list */
/* add to layout */
addFeedItem(cm);
#ifdef NEWS_DEBUG #ifdef NEWS_DEBUG
std::cerr << "NewsFeed::addFeedItemChanMsg()"; std::cerr << "NewsFeed::addFeedItemChanMsg()";
@ -695,16 +676,13 @@ void NewsFeed::addFeedItemChanMsg(RsFeedItem &fi)
#endif #endif
} }
void NewsFeed::addFeedItemForumNew(RsFeedItem &fi) void NewsFeed::addFeedItemForumNew(RsFeedItem &fi)
{ {
/* make new widget */ /* make new widget */
ForumNewItem *fni = new ForumNewItem(this, NEWSFEED_FORUMNEWLIST, fi.mId1, false, true); // ForumNewItem *fni = new ForumNewItem(this, NEWSFEED_FORUMNEWLIST, fi.mId1, false, true);
/* store in forum list */
mForumNewItems.push_back(fni);
/* add to layout */ /* add to layout */
addFeedItem(fni); // addFeedItem(fni);
#ifdef NEWS_DEBUG #ifdef NEWS_DEBUG
std::cerr << "NewsFeed::addFeedItemForumNew()"; std::cerr << "NewsFeed::addFeedItemForumNew()";
@ -712,32 +690,27 @@ void NewsFeed::addFeedItemForumNew(RsFeedItem &fi)
#endif #endif
} }
void NewsFeed::addFeedItemForumUpdate(RsFeedItem &fi) //void NewsFeed::addFeedItemForumUpdate(RsFeedItem &fi)
//{
// /* make new widget */
// ForumNewItem *fni = new ForumNewItem(this, NEWSFEED_FORUMNEWLIST, fi.mId1, false, false);
// /* add to layout */
// addFeedItem(fni);
//#ifdef NEWS_DEBUG
// std::cerr << "NewsFeed::addFeedItemForumUpdate()";
// std::cerr << std::endl;
//#endif
//}
void NewsFeed::addFeedItemForumMsg(RsFeedItem &fi)
{ {
/* make new widget */ /* make new widget */
ForumNewItem *fni = new ForumNewItem(this, NEWSFEED_FORUMNEWLIST, fi.mId1, false, false); // ForumMsgItem *fm = new ForumMsgItem(this, NEWSFEED_FORUMMSGLIST, fi.mId1, fi.mId2, false);
/* store in forum list */
mForumNewItems.push_back(fni);
/* add to layout */ /* add to layout */
addFeedItem(fni); // addFeedItem(fm);
#ifdef NEWS_DEBUG
std::cerr << "NewsFeed::addFeedItemForumUpdate()";
std::cerr << std::endl;
#endif
}
void NewsFeed::addFeedItemForumMsg(RsFeedItem &fi)
{
/* make new widget */
ForumMsgItem *fm = new ForumMsgItem(this, NEWSFEED_FORUMMSGLIST, fi.mId1, fi.mId2, false);
/* store in forum list */
/* add to layout */
addFeedItem(fm);
#ifdef NEWS_DEBUG #ifdef NEWS_DEBUG
std::cerr << "NewsFeed::addFeedItemForumMsg()"; std::cerr << "NewsFeed::addFeedItemForumMsg()";
@ -745,14 +718,13 @@ void NewsFeed::addFeedItemForumMsg(RsFeedItem &fi)
#endif #endif
} }
void NewsFeed::addFeedItemBlogNew(RsFeedItem &fi) #if 0
void NewsFeed::addFeedItemBlogNew(RsFeedItem &fi)
{ {
#ifdef BLOGS #ifdef BLOGS
/* make new widget */ /* make new widget */
BlogNewItem *bni = new BlogNewItem(this, NEWSFEED_BLOGNEWLIST, fi.mId1, false, true); BlogNewItem *bni = new BlogNewItem(this, NEWSFEED_BLOGNEWLIST, fi.mId1, false, true);
/* store in list */
/* add to layout */ /* add to layout */
addFeedItem(bni); addFeedItem(bni);
#else #else
@ -765,14 +737,12 @@ void NewsFeed::addFeedItemBlogNew(RsFeedItem &fi)
#endif #endif
} }
void NewsFeed::addFeedItemBlogMsg(RsFeedItem &fi) void NewsFeed::addFeedItemBlogMsg(RsFeedItem &fi)
{ {
#ifdef BLOGS #ifdef BLOGS
/* make new widget */ /* make new widget */
BlogMsgItem *bm = new BlogMsgItem(this, NEWSFEED_BLOGMSGLIST, fi.mId1, fi.mId2, false); BlogMsgItem *bm = new BlogMsgItem(this, NEWSFEED_BLOGMSGLIST, fi.mId1, fi.mId2, false);
/* store in forum list */
/* add to layout */ /* add to layout */
addFeedItem(bm); addFeedItem(bm);
#else #else
@ -787,7 +757,7 @@ void NewsFeed::addFeedItemBlogMsg(RsFeedItem &fi)
#endif #endif
void NewsFeed::addFeedItemChatNew(RsFeedItem &fi, bool addWithoutCheck) void NewsFeed::addFeedItemChatNew(RsFeedItem &fi, bool addWithoutCheck)
{ {
#ifdef NEWS_DEBUG #ifdef NEWS_DEBUG
std::cerr << "NewsFeed::addFeedItemChatNew()"; std::cerr << "NewsFeed::addFeedItemChatNew()";
@ -800,21 +770,17 @@ void NewsFeed::addFeedItemChatNew(RsFeedItem &fi, bool addWithoutCheck)
} }
/* make new widget */ /* make new widget */
ChatMsgItem *cm = new ChatMsgItem(this, NEWSFEED_CHATMSGLIST, RsPeerId(fi.mId1), fi.mId2); ChatMsgItem *cm = new ChatMsgItem(this, NEWSFEED_CHATMSGLIST, RsPeerId(fi.mId1), fi.mId2);
/* store in forum list */
/* add to layout */ /* add to layout */
addFeedItem(cm); addFeedItem(cm);
} }
void NewsFeed::addFeedItemMessage(RsFeedItem &fi) void NewsFeed::addFeedItemMessage(RsFeedItem &fi)
{ {
/* make new widget */ /* make new widget */
MsgItem *mi = new MsgItem(this, NEWSFEED_MESSAGELIST, fi.mId1, false); MsgItem *mi = new MsgItem(this, NEWSFEED_MESSAGELIST, fi.mId1, false);
/* store in list */
/* add to layout */ /* add to layout */
addFeedItem(mi); addFeedItem(mi);
@ -824,7 +790,7 @@ void NewsFeed::addFeedItemMessage(RsFeedItem &fi)
#endif #endif
} }
void NewsFeed::addFeedItemFilesNew(RsFeedItem &/*fi*/) void NewsFeed::addFeedItemFilesNew(RsFeedItem &/*fi*/)
{ {
#ifdef NEWS_DEBUG #ifdef NEWS_DEBUG
std::cerr << "NewsFeed::addFeedItemFilesNew()"; std::cerr << "NewsFeed::addFeedItemFilesNew()";
@ -857,7 +823,7 @@ void NewsFeed::openChat(const RsPeerId &peerId)
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
ChatDialog::chatFriend(peerId); ChatDialog::chatFriend(peerId);
} }
void NewsFeed::openComments(uint32_t /*type*/, const RsGxsGroupId &/*groupId*/, const RsGxsMessageId &/*msgId*/, const QString &/*title*/) void NewsFeed::openComments(uint32_t /*type*/, const RsGxsGroupId &/*groupId*/, const RsGxsMessageId &/*msgId*/, const QString &/*title*/)

View file

@ -32,84 +32,77 @@
class RsFeedItem; class RsFeedItem;
class ForumNewItem;
class ChanMsgItem;
class ChatMsgItem;
class FeedNotify; class FeedNotify;
class NewsFeed : public RsAutoUpdatePage, public FeedHolder, private Ui::NewsFeed class NewsFeed : public RsAutoUpdatePage, public FeedHolder, private Ui::NewsFeed
{ {
Q_OBJECT Q_OBJECT
public: public:
/** Default Constructor */ /** Default Constructor */
NewsFeed(QWidget *parent = 0); NewsFeed(QWidget *parent = 0);
/** Default Destructor */ /** Default Destructor */
virtual ~NewsFeed(); virtual ~NewsFeed();
virtual QIcon iconPixmap() const { return QIcon(IMAGE_NEWSFEED) ; } //MainPage virtual QIcon iconPixmap() const { return QIcon(IMAGE_NEWSFEED) ; } //MainPage
virtual QString pageName() const { return tr("News feed") ; } //MainPage virtual QString pageName() const { return tr("News feed") ; } //MainPage
virtual QString helpText() const { return ""; } //MainPage virtual QString helpText() const { return ""; } //MainPage
virtual UserNotify *getUserNotify(QObject *parent); virtual UserNotify *getUserNotify(QObject *parent);
/* FeedHolder Functions (for FeedItem functionality) */ /* FeedHolder Functions (for FeedItem functionality) */
virtual QScrollArea *getScrollArea(); virtual QScrollArea *getScrollArea();
virtual void deleteFeedItem(QWidget *item, uint32_t type); virtual void deleteFeedItem(QWidget *item, uint32_t type);
virtual void openChat(const RsPeerId& peerId); virtual void openChat(const RsPeerId& peerId);
virtual void openComments(uint32_t type, const RsGxsGroupId &groupId, const RsGxsMessageId &msgId, const QString &title); virtual void openComments(uint32_t type, const RsGxsGroupId &groupId, const RsGxsMessageId &msgId, const QString &title);
static void testFeeds(uint notifyFlags); static void testFeeds(uint notifyFlags);
static void testFeed(FeedNotify *feedNotify); static void testFeed(FeedNotify *feedNotify);
virtual void updateDisplay();
virtual void updateDisplay();
signals: signals:
void newsFeedChanged(int count); void newsFeedChanged(int count);
private slots: private slots:
// void toggleChanMsgItems(bool on); // void toggleChanMsgItems(bool on);
void feedoptions(); void feedoptions();
void removeAll(); void removeAll();
void itemDestroyed(QObject*); void itemDestroyed(QObject*);
private: private:
void addFeedItem(QWidget *item); void addFeedItem(QWidget *item);
void addFeedItemIfUnique(QWidget *item, int itemType, const RsPeerId &sslId, bool replace); void addFeedItemIfUnique(QWidget *item, int itemType, const RsPeerId &sslId, bool replace);
void addFeedItemPeerConnect(RsFeedItem &fi); void addFeedItemPeerConnect(RsFeedItem &fi);
void addFeedItemPeerDisconnect(RsFeedItem &fi); void addFeedItemPeerDisconnect(RsFeedItem &fi);
void addFeedItemPeerNew(RsFeedItem &fi); void addFeedItemPeerNew(RsFeedItem &fi);
void addFeedItemPeerHello(RsFeedItem &fi); void addFeedItemPeerHello(RsFeedItem &fi);
void addFeedItemSecurityConnectAttempt(RsFeedItem &fi); void addFeedItemSecurityConnectAttempt(RsFeedItem &fi);
void addFeedItemSecurityAuthDenied(RsFeedItem &fi); void addFeedItemSecurityAuthDenied(RsFeedItem &fi);
void addFeedItemSecurityUnknownIn(RsFeedItem &fi); void addFeedItemSecurityUnknownIn(RsFeedItem &fi);
void addFeedItemSecurityUnknownOut(RsFeedItem &fi); void addFeedItemSecurityUnknownOut(RsFeedItem &fi);
void addFeedItemChannelNew(RsFeedItem &fi);
// void addFeedItemChannelUpdate(RsFeedItem &fi);
void addFeedItemChannelMsg(RsFeedItem &fi);
void addFeedItemForumNew(RsFeedItem &fi);
// void addFeedItemForumUpdate(RsFeedItem &fi);
void addFeedItemForumMsg(RsFeedItem &fi);
#if 0 #if 0
void addFeedItemChanNew(RsFeedItem &fi); void addFeedItemBlogNew(RsFeedItem &fi);
void addFeedItemChanUpdate(RsFeedItem &fi); void addFeedItemBlogMsg(RsFeedItem &fi);
void addFeedItemChanMsg(RsFeedItem &fi);
void addFeedItemForumNew(RsFeedItem &fi);
void addFeedItemForumUpdate(RsFeedItem &fi);
void addFeedItemForumMsg(RsFeedItem &fi);
void addFeedItemBlogNew(RsFeedItem &fi);
void addFeedItemBlogMsg(RsFeedItem &fi);
#endif #endif
void addFeedItemChatNew(RsFeedItem &fi, bool addWithoutCheck); void addFeedItemChatNew(RsFeedItem &fi, bool addWithoutCheck);
void addFeedItemMessage(RsFeedItem &fi); void addFeedItemMessage(RsFeedItem &fi);
void addFeedItemFilesNew(RsFeedItem &fi); void addFeedItemFilesNew(RsFeedItem &fi);
void sendNewsFeedChanged(); void sendNewsFeedChanged();
std::list<QObject*> widgets; std::list<QObject*> widgets;
/* lists of feedItems */
std::list<ForumNewItem *> mForumNewItems;
std::list<ChanMsgItem *> mChanMsgItems;
}; };
#endif #endif

View file

@ -44,6 +44,8 @@ NotifyPage::NotifyPage(QWidget * parent, Qt::WindowFlags flags)
connect(ui.pushButtonDisableAll,SIGNAL(toggled(bool)), NotifyQt::getInstance(), SLOT(SetDisableAll(bool))); connect(ui.pushButtonDisableAll,SIGNAL(toggled(bool)), NotifyQt::getInstance(), SLOT(SetDisableAll(bool)));
connect(NotifyQt::getInstance(),SIGNAL(disableAllChanged(bool)), ui.pushButtonDisableAll, SLOT(setChecked(bool))); connect(NotifyQt::getInstance(),SIGNAL(disableAllChanged(bool)), ui.pushButtonDisableAll, SLOT(setChecked(bool)));
ui.notify_Blogs->hide();
QFont font = ui.notify_Peers->font(); // use font from existing checkbox QFont font = ui.notify_Peers->font(); // use font from existing checkbox
/* add feed notify */ /* add feed notify */
@ -112,11 +114,11 @@ uint NotifyPage::getNewsFlags()
if (ui.notify_Peers->isChecked()) if (ui.notify_Peers->isChecked())
newsFlags |= RS_FEED_TYPE_PEER; newsFlags |= RS_FEED_TYPE_PEER;
#if 0
if (ui.notify_Channels->isChecked()) if (ui.notify_Channels->isChecked())
newsFlags |= RS_FEED_TYPE_CHAN; newsFlags |= RS_FEED_TYPE_CHANNEL;
if (ui.notify_Forums->isChecked()) if (ui.notify_Forums->isChecked())
newsFlags |= RS_FEED_TYPE_FORUM; newsFlags |= RS_FEED_TYPE_FORUM;
#if 0
if (ui.notify_Blogs->isChecked()) if (ui.notify_Blogs->isChecked())
newsFlags |= RS_FEED_TYPE_BLOG; newsFlags |= RS_FEED_TYPE_BLOG;
#endif #endif
@ -224,9 +226,9 @@ void NotifyPage::load()
ui.popup_ConnectAttempt->setChecked(notifyflags & RS_POPUP_CONNECT_ATTEMPT); ui.popup_ConnectAttempt->setChecked(notifyflags & RS_POPUP_CONNECT_ATTEMPT);
ui.notify_Peers->setChecked(newsflags & RS_FEED_TYPE_PEER); ui.notify_Peers->setChecked(newsflags & RS_FEED_TYPE_PEER);
#if 0 ui.notify_Channels->setChecked(newsflags & RS_FEED_TYPE_CHANNEL);
ui.notify_Channels->setChecked(newsflags & RS_FEED_TYPE_CHAN);
ui.notify_Forums->setChecked(newsflags & RS_FEED_TYPE_FORUM); ui.notify_Forums->setChecked(newsflags & RS_FEED_TYPE_FORUM);
#if 0
ui.notify_Blogs->setChecked(newsflags & RS_FEED_TYPE_BLOG); ui.notify_Blogs->setChecked(newsflags & RS_FEED_TYPE_BLOG);
#endif #endif
ui.notify_Chat->setChecked(newsflags & RS_FEED_TYPE_CHAT); ui.notify_Chat->setChecked(newsflags & RS_FEED_TYPE_CHAT);