mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-02-09 03:18:41 -05:00
commit
9f0134f32d
@ -34,6 +34,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "gui/common/FilesDefs.h"
|
#include "gui/common/FilesDefs.h"
|
||||||
|
#include "gui/RetroShareLink.h"
|
||||||
#include "gui/settings/rsharesettings.h"
|
#include "gui/settings/rsharesettings.h"
|
||||||
#include "util/misc.h"
|
#include "util/misc.h"
|
||||||
#include "ConnectFriendWizard.h"
|
#include "ConnectFriendWizard.h"
|
||||||
@ -449,8 +450,9 @@ void ConnectFriendWizard::initializePage(int id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
sockaddr_storage addr ;
|
sockaddr_storage addr ;
|
||||||
|
#ifdef DEBUG_FRIENDWIZARD
|
||||||
std::cerr << "Cert IP = " << peerDetails.extAddr << std::endl;
|
std::cerr << "Cert IP = " << peerDetails.extAddr << std::endl;
|
||||||
|
#endif
|
||||||
|
|
||||||
if(sockaddr_storage_ipv4_aton(addr,peerDetails.extAddr.c_str()) && sockaddr_storage_isValidNet(addr))
|
if(sockaddr_storage_ipv4_aton(addr,peerDetails.extAddr.c_str()) && sockaddr_storage_isValidNet(addr))
|
||||||
{
|
{
|
||||||
@ -870,7 +872,18 @@ void ConnectFriendWizard::cleanFriendCert()
|
|||||||
bool certValid = false;
|
bool certValid = false;
|
||||||
QString errorMsg ;
|
QString errorMsg ;
|
||||||
QString certDetail;
|
QString certDetail;
|
||||||
std::string cert = ui->friendCertEdit->toPlainText().toUtf8().constData();
|
|
||||||
|
std::string cert ;
|
||||||
|
RetroShareLink rslink(ui->friendCertEdit->toPlainText());
|
||||||
|
|
||||||
|
if(rslink.valid() && rslink.type() == RetroShareLink::TYPE_CERTIFICATE)
|
||||||
|
cert = rslink.radix().toStdString();
|
||||||
|
else
|
||||||
|
cert = ui->friendCertEdit->toPlainText().toUtf8().constData();
|
||||||
|
|
||||||
|
#ifdef DEBUG_FRIENDWIZARD
|
||||||
|
std::cerr << "Friend cert:\"" << cert << "\"" << std::endl;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (cert.empty()) {
|
if (cert.empty()) {
|
||||||
ui->friendCertCleanLabel->setToolTip("");
|
ui->friendCertCleanLabel->setToolTip("");
|
||||||
@ -936,7 +949,7 @@ void ConnectFriendWizard::cleanFriendCert()
|
|||||||
void ConnectFriendWizard::pasteCert()
|
void ConnectFriendWizard::pasteCert()
|
||||||
{
|
{
|
||||||
QClipboard *clipboard = QApplication::clipboard();
|
QClipboard *clipboard = QApplication::clipboard();
|
||||||
ui->friendCertEdit->setPlainText(clipboard->text());
|
ui->friendCertEdit->setPlainText(clipboard->text());
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectFriendWizard::openCert()
|
void ConnectFriendWizard::openCert()
|
||||||
|
@ -37,20 +37,47 @@ GxsChannelGroupItem::GxsChannelGroupItem(FeedHolder *feedHolder, uint32_t feedId
|
|||||||
GxsGroupFeedItem(feedHolder, feedId, groupId, isHome, rsGxsChannels, autoUpdate)
|
GxsGroupFeedItem(feedHolder, feedId, groupId, isHome, rsGxsChannels, autoUpdate)
|
||||||
{
|
{
|
||||||
setup();
|
setup();
|
||||||
|
|
||||||
requestGroup();
|
requestGroup();
|
||||||
|
addEventHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
GxsChannelGroupItem::GxsChannelGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsChannelGroup &group, bool isHome, bool autoUpdate) :
|
GxsChannelGroupItem::GxsChannelGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsChannelGroup &group, bool isHome, bool autoUpdate) :
|
||||||
GxsGroupFeedItem(feedHolder, feedId, group.mMeta.mGroupId, isHome, rsGxsChannels, autoUpdate)
|
GxsGroupFeedItem(feedHolder, feedId, group.mMeta.mGroupId, isHome, rsGxsChannels, autoUpdate)
|
||||||
{
|
{
|
||||||
setup();
|
setup();
|
||||||
|
setGroup(group);
|
||||||
|
addEventHandler();
|
||||||
|
}
|
||||||
|
|
||||||
setGroup(group);
|
void GxsChannelGroupItem::addEventHandler()
|
||||||
|
{
|
||||||
|
mEventHandlerId = 0;
|
||||||
|
rsEvents->registerEventsHandler( [this](std::shared_ptr<const RsEvent> event)
|
||||||
|
{
|
||||||
|
RsQThreadUtils::postToObject([=]()
|
||||||
|
{
|
||||||
|
const auto *e = dynamic_cast<const RsGxsChannelEvent*>(event.get());
|
||||||
|
|
||||||
|
if(!e || e->mChannelGroupId != this->groupId())
|
||||||
|
return;
|
||||||
|
|
||||||
|
switch(e->mChannelEventCode)
|
||||||
|
{
|
||||||
|
case RsChannelEventCode::SUBSCRIBE_STATUS_CHANGED:
|
||||||
|
case RsChannelEventCode::UPDATED_CHANNEL:
|
||||||
|
case RsChannelEventCode::RECEIVED_PUBLISH_KEY:
|
||||||
|
loadGroup();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}, this );
|
||||||
|
}, mEventHandlerId, RsEventType::GXS_CHANNELS );
|
||||||
}
|
}
|
||||||
|
|
||||||
GxsChannelGroupItem::~GxsChannelGroupItem()
|
GxsChannelGroupItem::~GxsChannelGroupItem()
|
||||||
{
|
{
|
||||||
|
rsEvents->unregisterEventsHandler(mEventHandlerId);
|
||||||
delete(ui);
|
delete(ui);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,12 +60,14 @@ private slots:
|
|||||||
private:
|
private:
|
||||||
void fill();
|
void fill();
|
||||||
void setup();
|
void setup();
|
||||||
|
void addEventHandler();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RsGxsChannelGroup mGroup;
|
RsGxsChannelGroup mGroup;
|
||||||
|
|
||||||
/** Qt Designer generated object */
|
/** Qt Designer generated object */
|
||||||
Ui::GxsChannelGroupItem *ui;
|
Ui::GxsChannelGroupItem *ui;
|
||||||
|
RsEventsHandlerId_t mEventHandlerId;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -251,7 +251,7 @@
|
|||||||
<enum>Qt::NoFocus</enum>
|
<enum>Qt::NoFocus</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Subscribe to Channel</string>
|
<string>Subscribe this Channel</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Subscribe</string>
|
<string>Subscribe</string>
|
||||||
|
@ -35,8 +35,8 @@ GxsForumGroupItem::GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, co
|
|||||||
GxsGroupFeedItem(feedHolder, feedId, groupId, isHome, rsGxsForums, autoUpdate)
|
GxsGroupFeedItem(feedHolder, feedId, groupId, isHome, rsGxsForums, autoUpdate)
|
||||||
{
|
{
|
||||||
setup();
|
setup();
|
||||||
|
|
||||||
requestGroup();
|
requestGroup();
|
||||||
|
addEventHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
GxsForumGroupItem::GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsGroupId &groupId, const std::list<RsGxsId>& added_moderators,const std::list<RsGxsId>& removed_moderators,bool isHome, bool autoUpdate):
|
GxsForumGroupItem::GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsGroupId &groupId, const std::list<RsGxsId>& added_moderators,const std::list<RsGxsId>& removed_moderators,bool isHome, bool autoUpdate):
|
||||||
@ -45,21 +45,48 @@ GxsForumGroupItem::GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, co
|
|||||||
mRemovedModerators(removed_moderators)
|
mRemovedModerators(removed_moderators)
|
||||||
{
|
{
|
||||||
setup();
|
setup();
|
||||||
|
|
||||||
requestGroup();
|
requestGroup();
|
||||||
|
addEventHandler();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxsForumGroupItem::addEventHandler()
|
||||||
|
{
|
||||||
|
mEventHandlerId = 0;
|
||||||
|
rsEvents->registerEventsHandler( [this](std::shared_ptr<const RsEvent> event)
|
||||||
|
{
|
||||||
|
RsQThreadUtils::postToObject([=]()
|
||||||
|
{
|
||||||
|
const auto *e = dynamic_cast<const RsGxsForumEvent*>(event.get());
|
||||||
|
|
||||||
|
if(!e || e->mForumGroupId != this->groupId())
|
||||||
|
return;
|
||||||
|
|
||||||
|
switch(e->mForumEventCode)
|
||||||
|
{
|
||||||
|
case RsForumEventCode::SUBSCRIBE_STATUS_CHANGED:
|
||||||
|
case RsForumEventCode::UPDATED_FORUM:
|
||||||
|
case RsForumEventCode::MODERATOR_LIST_CHANGED:
|
||||||
|
loadGroup();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}, this );
|
||||||
|
}, mEventHandlerId, RsEventType::GXS_FORUMS );
|
||||||
}
|
}
|
||||||
|
|
||||||
GxsForumGroupItem::GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsForumGroup &group, bool isHome, bool autoUpdate) :
|
GxsForumGroupItem::GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsForumGroup &group, bool isHome, bool autoUpdate) :
|
||||||
GxsGroupFeedItem(feedHolder, feedId, group.mMeta.mGroupId, isHome, rsGxsForums, autoUpdate)
|
GxsGroupFeedItem(feedHolder, feedId, group.mMeta.mGroupId, isHome, rsGxsForums, autoUpdate)
|
||||||
{
|
{
|
||||||
setup();
|
setup();
|
||||||
|
|
||||||
setGroup(group);
|
setGroup(group);
|
||||||
|
addEventHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
GxsForumGroupItem::~GxsForumGroupItem()
|
GxsForumGroupItem::~GxsForumGroupItem()
|
||||||
{
|
{
|
||||||
delete(ui);
|
rsEvents->unregisterEventsHandler(mEventHandlerId);
|
||||||
|
delete(ui);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GxsForumGroupItem::setup()
|
void GxsForumGroupItem::setup()
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#define _GXSFORUMGROUPITEM_H
|
#define _GXSFORUMGROUPITEM_H
|
||||||
|
|
||||||
#include <retroshare/rsgxsforums.h>
|
#include <retroshare/rsgxsforums.h>
|
||||||
|
#include <retroshare/rsevents.h>
|
||||||
#include "gui/gxs/GxsGroupFeedItem.h"
|
#include "gui/gxs/GxsGroupFeedItem.h"
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
@ -39,19 +40,19 @@ public:
|
|||||||
GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsGroupId &groupId, bool isHome, bool autoUpdate);
|
GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsGroupId &groupId, bool isHome, bool autoUpdate);
|
||||||
GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsGroupId &groupId, const std::list<RsGxsId>& added_moderators,const std::list<RsGxsId>& removed_moderators,bool isHome, bool autoUpdate);
|
GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsGroupId &groupId, const std::list<RsGxsId>& added_moderators,const std::list<RsGxsId>& removed_moderators,bool isHome, bool autoUpdate);
|
||||||
GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsForumGroup &group, bool isHome, bool autoUpdate);
|
GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsForumGroup &group, bool isHome, bool autoUpdate);
|
||||||
~GxsForumGroupItem();
|
virtual ~GxsForumGroupItem() override;
|
||||||
|
|
||||||
bool setGroup(const RsGxsForumGroup &group);
|
bool setGroup(const RsGxsForumGroup &group);
|
||||||
|
|
||||||
uint64_t uniqueIdentifier() const override { return hash_64bits("GxsForumGroupItem " + groupId().toStdString()) ; }
|
uint64_t uniqueIdentifier() const override { return hash_64bits("GxsForumGroupItem " + groupId().toStdString()) ; }
|
||||||
protected:
|
protected:
|
||||||
/* FeedItem */
|
/* FeedItem */
|
||||||
virtual void doExpand(bool open);
|
virtual void doExpand(bool open) override;
|
||||||
|
|
||||||
/* GxsGroupFeedItem */
|
/* GxsGroupFeedItem */
|
||||||
virtual QString groupName();
|
virtual QString groupName() override;
|
||||||
virtual void loadGroup() override;
|
virtual void loadGroup() override;
|
||||||
virtual RetroShareLink::enumType getLinkType() { return RetroShareLink::TYPE_FORUM; }
|
virtual RetroShareLink::enumType getLinkType() override { return RetroShareLink::TYPE_FORUM; }
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void subscribeForum();
|
void subscribeForum();
|
||||||
@ -60,6 +61,7 @@ private slots:
|
|||||||
private:
|
private:
|
||||||
void fill();
|
void fill();
|
||||||
void setup();
|
void setup();
|
||||||
|
void addEventHandler();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RsGxsForumGroup mGroup;
|
RsGxsForumGroup mGroup;
|
||||||
@ -69,6 +71,8 @@ private:
|
|||||||
|
|
||||||
std::list<RsGxsId> mAddedModerators;
|
std::list<RsGxsId> mAddedModerators;
|
||||||
std::list<RsGxsId> mRemovedModerators;
|
std::list<RsGxsId> mRemovedModerators;
|
||||||
|
|
||||||
|
RsEventsHandlerId_t mEventHandlerId;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user