diff options
author | Saturneric <[email protected]> | 2021-05-27 19:51:18 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2021-05-27 19:51:18 +0000 |
commit | ad4c0c1e140de2ffdd2f803a643bdfe4c0fb07bc (patch) | |
tree | f01ad3ec20f85a17d433502e169eab99f2719b92 /src/ui/keypair_details/KeyNewUIDDialog.cpp | |
parent | Fix the wrong use of the signing key interface. (diff) | |
download | GpgFrontend-ad4c0c1e140de2ffdd2f803a643bdfe4c0fb07bc.tar.gz GpgFrontend-ad4c0c1e140de2ffdd2f803a643bdfe4c0fb07bc.zip |
Adjust part of the text of the UI interface of the UID operation tab.
Write an interface to increase UID.
Write logic to adapt and increase UID.
Adjust the UI of KeygenDialog.
Delete the Close button of KeyDetailTab and its logic.
Adjust the KeyDetailTab fingerprint and its copy button UI.
Fix the problem of refreshing the order of the KeyPairUIDTab list.
Signed-off-by: Saturneric <[email protected]>
Diffstat (limited to 'src/ui/keypair_details/KeyNewUIDDialog.cpp')
-rw-r--r-- | src/ui/keypair_details/KeyNewUIDDialog.cpp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/src/ui/keypair_details/KeyNewUIDDialog.cpp b/src/ui/keypair_details/KeyNewUIDDialog.cpp new file mode 100644 index 00000000..9a70b102 --- /dev/null +++ b/src/ui/keypair_details/KeyNewUIDDialog.cpp @@ -0,0 +1,82 @@ +// +// Created by eric on 2021/5/28. +// + +#include "ui/keypair_details/KeyNewUIDDialog.h" + +KeyNewUIDDialog::KeyNewUIDDialog(GpgME::GpgContext *ctx, const GpgKey &key, QWidget *parent) : + mCtx(ctx), mKey(key), QDialog(parent) { + + name = new QLineEdit(); + name->setMinimumWidth(240); + email = new QLineEdit(); + email->setMinimumWidth(240); + comment = new QLineEdit(); + comment->setMinimumWidth(240); + createButton = new QPushButton("Create"); + errorLabel = new QLabel(); + + auto gridLayout = new QGridLayout(); + gridLayout->addWidget(new QLabel(tr("Name")), 0, 0); + gridLayout->addWidget(new QLabel(tr("Email")), 1, 0); + gridLayout->addWidget(new QLabel(tr("Comment")), 2, 0); + + + gridLayout->addWidget(name, 0 ,1); + gridLayout->addWidget(email, 1 ,1); + gridLayout->addWidget(comment, 2 ,1); + + gridLayout->addWidget(createButton, 3, 0, 1, 2); + gridLayout->addWidget(errorLabel, 4, 0, 1, 2); + + connect(createButton, SIGNAL(clicked(bool)), this, SLOT(slotCreateNewUID())); + + this->setLayout(gridLayout); + this->setWindowTitle(tr("Create New UID")); + this->setAttribute(Qt::WA_DeleteOnClose, true); + this->setModal(true); +} + +void KeyNewUIDDialog::slotCreateNewUID() { + + QString errorString = ""; + + /** + * check for errors in keygen dialog input + */ + if ((name->text()).size() < 5) { + errorString.append(tr(" Name must contain at least five characters. \n")); + } if(email->text().isEmpty() || !check_email_address(email->text())) { + errorString.append(tr(" Please give a email address. \n")); + } + + if (errorString.isEmpty()) { + UID uid; + uid.name = name->text(); + uid.email = email->text(); + uid.comment = comment->text(); + + if(mCtx->addUID(mKey, uid)) { + emit finished(1); + + } else { + emit finished(0); + } + + } else { + /** + * create error message + */ + errorLabel->setAutoFillBackground(true); + QPalette error = errorLabel->palette(); + error.setColor(QPalette::Background, "#ff8080"); + errorLabel->setPalette(error); + errorLabel->setText(errorString); + + this->show(); + } +} + +bool KeyNewUIDDialog::check_email_address(const QString &str) { + return re_email.match(str).hasMatch(); +} |