From 2e68a52a42f0a03b965171b9dc26d4c6382d99ae Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 7 Dec 2018 02:33:16 +0100 Subject: [PATCH] Unhide password temporarily utility function --- src/blackgui/guiutility.cpp | 16 ++++++++++++++++ src/blackgui/guiutility.h | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/src/blackgui/guiutility.cpp b/src/blackgui/guiutility.cpp index 73a6c3988..5a24c03c9 100644 --- a/src/blackgui/guiutility.cpp +++ b/src/blackgui/guiutility.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -33,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -281,6 +283,20 @@ namespace BlackGui } } + void CGuiUtility::tempUnhidePassword(QLineEdit *lineEdit, int unhideMs) + { + if (!lineEdit) { return; } + if (lineEdit->text().isEmpty()) { return; } + if (lineEdit->echoMode() != QLineEdit::Password && lineEdit->echoMode() != QLineEdit::PasswordEchoOnEdit) { return; } + const QLineEdit::EchoMode mode = lineEdit->echoMode(); + lineEdit->setEchoMode(QLineEdit::Normal); + QPointer qpLineEdit(lineEdit); + QTimer::singleShot(unhideMs, lineEdit, [ = ] + { + if (qpLineEdit) { qpLineEdit->setEchoMode(mode); } + }); + } + QWidgetList CGuiUtility::topLevelApplicationWidgetsWithName() { QWidgetList tlw = QApplication::topLevelWidgets(); diff --git a/src/blackgui/guiutility.h b/src/blackgui/guiutility.h index c5a802f24..9d5ec92ef 100644 --- a/src/blackgui/guiutility.h +++ b/src/blackgui/guiutility.h @@ -30,6 +30,7 @@ class QCheckBox; class QComboBox; class QLayout; class QMimeData; +class QLineEdit; class QTabWidget; class QGraphicsOpacityEffect; class QAbstractItemModel; @@ -141,6 +142,9 @@ namespace BlackGui //! Pseudo readonly state for checkboxes of widget static void checkBoxesReadOnly(QWidget *parent, bool readOnly); + //! Temp. unhide password + static void tempUnhidePassword(QLineEdit *lineEdit, int unhideMs = 5000); + //! Enable/disable all child widgets template static void childrenSetEnabled(QWidget *parent, bool enabled)