summaryrefslogtreecommitdiff
path: root/lang/qt/src/qgpgmesignkeyjob.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lang/qt/src/qgpgmesignkeyjob.cpp')
-rw-r--r--lang/qt/src/qgpgmesignkeyjob.cpp31
1 files changed, 28 insertions, 3 deletions
diff --git a/lang/qt/src/qgpgmesignkeyjob.cpp b/lang/qt/src/qgpgmesignkeyjob.cpp
index 2befe539..7f79cb56 100644
--- a/lang/qt/src/qgpgmesignkeyjob.cpp
+++ b/lang/qt/src/qgpgmesignkeyjob.cpp
@@ -57,14 +57,17 @@ QGpgMESignKeyJob::QGpgMESignKeyJob(Context *context)
m_checkLevel(0),
m_exportable(false),
m_nonRevocable(false),
- m_started(false)
+ m_started(false),
+ m_dupeOk(false)
{
lateInitialization();
}
QGpgMESignKeyJob::~QGpgMESignKeyJob() {}
-static QGpgMESignKeyJob::result_type sign_key(Context *ctx, const Key &key, const std::vector<unsigned int> &uids, unsigned int checkLevel, const Key &signer, unsigned int opts)
+static QGpgMESignKeyJob::result_type sign_key(Context *ctx, const Key &key, const std::vector<unsigned int> &uids,
+ unsigned int checkLevel, const Key &signer, unsigned int opts,
+ bool dupeOk, const QString &remark)
{
QGpgME::QByteArrayDataProvider dp;
Data data(&dp);
@@ -74,6 +77,15 @@ static QGpgMESignKeyJob::result_type sign_key(Context *ctx, const Key &key, cons
skei->setCheckLevel(checkLevel);
skei->setSigningOptions(opts);
+ if (dupeOk) {
+ ctx->setFlag("extended-edit", "1");
+ skei->setDupeOk(true);
+ }
+
+ if (!remark.isEmpty()) {
+ ctx->addSignatureNotation("rem@gnupg.org", remark.toUtf8().constData());
+ }
+
if (!signer.isNull())
if (const Error err = ctx->addSigningKey(signer)) {
return std::make_tuple(err, QString(), Error());
@@ -93,7 +105,8 @@ Error QGpgMESignKeyJob::start(const Key &key)
if (m_exportable) {
opts |= GpgSignKeyEditInteractor::Exportable;
}
- run(std::bind(&sign_key, std::placeholders::_1, key, m_userIDsToSign, m_checkLevel, m_signingKey, opts));
+ run(std::bind(&sign_key, std::placeholders::_1, key, m_userIDsToSign, m_checkLevel, m_signingKey, opts,
+ m_dupeOk, m_remark));
m_started = true;
return Error();
}
@@ -127,4 +140,16 @@ void QGpgMESignKeyJob::setNonRevocable(bool nonRevocable)
assert(!m_started);
m_nonRevocable = nonRevocable;
}
+
+void QGpgMESignKeyJob::setRemark(const QString &remark)
+{
+ assert(!m_started);
+ m_remark = remark;
+}
+
+void QGpgMESignKeyJob::setDupeOk(bool value)
+{
+ assert(!m_started);
+ m_dupeOk = value;
+}
#include "qgpgmesignkeyjob.moc"