diff options
author | Saturneric <[email protected]> | 2023-02-07 07:16:45 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2023-02-07 07:16:45 +0000 |
commit | a49c6605244d656d4a4b72e95fbbcbe83372d363 (patch) | |
tree | ba28d451a0c78041f36e0e8be7ca30114ddce4ef /src/ui/UserInterfaceUtils.cpp | |
parent | feat: add a custom pinentry hook for sandbox mode in macOS (diff) | |
download | GpgFrontend-a49c6605244d656d4a4b72e95fbbcbe83372d363.tar.gz GpgFrontend-a49c6605244d656d4a4b72e95fbbcbe83372d363.zip |
feat: use custom password dialog now
Diffstat (limited to '')
-rw-r--r-- | src/ui/UserInterfaceUtils.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/ui/UserInterfaceUtils.cpp b/src/ui/UserInterfaceUtils.cpp index b84c1ad2..72ebe6f6 100644 --- a/src/ui/UserInterfaceUtils.cpp +++ b/src/ui/UserInterfaceUtils.cpp @@ -28,16 +28,19 @@ #include "UserInterfaceUtils.h" +#include <string> #include <utility> #include <vector> #include "core/common/CoreCommonUtil.h" +#include "core/function/CoreSignalStation.h" #include "core/function/FileOperator.h" #include "core/function/GlobalSettingStation.h" #include "core/function/gpg/GpgKeyGetter.h" #include "core/thread/Task.h" #include "core/thread/TaskRunner.h" #include "core/thread/TaskRunnerGetter.h" +#include "spdlog/spdlog.h" #include "ui/SignalStation.h" #include "ui/dialog/WaitingDialog.h" #include "ui/struct/SettingsObject.h" @@ -157,6 +160,9 @@ CommonUtils::CommonUtils() : QWidget(nullptr) { connect(this, &CommonUtils::SignalKeyDatabaseRefreshDone, SignalStation::GetInstance(), &SignalStation::SignalKeyDatabaseRefreshDone); + connect(this, &CommonUtils::SignalUserInputPassphraseDone, + CoreSignalStation::GetInstance(), + &CoreSignalStation::SignalUserInputPassphraseDone); // directly connect to SignalKeyStatusUpdated // to avoid the delay of signal emitting @@ -165,6 +171,10 @@ CommonUtils::CommonUtils() : QWidget(nullptr) { &SignalStation::SignalKeyDatabaseRefresh, this, &CommonUtils::slot_update_key_status); + connect(CoreSignalStation::GetInstance(), + &CoreSignalStation::SignalNeedUserInputPassphrase, this, + &CommonUtils::slot_popup_passphrase_input_dialog); + connect(this, &CommonUtils::SignalGnupgNotInstall, this, []() { QMessageBox::critical( nullptr, _("ENV Loading Failed"), @@ -409,4 +419,23 @@ void CommonUtils::slot_update_key_status() { refresh_task); } +void CommonUtils::slot_popup_passphrase_input_dialog() { + SPDLOG_INFO("called"); + + auto *dialog = new QInputDialog(QApplication::activeWindow(), Qt::Dialog); + dialog->setModal(true); + dialog->setWindowTitle(_("Password Input Dialog")); + dialog->setInputMode(QInputDialog::TextInput); + dialog->setTextEchoMode(QLineEdit::Password); + dialog->setLabelText("Please Input The Password"); + dialog->resize(600, 80); + dialog->exec(); + + QString password = dialog->textValue(); + dialog->deleteLater(); + + // send signal + emit SignalUserInputPassphraseDone(password); +} + } // namespace GpgFrontend::UI
\ No newline at end of file |