Unhide password temporarily utility function

This commit is contained in:
Klaus Basan
2018-12-07 02:33:16 +01:00
parent 49affde15b
commit 2e68a52a42
2 changed files with 20 additions and 0 deletions

View File

@@ -16,6 +16,7 @@
#include <QApplication>
#include <QCheckBox>
#include <QComboBox>
#include <QLineEdit>
#include <QAbstractItemModel>
#include <QJsonDocument>
#include <QJsonObject>
@@ -33,6 +34,7 @@
#include <QWidget>
#include <QTimer>
#include <Qt>
#include <QPointer>
#include <QtGlobal>
#include <QGraphicsOpacityEffect>
#include <QPropertyAnimation>
@@ -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<QLineEdit> qpLineEdit(lineEdit);
QTimer::singleShot(unhideMs, lineEdit, [ = ]
{
if (qpLineEdit) { qpLineEdit->setEchoMode(mode); }
});
}
QWidgetList CGuiUtility::topLevelApplicationWidgetsWithName()
{
QWidgetList tlw = QApplication::topLevelWidgets();

View File

@@ -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 <class WIDGET>
static void childrenSetEnabled(QWidget *parent, bool enabled)