aboutsummaryrefslogtreecommitdiffstats
path: root/lang/qt/src/job.cpp
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2023-01-03 11:29:48 +0000
committerIngo Klöcker <[email protected]>2023-01-04 11:16:04 +0000
commit18c2c0b2509069951829bb0bdd9b39dc467f5e6e (patch)
treefc17f8fc2a6d34547cd898d541bb535539225d21 /lang/qt/src/job.cpp
parentqt: Explicitly instantiate private job classes (diff)
downloadgpgme-18c2c0b2509069951829bb0bdd9b39dc467f5e6e.tar.gz
gpgme-18c2c0b2509069951829bb0bdd9b39dc467f5e6e.zip
qt: Support deferred start of jobs
* lang/qt/src/job.cpp, lang/qt/src/job.h (Job::startNow): New method. * lang/qt/src/job_p.h (JobPrivate::start): New pure virtual method. * lang/qt/src/qgpgmechangeexpiryjob.cpp (QGpgMEChangeExpiryJobPrivate::start): New. * lang/qt/src/qgpgmeencryptjob.cpp (QGpgMEEncryptJobPrivate::start): New. * lang/qt/src/qgpgmeimportjob.cpp (QGpgMEImportJobPrivate::start): New. * lang/qt/src/qgpgmelistallkeysjob.cpp (QGpgMEListAllKeysJobPrivate::start): New. * lang/qt/src/qgpgmesignencryptjob.cpp (QGpgMESignEncryptJobPrivate::start): New. * lang/qt/src/threadedjobmixin.h (Thread::hasFunction): New method. (ThreadedJobMixin::run, ThreadedJobMixin::setWorkerFunction): New methods. -- startNow() starts a deferred job for which the worker function has been set before. GnuPG-bug-id: 6323
Diffstat (limited to 'lang/qt/src/job.cpp')
-rw-r--r--lang/qt/src/job.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/lang/qt/src/job.cpp b/lang/qt/src/job.cpp
index 98f408b4..85de2ce7 100644
--- a/lang/qt/src/job.cpp
+++ b/lang/qt/src/job.cpp
@@ -137,6 +137,13 @@ GpgME::Context *QGpgME::Job::context(QGpgME::Job *job)
return QGpgME::g_context_map.value (job, nullptr);
}
+void QGpgME::Job::startNow()
+{
+ auto d = getJobPrivate(this);
+ Q_ASSERT(d && "This Job class has no JobPrivate class");
+ d->start();
+}
+
#define make_job_subclass_ext(x,y) \
QGpgME::x::x( QObject * parent ) : y( parent ) {} \
QGpgME::x::~x() {}