aboutsummaryrefslogtreecommitdiffstats
path: root/src/pinentry/pinentrydialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/pinentry/pinentrydialog.cpp')
-rw-r--r--src/pinentry/pinentrydialog.cpp33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/pinentry/pinentrydialog.cpp b/src/pinentry/pinentrydialog.cpp
index 27d75c8b..01c6d85f 100644
--- a/src/pinentry/pinentrydialog.cpp
+++ b/src/pinentry/pinentrydialog.cpp
@@ -23,12 +23,9 @@
* SPDX-License-Identifier: GPL-2.0+
*/
-#include <qnamespace.h>
+#include "pinentrydialog.h"
-#include "pinentry.h"
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
+#include <qnamespace.h>
#include <QAccessible>
#include <QAction>
@@ -53,7 +50,8 @@
#include "accessibility.h"
#include "capslock/capslock.h"
-#include "pinentrydialog.h"
+#include "core/utils/MemoryUtils.h"
+#include "pinentry.h"
#include "pinlineedit.h"
#include "util.h"
@@ -166,7 +164,7 @@ PinEntryDialog::PinEntryDialog(QWidget *parent, const char *name, int timeout,
if (!repeatString.isNull()) {
mGenerateButton = new QPushButton{this};
- mGenerateButton->setIcon(QIcon(QLatin1String(":/password-generate.svg")));
+ mGenerateButton->setIcon(QIcon(QLatin1String(":password-generate.svg")));
mGenerateButton->setVisible(false);
l->addWidget(mGenerateButton);
}
@@ -174,8 +172,8 @@ PinEntryDialog::PinEntryDialog(QWidget *parent, const char *name, int timeout,
}
/* Set up the show password action */
- const QIcon visibility_icon = QIcon(QLatin1String(":/visibility.svg"));
- const QIcon hide_icon = QIcon(QLatin1String(":/hint.svg"));
+ const QIcon visibility_icon = QIcon(QLatin1String(":visibility.svg"));
+ const QIcon hide_icon = QIcon(QLatin1String(":hint.svg"));
#if QT_VERSION >= 0x050200
if (!visibility_icon.isNull() && !hide_icon.isNull()) {
mVisiActionEdit =
@@ -304,6 +302,7 @@ PinEntryDialog::PinEntryDialog(QWidget *parent, const char *name, int timeout,
checkCapsLock();
setAttribute(Qt::WA_DeleteOnClose);
+ setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
/* This is mostly an issue on Windows where this results
in the pinentry popping up nicely with an animation and
@@ -359,7 +358,7 @@ QString PinEntryDialog::description() const { return _desc->text(); }
void PinEntryDialog::setError(const QString &txt) {
if (!txt.isNull()) {
_icon->setPixmap(
- applicationIconPixmap(QIcon{QStringLiteral(":/data-error.svg")}));
+ applicationIconPixmap(QIcon{QStringLiteral(":data-error.svg")}));
}
_error->setText(txt);
_error->setVisible(!txt.isEmpty());
@@ -487,14 +486,13 @@ void PinEntryDialog::updateQuality(const QString &txt) {
_disable_echo_allowed = false;
- if (!_have_quality_bar || !_pinentry_info) {
+ if (!_have_quality_bar) {
return;
}
const QByteArray utf8_pin = txt.toUtf8();
const char *pin = utf8_pin.constData();
length = strlen(pin);
- percent =
- length != 0 ? pinentry_inq_quality(_pinentry_info.get(), pin, length) : 0;
+ percent = length != 0 ? pinentry_inq_quality(txt) : 0;
if (length == 0) {
_quality_bar->reset();
} else {
@@ -510,8 +508,9 @@ void PinEntryDialog::updateQuality(const QString &txt) {
}
}
-void PinEntryDialog::setPinentryInfo(pinentry_t peinfo) {
- _pinentry_info = std::unique_ptr<struct pinentry>(peinfo);
+void PinEntryDialog::setPinentryInfo(struct pinentry peinfo) {
+ _pinentry_info =
+ GpgFrontend::SecureCreateUniqueObject<struct pinentry>(peinfo);
}
void PinEntryDialog::focusChanged(QWidget *old, QWidget *now) {
@@ -570,7 +569,7 @@ void PinEntryDialog::toggleVisibility() {
if (sender() != mVisiCB) {
if (_edit->echoMode() == QLineEdit::Password) {
if (mVisiActionEdit != nullptr) {
- mVisiActionEdit->setIcon(QIcon(QLatin1String(":/hint.svg")));
+ mVisiActionEdit->setIcon(QIcon(QLatin1String(":hint.svg")));
mVisiActionEdit->setToolTip(mHideTT);
}
_edit->setEchoMode(QLineEdit::Normal);
@@ -579,7 +578,7 @@ void PinEntryDialog::toggleVisibility() {
}
} else {
if (mVisiActionEdit != nullptr) {
- mVisiActionEdit->setIcon(QIcon(QLatin1String(":/visibility.svg")));
+ mVisiActionEdit->setIcon(QIcon(QLatin1String(":visibility.svg")));
mVisiActionEdit->setToolTip(mVisibilityTT);
}
_edit->setEchoMode(QLineEdit::Password);