diff options
| author | Ingo Klöcker <[email protected]> | 2020-08-05 14:49:18 +0000 | 
|---|---|---|
| committer | Ingo Klöcker <[email protected]> | 2020-08-05 14:49:18 +0000 | 
| commit | 89501509134ab9cff87219fcaee9c1a758efa2fe (patch) | |
| tree | 64cd1a8513501eff796495c9996f99495cb7ac49 /lang/qt/src | |
| parent | qt: Add test for setExpire (diff) | |
| download | gpgme-89501509134ab9cff87219fcaee9c1a758efa2fe.tar.gz gpgme-89501509134ab9cff87219fcaee9c1a758efa2fe.zip | |
qt: Port to new setExpire()
* lang/qt/src/qgpgmechangeexpiryjob.cpp (change_expiry): Use new
setExpire() instead of edit() with GpgSetExpiryTimeEditInteractor
--
Using the new setExpire() (which uses --quick-set-expire) is a lot less
complex than using gpg's edit interface. It also feels faster. Next,
I'll add support for changing the expiration time of subkeys.
GnuPG-bug-id: 5003
Diffstat (limited to '')
| -rw-r--r-- | lang/qt/src/qgpgmechangeexpiryjob.cpp | 24 | 
1 files changed, 6 insertions, 18 deletions
| 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 <QDateTime> -#include <cassert> -#include <memory> -#include <string> -  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<qint64>(QDateTime::currentDateTime().secsTo(expiry), 1) +       : 0; -    QGpgME::QByteArrayDataProvider dp; -    Data data(&dp); -    assert(!data.isNull()); -    const Error err = ctx->edit(key, std::unique_ptr<EditInteractor> (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) | 
