mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-02-26 09:41:29 -05:00
removed TokenQueue from CircleCreationDialog
This commit is contained in:
parent
5ccc59e2ea
commit
8be92f24b6
@ -29,6 +29,7 @@
|
|||||||
#include <retroshare/rsidentity.h>
|
#include <retroshare/rsidentity.h>
|
||||||
|
|
||||||
#include "gui/common/AvatarDefs.h"
|
#include "gui/common/AvatarDefs.h"
|
||||||
|
#include "util/qtthreadsutils.h"
|
||||||
#include "gui/Circles/CreateCircleDialog.h"
|
#include "gui/Circles/CreateCircleDialog.h"
|
||||||
#include "gui/gxs/GxsIdDetails.h"
|
#include "gui/gxs/GxsIdDetails.h"
|
||||||
#include "gui/Identity/IdDialog.h"
|
#include "gui/Identity/IdDialog.h"
|
||||||
@ -51,9 +52,6 @@ CreateCircleDialog::CreateCircleDialog()
|
|||||||
ui.setupUi(this);
|
ui.setupUi(this);
|
||||||
|
|
||||||
/* Setup Queue */
|
/* Setup Queue */
|
||||||
mCircleQueue = new TokenQueue(rsGxsCircles->getTokenService(), this);
|
|
||||||
mIdQueue = new TokenQueue(rsIdentity->getTokenService(), this);
|
|
||||||
|
|
||||||
ui.headerFrame->setHeaderImage(QPixmap(":/icons/png/circles.png"));
|
ui.headerFrame->setHeaderImage(QPixmap(":/icons/png/circles.png"));
|
||||||
|
|
||||||
// connect up the buttons.
|
// connect up the buttons.
|
||||||
@ -107,8 +105,6 @@ CreateCircleDialog::CreateCircleDialog()
|
|||||||
|
|
||||||
CreateCircleDialog::~CreateCircleDialog()
|
CreateCircleDialog::~CreateCircleDialog()
|
||||||
{
|
{
|
||||||
delete(mCircleQueue);
|
|
||||||
delete(mIdQueue);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateCircleDialog::editExistingId(const RsGxsGroupId &circleId, const bool &clearList /*= true*/,bool readonly)
|
void CreateCircleDialog::editExistingId(const RsGxsGroupId &circleId, const bool &clearList /*= true*/,bool readonly)
|
||||||
@ -147,14 +143,15 @@ void CreateCircleDialog::editExistingId(const RsGxsGroupId &circleId, const bool
|
|||||||
ui.removeButton->setEnabled(!readonly) ;
|
ui.removeButton->setEnabled(!readonly) ;
|
||||||
|
|
||||||
if(readonly)
|
if(readonly)
|
||||||
{
|
{
|
||||||
ui.buttonBox->setStandardButtons(QDialogButtonBox::Cancel);
|
ui.buttonBox->setStandardButtons(QDialogButtonBox::Cancel);
|
||||||
ui.buttonBox->button(QDialogButtonBox::Cancel)->setText(tr("Close"));
|
ui.buttonBox->button(QDialogButtonBox::Cancel)->setText(tr("Close"));
|
||||||
ui.peersSelection_GB->hide() ;
|
ui.peersSelection_GB->hide() ;
|
||||||
ui.addButton->hide() ;
|
ui.addButton->hide() ;
|
||||||
ui.removeButton->hide() ;
|
ui.removeButton->hide() ;
|
||||||
}
|
}
|
||||||
requestCircle(circleId);
|
|
||||||
|
loadCircle(circleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -233,7 +230,7 @@ void CreateCircleDialog::setupForExternalCircle()
|
|||||||
ui.idChooser->show();
|
ui.idChooser->show();
|
||||||
//ui.toolButton_NewId->show();
|
//ui.toolButton_NewId->show();
|
||||||
|
|
||||||
requestGxsIdentities();
|
loadIdentities();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateCircleDialog::selectedId(QTreeWidgetItem *current, QTreeWidgetItem *previous)
|
void CreateCircleDialog::selectedId(QTreeWidgetItem *current, QTreeWidgetItem *previous)
|
||||||
@ -663,107 +660,79 @@ void CreateCircleDialog::updateCircleGUI()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateCircleDialog::requestCircle(const RsGxsGroupId &groupId)
|
void CreateCircleDialog::loadCircle(const RsGxsGroupId& groupId)
|
||||||
{
|
{
|
||||||
RsTokReqOptions opts;
|
|
||||||
opts.mReqType = GXS_REQUEST_TYPE_GROUP_DATA;
|
|
||||||
|
|
||||||
std::list<RsGxsGroupId> groupIds;
|
|
||||||
groupIds.push_back(groupId);
|
|
||||||
|
|
||||||
#ifdef DEBUG_CREATE_CIRCLE_DIALOG
|
|
||||||
std::cerr << "CreateCircleDialog::requestCircle() Requesting Group Summary(" << groupId << ")";
|
|
||||||
std::cerr << std::endl;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
uint32_t token;
|
|
||||||
mCircleQueue->requestGroupInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, groupIds, CREATECIRCLEDIALOG_CIRCLEINFO);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CreateCircleDialog::loadCircle(uint32_t token)
|
|
||||||
{
|
|
||||||
#ifdef DEBUG_CREATE_CIRCLE_DIALOG
|
|
||||||
std::cerr << "CreateCircleDialog::loadCircle(" << token << ")";
|
|
||||||
std::cerr << std::endl;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
QTreeWidget *tree = ui.treeWidget_membership;
|
QTreeWidget *tree = ui.treeWidget_membership;
|
||||||
|
|
||||||
if (mClearList) tree->clear();
|
if (mClearList) tree->clear();
|
||||||
|
|
||||||
std::vector<RsGxsCircleGroup> groups;
|
RsThread::async([groupId,this]()
|
||||||
if (!rsGxsCircles->getGroupData(token, groups)) {
|
{
|
||||||
std::cerr << "CreateCircleDialog::loadCircle() Error getting GroupData";
|
std::vector<RsGxsCircleGroup> circlesInfo ;
|
||||||
std::cerr << std::endl;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (groups.size() != 1) {
|
if(! rsGxsCircles->getCirclesInfo(std::list<RsGxsGroupId>({ groupId }), circlesInfo) || circlesInfo.size() != 1)
|
||||||
std::cerr << "CreateCircleDialog::loadCircle() Error Group.size() != 1";
|
{
|
||||||
std::cerr << std::endl;
|
std::cerr << __PRETTY_FUNCTION__ << " failed to retrieve circle info for circle " << groupId << std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mCircleGroup = groups[0];
|
RsGxsCircleGroup grp(circlesInfo[0]);
|
||||||
|
|
||||||
#ifdef DEBUG_CREATE_CIRCLE_DIALOG
|
RsQThreadUtils::postToObject( [grp,this]()
|
||||||
std::cerr << "CreateCircleDialog::loadCircle() LoadedGroup.meta: " << mCircleGroup.mMeta << std::endl;
|
{
|
||||||
|
/* Here it goes any code you want to be executed on the Qt Gui
|
||||||
|
* thread, for example to update the data model with new information
|
||||||
|
* after a blocking call to RetroShare API complete */
|
||||||
|
|
||||||
|
mCircleGroup = grp;
|
||||||
|
|
||||||
|
#ifdef DEBUG_CREATE_CIRCLE_DIALOG
|
||||||
|
std::cerr << "CreateCircleDialog::loadCircle() LoadedGroup.meta: " << mCircleGroup.mMeta << std::endl;
|
||||||
#endif
|
#endif
|
||||||
updateCircleGUI();
|
updateCircleGUI();
|
||||||
|
|
||||||
|
}, this );
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*void CreateCircleDialog::getPgpIdentities()
|
void CreateCircleDialog::loadIdentities()
|
||||||
{
|
{
|
||||||
std::cerr << "CreateCircleDialog::getPgpIdentities()";
|
RsThread::async([this]()
|
||||||
std::cerr << std::endl;
|
{
|
||||||
|
std::list<RsGroupMetaData> ids_meta;
|
||||||
|
|
||||||
QTreeWidget *tree = ui.treeWidget_IdList;
|
if(!rsIdentity->getIdentitiesSummaries(ids_meta))
|
||||||
|
{
|
||||||
|
std::cerr << __PRETTY_FUNCTION__ << " failed to retrieve identities ids for all identities" << std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
std::set<RsGxsId> ids;
|
||||||
|
|
||||||
tree->clear();
|
for(auto& meta:ids_meta)
|
||||||
std::list<RsPgpId> ids;
|
ids.insert(RsGxsId(meta.mGroupId)) ;
|
||||||
std::list<RsPgpId>::iterator it;
|
|
||||||
|
|
||||||
rsPeers->getGPGAcceptedList(ids);
|
std::vector<RsGxsIdGroup> id_groups;
|
||||||
for(it = ids.begin(); it != ids.end(); ++it) {
|
|
||||||
RsPeerDetails details;
|
|
||||||
|
|
||||||
rsPeers->getGPGDetails(*it, details);
|
if(!rsIdentity->getIdentitiesInfo(ids,id_groups))
|
||||||
|
{
|
||||||
|
std::cerr << __PRETTY_FUNCTION__ << " failed to retrieve identities group info for all identities" << std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
QString keyId = QString::fromStdString(details.gpg_id.toStdString());
|
RsQThreadUtils::postToObject( [id_groups,this]()
|
||||||
QString nickname = QString::fromUtf8(details.name.c_str());
|
{
|
||||||
QString idtype = tr("PGP Identity");
|
/* Here it goes any code you want to be executed on the Qt Gui
|
||||||
|
* thread, for example to update the data model with new information
|
||||||
|
* after a blocking call to RetroShare API complete */
|
||||||
|
|
||||||
QTreeWidgetItem *item = new QTreeWidgetItem();
|
fillIdentitiesList(id_groups) ;
|
||||||
item->setText(RSCIRCLEID_COL_NICKNAME, nickname);
|
|
||||||
item->setText(RSCIRCLEID_COL_KEYID, keyId);
|
|
||||||
item->setText(RSCIRCLEID_COL_IDTYPE, idtype);
|
|
||||||
tree->addTopLevelItem(item);
|
|
||||||
|
|
||||||
// Local Circle.
|
}, this );
|
||||||
if (mIsExistingCircle)
|
});
|
||||||
if ( mCircleGroup.mLocalFriends.find(details.gpg_id) != mCircleGroup.mLocalFriends.end()) // check if its in the circle.
|
|
||||||
addMember(keyId, idtype, nickname);
|
|
||||||
}
|
|
||||||
|
|
||||||
filterIds();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
void CreateCircleDialog::requestGxsIdentities()
|
|
||||||
{
|
|
||||||
RsTokReqOptions opts;
|
|
||||||
opts.mReqType = GXS_REQUEST_TYPE_GROUP_DATA;
|
|
||||||
|
|
||||||
#ifdef DEBUG_CREATE_CIRCLE_DIALOG
|
|
||||||
std::cerr << "CreateCircleDialog::requestIdentities()";
|
|
||||||
std::cerr << std::endl;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
uint32_t token;
|
|
||||||
mIdQueue->requestGroupInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, CREATECIRCLEDIALOG_IDINFO);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateCircleDialog::loadIdentities(uint32_t token)
|
void CreateCircleDialog::fillIdentitiesList(const std::vector<RsGxsIdGroup>& id_groups)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_CREATE_CIRCLE_DIALOG
|
#ifdef DEBUG_CREATE_CIRCLE_DIALOG
|
||||||
std::cerr << "CreateCircleDialog::loadIdentities(" << token << ")";
|
std::cerr << "CreateCircleDialog::loadIdentities(" << token << ")";
|
||||||
@ -771,26 +740,14 @@ void CreateCircleDialog::loadIdentities(uint32_t token)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
QTreeWidget *tree = ui.treeWidget_IdList;
|
QTreeWidget *tree = ui.treeWidget_IdList;
|
||||||
|
|
||||||
tree->clear();
|
tree->clear();
|
||||||
|
|
||||||
bool acceptAnonymous = ui.radioButton_ListAll->isChecked();
|
bool acceptAnonymous = ui.radioButton_ListAll->isChecked();
|
||||||
bool acceptAllPGP = ui.radioButton_ListAllPGP->isChecked();
|
bool acceptAllPGP = ui.radioButton_ListAllPGP->isChecked();
|
||||||
//bool acceptKnownPGP = ui.radioButton_ListKnownPGP->isChecked();
|
//bool acceptKnownPGP = ui.radioButton_ListKnownPGP->isChecked();
|
||||||
|
|
||||||
RsGxsIdGroup idGroup;
|
for(const auto& idGroup:id_groups)
|
||||||
std::vector<RsGxsIdGroup> datavector;
|
|
||||||
std::vector<RsGxsIdGroup>::iterator vit;
|
|
||||||
if (!rsIdentity->getGroupData(token, datavector)) {
|
|
||||||
std::cerr << "CreateCircleDialog::insertIdentities() Error getting GroupData";
|
|
||||||
std::cerr << std::endl;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(vit = datavector.begin(); vit != datavector.end(); ++vit)
|
|
||||||
{
|
{
|
||||||
idGroup = (*vit);
|
|
||||||
|
|
||||||
/* do filtering */
|
/* do filtering */
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
if (acceptAnonymous)
|
if (acceptAnonymous)
|
||||||
@ -851,43 +808,9 @@ void CreateCircleDialog::loadIdentities(uint32_t token)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateCircleDialog::loadRequest(const TokenQueue *queue, const TokenRequest &req)
|
|
||||||
{
|
|
||||||
#ifdef DEBUG_CREATE_CIRCLE_DIALOG
|
|
||||||
std::cerr << "CreateCircleDialog::loadRequest() UserType: " << req.mUserType;
|
|
||||||
std::cerr << std::endl;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (queue == mCircleQueue) {
|
|
||||||
/* now switch on req */
|
|
||||||
switch(req.mUserType) {
|
|
||||||
case CREATECIRCLEDIALOG_CIRCLEINFO:
|
|
||||||
loadCircle(req.mToken);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
std::cerr << "CreateCircleDialog::loadRequest() UNKNOWN UserType ";
|
|
||||||
std::cerr << std::endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (queue == mIdQueue) {
|
|
||||||
/* now switch on req */
|
|
||||||
switch(req.mUserType) {
|
|
||||||
case CREATECIRCLEDIALOG_IDINFO:
|
|
||||||
loadIdentities(req.mToken);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
std::cerr << "CreateCircleDialog::loadRequest() UNKNOWN UserType ";
|
|
||||||
std::cerr << std::endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CreateCircleDialog::idTypeChanged()
|
void CreateCircleDialog::idTypeChanged()
|
||||||
{
|
{
|
||||||
requestGxsIdentities();
|
loadIdentities();
|
||||||
}
|
}
|
||||||
void CreateCircleDialog::filterChanged(const QString &text)
|
void CreateCircleDialog::filterChanged(const QString &text)
|
||||||
{
|
{
|
||||||
|
@ -25,12 +25,10 @@
|
|||||||
|
|
||||||
#include "ui_CreateCircleDialog.h"
|
#include "ui_CreateCircleDialog.h"
|
||||||
|
|
||||||
#include "util/TokenQueue.h"
|
|
||||||
|
|
||||||
#include <retroshare/rsgxscircles.h>
|
#include <retroshare/rsgxscircles.h>
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
class CreateCircleDialog : public QDialog, public TokenResponse
|
class CreateCircleDialog : public QDialog
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
@ -45,8 +43,6 @@ public:
|
|||||||
void addMember(const RsGxsIdGroup &idGroup);
|
void addMember(const RsGxsIdGroup &idGroup);
|
||||||
void addCircle(const RsGxsCircleDetails &cirDetails);
|
void addCircle(const RsGxsCircleDetails &cirDetails);
|
||||||
|
|
||||||
virtual void loadRequest(const TokenQueue *queue, const TokenRequest &req);
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void addMember();
|
void addMember();
|
||||||
void removeMember();
|
void removeMember();
|
||||||
@ -75,17 +71,11 @@ private:
|
|||||||
bool mIsExternalCircle;
|
bool mIsExternalCircle;
|
||||||
bool mReadOnly;
|
bool mReadOnly;
|
||||||
|
|
||||||
void loadCircle(uint32_t token);
|
void loadCircle(const RsGxsGroupId& groupId);
|
||||||
void loadIdentities(uint32_t token);
|
void loadIdentities();
|
||||||
|
|
||||||
void requestCircle(const RsGxsGroupId &groupId);
|
|
||||||
void requestGxsIdentities();
|
|
||||||
//void getPgpIdentities();
|
|
||||||
|
|
||||||
void filterIds();
|
void filterIds();
|
||||||
|
void fillIdentitiesList(const std::vector<RsGxsIdGroup>& id_groups);
|
||||||
TokenQueue *mCircleQueue;
|
|
||||||
TokenQueue *mIdQueue;
|
|
||||||
|
|
||||||
RsGxsCircleGroup mCircleGroup; // for editting existing Circles.
|
RsGxsCircleGroup mCircleGroup; // for editting existing Circles.
|
||||||
bool mClearList;
|
bool mClearList;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user