ganeswidgets/src/hggridcontainer.cpp
changeset 1 e48454f237ca
parent 0 89c329efa980
child 2 49c70dcc3f17
--- a/ganeswidgets/src/hggridcontainer.cpp	Mon Apr 19 14:40:06 2010 +0300
+++ b/ganeswidgets/src/hggridcontainer.cpp	Mon May 03 13:32:54 2010 +0300
@@ -41,7 +41,10 @@
 
 HgGridContainer::HgGridContainer(QGraphicsItem *parent) : HgContainer(parent)
 {
-    
+
+    mUserItemSize = QSize(120,120);
+    mUserItemSpacing = QSize(1,1);
+
 }
 
 HgGridContainer::~HgGridContainer()
@@ -56,15 +59,15 @@
     updateSelectedItem();
 }
 
-HgMediaWallRenderer* HgGridContainer::createRenderer()
+HgMediaWallRenderer* HgGridContainer::createRenderer(Qt::Orientation scrollDirection)
 {
 
-    HgMediaWallRenderer* renderer = new HgMediaWallRenderer(this);
+    HgMediaWallRenderer* renderer = new HgMediaWallRenderer(this, scrollDirection, false);
     renderer->enableCoverflowMode(false);
-    renderer->setImageSize(QSizeF(105, 80));
+    renderer->setImageSize(mUserItemSize);
     renderer->setRowCount(3, renderer->getImageSize(), false);    
     renderer->enableReflections(false);
-    renderer->setSpacing(QSizeF(1,1));
+    renderer->setSpacing(mUserItemSpacing);
     renderer->setFrontCoverElevationFactor(0.5);    
 
     return renderer;
@@ -102,3 +105,18 @@
     selectItem();
     emit longPressed(hitItem->modelIndex(), pos);    
 }
+
+void HgGridContainer::onScrollPositionChanged(qreal pos)
+{
+    HgContainer::onScrollPositionChanged(pos);
+
+    if (pos < 0) return;    
+    const int index = ((int)pos)*rowCount();
+    if (index > itemCount()) return;
+    
+    HgWidgetItem* item = itemByIndex(index);
+    if (item && item->modelIndex() != mSelectionModel->currentIndex()) {
+        qDebug() << "CURRENT CHANGE" << QString::number(item->modelIndex().row());
+        mSelectionModel->setCurrentIndex(item->modelIndex(), QItemSelectionModel::Current);
+    }    
+}