diff options
author | Saturneric <[email protected]> | 2021-12-02 19:49:32 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2021-12-02 19:49:32 +0000 |
commit | 6027b6098ac4e8dfdc75fc08e3f5d3b3b2997ef3 (patch) | |
tree | a399d2c830dadf6750ddb44a69309b443255846c /src/ui/UserInterfaceUtils.cpp | |
parent | Modified & Improve (diff) | |
download | GpgFrontend-6027b6098ac4e8dfdc75fc08e3f5d3b3b2997ef3.tar.gz GpgFrontend-6027b6098ac4e8dfdc75fc08e3f5d3b3b2997ef3.zip |
Fix and Modified.
1. Fix known issues.
2. Modified Settings.
3. Modified parts of modules.
Diffstat (limited to 'src/ui/UserInterfaceUtils.cpp')
-rw-r--r-- | src/ui/UserInterfaceUtils.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/ui/UserInterfaceUtils.cpp b/src/ui/UserInterfaceUtils.cpp index f8658a78..395d292e 100644 --- a/src/ui/UserInterfaceUtils.cpp +++ b/src/ui/UserInterfaceUtils.cpp @@ -25,11 +25,16 @@ #include "UserInterfaceUtils.h" #include "gpg/result_analyse/ResultAnalyse.h" +#include "ui/SignalStation.h" #include "ui/WaitingDialog.h" #include "ui/widgets/InfoBoardWidget.h" #include "ui/widgets/TextEdit.h" namespace GpgFrontend::UI { + +std::unique_ptr<GpgFrontend::UI::CommonUtils> + GpgFrontend::UI::CommonUtils::_instance = nullptr; + void refresh_info_board(InfoBoardWidget* info_board, int status, const std::string& report_text) { if (status < 0) @@ -79,4 +84,45 @@ void process_operation(QWidget* parent, const std::string& waiting_title, dialog->close(); } +CommonUtils* CommonUtils::GetInstance() { + if (_instance == nullptr) { + _instance = std::make_unique<CommonUtils>(); + } + return _instance.get(); +} + +CommonUtils::CommonUtils() : QWidget(nullptr) { + connect(this, SIGNAL(signalKeyStatusUpdated()), SignalStation::GetInstance(), + SIGNAL(KeyDatabaseRefresh())); +} + +void CommonUtils::slotImportKeys(QWidget* parent, + const std::string& in_buffer) { + GpgImportInformation result = GpgKeyImportExportor::GetInstance().ImportKey( + std::make_unique<ByteArray>(in_buffer)); + emit signalKeyStatusUpdated(); + new KeyImportDetailDialog(result, false, parent); +} + +void CommonUtils::slotImportKeyFromFile(QWidget* parent) { + QString file_name = QFileDialog::getOpenFileName( + this, _("Open Key"), QString(), + QString(_("Key Files")) + " (*.asc *.txt);;" + _("Keyring files") + + " (*.gpg);;All Files (*)"); + if (!file_name.isNull()) { + slotImportKeys(parent, read_all_data_in_file(file_name.toStdString())); + } +} + +void CommonUtils::slotImportKeyFromKeyServer(QWidget* parent) { + auto dialog = new KeyServerImportDialog(false, parent); + dialog->show(); +} + +void CommonUtils::slotImportKeyFromClipboard(QWidget* parent) { + QClipboard* cb = QApplication::clipboard(); + slotImportKeys(parent, + cb->text(QClipboard::Clipboard).toUtf8().toStdString()); +} + } // namespace GpgFrontend::UI
\ No newline at end of file |