|
|
|
|
@ -330,24 +330,26 @@ bool KMFolderDir::reload(void) |
|
|
|
|
// Check if the are any dirs without an associated folder. This can happen if the user messes
|
|
|
|
|
// with the on-disk folder structure, see kolab issue 2972. In that case, we don't want to loose
|
|
|
|
|
// the subfolders as well, so we recreate the folder so the folder/dir hierachy is OK again.
|
|
|
|
|
foreach ( const QString &dirName, dirsWithoutFolder ) { |
|
|
|
|
if ( type() == KMDImapDir ) { |
|
|
|
|
foreach ( const QString &dirName, dirsWithoutFolder ) { |
|
|
|
|
|
|
|
|
|
// .foo.directory => foo
|
|
|
|
|
QString folderName = dirName; |
|
|
|
|
int right = folderName.indexOf( ".directory" ); |
|
|
|
|
int left = folderName.indexOf( "." ); |
|
|
|
|
Q_ASSERT( left != -1 && right != -1 ); |
|
|
|
|
folderName = folderName.mid( left + 1, right - 1 ); |
|
|
|
|
// .foo.directory => foo
|
|
|
|
|
QString folderName = dirName; |
|
|
|
|
int right = folderName.indexOf( ".directory" ); |
|
|
|
|
int left = folderName.indexOf( "." ); |
|
|
|
|
Q_ASSERT( left != -1 && right != -1 ); |
|
|
|
|
folderName = folderName.mid( left + 1, right - 1 ); |
|
|
|
|
|
|
|
|
|
kWarning() << "Found dir without associated folder:" << dirName << ", recreating the folder" |
|
|
|
|
<< folderName; |
|
|
|
|
kWarning() << "Found dir without associated folder:" << dirName << ", recreating the folder" |
|
|
|
|
<< folderName; |
|
|
|
|
|
|
|
|
|
// Recreate the missing folder
|
|
|
|
|
KMFolder *folder = new KMFolder( this, folderName, KMFolderTypeCachedImap ); |
|
|
|
|
append( folder ); |
|
|
|
|
folderList.append( folder ); |
|
|
|
|
// Recreate the missing folder
|
|
|
|
|
KMFolder *folder = new KMFolder( this, folderName, KMFolderTypeCachedImap ); |
|
|
|
|
append( folder ); |
|
|
|
|
folderList.append( folder ); |
|
|
|
|
|
|
|
|
|
addDirToParent( dirName, folder ); |
|
|
|
|
addDirToParent( dirName, folder ); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|