mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-28 08:07:31 -04:00
fixed UI bugs reported by jolavillette
This commit is contained in:
parent
2bfaadce0b
commit
12a9dc5a79
3 changed files with 78 additions and 39 deletions
|
@ -77,13 +77,14 @@ void GxsCircleItem::setup()
|
||||||
|
|
||||||
/* update circle information */
|
/* update circle information */
|
||||||
|
|
||||||
ui->acceptButton->setToolTip(tr("Grant membership request"));
|
ui->membershipButton->setToolTip(tr("Grant membership request"));
|
||||||
ui->revokeButton->setToolTip(tr("Revoke membership request"));
|
ui->inviteeButton->setToolTip(tr("Revoke membership"));
|
||||||
|
|
||||||
connect(ui->acceptButton, SIGNAL(clicked()), this, SLOT(grantCircleMembership()));
|
connect(ui->membershipButton, SIGNAL(clicked()), this, SLOT(toggleCircleMembership()));
|
||||||
connect(ui->revokeButton, SIGNAL(clicked()), this, SLOT(revokeCircleMembership()));
|
connect(ui->inviteeButton, SIGNAL(clicked()), this, SLOT(toggleCircleInvite()));
|
||||||
|
|
||||||
RsGxsCircleDetails circleDetails;
|
RsGxsCircleDetails circleDetails;
|
||||||
|
|
||||||
if (rsGxsCircles->getCircleDetails(mCircleId, circleDetails))
|
if (rsGxsCircles->getCircleDetails(mCircleId, circleDetails))
|
||||||
{
|
{
|
||||||
ui->nameLabel->setText(QString::fromUtf8(circleDetails.mCircleName.c_str()) + " (ID: " + QString::fromStdString(circleDetails.mCircleId.toStdString()) + ")");
|
ui->nameLabel->setText(QString::fromUtf8(circleDetails.mCircleName.c_str()) + " (ID: " + QString::fromStdString(circleDetails.mCircleId.toStdString()) + ")");
|
||||||
|
@ -96,18 +97,24 @@ void GxsCircleItem::setup()
|
||||||
ui->iconLabel->setPixmap(pixmap);
|
ui->iconLabel->setPixmap(pixmap);
|
||||||
ui->gxsIdLabel->setId(mGxsId);
|
ui->gxsIdLabel->setId(mGxsId);
|
||||||
|
|
||||||
ui->revokeButton->setHidden(true);
|
ui->inviteeButton->setHidden(false);
|
||||||
ui->acceptButton->setHidden(false);
|
ui->inviteeButton->setText(tr("Grant membership"));
|
||||||
|
ui->inviteeButton->setToolTip(tr("Grant membership to this circle, for this identity"));
|
||||||
|
|
||||||
|
ui->membershipButton->setHidden(true);
|
||||||
}
|
}
|
||||||
else if (mType == RS_FEED_ITEM_CIRCLE_INVITE_REC)
|
else if (mType == RS_FEED_ITEM_CIRCLE_INVITE_REC)
|
||||||
{
|
{
|
||||||
ui->titleLabel->setText(tr("You received an invitation for this circle:"));
|
ui->titleLabel->setText(tr("You received an invitation to join this circle:"));
|
||||||
ui->iconLabel->setPixmap(pixmap);
|
ui->iconLabel->setPixmap(pixmap);
|
||||||
ui->gxsIdLabel->setId(mGxsId);
|
ui->gxsIdLabel->setId(mGxsId);
|
||||||
|
|
||||||
ui->acceptButton->setToolTip(tr("Accept invitation"));
|
ui->membershipButton->setText(tr("Accept"));
|
||||||
connect(ui->acceptButton, SIGNAL(clicked()), this, SLOT(acceptCircleSubscription()));
|
ui->membershipButton->setToolTip(tr("Accept invitation"));
|
||||||
ui->revokeButton->setHidden(true);
|
ui->membershipButton->setHidden(false);
|
||||||
|
|
||||||
|
connect(ui->membershipButton, SIGNAL(clicked()), this, SLOT(requestCircleSubscription()));
|
||||||
|
ui->inviteeButton->setHidden(true);
|
||||||
}
|
}
|
||||||
else if (mType == RS_FEED_ITEM_CIRCLE_MEMB_LEAVE)
|
else if (mType == RS_FEED_ITEM_CIRCLE_MEMB_LEAVE)
|
||||||
{
|
{
|
||||||
|
@ -115,17 +122,28 @@ void GxsCircleItem::setup()
|
||||||
ui->iconLabel->setPixmap(pixmap);
|
ui->iconLabel->setPixmap(pixmap);
|
||||||
ui->gxsIdLabel->setId(mGxsId);
|
ui->gxsIdLabel->setId(mGxsId);
|
||||||
|
|
||||||
ui->acceptButton->setHidden(true);
|
ui->membershipButton->setHidden(true);
|
||||||
ui->revokeButton->setHidden(true);
|
ui->inviteeButton->setHidden(true);
|
||||||
}
|
}
|
||||||
else if (mType == RS_FEED_ITEM_CIRCLE_MEMB_JOIN)
|
else if (mType == RS_FEED_ITEM_CIRCLE_MEMB_JOIN)
|
||||||
|
{
|
||||||
|
if(circleDetails.mAmIAdmin)
|
||||||
{
|
{
|
||||||
ui->titleLabel->setText(idName + tr(" which you invited, has join this circle you're administrating."));
|
ui->titleLabel->setText(idName + tr(" which you invited, has join this circle you're administrating."));
|
||||||
|
ui->inviteeButton->setHidden(false);
|
||||||
|
ui->inviteeButton->setText(tr("Revoke membership"));
|
||||||
|
ui->inviteeButton->setToolTip(tr("Revoke membership for that identity"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ui->inviteeButton->setHidden(true);
|
||||||
|
ui->titleLabel->setText(idName + tr(" has join this circle."));
|
||||||
|
}
|
||||||
|
|
||||||
ui->iconLabel->setPixmap(pixmap);
|
ui->iconLabel->setPixmap(pixmap);
|
||||||
ui->gxsIdLabel->setId(mGxsId);
|
ui->gxsIdLabel->setId(mGxsId);
|
||||||
|
|
||||||
ui->acceptButton->setHidden(true);
|
ui->membershipButton->setHidden(true);
|
||||||
ui->revokeButton->setHidden(false);
|
|
||||||
}
|
}
|
||||||
else if (mType == RS_FEED_ITEM_CIRCLE_MEMB_REVOKED)
|
else if (mType == RS_FEED_ITEM_CIRCLE_MEMB_REVOKED)
|
||||||
{
|
{
|
||||||
|
@ -134,8 +152,11 @@ void GxsCircleItem::setup()
|
||||||
ui->iconLabel->setPixmap(pixmap);
|
ui->iconLabel->setPixmap(pixmap);
|
||||||
ui->gxsIdLabel->setId(mGxsId);
|
ui->gxsIdLabel->setId(mGxsId);
|
||||||
|
|
||||||
ui->acceptButton->setHidden(true);
|
ui->membershipButton->setHidden(false);
|
||||||
ui->revokeButton->setHidden(true);
|
ui->membershipButton->setText(tr("Cancel membership request"));
|
||||||
|
ui->membershipButton->setToolTip(tr("Cancel your membership request from that circle"));
|
||||||
|
|
||||||
|
ui->inviteeButton->setHidden(true);
|
||||||
}
|
}
|
||||||
else if (mType == RS_FEED_ITEM_CIRCLE_MEMB_ACCEPTED)
|
else if (mType == RS_FEED_ITEM_CIRCLE_MEMB_ACCEPTED)
|
||||||
{
|
{
|
||||||
|
@ -144,8 +165,11 @@ void GxsCircleItem::setup()
|
||||||
ui->iconLabel->setPixmap(pixmap);
|
ui->iconLabel->setPixmap(pixmap);
|
||||||
ui->gxsIdLabel->setId(mGxsId);
|
ui->gxsIdLabel->setId(mGxsId);
|
||||||
|
|
||||||
ui->acceptButton->setHidden(true);
|
ui->membershipButton->setHidden(false);
|
||||||
ui->revokeButton->setHidden(true);
|
ui->membershipButton->setText(tr("Cancel membership"));
|
||||||
|
ui->membershipButton->setToolTip(tr("Cancel your membership from that circle"));
|
||||||
|
|
||||||
|
ui->inviteeButton->setHidden(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -160,7 +184,7 @@ void GxsCircleItem::setup()
|
||||||
|
|
||||||
uint64_t GxsCircleItem::uniqueIdentifier() const
|
uint64_t GxsCircleItem::uniqueIdentifier() const
|
||||||
{
|
{
|
||||||
return hash_64bits("GxsCircle " + mCircleId.toStdString() + " " + mGxsId.toStdString() + " " + QString::number(mType).toStdString());
|
return hash_64bits("GxsCircle " + mCircleId.toStdString() + " " + mGxsId.toStdString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*********** SPECIFIC FUNCTIONS ***********************/
|
/*********** SPECIFIC FUNCTIONS ***********************/
|
||||||
|
@ -173,25 +197,40 @@ void GxsCircleItem::showCircleDetails()
|
||||||
dlg.exec();
|
dlg.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GxsCircleItem::acceptCircleSubscription()
|
void GxsCircleItem::requestCircleSubscription()
|
||||||
{
|
{
|
||||||
if (rsGxsCircles->requestCircleMembership(mGxsId, mCircleId))
|
rsGxsCircles->requestCircleMembership(mGxsId, mCircleId);
|
||||||
removeItem();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GxsCircleItem::grantCircleMembership()
|
void GxsCircleItem::toggleCircleMembership()
|
||||||
{
|
{
|
||||||
RsThread::async([this]()
|
if(!rsIdentity->isOwnId(mGxsId))
|
||||||
{
|
{
|
||||||
rsGxsCircles->inviteIdsToCircle(std::set<RsGxsId>( { mGxsId } ),mCircleId);
|
RsErr() << __PRETTY_FUNCTION__ << ": inconsistent call: identity " << mGxsId << " doesn't belong to you" << std::endl;
|
||||||
});
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(mType == RS_FEED_ITEM_CIRCLE_INVITE_REC)
|
||||||
|
rsGxsCircles->requestCircleMembership(mGxsId,mCircleId);
|
||||||
|
else if(mType == RS_FEED_ITEM_CIRCLE_MEMB_REVOKED)
|
||||||
|
rsGxsCircles->cancelCircleMembership(mGxsId,mCircleId);
|
||||||
|
else
|
||||||
|
RsErr() << __PRETTY_FUNCTION__ << ": inconsistent call. mType is " << mType << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GxsCircleItem::revokeCircleMembership()
|
void GxsCircleItem::toggleCircleInvite()
|
||||||
{
|
{
|
||||||
|
if(mType == RS_FEED_ITEM_CIRCLE_MEMB_JOIN)
|
||||||
RsThread::async([this]()
|
RsThread::async([this]()
|
||||||
{
|
{
|
||||||
rsGxsCircles->revokeIdsFromCircle(std::set<RsGxsId>( { mGxsId } ),mCircleId);
|
rsGxsCircles->revokeIdsFromCircle(std::set<RsGxsId>( { mGxsId } ),mCircleId);
|
||||||
});
|
});
|
||||||
|
else if(mType == RS_FEED_ITEM_CIRCLE_MEMB_REQ)
|
||||||
|
RsThread::async([this]()
|
||||||
|
{
|
||||||
|
rsGxsCircles->inviteIdsToCircle(std::set<RsGxsId>( { mGxsId } ),mCircleId);
|
||||||
|
});
|
||||||
|
else
|
||||||
|
RsErr() << __PRETTY_FUNCTION__ << ": inconsistent call. mType is " << mType << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,9 +65,9 @@ protected:
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void showCircleDetails();
|
void showCircleDetails();
|
||||||
void acceptCircleSubscription();
|
void requestCircleSubscription();
|
||||||
void grantCircleMembership() ;
|
void toggleCircleMembership() ;
|
||||||
void revokeCircleMembership();
|
void toggleCircleInvite();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void setup();
|
void setup();
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>618</width>
|
<width>618</width>
|
||||||
<height>172</height>
|
<height>217</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="GxsCircleItemGLayout">
|
<layout class="QGridLayout" name="GxsCircleItemGLayout">
|
||||||
|
@ -239,7 +239,7 @@
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="acceptButton">
|
<widget class="QPushButton" name="membershipButton">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
|
@ -259,7 +259,7 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="revokeButton">
|
<widget class="QPushButton" name="inviteeButton">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue