|
|
|
|
@ -66,6 +66,16 @@ public: |
|
|
|
|
KMFolder * folder() const |
|
|
|
|
{ return mFolder; }; |
|
|
|
|
|
|
|
|
|
bool isReadOnly() const |
|
|
|
|
{ |
|
|
|
|
return folder() && folder()->isReadOnly(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool noContent() const |
|
|
|
|
{ |
|
|
|
|
return folder() && folder()->noContent(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
KMFolder * mFolder; |
|
|
|
|
|
|
|
|
|
@ -92,6 +102,12 @@ FolderSelectionTreeWidget::FolderSelectionTreeWidget( QWidget * parent, ::KMail: |
|
|
|
|
this, SLOT( addChildFolder() ) ); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool FolderSelectionTreeWidget::itemSelectable( const FolderSelectionTreeWidgetItem *item ) const |
|
|
|
|
{ |
|
|
|
|
return !( ( mLastMustBeReadWrite && item->isReadOnly() ) || |
|
|
|
|
( item->noContent() ) ); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void FolderSelectionTreeWidget::recursiveReload( FolderViewItem *fti, FolderSelectionTreeWidgetItem *parent ) |
|
|
|
|
{ |
|
|
|
|
// search folders are never shown
|
|
|
|
|
@ -121,8 +137,7 @@ void FolderSelectionTreeWidget::recursiveReload( FolderViewItem *fti, FolderSele |
|
|
|
|
item->setText( mPathColumnIndex, path ); |
|
|
|
|
|
|
|
|
|
// Make readonly and nocoontent items unselectable, if we're told so
|
|
|
|
|
if ( ( mLastMustBeReadWrite && ( fti->folder() && fti->folder()->isReadOnly() ) ) || |
|
|
|
|
( fti->folder() && fti->folder()->noContent() ) ) { |
|
|
|
|
if ( !itemSelectable( item ) ) { |
|
|
|
|
item->setFlags( item->flags() & ~Qt::ItemIsSelectable ); |
|
|
|
|
} else { |
|
|
|
|
item->setFolder( fti->folder() ); |
|
|
|
|
@ -299,7 +314,10 @@ void FolderSelectionTreeWidget::applyFilter( const QString& filter ) |
|
|
|
|
{ |
|
|
|
|
item->setHidden( false ); |
|
|
|
|
item->setSelected( false ); |
|
|
|
|
item->setFlags( item->flags() | Qt::ItemIsSelectable ); |
|
|
|
|
if ( itemSelectable( static_cast< FolderSelectionTreeWidgetItem* >( item ) ) ) |
|
|
|
|
item->setFlags( item->flags() | Qt::ItemIsSelectable ); |
|
|
|
|
else |
|
|
|
|
item->setFlags( item->flags() & ~Qt::ItemIsSelectable ); |
|
|
|
|
++clean; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -323,6 +341,9 @@ void FolderSelectionTreeWidget::applyFilter( const QString& filter ) |
|
|
|
|
|
|
|
|
|
foreach( QTreeWidgetItem *item, lItems ) |
|
|
|
|
{ |
|
|
|
|
if ( !itemSelectable( static_cast<FolderSelectionTreeWidgetItem*>( item ) ) ) |
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
item->setFlags( item->flags() | Qt::ItemIsSelectable ); |
|
|
|
|
item->setHidden( false ); |
|
|
|
|
|
|
|
|
|
|