From 7124b956f00197196902be8552434e434770852f Mon Sep 17 00:00:00 2001 From: Volker Krause Date: Thu, 2 Sep 2004 11:50:51 +0000 Subject: [PATCH] Work around a bug in Wallet::keyDoesNotExist(). Fixes problems with the migration from passwords to the wallet. CCMAIL: 76097@bugs.kde.org svn path=/trunk/kdepim/; revision=343458 --- kmtransport.cpp | 5 ++++- networkaccount.cpp | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/kmtransport.cpp b/kmtransport.cpp index c7f004afa..e4051b171 100644 --- a/kmtransport.cpp +++ b/kmtransport.cpp @@ -199,7 +199,10 @@ void KMTransportInfo::readPassword() const if ( !storePasswd() || !auth ) return; - if ( Wallet::folderDoesNotExist(Wallet::NetworkWallet(), "kmail") || + // ### workaround for broken Wallet::keyDoesNotExist() which returns wrong + // results for new entries without closing and reopening the wallet + if ( Wallet::isOpen( Wallet::NetworkWallet() ) ? + !kmkernel->wallet()->hasEntry( "transport-" + QString::number(mId) ) : Wallet::keyDoesNotExist( Wallet::NetworkWallet(), "kmail", "transport-" + QString::number(mId) ) ) return; diff --git a/networkaccount.cpp b/networkaccount.cpp index 18f5f53ef..8efb2a4e0 100644 --- a/networkaccount.cpp +++ b/networkaccount.cpp @@ -258,8 +258,11 @@ namespace KMail { if ( !storePasswd() ) return; - if ( Wallet::folderDoesNotExist( Wallet::NetworkWallet(), "kmail" ) || - Wallet::keyDoesNotExist( Wallet::NetworkWallet(), "kmail", "account-" + QString::number(mId) ) ) + // ### workaround for broken Wallet::keyDoesNotExist() which returns wrong + // results for new entries without closing and reopening the wallet + if ( Wallet::isOpen( Wallet::NetworkWallet() ) ? + !kmkernel->wallet()->hasEntry( "account-" + QString::number(mId) ) : + Wallet::keyDoesNotExist( Wallet::NetworkWallet(), "kmail", "account-" + QString::number(mId) ) ) return; if ( kmkernel->wallet() ) {