Notify direct and indirect sub-folders when renaming an IMAP folder.
This commit is contained in:
parent
348846413d
commit
056e22f76f
@ -1293,7 +1293,7 @@ void IMAPFolder::rename(const folder::path& newPath)
|
|||||||
events::folderEvent event(this, events::folderEvent::TYPE_RENAMED, oldPath, newPath);
|
events::folderEvent event(this, events::folderEvent::TYPE_RENAMED, oldPath, newPath);
|
||||||
notifyFolder(event);
|
notifyFolder(event);
|
||||||
|
|
||||||
// Notify folders with the same path
|
// Notify folders with the same path and sub-folders
|
||||||
for (std::list <IMAPFolder*>::iterator it = m_store->m_folders.begin() ;
|
for (std::list <IMAPFolder*>::iterator it = m_store->m_folders.begin() ;
|
||||||
it != m_store->m_folders.end() ; ++it)
|
it != m_store->m_folders.end() ; ++it)
|
||||||
{
|
{
|
||||||
@ -1305,6 +1305,15 @@ void IMAPFolder::rename(const folder::path& newPath)
|
|||||||
events::folderEvent event(*it, events::folderEvent::TYPE_RENAMED, oldPath, newPath);
|
events::folderEvent event(*it, events::folderEvent::TYPE_RENAMED, oldPath, newPath);
|
||||||
(*it)->notifyFolder(event);
|
(*it)->notifyFolder(event);
|
||||||
}
|
}
|
||||||
|
else if ((*it) != this && oldPath.isParentOf((*it)->getFullPath()))
|
||||||
|
{
|
||||||
|
folder::path oldPath((*it)->m_path);
|
||||||
|
|
||||||
|
(*it)->m_path.renameParent(oldPath, newPath);
|
||||||
|
|
||||||
|
events::folderEvent event(*it, events::folderEvent::TYPE_RENAMED, oldPath, (*it)->m_path);
|
||||||
|
(*it)->notifyFolder(event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user