diff --git a/libretroshare/src/gxs/rsgenexchange.cc b/libretroshare/src/gxs/rsgenexchange.cc index 6816d9476..54828dc4e 100644 --- a/libretroshare/src/gxs/rsgenexchange.cc +++ b/libretroshare/src/gxs/rsgenexchange.cc @@ -2636,52 +2636,52 @@ void RsGenExchange::processRecvdMessages() void RsGenExchange::processRecvdGroups() { - RS_STACK_MUTEX(mGenMtx) ; + RS_STACK_MUTEX(mGenMtx) ; - if(mReceivedGrps.empty()) - return; + if(mReceivedGrps.empty()) + return; - NxsGrpPendValidVect::iterator vit = mReceivedGrps.begin(); - std::vector existingGrpIds; - std::list grpIds; + NxsGrpPendValidVect::iterator vit = mReceivedGrps.begin(); + std::vector existingGrpIds; + std::list grpIds; - std::map grps; + std::map grps; - mDataStore->retrieveGroupIds(existingGrpIds); + mDataStore->retrieveGroupIds(existingGrpIds); - while( vit != mReceivedGrps.end()) - { - GxsPendingItem& gpsi = *vit; - RsNxsGrp* grp = gpsi.mItem; - RsGxsGrpMetaData* meta = new RsGxsGrpMetaData(); - bool deserialOk = false; + while( vit != mReceivedGrps.end()) + { + GxsPendingItem& gpsi = *vit; + RsNxsGrp* grp = gpsi.mItem; + RsGxsGrpMetaData* meta = new RsGxsGrpMetaData(); + bool deserialOk = false; - if(grp->meta.bin_len != 0) - deserialOk = meta->deserialise(grp->meta.bin_data, grp->meta.bin_len); + if(grp->meta.bin_len != 0) + deserialOk = meta->deserialise(grp->meta.bin_data, grp->meta.bin_len); - bool erase = true; + bool erase = true; - if(deserialOk) - { - grp->metaData = meta; - uint8_t ret = validateGrp(grp); + if(deserialOk) + { + grp->metaData = meta; + uint8_t ret = validateGrp(grp); - if(ret == VALIDATE_SUCCESS) - { + if(ret == VALIDATE_SUCCESS) + { meta->mGroupStatus = GXS_SERV::GXS_GRP_STATUS_UNPROCESSED | GXS_SERV::GXS_GRP_STATUS_UNREAD; meta->mSubscribeFlags = GXS_SERV::GROUP_SUBSCRIBE_NOT_SUBSCRIBED; computeHash(grp->grp, meta->mHash); - // group has been validated. Let's notify the global router for the clue + // group has been validated. Let's notify the global router for the clue #ifdef GEN_EXCH_DEBUG - std::cerr << "Group routage info: Identity=" << meta->mAuthorId << " from " << grp->PeerId() << std::endl; + std::cerr << "Group routage info: Identity=" << meta->mAuthorId << " from " << grp->PeerId() << std::endl; #endif - if(!meta->mAuthorId.isNull()) - mRoutingClues[meta->mAuthorId].insert(grp->PeerId()) ; + if(!meta->mAuthorId.isNull()) + mRoutingClues[meta->mAuthorId].insert(grp->PeerId()) ; // now check if group already existss if(std::find(existingGrpIds.begin(), existingGrpIds.end(), grp->grpId) == existingGrpIds.end()) @@ -2700,55 +2700,55 @@ void RsGenExchange::processRecvdGroups() mGroupUpdates.push_back(update); } erase = true; - } - else if(ret == VALIDATE_FAIL) - { + } + else if(ret == VALIDATE_FAIL) + { #ifdef GEN_EXCH_DEBUG std::cerr << "failed to deserialise incoming meta, grpId: " - << grp->grpId << std::endl; + << grp->grpId << std::endl; #endif delete grp; erase = true; - } - else if(ret == VALIDATE_FAIL_TRY_LATER) - { + } + else if(ret == VALIDATE_FAIL_TRY_LATER) + { #ifdef GEN_EXCH_DEBUG std::cerr << "failed to validate incoming grp, trying again. grpId: " - << grp->grpId << std::endl; + << grp->grpId << std::endl; #endif - if(gpsi.mAttempts == VALIDATE_MAX_ATTEMPTS) - { - delete grp; - erase = true; - } - else - { - erase = false; - } - } - } - else - { - delete grp; + if(gpsi.mAttempts == VALIDATE_MAX_ATTEMPTS) + { + delete grp; + erase = true; + } + else + { + erase = false; + } + } + } + else + { + delete grp; delete meta; erase = true; - } + } - if(erase) - vit = mReceivedGrps.erase(vit); - else - ++vit; - } + if(erase) + vit = mReceivedGrps.erase(vit); + else + ++vit; + } - if(!grpIds.empty()) - { - RsGxsGroupChange* c = new RsGxsGroupChange(RsGxsNotify::TYPE_RECEIVE, false); - c->mGrpIdList = grpIds; - mNotifications.push_back(c); - mDataStore->storeGroup(grps); - } + if(!grpIds.empty()) + { + RsGxsGroupChange* c = new RsGxsGroupChange(RsGxsNotify::TYPE_RECEIVE, false); + c->mGrpIdList = grpIds; + mNotifications.push_back(c); + mDataStore->storeGroup(grps); + } } void RsGenExchange::performUpdateValidation() diff --git a/libretroshare/src/gxs/rsgxsnetservice.cc b/libretroshare/src/gxs/rsgxsnetservice.cc index ff70fe89e..ccd7bf6eb 100644 --- a/libretroshare/src/gxs/rsgxsnetservice.cc +++ b/libretroshare/src/gxs/rsgxsnetservice.cc @@ -1625,7 +1625,8 @@ void RsGxsNetService::locked_processCompletedIncomingTrans(NxsTransaction* tr) IndicateConfigChanged(); - }else if(flag & RsNxsTransac::FLAG_TYPE_MSGS) + } + else if(flag & RsNxsTransac::FLAG_TYPE_MSGS) { std::vector msgs; diff --git a/retroshare-gui/src/gui/Circles/CreateCircleDialog.cpp b/retroshare-gui/src/gui/Circles/CreateCircleDialog.cpp index c12190584..36580c1fd 100644 --- a/retroshare-gui/src/gui/Circles/CreateCircleDialog.cpp +++ b/retroshare-gui/src/gui/Circles/CreateCircleDialog.cpp @@ -309,31 +309,52 @@ void CreateCircleDialog::createCircle() /* copy Ids from GUI */ QTreeWidget *tree = ui.treeWidget_membership; int count = tree->topLevelItemCount(); - for(int i = 0; i < count; ++i) { - QTreeWidgetItem *item = tree->topLevelItem(i); - QString keyId = item->text(RSCIRCLEID_COL_KEYID); + for(int i = 0; i < count; ++i) + { + QTreeWidgetItem *item = tree->topLevelItem(i); + QString keyId = item->text(RSCIRCLEID_COL_KEYID); - /* insert into circle */ - if (mIsExternalCircle) { - circle.mInvitedMembers.push_back(RsGxsId(keyId.toStdString())); - std::cerr << "CreateCircleDialog::createCircle() Inserting Member: " << keyId.toStdString(); - std::cerr << std::endl; - } else {//if (mIsExternalCircle) - circle.mLocalFriends.push_back(RsPgpId(keyId.toStdString())); - std::cerr << "CreateCircleDialog::createCircle() Inserting Friend: " << keyId.toStdString(); - std::cerr << std::endl; - }//else (mIsExternalCircle) + /* insert into circle */ + if (mIsExternalCircle) + { + RsGxsId key_id_gxs(keyId.toStdString()) ; - }//for(int i = 0; i < count; ++i) + if(key_id_gxs.isNull()) + { + std::cerr << "Error: Not a proper keyID: " << keyId.toStdString() << std::endl; + continue ; + } - if (mIsExistingCircle) { + circle.mInvitedMembers.insert(key_id_gxs) ; + std::cerr << "CreateCircleDialog::createCircle() Inserting Member: " << keyId.toStdString(); + std::cerr << std::endl; + } + else + { + RsPgpId key_id_pgp(keyId.toStdString()) ; + + if(key_id_pgp.isNull()) + { + std::cerr << "Error: Not a proper PGP keyID: " << keyId.toStdString() << std::endl; + continue ; + } + + circle.mLocalFriends.insert(key_id_pgp) ; + std::cerr << "CreateCircleDialog::createCircle() Inserting Friend: " << keyId.toStdString(); + std::cerr << std::endl; + } + + } + + if (mIsExistingCircle) + { std::cerr << "CreateCircleDialog::createCircle() Existing Circle TODO"; std::cerr << std::endl; // cannot edit these yet. QMessageBox::warning(this, tr("RetroShare"),tr("Cannot Edit Existing Circles Yet"), QMessageBox::Ok, QMessageBox::Ok); return; - }//if (mIsExistingCircle) + } if (mIsExternalCircle) { std::cerr << "CreateCircleDialog::createCircle() External Circle"; @@ -410,12 +431,14 @@ void CreateCircleDialog::updateCircleGUI() std::cerr << std::endl; switch(mCircleGroup.mMeta.mCircleType) { +#ifdef RS_ALLOW_LOCAL_CIRCLES case GXS_CIRCLE_TYPE_LOCAL: std::cerr << "CreateCircleDialog::updateCircleGUI() : LOCAL CIRCLETYPE"; std::cerr << std::endl; isExternal = false; break; +#endif case GXS_CIRCLE_TYPE_PUBLIC: std::cerr << "CreateCircleDialog::updateCircleGUI() : PUBLIC CIRCLETYPE"; @@ -527,16 +550,10 @@ void CreateCircleDialog::getPgpIdentities() tree->addTopLevelItem(item); // Local Circle. - if (mIsExistingCircle) { - // check if its in the circle. - std::list::const_iterator it; - it = std::find(mCircleGroup.mLocalFriends.begin(), mCircleGroup.mLocalFriends.end(), details.gpg_id); - if (it != mCircleGroup.mLocalFriends.end()) { - /* found it */ + if (mIsExistingCircle) + if ( mCircleGroup.mLocalFriends.find(details.gpg_id) != mCircleGroup.mLocalFriends.end()) // check if its in the circle. addMember(keyId, idtype, nickname); - }//if (it != mCircleGroup.mLocalFriends.end()) - }//if (mIsExistingCircle) - }//for(it = ids.begin(); it != ids.end(); ++it) + } filterIds(); } @@ -576,60 +593,58 @@ void CreateCircleDialog::loadIdentities(uint32_t token) return; }//if (!rsIdentity->getGroupData(token, datavector)) - for(vit = datavector.begin(); vit != datavector.end(); ++vit) { - data = (*vit); + for(vit = datavector.begin(); vit != datavector.end(); ++vit) + { + data = (*vit); - /* do filtering */ - bool ok = false; - if (acceptAnonymous) { - ok = true; - } else if (acceptAllPGP) { - ok = data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID ; - } else if (data.mPgpKnown) { - ok = data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID ; - }//else if (data.mPgpKnown) + /* do filtering */ + bool ok = false; + if (acceptAnonymous) { + ok = true; + } else if (acceptAllPGP) { + ok = data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID ; + } else if (data.mPgpKnown) { + ok = data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID ; + }//else if (data.mPgpKnown) - if (!ok) { - std::cerr << "CreateCircleDialog::insertIdentities() Skipping ID: " << data.mMeta.mGroupId; - std::cerr << std::endl; - continue; - }//if (!ok) + if (!ok) { + std::cerr << "CreateCircleDialog::insertIdentities() Skipping ID: " << data.mMeta.mGroupId; + std::cerr << std::endl; + continue; + }//if (!ok) - QString keyId = QString::fromStdString(data.mMeta.mGroupId.toStdString()); - QString nickname = QString::fromUtf8(data.mMeta.mGroupName.c_str()); - QString idtype = tr("Anon Id"); + QString keyId = QString::fromStdString(data.mMeta.mGroupId.toStdString()); + QString nickname = QString::fromUtf8(data.mMeta.mGroupName.c_str()); + QString idtype = tr("Anon Id"); - if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID) { - if (data.mPgpKnown) { - RsPeerDetails details; - rsPeers->getGPGDetails(data.mPgpId, details); - idtype = QString::fromUtf8(details.name.c_str()); - } else { - idtype = tr("PGP Linked Id"); - }//else (data.mPgpKnown) - }//if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID) + if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID) { + if (data.mPgpKnown) { + RsPeerDetails details; + rsPeers->getGPGDetails(data.mPgpId, details); + idtype = QString::fromUtf8(details.name.c_str()); + } else { + idtype = tr("PGP Linked Id"); + }//else (data.mPgpKnown) + }//if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID) - QTreeWidgetItem *item = new QTreeWidgetItem(); - item->setText(RSCIRCLEID_COL_NICKNAME, nickname); - item->setText(RSCIRCLEID_COL_KEYID, keyId); - item->setText(RSCIRCLEID_COL_IDTYPE, idtype); - tree->addTopLevelItem(item); + QTreeWidgetItem *item = new QTreeWidgetItem(); + item->setText(RSCIRCLEID_COL_NICKNAME, nickname); + item->setText(RSCIRCLEID_COL_KEYID, keyId); + item->setText(RSCIRCLEID_COL_IDTYPE, idtype); + tree->addTopLevelItem(item); - // External Circle. - if (mIsExistingCircle) { - // check if its in the circle. - std::list::const_iterator it; + // External Circle. + if (mIsExistingCircle) + { + // check if its in the circle. - // We use an explicit cast - // - it = std::find(mCircleGroup.mInvitedMembers.begin(), mCircleGroup.mInvitedMembers.end(), RsGxsId(data.mMeta.mGroupId)); + // We use an explicit cast + // - if (it != mCircleGroup.mInvitedMembers.end()) { - /* found it */ - addMember(keyId, idtype, nickname); - }//if (it != mCircleGroup.mInvitedMembers.end()) - }//if (mIsExistingCircle) - }//for(vit = datavector.begin(); vit != datavector.end(); ++vit) + if ( mCircleGroup.mInvitedMembers.find(RsGxsId(data.mMeta.mGroupId)) != mCircleGroup.mInvitedMembers.end()) /* found it */ + addMember(keyId, idtype, nickname); + } + } } void CreateCircleDialog::loadRequest(const TokenQueue *queue, const TokenRequest &req) @@ -683,5 +698,5 @@ void CreateCircleDialog::createNewGxsId() IdEditDialog dlg(this); dlg.setupNewId(false); dlg.exec(); - ui.idChooser->setDefaultId(dlg.getLastIdName()); + //ui.idChooser->setDefaultId(dlg.getLastIdName()); } diff --git a/retroshare-gui/src/gui/People/IdentityWidget.cpp b/retroshare-gui/src/gui/People/IdentityWidget.cpp index 045f2f22f..00ba90028 100644 --- a/retroshare-gui/src/gui/People/IdentityWidget.cpp +++ b/retroshare-gui/src/gui/People/IdentityWidget.cpp @@ -99,38 +99,37 @@ void IdentityWidget::updateData(const RsGxsIdGroup &gxs_group_info) void IdentityWidget::updateData(const RsPeerDetails &pgp_details) { - //if (_details != pgp_details) { - _details = pgp_details; - _havePGPDetail = true; + //if (_details != pgp_details) { + _details = pgp_details; + _havePGPDetail = true; - _nickname = QString::fromUtf8(_details.name.c_str()); - if (!_haveGXSId) m_myName = _nickname; - ui->labelName->setText(m_myName); - if (_haveGXSId) { - ui->labelName->setToolTip(tr("GXS name:").append(" "+m_myName).append("\n") - .append(tr("PGP name:").append(" "+_nickname))); - } else {//if (m_myName != _nickname) - ui->labelName->setToolTip(tr("PGP name:").append(" "+_nickname)); - }//else (m_myName != _nickname) + _nickname = QString::fromUtf8(_details.name.c_str()); + if (!_haveGXSId) m_myName = _nickname; + ui->labelName->setText(m_myName); + if (_haveGXSId) { + ui->labelName->setToolTip(tr("GXS name:").append(" "+m_myName).append("\n") + .append(tr("PGP name:").append(" "+_nickname))); + } else {//if (m_myName != _nickname) + ui->labelName->setToolTip(tr("PGP name:").append(" "+_nickname)); + }//else (m_myName != _nickname) - QFont font = ui->labelName->font(); - font.setItalic(true); - ui->labelName->setFont(font); + QFont font = ui->labelName->font(); + font.setItalic(true); + ui->labelName->setFont(font); - _keyId = QString::fromStdString(_details.gpg_id.toStdString()); - ui->labelKeyId->setText(_keyId); - ui->labelKeyId->setToolTip(tr("PGP id:").append(" "+_keyId)); + _keyId = QString::fromStdString(_details.gpg_id.toStdString()); + ui->labelKeyId->setText(_keyId); + ui->labelKeyId->setToolTip(tr("PGP id:").append(" "+_keyId)); - QPixmap avatar; - AvatarDefs::getAvatarFromGpgId(_details.gpg_id.toStdString(), avatar); - if (_avatar != avatar.toImage()) { - _avatar = avatar.toImage(); - _scene->clear(); - _scene->addPixmap(avatar.scaled(ui->graphicsView->width(),ui->graphicsView->height())); - emit imageUpdated(); - }//if (_avatar != avatar.toImage()) - - //}//if (_details != gpg_details) + QPixmap avatar; + AvatarDefs::getAvatarFromGpgId(_details.gpg_id, avatar); + if (_avatar != avatar.toImage()) + { + _avatar = avatar.toImage(); + _scene->clear(); + _scene->addPixmap(avatar.scaled(ui->graphicsView->width(),ui->graphicsView->height())); + emit imageUpdated(); + } } void IdentityWidget::updateData(const RsGxsIdGroup &gxs_group_info, const RsPeerDetails &pgp_details) diff --git a/retroshare-gui/src/retroshare-gui.pro b/retroshare-gui/src/retroshare-gui.pro index ec9517108..bb724bb4c 100644 --- a/retroshare-gui/src/retroshare-gui.pro +++ b/retroshare-gui/src/retroshare-gui.pro @@ -31,8 +31,9 @@ CONFIG += gxsgui DEFINES += RS_ENABLE_GXS -unfinished { CONFIG += gxscircles + +unfinished { CONFIG += gxsthewire CONFIG += gxsphotoshare CONFIG += wikipoos