Patch by Rich Burch <ringo@albumsnaps.com> fixing the delayed creation

of folders on online imap accounts when the connection fails. Thanks,
Rich.

BUGS: 102185

svn path=/trunk/kdepim/; revision=400062
wilder-work
Till Adam 21 years ago
parent 4fccaa6f09
commit bfa7365abc
  1. 17
      kmfolderimap.cpp
  2. 2
      kmfolderimap.h

@ -1364,8 +1364,8 @@ void KMFolderImap::createFolder(const QString &name)
if ( mFoldersPendingCreation.isEmpty() ) {
// first folder, connect
connect( mAccount, SIGNAL( connectionResult(int, const QString&) ),
this, SLOT( slotCreatePendingFolders() ) );
connect( mAccount, SIGNAL( connectionResult( int, const QString& ) ),
this, SLOT( slotCreatePendingFolders( int, const QString& ) ) );
}
mFoldersPendingCreation << name;
return;
@ -1902,11 +1902,16 @@ void KMFolderImap::setAlreadyRemoved( bool removed )
}
}
void KMFolderImap::slotCreatePendingFolders()
void KMFolderImap::slotCreatePendingFolders( int errorCode, const QString &errorMsg )
{
QStringList::Iterator it = mFoldersPendingCreation.begin();
for ( ; it != mFoldersPendingCreation.end(); ++it ) {
createFolder( *it );
Q_UNUSED( errorMsg );
disconnect( mAccount, SIGNAL( connectionResult( int, const QString& ) ),
this, SLOT( slotCreatePendingFolders( int, const QString& ) ) );
if ( !errorCode ) {
QStringList::Iterator it = mFoldersPendingCreation.begin();
for ( ; it != mFoldersPendingCreation.end(); ++it ) {
createFolder( *it );
}
}
mFoldersPendingCreation.clear();
}

@ -439,7 +439,7 @@ protected slots:
* account is still connecting. Once the account emits the connected
* signal this slot is called and the folders created.
*/
void slotCreatePendingFolders();
void slotCreatePendingFolders( int errorCode, const QString& errorMsg );
protected:
QString mImapPath;

Loading…
Cancel
Save