forked from ciphrex/mSIGNA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetpassphrasedialog.cpp
64 lines (52 loc) · 1.9 KB
/
setpassphrasedialog.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
///////////////////////////////////////////////////////////////////////////////
//
// mSIGNA
//
// setpassphrasedialog.cpp
//
// Copyright (c) 2014 Eric Lombrozo
//
// All Rights Reserved.
#include "setpassphrasedialog.h"
#include <QDialogButtonBox>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QLineEdit>
#include <QLabel>
SetPassphraseDialog::SetPassphraseDialog(const QString& objectName, const QString& additionalText, QWidget* parent)
: QDialog(parent)
{
// Buttons
QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok
| QDialogButtonBox::Cancel);
connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
// Prompts
QLabel* promptLabel = new QLabel(tr("Enter passphrase for ") + objectName + ":");
QLabel* repromptLabel = new QLabel(tr("Enter it again:"));
// Text Edits
passphrase1Edit = new QLineEdit();
passphrase1Edit->setEchoMode(QLineEdit::Password);
passphrase2Edit = new QLineEdit();
passphrase2Edit->setEchoMode(QLineEdit::Password);
// Additional Text
QLabel* additionalTextLabel = new QLabel();
additionalTextLabel->setText(additionalText);
QVBoxLayout* mainLayout = new QVBoxLayout();
mainLayout->setSizeConstraint(QLayout::SetNoConstraint);
mainLayout->addWidget(promptLabel);
mainLayout->addWidget(passphrase1Edit);
mainLayout->addWidget(repromptLabel);
mainLayout->addWidget(passphrase2Edit);
mainLayout->addWidget(additionalTextLabel);
mainLayout->addWidget(buttonBox);
setLayout(mainLayout);
setMinimumWidth(500);
}
QString SetPassphraseDialog::getPassphrase() const
{
if (passphrase1Edit->text() != passphrase2Edit->text())
throw std::runtime_error("Passphrases do not match.");
// TODO: check passphrase strength
return passphrase1Edit->text();
}