Merge pull request #2781 from csoler/v0.6-BugFixing_30

GUI fixes
This commit is contained in:
csoler 2023-11-01 13:56:02 +01:00 committed by GitHub
commit 9f0134f32d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 88 additions and 15 deletions

View File

@ -34,6 +34,7 @@
#endif
#include "gui/common/FilesDefs.h"
#include "gui/RetroShareLink.h"
#include "gui/settings/rsharesettings.h"
#include "util/misc.h"
#include "ConnectFriendWizard.h"
@ -449,8 +450,9 @@ void ConnectFriendWizard::initializePage(int id)
}
sockaddr_storage addr ;
#ifdef DEBUG_FRIENDWIZARD
std::cerr << "Cert IP = " << peerDetails.extAddr << std::endl;
#endif
if(sockaddr_storage_ipv4_aton(addr,peerDetails.extAddr.c_str()) && sockaddr_storage_isValidNet(addr))
{
@ -870,7 +872,18 @@ void ConnectFriendWizard::cleanFriendCert()
bool certValid = false;
QString errorMsg ;
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()) {
ui->friendCertCleanLabel->setToolTip("");
@ -936,7 +949,7 @@ void ConnectFriendWizard::cleanFriendCert()
void ConnectFriendWizard::pasteCert()
{
QClipboard *clipboard = QApplication::clipboard();
ui->friendCertEdit->setPlainText(clipboard->text());
ui->friendCertEdit->setPlainText(clipboard->text());
}
void ConnectFriendWizard::openCert()

View File

@ -37,20 +37,47 @@ GxsChannelGroupItem::GxsChannelGroupItem(FeedHolder *feedHolder, uint32_t feedId
GxsGroupFeedItem(feedHolder, feedId, groupId, isHome, rsGxsChannels, autoUpdate)
{
setup();
requestGroup();
addEventHandler();
}
GxsChannelGroupItem::GxsChannelGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsChannelGroup &group, bool isHome, bool 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()
{
rsEvents->unregisterEventsHandler(mEventHandlerId);
delete(ui);
}

View File

@ -60,12 +60,14 @@ private slots:
private:
void fill();
void setup();
void addEventHandler();
private:
RsGxsChannelGroup mGroup;
/** Qt Designer generated object */
Ui::GxsChannelGroupItem *ui;
RsEventsHandlerId_t mEventHandlerId;
};
#endif

View File

@ -251,7 +251,7 @@
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Subscribe to Channel</string>
<string>Subscribe this Channel</string>
</property>
<property name="text">
<string>Subscribe</string>

View File

@ -35,8 +35,8 @@ GxsForumGroupItem::GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, co
GxsGroupFeedItem(feedHolder, feedId, groupId, isHome, rsGxsForums, autoUpdate)
{
setup();
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):
@ -45,21 +45,48 @@ GxsForumGroupItem::GxsForumGroupItem(FeedHolder *feedHolder, uint32_t feedId, co
mRemovedModerators(removed_moderators)
{
setup();
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) :
GxsGroupFeedItem(feedHolder, feedId, group.mMeta.mGroupId, isHome, rsGxsForums, autoUpdate)
{
setup();
setGroup(group);
addEventHandler();
}
GxsForumGroupItem::~GxsForumGroupItem()
{
delete(ui);
rsEvents->unregisterEventsHandler(mEventHandlerId);
delete(ui);
}
void GxsForumGroupItem::setup()

View File

@ -22,6 +22,7 @@
#define _GXSFORUMGROUPITEM_H
#include <retroshare/rsgxsforums.h>
#include <retroshare/rsevents.h>
#include "gui/gxs/GxsGroupFeedItem.h"
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, 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();
virtual ~GxsForumGroupItem() override;
bool setGroup(const RsGxsForumGroup &group);
uint64_t uniqueIdentifier() const override { return hash_64bits("GxsForumGroupItem " + groupId().toStdString()) ; }
protected:
/* FeedItem */
virtual void doExpand(bool open);
virtual void doExpand(bool open) override;
/* GxsGroupFeedItem */
virtual QString groupName();
virtual QString groupName() override;
virtual void loadGroup() override;
virtual RetroShareLink::enumType getLinkType() { return RetroShareLink::TYPE_FORUM; }
virtual RetroShareLink::enumType getLinkType() override { return RetroShareLink::TYPE_FORUM; }
private slots:
void subscribeForum();
@ -60,6 +61,7 @@ private slots:
private:
void fill();
void setup();
void addEventHandler();
private:
RsGxsForumGroup mGroup;
@ -69,6 +71,8 @@ private:
std::list<RsGxsId> mAddedModerators;
std::list<RsGxsId> mRemovedModerators;
RsEventsHandlerId_t mEventHandlerId;
};
#endif