37 #include "qgpgmesignjob.h"
39 #include "ui/messagebox.h"
41 #include <qgpgme/eventloopinteractor.h>
42 #include <qgpgme/dataprovider.h>
44 #include <gpgmepp/context.h>
45 #include <gpgmepp/signingresult.h>
46 #include <gpgmepp/data.h>
47 #include <gpgmepp/key.h>
53 Kleo::QGpgMESignJob::QGpgMESignJob( GpgME::Context * context )
54 : SignJob( QGpgME::EventLoopInteractor::instance(),
"Kleo::QGpgMESignJob" ),
55 QGpgMEJob( this, context )
60 Kleo::QGpgMESignJob::~QGpgMESignJob() {
63 GpgME::Error Kleo::QGpgMESignJob::setup(
const std::vector<GpgME::Key> & signers,
64 const TQByteArray & plainText ) {
68 createInData( plainText );
71 return setSigningKeys( signers );
74 GpgME::Error Kleo::QGpgMESignJob::start(
const std::vector<GpgME::Key> & signers,
75 const TQByteArray & plainText,
76 GpgME::Context::SignatureMode mode ) {
77 if (
const GpgME::Error error = setup( signers, plainText ) ) {
82 hookupContextToEventLoopInteractor();
84 const GpgME::Error err = mCtx->startSigning( *mInData, *mOutData, mode );
88 mResult = GpgME::SigningResult( err );
92 GpgME::SigningResult Kleo::QGpgMESignJob::exec(
const std::vector<GpgME::Key> & signers,
93 const TQByteArray & plainText,
94 GpgME::Context::SignatureMode mode,
95 TQByteArray & signature ) {
96 if (
const GpgME::Error err = setup( signers, plainText ) )
97 return mResult = GpgME::SigningResult( 0, err );
98 mResult = mCtx->sign( *mInData, *mOutData, mode );
99 signature = mOutDataDataProvider->data();
104 void Kleo::QGpgMESignJob::doOperationDoneEvent(
const GpgME::Error & ) {
105 mResult = mCtx->signingResult();
106 const TQByteArray signature = mOutDataDataProvider->data();
108 emit result( mResult, signature );
111 void Kleo::QGpgMESignJob::showErrorDialog( TQWidget * parent,
const TQString & caption )
const {
112 if ( mResult.error() && !mResult.error().isCanceled() )
113 Kleo::MessageBox::error( parent, mResult,
this, caption );
116 #include "qgpgmesignjob.moc"