diff -r a0afa279b8fe -r eb79a7c355bf mpdata/src/mpcollectiondatamodel.cpp --- a/mpdata/src/mpcollectiondatamodel.cpp Fri May 28 19:46:01 2010 -0500 +++ b/mpdata/src/mpcollectiondatamodel.cpp Fri Jun 11 19:36:32 2010 -0500 @@ -21,6 +21,9 @@ #include #include +#include + + #include "mpcollectiondatamodel.h" #include "mpcollectionalbumartmanager.h" #include "mpmpxcollectiondata.h" @@ -65,10 +68,11 @@ Constructs the collection data model. */ MpCollectionDataModel::MpCollectionDataModel( MpMpxCollectionData *data, QObject *parent ) - : QAbstractListModel(parent), - mCollectionData(data), - mRowCount(0), - mAlbumIndexOffset(0) + : QAbstractListModel( parent ), + mCollectionData( data ), + mRowCount( 0 ), + mAlbumIndexOffset( 0 ), + mHiddenItemIndex( -1 ) { TX_ENTRY connect( mCollectionData, SIGNAL(contextChanged(TCollectionContext)), this, SLOT(setContext(TCollectionContext)) ); @@ -242,6 +246,10 @@ } returnValue = feedbackIndex; } + else if ( role == HgWidget::HgVisibilityRole + && context == ECollectionContextAlbumsMediaWall) { + returnValue = !( row == mHiddenItemIndex ); + } TX_EXIT return returnValue; } @@ -346,6 +354,18 @@ return true; } +/*! + Sets the item visibility, model will report \a visible value as + HgWidget::HgVisibilityRole for the item at \a index. + datachanged() signal is emited when calling this function. + Currently this is only used by Media Wall View. +*/ +void MpCollectionDataModel::setItemVisibility(const QModelIndex &index, bool visible) +{ + mHiddenItemIndex = visible ? -1 : index.row(); + emit dataChanged(index, index); +} + /*! Returns pointer to MpMpxCollectionData, which is the collection data. */