aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-10-26 13:43:14 +0000
committersaturneric <[email protected]>2024-10-26 13:43:14 +0000
commit24c28eb752aa611dd1670f3fa7ab6b358b052f1b (patch)
tree6a4f9af003fa4a86b7d7e29a965e37a231951092 /src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp
parentfix: thread concurrent crash issue (diff)
downloadGpgFrontend-24c28eb752aa611dd1670f3fa7ab6b358b052f1b.tar.gz
GpgFrontend-24c28eb752aa611dd1670f3fa7ab6b358b052f1b.zip
fix: test basic operations of multi key db and solve issues
Diffstat (limited to 'src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp')
-rw-r--r--src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp46
1 files changed, 26 insertions, 20 deletions
diff --git a/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp b/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp
index c6b9b88a..dd88aac2 100644
--- a/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp
+++ b/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp
@@ -41,9 +41,14 @@
namespace GpgFrontend::UI {
-SubkeyGenerateDialog::SubkeyGenerateDialog(const KeyId& key_id, QWidget* parent)
+SubkeyGenerateDialog::SubkeyGenerateDialog(int channel, const KeyId& key_id,
+ QWidget* parent)
: GeneralDialog(typeid(SubkeyGenerateDialog).name(), parent),
- key_(GpgKeyGetter::GetInstance().GetKey(key_id)) {
+ current_gpg_context_channel_(channel),
+ key_(GpgKeyGetter::GetInstance(current_gpg_context_channel_)
+ .GetKey(key_id)) {
+ assert(key_.IsGood());
+
bool longer_expiration_date =
GlobalSettingStation::GetInstance()
.GetSettings()
@@ -290,24 +295,25 @@ void SubkeyGenerateDialog::slot_key_gen_accept() {
this, tr("Generating"),
[this, key = this->key_,
gen_key_info = this->gen_key_info_](const OperaWaitingHd& hd) {
- GpgKeyOpera::GetInstance().GenerateSubkey(
- key, gen_key_info,
- [this, hd](GpgError err, const DataObjectPtr&) {
- // stop showing waiting dialog
- hd();
-
- if (CheckGpgError(err) == GPG_ERR_USER_1) {
- QMessageBox::critical(this, tr("Error"),
- tr("Unknown error occurred"));
- return;
- }
-
- CommonUtils::RaiseMessageBox(this, err);
- if (CheckGpgError(err) == GPG_ERR_NO_ERROR) {
- emit UISignalStation::GetInstance()
- -> SignalKeyDatabaseRefresh();
- }
- });
+ GpgKeyOpera::GetInstance(current_gpg_context_channel_)
+ .GenerateSubkey(key, gen_key_info,
+ [this, hd](GpgError err, const DataObjectPtr&) {
+ // stop showing waiting dialog
+ hd();
+
+ if (CheckGpgError(err) == GPG_ERR_USER_1) {
+ QMessageBox::critical(
+ this, tr("Error"),
+ tr("Unknown error occurred"));
+ return;
+ }
+
+ CommonUtils::RaiseMessageBox(this, err);
+ if (CheckGpgError(err) == GPG_ERR_NO_ERROR) {
+ emit UISignalStation::GetInstance()
+ -> SignalKeyDatabaseRefresh();
+ }
+ });
});
this->done(0);