From 068d4b310b51fe9e3069e08617b3943c9d8b6c1e Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Fri, 29 Nov 2019 17:59:06 -0600 Subject: Qt UI: Allow passphrase to be viewed in RootPassphrasePage --- ui/qt5/rootpwpage.cc | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'ui') diff --git a/ui/qt5/rootpwpage.cc b/ui/qt5/rootpwpage.cc index ca7de32..f0b8acc 100644 --- a/ui/qt5/rootpwpage.cc +++ b/ui/qt5/rootpwpage.cc @@ -12,6 +12,7 @@ #include "rootpwpage.hh" +#include #include #include #include @@ -34,6 +35,24 @@ RootPassphrasePage::RootPassphrasePage(QWidget *parent) rootPW->setWhatsThis(tr("Enter your desired root passphrase here.")); connect(rootPW, &QLineEdit::textChanged, this, &RootPassphrasePage::completeChanged); + QAction *togglePass = rootPW->addAction(QIcon::fromTheme("visibility"), + QLineEdit::TrailingPosition); + togglePass->setToolTip(tr("Show the passphrase")); + togglePass->setData(true); + connect(togglePass, &QAction::triggered, + [=](void) { + if(togglePass->data().toBool() == true) { + togglePass->setData(false); + togglePass->setIcon(QIcon::fromTheme("hint")); + togglePass->setToolTip(tr("Hide the passphrase")); + rootPW->setEchoMode(QLineEdit::Normal); + } else { + togglePass->setData(true); + togglePass->setIcon(QIcon::fromTheme("visibility")); + togglePass->setToolTip(tr("Show the passphrase")); + rootPW->setEchoMode(QLineEdit::Password); + } + }); registerField("rootpw", rootPW); confirmPW = new QLineEdit; confirmPW->setEchoMode(QLineEdit::Password); @@ -41,6 +60,24 @@ RootPassphrasePage::RootPassphrasePage(QWidget *parent) "Confirm your desired root passphrase by typing it again here.")); connect(confirmPW, &QLineEdit::textChanged, this, &RootPassphrasePage::completeChanged); + QAction *toggleConfPass = rootPW->addAction(QIcon::fromTheme("visibility"), + QLineEdit::TrailingPosition); + toggleConfPass->setToolTip(tr("Show the passphrase")); + toggleConfPass->setData(true); + connect(toggleConfPass, &QAction::triggered, + [=](void) { + if(toggleConfPass->data().toBool() == true) { + toggleConfPass->setData(false); + toggleConfPass->setIcon(QIcon::fromTheme("hint")); + toggleConfPass->setToolTip(tr("Hide the passphrase")); + confirmPW->setEchoMode(QLineEdit::Normal); + } else { + toggleConfPass->setData(true); + toggleConfPass->setIcon(QIcon::fromTheme("visibility")); + toggleConfPass->setToolTip(tr("Show the passphrase")); + confirmPW->setEchoMode(QLineEdit::Password); + } + }); QFormLayout *pwForm = new QFormLayout; pwForm->addRow(tr("&Passphrase:"), rootPW); pwForm->addRow(tr("&Confirm Passphrase:"), confirmPW); -- cgit v1.2.3-60-g2f50