diff --git a/lang/qt/src/qgpgmechangeexpiryjob.cpp b/lang/qt/src/qgpgmechangeexpiryjob.cpp index faa4e793..6eb5855f 100644 --- a/lang/qt/src/qgpgmechangeexpiryjob.cpp +++ b/lang/qt/src/qgpgmechangeexpiryjob.cpp @@ -38,19 +38,11 @@ #include "qgpgmechangeexpiryjob.h" -#include "dataprovider.h" - #include "context.h" -#include "data.h" -#include "gpgsetexpirytimeeditinteractor.h" #include "key.h" #include -#include -#include -#include - using namespace QGpgME; using namespace GpgME; @@ -64,17 +56,13 @@ QGpgMEChangeExpiryJob::~QGpgMEChangeExpiryJob() {} static QGpgMEChangeExpiryJob::result_type change_expiry(Context *ctx, const Key &key, const QDateTime &expiry) { - EditInteractor *ei = expiry.isValid() - ? new GpgSetExpiryTimeEditInteractor(expiry.date().toString(Qt::ISODate).toStdString()) - : new GpgSetExpiryTimeEditInteractor(); + // convert expiry to "seconds from now"; use 1 second from now if expiry is before the current datetime + const unsigned long expires = expiry.isValid() + ? std::max(QDateTime::currentDateTime().secsTo(expiry), 1) + : 0; - QGpgME::QByteArrayDataProvider dp; - Data data(&dp); - assert(!data.isNull()); - const Error err = ctx->edit(key, std::unique_ptr (ei), data); - Error ae; - const QString log = _detail::audit_log_as_html(ctx, ae); - return std::make_tuple(err, log, ae); + auto err = ctx->setExpire(key, expires); + return std::make_tuple(err, QString(), Error()); } Error QGpgMEChangeExpiryJob::start(const Key &key, const QDateTime &expiry)