[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE_3_3_BRANCH: kdepim/kmail
From: Marc Mutz <Marc.Mutz () uni-bielefeld ! de>
Date: 2004-11-23 21:30:53
Message-ID: 20041123213053.9AFFA18DAC () office ! kde ! org
[Download RAW message or body]
CVS commit by mutz:
Fix Aegypten issue #278: KMail looks up recipient key during autosave.
M +11 -7 keyresolver.cpp 1.7.2.4
M +12 -2 keyresolver.h 1.3.2.1
--- kdepim/kmail/keyresolver.h #1.3:1.3.2.1
@@ -139,13 +139,23 @@ namespace Kleo {
struct Item : public KeyApprovalDialog::Item {
- Item() : KeyApprovalDialog::Item() {}
+ Item()
+ : KeyApprovalDialog::Item(),
+ signPref( UnknownSigningPreference ),
+ format( AutoFormat ),
+ needKeys( true ) {}
+ Item( const QString & a,
+ EncryptionPreference e, SigningPreference s,
+ CryptoMessageFormat f )
+ : KeyApprovalDialog::Item( a, std::vector<GpgME::Key>(), e ),
+ signPref( s ), format( f ), needKeys( true ) {}
Item( const QString & a, const std::vector<GpgME::Key> & k,
EncryptionPreference e, SigningPreference s,
CryptoMessageFormat f )
: KeyApprovalDialog::Item( a, k, e ),
- signPref( s ), format( f ) {}
+ signPref( s ), format( f ), needKeys( false ) {}
SigningPreference signPref;
CryptoMessageFormat format;
+ bool needKeys;
};
--- kdepim/kmail/keyresolver.cpp #1.7.2.3:1.7.2.4
@@ -250,7 +250,9 @@ void Kleo::KeyResolver::SigningPreferenc
class Kleo::KeyResolver::EncryptionPreferenceCounter : public \
std::unary_function<Item,void> { + const Kleo::KeyResolver * _this;
public:
- EncryptionPreferenceCounter( EncryptionPreference defaultPreference )
- : mDefaultPreference( defaultPreference ),
+ EncryptionPreferenceCounter( const Kleo::KeyResolver * kr, EncryptionPreference \
defaultPreference ) + : _this( kr ),
+ mDefaultPreference( defaultPreference ),
mTotal( 0 ),
mNoKey( 0 ),
@@ -285,4 +287,6 @@ private:
void Kleo::KeyResolver::EncryptionPreferenceCounter::operator()( Item & item ) {
+ if ( item.needKeys )
+ item.keys = _this->getEncryptionKeys( item.address, true );
if ( item.keys.empty() ) {
++mNoKey;
@@ -702,5 +706,5 @@ std::vector<Kleo::KeyResolver::Item> Kle
ContactPreferences& pref = lookupContactPreferences( addr );
- items.push_back( Item( *it, getEncryptionKeys( *it, true ),
+ items.push_back( Item( *it, /*getEncryptionKeys( *it, true ),*/
pref.encryptionPreference,
pref.signingPreference,
@@ -759,5 +763,5 @@ Kleo::Action Kleo::KeyResolver::checkEnc
return Impossible;
- EncryptionPreferenceCounter count( mOpportunisticEncyption ? AskWheneverPossible : \
UnknownPreference ); + EncryptionPreferenceCounter count( this, \
mOpportunisticEncyption ? AskWheneverPossible : UnknownPreference ); count = \
std::for_each( d->mPrimaryEncryptionKeys.begin(), d->mPrimaryEncryptionKeys.end(), \
count ); @@ -777,5 +781,5 @@ Kleo::Action Kleo::KeyResolver::checkEnc
std::for_each( d->mPrimaryEncryptionKeys.begin(), \
d->mPrimaryEncryptionKeys.end(),
std::for_each( d->mSecondaryEncryptionKeys.begin(), \
d->mSecondaryEncryptionKeys.end(),
- EncryptionPreferenceCounter( UnknownPreference ) ) \
).numAlwaysAskForEncryption() ) + EncryptionPreferenceCounter( \
this, UnknownPreference ) ) ).numAlwaysAskForEncryption() ) return act;
else
@@ -818,5 +822,5 @@ Kpgp::Result Kleo::KeyResolver::resolveE
for ( std::vector<Item>::iterator it = d->mPrimaryEncryptionKeys.begin() ; it != \
d->mPrimaryEncryptionKeys.end() ; ++it ) {
- if ( !it->keys.empty() )
+ if ( !it->needKeys )
continue;
it->keys = getEncryptionKeys( it->address, false );
@@ -831,5 +835,5 @@ Kpgp::Result Kleo::KeyResolver::resolveE
for ( std::vector<Item>::iterator it = d->mSecondaryEncryptionKeys.begin() ; it != \
d->mSecondaryEncryptionKeys.end() ; ++it ) {
- if ( !it->keys.empty() )
+ if ( !it->needKeys )
continue;
it->keys = getEncryptionKeys( it->address, false );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic