diff --git a/objecttreeparser.cpp b/objecttreeparser.cpp
index 060624212..e1c80429c 100644
--- a/objecttreeparser.cpp
+++ b/objecttreeparser.cpp
@@ -2074,16 +2074,31 @@ static QString writeSimpleSigstatHeader( const PartMetaData &block )
static QString beginVerboseSigstatHeader()
{
- return "
| ";
- htmlStr += endVerboseSigstatHeader() + frame;
+ htmlStr += endVerboseSigstatHeader( block ) + frame;
simpleHtmlStr += frame;
}
}
diff --git a/urlhandlermanager.cpp b/urlhandlermanager.cpp
index c4cbee83d..c1ca82956 100644
--- a/urlhandlermanager.cpp
+++ b/urlhandlermanager.cpp
@@ -55,14 +55,14 @@ using std::find;
KMail::URLHandlerManager * KMail::URLHandlerManager::self = 0;
namespace {
- class ShowHtmlSwitchURLHandler : public KMail::URLHandler {
+ class KMailProtocolURLHandler : public KMail::URLHandler {
public:
- ShowHtmlSwitchURLHandler() : KMail::URLHandler() {}
- ~ShowHtmlSwitchURLHandler() {}
+ KMailProtocolURLHandler() : KMail::URLHandler() {}
+ ~KMailProtocolURLHandler() {}
bool handleClick( const KUrl &, KMReaderWin * ) const;
- bool handleContextMenuRequest( const KUrl &, const QPoint &, KMReaderWin * ) const {
- return false;
+ bool handleContextMenuRequest( const KUrl & url, const QPoint &, KMReaderWin * ) const {
+ return url.protocol() == "kmail";
}
QString statusBarMessage( const KUrl &, KMReaderWin * ) const;
};
@@ -126,6 +126,16 @@ namespace {
QString statusBarMessage( const KUrl &, KMReaderWin * ) const;
};
+ class ShowAuditLogURLHandler : public KMail::URLHandler {
+ public:
+ ShowAuditLogURLHandler() : KMail::URLHandler() {}
+ ~ShowAuditLogURLHandler() {}
+
+ bool handleClick( const KUrl &, KMReaderWin * ) const;
+ bool handleContextMenuRequest( const KUrl &, const QPoint &, KMReaderWin * ) const;
+ QString statusBarMessage( const KUrl &, KMReaderWin * ) const;
+ };
+
class FallBackURLHandler : public KMail::URLHandler {
public:
FallBackURLHandler() : KMail::URLHandler() {}
@@ -255,13 +265,14 @@ QString KMail::URLHandlerManager::BodyPartURLHandlerManager::statusBarMessage( c
//
KMail::URLHandlerManager::URLHandlerManager() {
- registerHandler( new ShowHtmlSwitchURLHandler() );
+ registerHandler( new KMailProtocolURLHandler() );
registerHandler( new ExpandCollapseQuoteURLManager() );
registerHandler( new SMimeURLHandler() );
registerHandler( new MailToURLHandler() );
registerHandler( new HtmlAnchorHandler() );
registerHandler( new AttachmentURLHandler() );
registerHandler( mBodyPartURLHandlerManager = new BodyPartURLHandlerManager() );
+ registerHandler( new ShowAuditLogURLHandler() );
registerHandler( new FallBackURLHandler() );
}
@@ -327,6 +338,8 @@ QString KMail::URLHandlerManager::statusBarMessage( const KUrl & url, KMReaderWi
#include "kmmessage.h"
#include "kmmsgpart.h"
+#include
+
#include
#include
#include
@@ -334,7 +347,7 @@ QString KMail::URLHandlerManager::statusBarMessage( const KUrl & url, KMReaderWi
#include
namespace {
- bool ShowHtmlSwitchURLHandler::handleClick( const KUrl & url, KMReaderWin * w ) const {
+ bool KMailProtocolURLHandler::handleClick( const KUrl & url, KMReaderWin * w ) const {
if ( url.protocol() == "kmail" ) {
if ( !w )
return false;
@@ -363,10 +376,11 @@ namespace {
}
if ( url.path() == "showSignatureDetails" ) {
- w->setShowSignatureDetails();
+ w->setShowSignatureDetails( true );
w->update( true );
return true;
}
+
if ( url.path() == "hideSignatureDetails" ) {
w->setShowSignatureDetails( false );
w->update( true );
@@ -377,7 +391,7 @@ namespace {
return false;
}
- QString ShowHtmlSwitchURLHandler::statusBarMessage( const KUrl & url, KMReaderWin * ) const {
+ QString KMailProtocolURLHandler::statusBarMessage( const KUrl & url, KMReaderWin * ) const {
if ( url.protocol() == "kmail" )
{
if ( url.path() == "showHTML" )
@@ -385,7 +399,13 @@ namespace {
if ( url.path() == "loadExternal" )
return i18n("Load external references from the Internet for this message.");
if ( url.path() == "goOnline" )
- return i18n("Work online");
+ return i18n("Work online.");
+ if ( url.path() == "decryptMessage" )
+ return i18n("Decrypt message.");
+ if ( url.path() == "showSignatureDetails" )
+ return i18n("Show signature details.");
+ if ( url.path() == "hideSignatureDetails" )
+ return i18n("Hide signature details.");
}
return QString() ;
}
@@ -509,6 +529,36 @@ namespace {
}
}
+namespace {
+ static QString extractAuditLog( const KUrl & url ) {
+ if ( url.protocol() != "kmail" || url.path() != "showAuditLog" )
+ return QString();
+ assert( !url.queryItem( "log" ).isEmpty() );
+ return url.queryItem( "log" );
+ }
+
+ bool ShowAuditLogURLHandler::handleClick( const KUrl & url, KMReaderWin * w ) const {
+ const QString auditLog = extractAuditLog( url );
+ if ( auditLog.isEmpty() )
+ return false;
+ Kleo::MessageBox::auditLog( w, auditLog );
+ return true;
+ }
+
+ bool ShowAuditLogURLHandler::handleContextMenuRequest( const KUrl & url, const QPoint &, KMReaderWin * w ) const {
+ Q_UNUSED( w );
+ // disable RMB for my own links:
+ return !extractAuditLog( url ).isEmpty();
+ }
+
+ QString ShowAuditLogURLHandler::statusBarMessage( const KUrl & url, KMReaderWin * ) const {
+ if ( extractAuditLog( url ).isEmpty() )
+ return QString();
+ else
+ return i18n("Show GnuPG Audit Log for this operation");
+ }
+}
+
namespace {
bool FallBackURLHandler::handleClick( const KUrl & url, KMReaderWin * w ) const {
if ( w )
|