@ -252,7 +252,7 @@ void KMFolderTreeItem::slotIconsChanged()
// reload the folder tree if the type changed, needed because of the
// various type-dependent folder hiding options
if ( type ( ) ! = newType )
QTimer : : singleShot ( 0 , static_cast < KMFolderTree * > ( listView ( ) ) , SLOT ( reload ( ) ) ) ;
static_cast < KMFolderTree * > ( listView ( ) ) - > delayedReload ( ) ;
setType ( newType ) ;
if ( unreadCount ( ) > 0 )
@ -270,6 +270,12 @@ void KMFolderTreeItem::slotNameChanged()
repaint ( ) ;
}
void KMFolderTreeItem : : slotNoContentChanged ( )
{
// reload the folder tree if the no content state changed, needed because
// we hide no-content folders if their child nodes are hidden
QTimer : : singleShot ( 0 , static_cast < KMFolderTree * > ( listView ( ) ) , SLOT ( reload ( ) ) ) ;
}
//-----------------------------------------------------------------------------
bool KMFolderTreeItem : : acceptDrag ( QDropEvent * e ) const
@ -602,6 +608,11 @@ void KMFolderTree::reload(bool openFolders)
connect ( fti - > folder ( ) , SIGNAL ( nameChanged ( ) ) ,
fti , SLOT ( slotNameChanged ( ) ) ) ;
disconnect ( fti - > folder ( ) , SIGNAL ( noContentChanged ( ) ) ,
fti , SLOT ( slotNoContentChanged ( ) ) ) ;
connect ( fti - > folder ( ) , SIGNAL ( noContentChanged ( ) ) ,
fti , SLOT ( slotNoContentChanged ( ) ) ) ;
// we want to be noticed of changes to update the unread/total columns
disconnect ( fti - > folder ( ) , SIGNAL ( msgAdded ( KMFolder * , Q_UINT32 ) ) ,
this , SLOT ( slotUpdateCountsDelayed ( KMFolder * ) ) ) ;
@ -740,6 +751,8 @@ void KMFolderTree::addDirectory( KMFolderDir *fdir, KMFolderTreeItem* parent )
// It is
removeFromFolderToItemMap ( folder ) ;
delete fti ;
// still, it might change in the future, so we better check the change signals
connect ( folder , SIGNAL ( noContentChanged ( ) ) , SLOT ( delayedReload ( ) ) ) ;
continue ;
}
@ -2130,4 +2143,9 @@ void KMFolderTree::slotUnhideLocalInbox()
reload ( ) ;
}
void KMFolderTree : : delayedReload ( )
{
QTimer : : singleShot ( 0 , this , SLOT ( reload ( ) ) ) ;
}
# include "kmfoldertree.moc"