Fix ConfCertDialog and PGPKeyDialog

This commit is contained in:
Phenom 2021-02-13 13:20:50 +01:00
parent 5dc2602b39
commit 8251277d77
6 changed files with 206 additions and 208 deletions

View file

@ -45,8 +45,8 @@
#include "util/DateTime.h"
#include "util/misc.h"
static QMap<RsPeerId, ConfCertDialog*> instances_ssl;
static QMap<RsPgpId, ConfCertDialog*> instances_pgp;
QMap<RsPeerId, ConfCertDialog*> ConfCertDialog::instances_ssl;
QMap<RsPgpId, ConfCertDialog*> ConfCertDialog::instances_pgp;
ConfCertDialog *ConfCertDialog::instance(const RsPeerId& peer_id)
{
@ -128,184 +128,173 @@ void ConfCertDialog::loadAll()
void ConfCertDialog::load()
{
RsPeerDetails detail;
RsPeerDetails detail;
if(!rsPeers->getPeerDetails(peerId, detail))
{
QMessageBox::information(this,
tr("RetroShare"),
tr("Error : cannot get peer details."));
close();
return;
}
if(!rsPeers->getPeerDetails(peerId, detail))
{
QMessageBox::information(this,
tr("RetroShare"),
tr("Error : cannot get peer details."));
close();
return;
}
//ui.pgpfingerprint->setText(QString::fromUtf8(detail.name.c_str()));
ui.peerid->setText(QString::fromStdString(detail.id.toStdString()));
nameAndLocation = QString("%1 (%2)").arg(QString::fromUtf8(detail.name.c_str())).arg(QString::fromUtf8(detail.location.c_str()));
//ui.pgpfingerprint->setText(QString::fromUtf8(detail.name.c_str()));
ui.peerid->setText(QString::fromStdString(detail.id.toStdString()));
ui.headerFrame->setHeaderText(nameAndLocation);
nameAndLocation = QString("%1 (%2)").arg(QString::fromUtf8(detail.name.c_str()), QString::fromUtf8(detail.location.c_str()));
ui.headerFrame->setHeaderText(nameAndLocation);
RetroShareLink link = RetroShareLink::createPerson(detail.gpg_id);
ui.pgpfingerprint->setText(link.toHtml());
ui.pgpfingerprint->setToolTip(link.title());
ui.avatar->setId(ChatId(peerId));
ui.avatar->setId(ChatId(peerId));
ui.loc->setText(QString::fromUtf8(detail.location.c_str()));
// Dont Show a timestamp in RS calculate the day
ui.lastcontact->setText(DateTime::formatLongDateTime(detail.lastConnect));
ui.loc->setText(QString::fromUtf8(detail.location.c_str()));
// Dont Show a timestamp in RS calculate the day
ui.lastcontact->setText(DateTime::formatLongDateTime(detail.lastConnect));
/* set retroshare version */
std::string version;
rsDisc->getPeerVersion(detail.id, version);
ui.version->setText(QString::fromStdString(version));
/* Custom state string */
QString statustring = QString::fromUtf8(rsMsgs->getCustomStateString(detail.id).c_str());
ui.statusmessage->setText(statustring);
/* set retroshare version */
std::string version;
rsDisc->getPeerVersion(detail.id, version);
ui.version->setText(QString::fromStdString(version));
/* Custom state string */
QString statustring = QString::fromUtf8(rsMsgs->getCustomStateString(detail.id).c_str());
ui.statusmessage->setText(statustring);
RsPeerCryptoParams cdet ;
if(RsControl::instance()->getPeerCryptoDetails(detail.id,cdet) && cdet.connexion_state!=0)
ui.crypto_info->setText(QString::fromStdString(cdet.cipher_name));
else
ui.crypto_info->setText(tr("Not connected")) ;
RsPeerCryptoParams cdet ;
if(RsControl::instance()->getPeerCryptoDetails(detail.id,cdet) && cdet.connexion_state!=0)
ui.crypto_info->setText(QString::fromStdString(cdet.cipher_name));
else
ui.crypto_info->setText(tr("Not connected")) ;
if (detail.isHiddenNode)
{
// enable only the first row and set name of the first label to "Hidden Address"
ui.l_localAddress->setText(tr("Hidden Address"));
if (detail.isHiddenNode)
{
// enable only the first row and set name of the first label to "Hidden Address"
ui.l_localAddress->setText(tr("Hidden Address"));
ui.l_extAddress->setEnabled(false);
ui.extAddress->setEnabled(false);
ui.l_portExternal->setEnabled(false);
ui.extPort->setEnabled(false);
ui.l_extAddress->setEnabled(false);
ui.extAddress->setEnabled(false);
ui.l_portExternal->setEnabled(false);
ui.extPort->setEnabled(false);
ui.l_dynDNS->setEnabled(false);
ui.dynDNS->setEnabled(false);
ui.l_dynDNS->setEnabled(false);
ui.dynDNS->setEnabled(false);
/* set hidden address */
ui.localAddress->setText(QString::fromStdString(detail.hiddenNodeAddress));
ui.localPort -> setValue(detail.hiddenNodePort);
/* set hidden address */
ui.localAddress->setText(QString::fromStdString(detail.hiddenNodeAddress));
ui.localPort -> setValue(detail.hiddenNodePort);
// set everything else to none
ui.extAddress->setText(tr("none"));
ui.extPort->setValue(0);
ui.dynDNS->setText(tr("none"));
}
else
{
// enable everything and set name of the first label to "Local Address"
ui.l_localAddress->setText(tr("Local Address"));
// set everything else to none
ui.extAddress->setText(tr("none"));
ui.extPort->setValue(0);
ui.dynDNS->setText(tr("none"));
}
else
{
// enable everything and set name of the first label to "Local Address"
ui.l_localAddress->setText(tr("Local Address"));
ui.l_extAddress->setEnabled(true);
ui.extAddress->setEnabled(true);
ui.l_portExternal->setEnabled(true);
ui.extPort->setEnabled(true);
ui.l_extAddress->setEnabled(true);
ui.extAddress->setEnabled(true);
ui.l_portExternal->setEnabled(true);
ui.extPort->setEnabled(true);
ui.l_dynDNS->setEnabled(true);
ui.dynDNS->setEnabled(true);
ui.l_dynDNS->setEnabled(true);
ui.dynDNS->setEnabled(true);
/* set local address */
ui.localAddress->setText(QString::fromStdString(detail.localAddr));
ui.localPort -> setValue(detail.localPort);
/* set the server address */
ui.extAddress->setText(QString::fromStdString(detail.extAddr));
ui.extPort -> setValue(detail.extPort);
/* set local address */
ui.localAddress->setText(QString::fromStdString(detail.localAddr));
ui.localPort -> setValue(detail.localPort);
/* set the server address */
ui.extAddress->setText(QString::fromStdString(detail.extAddr));
ui.extPort -> setValue(detail.extPort);
ui.dynDNS->setText(QString::fromStdString(detail.dyndns));
}
ui.dynDNS->setText(QString::fromStdString(detail.dyndns));
}
ui.statusline->setText(StatusDefs::connectStateString(detail));
ui.statusline->setText(StatusDefs::connectStateString(detail));
ui.ipAddressList->clear();
for(std::list<std::string>::const_iterator it(detail.ipAddressList.begin());it!=detail.ipAddressList.end();++it)
ui.ipAddressList->addItem(QString::fromStdString(*it));
ui.ipAddressList->clear();
for(std::list<std::string>::const_iterator it(detail.ipAddressList.begin());it!=detail.ipAddressList.end();++it)
ui.ipAddressList->addItem(QString::fromStdString(*it));
ui.loc->show();
ui.label_loc->show();
ui.statusline->show();
ui.label_status->show();
ui.lastcontact->show();
ui.label_last_contact->show();
ui.version->show();
ui.label_version->show();
ui.loc->show();
ui.label_loc->show();
ui.statusline->show();
ui.label_status->show();
ui.lastcontact->show();
ui.label_last_contact->show();
ui.version->show();
ui.label_version->show();
//ui.groupBox->show();
ui.groupBox_4->show();
//ui.tabWidget->show();
//ui.rsid->hide();
//ui.label_rsid->hide();
ui.pgpfingerprint->show();
//ui.pgpfingerprint_label->show();
//ui.groupBox->show();
ui.detail_GBox->show();
//ui.tabWidget->show();
//ui.rsid->hide();
//ui.label_rsid->hide();
ui.pgpfingerprint->show();
//ui.pgpfingerprint_label->show();
ui.stabWidget->setTabEnabled(2,true) ;
ui.stabWidget->setTabEnabled(3,true) ;
ui.stabWidget->setTabEnabled(4,true) ;
ui.stabWidget->setTabEnabled(PageDetails,true) ;
ui.stabWidget->setTabEnabled(PageTrust,true) ;
ui.stabWidget->setTabEnabled(PageCertificate,true) ;
loadInvitePage() ;
loadInvitePage() ;
}
void ConfCertDialog::loadInvitePage()
{
RsPeerDetails detail;
RsPeerDetails detail;
if (!rsPeers->getPeerDetails(peerId, detail))
{
QMessageBox::information(this,
tr("RetroShare"),
tr("Error : cannot get peer details."));
close();
return;
}
if (!rsPeers->getPeerDetails(peerId, detail))
{
QMessageBox::information(this,
tr("RetroShare"),
tr("Error : cannot get peer details."));
close();
return;
}
ui._shouldAddSignatures_CB->setEnabled(detail.gpgSigners.size() > 1) ;
// std::string pgp_key = rsPeers->getPGPKey(detail.gpg_id,ui._shouldAddSignatures_CB_2->isChecked()) ; // this needs to be a SSL id
// ui.userCertificateText_2->setReadOnly(true);
// ui.userCertificateText_2->setMinimumHeight(200);
// ui.userCertificateText_2->setMinimumWidth(530);
// QFont font("Courier New",10,50,false);
// font.setStyleHint(QFont::TypeWriter,QFont::PreferMatch);
// font.setStyle(QFont::StyleNormal);
// ui.userCertificateText_2->setFont(font);
// ui.userCertificateText_2->setText(QString::fromUtf8(pgp_key.c_str()));
ui._shouldAddSignatures_CB->setEnabled(detail.gpgSigners.size() > 1) ;
std::string invite ;
RetroshareInviteFlags flags = RetroshareInviteFlags::DNS | RetroshareInviteFlags::CURRENT_IP | RetroshareInviteFlags::RADIX_FORMAT;
RetroshareInviteFlags flags = RetroshareInviteFlags::DNS | RetroshareInviteFlags::CURRENT_IP | RetroshareInviteFlags::RADIX_FORMAT;
if(!detail.isHiddenNode && ui._includeIPHistory_CB->isChecked())
flags |= RetroshareInviteFlags::FULL_IP_HISTORY;
if(!detail.isHiddenNode && ui._includeIPHistory_CB->isChecked())
flags |= RetroshareInviteFlags::FULL_IP_HISTORY;
if(ui._shortFormat_CB->isChecked())
if(ui._shortFormat_CB->isChecked())
{
rsPeers->getShortInvite(invite,detail.id,flags);
ui.stabWidget->setTabText(2, tr("Retroshare ID"));
rsPeers->getShortInvite(invite,detail.id,flags);
ui.stabWidget->setTabText(PageCertificate, tr("Retroshare ID"));
}
else
{
if(ui._shouldAddSignatures_CB->isChecked())
flags |= RetroshareInviteFlags::PGP_SIGNATURES;
if(ui._shouldAddSignatures_CB->isChecked())
flags |= RetroshareInviteFlags::PGP_SIGNATURES;
invite = rsPeers->GetRetroshareInvite(detail.id, flags ) ;
ui.stabWidget->setTabText(1, tr("Retroshare Certificate"));
invite = rsPeers->GetRetroshareInvite(detail.id, flags ) ;
ui.stabWidget->setTabText(PageCertificate, tr("Retroshare Certificate"));
}
QString infotext = getCertificateDescription(detail,ui._shouldAddSignatures_CB->isChecked(),ui._shortFormat_CB->isChecked(), ui._includeIPHistory_CB->isChecked() );
ui.userCertificateText->setToolTip(infotext) ;
ui.userCertificateText->setToolTip(infotext) ;
ui.userCertificateText->setReadOnly(true);
ui.userCertificateText->setMinimumHeight(200);
ui.userCertificateText->setMinimumWidth(530);
QFont font("Courier New",10,50,false);
font.setStyleHint(QFont::TypeWriter,QFont::PreferMatch);
font.setStyle(QFont::StyleNormal);
ui.userCertificateText->setFont(font);
ui.userCertificateText->setText(QString::fromUtf8(invite.c_str()));
ui.userCertificateText->setReadOnly(true);
ui.userCertificateText->setMinimumHeight(200);
ui.userCertificateText->setMinimumWidth(530);
QFont font("Courier New",10,50,false);
font.setStyleHint(QFont::TypeWriter,QFont::PreferMatch);
font.setStyle(QFont::StyleNormal);
ui.userCertificateText->setFont(font);
ui.userCertificateText->setText(QString::fromUtf8(invite.c_str()));
}
QString ConfCertDialog::getCertificateDescription(const RsPeerDetails& detail,bool signatures_included,bool use_short_format,bool include_additional_locators)