mpdata/src/mpcollectiondatamodel.cpp
changeset 37 eb79a7c355bf
parent 35 fdb31ab341af
child 51 560ce2306a17
--- 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 <hbicon.h>
 #include <hbnamespace.h>
 
+#include <hgwidgets.h>
+
+
 #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.
  */