Merged revisions 743023-743026 via svnmerge from

https://vkrause@svn.kde.org/home/kde/branches/kdepim/enterprise/kdepim

........
  r743023 | mutz | 2007-11-29 18:44:11 +0100 (Thu, 29 Nov 2007) | 1 line
  
  Add support for audit log inspection to the reader window.
........
  r743026 | mutz | 2007-11-29 18:55:12 +0100 (Thu, 29 Nov 2007) | 1 line
  
  Suppress context menu for kmail: links; rename ShowHTML..URLManager to KMailProtocolURLManager, since it already handles most of them; return status messages for all kmail: links, lest people get scared by seeing kmail:showFooBar gibberish in the status bar; Fix missing . in one status bar message.
........

svn path=/trunk/KDE/kdepim/; revision=807621
wilder-work
Volker Krause 18 years ago
parent 7a018a1fb5
commit 08e9f5e527
  1. 29
      objecttreeparser.cpp
  2. 70
      urlhandlermanager.cpp

@ -2074,16 +2074,31 @@ static QString writeSimpleSigstatHeader( const PartMetaData &block )
static QString beginVerboseSigstatHeader()
{
return "<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\"><tr><td>";
return "<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\"><tr><td rowspan=\"2\">";
}
static QString endVerboseSigstatHeader()
static QString makeShowAuditLogLink( const QString & auditLog ) {
if ( auditLog.isEmpty() )
return i18n("No Audit Log available");
KUrl url;
url.setProtocol( "kmail" );
url.setPath( "showAuditLog" );
url.addQueryItem( "log", auditLog );
return "<a href=\"" + url.url() + "\">" + i18n("Show Audit Log") + "</a>";
}
static QString endVerboseSigstatHeader( const PartMetaData & pmd )
{
QString html;
html += "</td><td align=\"right\" valign=\"top\" nowrap=\"nowrap\">";
html += "<a href=\"kmail:hideSignatureDetails\">";
html += i18n( "Hide Details" );
html += "</a></td></tr></table>";
html += "</a></td></tr>";
html += "<tr><td align=\"right\" valign=\"bottom\" nowrap=\"nowrap\">";
html += makeShowAuditLogLink( pmd.auditLog );
html += "</td></tr></table>";
return html;
}
@ -2338,7 +2353,7 @@ QString ObjectTreeParser::writeSigstatHeader( PartMetaData & block,
htmlStr += statusStr;
}
frame = "</td></tr><tr class=\"" + block.signClass + "B\"><td>";
htmlStr += endVerboseSigstatHeader() + frame;
htmlStr += endVerboseSigstatHeader( block ) + frame;
simpleHtmlStr += frame;
} else {
@ -2381,7 +2396,7 @@ QString ObjectTreeParser::writeSigstatHeader( PartMetaData & block,
}
}
frame = "</td></tr><tr class=\"" + block.signClass + "B\"><td>";
htmlStr += endVerboseSigstatHeader() + frame;
htmlStr += endVerboseSigstatHeader( block ) + frame;
simpleHtmlStr += frame;
}
else
@ -2433,7 +2448,7 @@ QString ObjectTreeParser::writeSigstatHeader( PartMetaData & block,
}
frame = "</td></tr>"
"<tr class=\"" + block.signClass + "B\"><td>";
htmlStr += endVerboseSigstatHeader() + frame;
htmlStr += endVerboseSigstatHeader( block ) + frame;
simpleHtmlStr += frame;
}
else
@ -2455,7 +2470,7 @@ QString ObjectTreeParser::writeSigstatHeader( PartMetaData & block,
htmlStr += i18n("Warning: The signature is bad.");
frame = "</td></tr>"
"<tr class=\"" + block.signClass + "B\"><td>";
htmlStr += endVerboseSigstatHeader() + frame;
htmlStr += endVerboseSigstatHeader( block ) + frame;
simpleHtmlStr += frame;
}
}

@ -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 <ui/messagebox.h>
#include <klocale.h>
#include <kmessagebox.h>
#include <khtml_part.h>
@ -334,7 +347,7 @@ QString KMail::URLHandlerManager::statusBarMessage( const KUrl & url, KMReaderWi
#include <QString>
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 )

Loading…
Cancel
Save