[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/kdepim/enterprise/kdepim/certmanager/lib
From:       Marc Mutz <mutz () kde ! org>
Date:       2008-10-30 16:09:29
Message-ID: 1225382969.373483.7851.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 877883 by mutz:

Add support for retrieving the autit log error. Pt.1 of kolab/issue2627. Pt.2 (making \
use of that information) will follow later.

 M  +6 -5      backends/qgpgme/qgpgmejob.cpp  
 M  +3 -2      backends/qgpgme/qgpgmejob.h  
 M  +14 -0     kleo/job.cpp  
 M  +6 -0      kleo/job.h  


--- branches/kdepim/enterprise/kdepim/certmanager/lib/backends/qgpgme/qgpgmejob.cpp \
#877882:877883 @@ -236,13 +236,12 @@
 
 static const unsigned int GetAuditLogFlags = \
GpgME::Context::AuditLogWithHelp|GpgME::Context::HtmlAuditLog;  
-static QString audit_log_as_html( GpgME::Context * ctx ) {
-    if ( !ctx )
-        return QString();
+static QString audit_log_as_html( GpgME::Context * ctx, GpgME::Error & err ) {
+    assert( ctx );
     QGpgME::QByteArrayDataProvider dp;
     GpgME::Data data( &dp );
     assert( !data.isNull() );
-    if ( const GpgME::Error err = ctx->getAuditLog( data, GetAuditLogFlags ) )
+    if ( ( err = ctx->getAuditLog( data, GetAuditLogFlags ) ) )
         return QString();
     else
         return QString::fromUtf8( dp.data().data() );
@@ -258,7 +257,9 @@
 }
 
 void Kleo::QGpgMEJob::getAuditLog() {
-    mAuditLogAsHtml = audit_log_as_html( mCtx );
+    if ( !mCtx )
+        return;
+    mAuditLogAsHtml = audit_log_as_html( mCtx, mAuditLogError );
 }
 
 void Kleo::QGpgMEJob::doSlotCancel() {
--- branches/kdepim/enterprise/kdepim/certmanager/lib/backends/qgpgme/qgpgmejob.h \
#877882:877883 @@ -37,6 +37,7 @@
 #include <gpgmepp/interfaces/passphraseprovider.h>
 
 #include <gpgmepp/key.h>
+#include <gpgmepp/context.h>
 
 #include <qcstring.h>
 #include <qstring.h>
@@ -45,8 +46,6 @@
 #include <kdepimmacros.h>
 
 namespace GpgME {
-  class Error;
-  class Context;
   class Data;
 }
 
@@ -120,6 +119,7 @@
     virtual void doEmitDoneSignal() = 0;
     void doSlotCancel();
     QString auditLogAsHtml() const { return mAuditLogAsHtml; }
+    GpgME::Error auditLogError() const { return mAuditLogError; }
 
   private:
     /*! \reimp from GpgME::ProgressProvider */
@@ -146,6 +146,7 @@
     unsigned int mNumPatterns;
     unsigned int mChunkSize;
     unsigned int mPatternStartIndex, mPatternEndIndex;
+    GpgME::Error mAuditLogError;
     QString mAuditLogAsHtml;
   };
 
--- branches/kdepim/enterprise/kdepim/certmanager/lib/kleo/job.cpp #877882:877883
@@ -52,9 +52,13 @@
 #include "refreshkeysjob.h"
 #include "specialjob.h"
 
+#include <gpgmepp/context.h>
+
 #include <qapplication.h>
 #include <kdebug.h>
 
+#include <gpg-error.h>
+
 Kleo::Job::Job( QObject * parent, const char * name )
   : QObject( parent, name )
 {
@@ -75,6 +79,16 @@
     return QString();
 }
 
+GpgME::Error Kleo::Job::auditLogError() const {
+    kdDebug() << "Kleo::Job::auditLogError() should be reimplemented in Kleo::Job \
subclasses!" << endl; +    return GpgME::Error( gpg_error( GPG_ERR_NOT_IMPLEMENTED ) \
); +}
+
+bool Kleo::Job::isAuditLogSupported() const {
+    const GpgME::Error err = auditLogError();
+    return err.code() != GPG_ERR_NOT_IMPLEMENTED ;
+}
+
 #define make_job_subclass(x) \
   Kleo::x::x( QObject * parent, const char * name ) : Job( parent, name ) {} \
   Kleo::x::~x() {}
--- branches/kdepim/enterprise/kdepim/certmanager/lib/kleo/job.h #877882:877883
@@ -38,6 +38,10 @@
 
 class QWidget;
 
+namespace GpgME {
+    class Error;
+}
+
 namespace Kleo {
 
   /**
@@ -67,6 +71,8 @@
     virtual void showErrorDialog( QWidget * parent=0, const QString & \
caption=QString::null ) const;  
     virtual QString auditLogAsHtml() const;
+    virtual GpgME::Error auditLogError() const;
+    bool isAuditLogSupported() const;
 
   public slots:
     virtual void slotCancel() = 0;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic