Skip to content

Commit

Permalink
Merge bitcoin#11480: [ui] Add toggle for unblinding password fields
Browse files Browse the repository at this point in the history
ff35de8 [ui] Add toggle for unblinding password fields (Thomas Snider)

Pull request description:

  Proposed change for adding the ability to toggle password visibility in the password dialog.  This is similar to functionality in most password managers and is specifically added with the use case of password managers in mind - the password in that case is likely pasted twice into both the new password and confirm password fields.

  If this is a welcome change, I am open to suggestions on rearranging the layout.

Tree-SHA512: 1823f356f8f941cc584c44de264433e9a573cb8a358efa300a412c4458b5564d8d193969be40859195cf9c8d6768eee895ee22440d51db4f09175f9b4e28bced
  • Loading branch information
laanwj authored and PastaPastaPasta committed Dec 22, 2019
1 parent 052b0ed commit 644e2da
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/qt/askpassphrasedialog.cpp
Expand Up @@ -79,6 +79,7 @@ AskPassphraseDialog::AskPassphraseDialog(Mode _mode, QWidget *parent) :
break;
}
textChanged();
connect(ui->toggleShowPasswordButton, SIGNAL(toggled(bool)), this, SLOT(toggleShowPassword(bool)));
connect(ui->passEdit1, SIGNAL(textChanged(QString)), this, SLOT(textChanged()));
connect(ui->passEdit2, SIGNAL(textChanged(QString)), this, SLOT(textChanged()));
connect(ui->passEdit3, SIGNAL(textChanged(QString)), this, SLOT(textChanged()));
Expand Down Expand Up @@ -259,6 +260,15 @@ bool AskPassphraseDialog::event(QEvent *event)
return QWidget::event(event);
}

void AskPassphraseDialog::toggleShowPassword(bool show)
{
ui->toggleShowPasswordButton->setDown(show);
const auto mode = show ? QLineEdit::Normal : QLineEdit::Password;
ui->passEdit1->setEchoMode(mode);
ui->passEdit2->setEchoMode(mode);
ui->passEdit3->setEchoMode(mode);
}

bool AskPassphraseDialog::eventFilter(QObject *object, QEvent *event)
{
/* Detect Caps Lock.
Expand Down
1 change: 1 addition & 0 deletions src/qt/askpassphrasedialog.h
Expand Up @@ -44,6 +44,7 @@ class AskPassphraseDialog : public QDialog
private Q_SLOTS:
void textChanged();
void secureClearPassFields();
void toggleShowPassword(bool);

protected:
bool event(QEvent *event);
Expand Down
7 changes: 7 additions & 0 deletions src/qt/forms/askpassphrasedialog.ui
Expand Up @@ -93,6 +93,13 @@
</widget>
</item>
<item row="3" column="1">
<widget class="QCheckBox" name="toggleShowPasswordButton">
<property name="text">
<string>Show password</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="capsLabel">
<property name="font">
<font>
Expand Down

0 comments on commit 644e2da

Please sign in to comment.