aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/function/RaisePinentry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/function/RaisePinentry.cpp')
-rw-r--r--src/ui/function/RaisePinentry.cpp112
1 files changed, 0 insertions, 112 deletions
diff --git a/src/ui/function/RaisePinentry.cpp b/src/ui/function/RaisePinentry.cpp
deleted file mode 100644
index b119c5f8..00000000
--- a/src/ui/function/RaisePinentry.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric <[email protected]>
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * GpgFrontend is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric <[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#include "RaisePinentry.h"
-
-#include "core/function/CoreSignalStation.h"
-#include "core/model/GpgPassphraseContext.h"
-#include "core/utils/CacheUtils.h"
-#include "pinentry/pinentrydialog.h"
-
-namespace GpgFrontend::UI {
-
-auto FindTopMostWindow(QWidget* fallback) -> QWidget* {
- QList<QWidget*> top_widgets = QApplication::topLevelWidgets();
- foreach (QWidget* widget, top_widgets) {
- if (widget->isActiveWindow()) {
- return widget;
- }
- }
- return fallback;
-}
-
-RaisePinentry::RaisePinentry(QWidget* parent,
- QSharedPointer<GpgPassphraseContext> context)
- : QWidget(parent), context_(std::move(context)) {}
-
-auto RaisePinentry::Exec() -> int {
- bool ask_for_new = context_->IsAskForNew() &&
- context_->GetPassphraseInfo().isEmpty() &&
- context_->GetUidsInfo().isEmpty();
-
- auto* pinentry =
- new PinEntryDialog(FindTopMostWindow(this), 0, 15, true, ask_for_new,
- ask_for_new ? tr("Repeat Passphrase:") : QString(),
- tr("Show passphrase"), tr("Hide passphrase"));
-
- if (context_->IsPreWasBad()) {
- pinentry->setError(tr("Given Passphrase was wrong. Please retry."));
- }
-
- pinentry->setPrompt(tr("Passphrase:"));
-
- if (!context_->GetUidsInfo().isEmpty()) {
- pinentry->setDescription(QString("Please provide Passphrase of Key:\n%1\n")
- .arg(context_->GetUidsInfo()));
- }
-
- struct pinentry pinentry_info;
- pinentry->setPinentryInfo(pinentry_info);
-
- pinentry->setRepeatErrorText(tr("Passphrases do not match"));
- pinentry->setGenpinLabel(QString(""));
- pinentry->setGenpinTT(QString(""));
- pinentry->setCapsLockHint(tr("Caps Lock is on"));
- pinentry->setFormattedPassphrase({false, QString()});
- pinentry->setConstraintsOptions({false, QString(), QString(), QString()});
-
- pinentry->setWindowTitle(tr("Bundled Pinentry"));
-
- /* If we reuse the same dialog window. */
- pinentry->setPin(QString());
- pinentry->setOkText(tr("Confirm"));
- pinentry->setCancelText(tr("Cancel"));
-
- connect(pinentry, &PinEntryDialog::finished, this,
- [pinentry, this](int result) {
- bool ret = result != 0;
-
- if (!ret) {
- emit CoreSignalStation::GetInstance()
- -> SignalUserInputPassphraseCallback({});
- return -1;
- }
-
- auto pin = pinentry->pin().toUtf8();
-
- context_->SetPassphrase(pin);
- emit CoreSignalStation::GetInstance()
- -> SignalUserInputPassphraseCallback(context_);
- return 0;
- });
- connect(pinentry, &PinEntryDialog::finished, this, &QWidget::deleteLater);
-
- pinentry->open();
- return 0;
-}
-} // namespace GpgFrontend::UI