src/hbwidgets/itemviews/hbgridview.cpp
changeset 28 b7da29130b0e
parent 23 e6ad4ef83b23
equal deleted inserted replaced
23:e6ad4ef83b23 28:b7da29130b0e
   118 */
   118 */
   119 void HbGridView::setRowCount(int rowCount)
   119 void HbGridView::setRowCount(int rowCount)
   120 {
   120 {
   121     Q_D(HbGridView);
   121     Q_D(HbGridView);
   122 
   122 
   123     d->mVisibleIndex = d->firstFullyVisibleIndex();
   123     if (d->itemContainer()->rowCount() != rowCount) {
   124 
   124         d->mVisibleIndex = d->firstFullyVisibleIndex();
   125     d->itemContainer()->setRowCount(rowCount);
   125 
   126 
   126         d->itemContainer()->setRowCount(rowCount);
   127     scrollTo(d->mVisibleIndex, HbAbstractItemView::PositionAtTop);
   127 
       
   128         scrollTo(d->mVisibleIndex, HbAbstractItemView::PositionAtTop);
       
   129     }
   128 }
   130 }
   129 
   131 
   130 /*!
   132 /*!
   131     Returns the total number of columns in the view.
   133     Returns the total number of columns in the view.
   132 
   134 
   145 */
   147 */
   146 void HbGridView::setColumnCount(int columnCount)
   148 void HbGridView::setColumnCount(int columnCount)
   147 {
   149 {
   148     Q_D(HbGridView);
   150     Q_D(HbGridView);
   149 
   151 
   150     d->mVisibleIndex = d->firstFullyVisibleIndex();
   152     if (d->itemContainer()->columnCount() != columnCount) {
   151 
   153         d->mVisibleIndex = d->firstFullyVisibleIndex();
   152     d->itemContainer()->setColumnCount(columnCount);
   154 
   153 
   155         d->itemContainer()->setColumnCount(columnCount);
   154     scrollTo(d->mVisibleIndex, HbAbstractItemView::PositionAtTop);
   156 
       
   157         scrollTo(d->mVisibleIndex, HbAbstractItemView::PositionAtTop);
       
   158     }
   155 }
   159 }
   156 
   160 
   157 
   161 
   158 /*!
   162 /*!
   159     Returns true if icons are currently displayed in GridView.
   163     Returns true if icons are currently displayed in GridView.
   250  \reimp
   254  \reimp
   251 */
   255 */
   252 void HbGridView::scrollTo(const QModelIndex &index, ScrollHint hint)
   256 void HbGridView::scrollTo(const QModelIndex &index, ScrollHint hint)
   253 {
   257 {
   254     Q_D(HbGridView);
   258     Q_D(HbGridView);
   255     // always use container, event if recycling is off and all items are 
   259 
   256     // in container, but still additional action is needed -
   260     // always use HbGridItemContainer::scrollTo, even if recycling
       
   261     // is off - still additional action is needed -
   257     // container::scrollTo is responsible for procesing all
   262     // container::scrollTo is responsible for procesing all
   258     // posponed events (DelayedLayoutRequest)
   263     // posponed events (DelayedLayoutRequest)
   259     if (    d->mModelIterator->model()
   264     if (   d->mModelIterator->model()
   260         &&  index.model() == d->mModelIterator->model()) {
   265         && index.model() == d->mModelIterator->model()) {
   261         d->itemContainer()->scrollTo(index, hint);
   266         d->itemContainer()->scrollTo(index, hint);
   262         HbAbstractItemView::scrollTo(index, hint);
   267         HbAbstractItemView::scrollTo(index, hint);
   263     }
   268     }
   264 }
   269 }
   265 
   270 
   302         if (remainder > columnsCount / 2) {
   307         if (remainder > columnsCount / 2) {
   303             d->mVisibleIndex = d->mModelIterator->index(indexPosition + columnsCount - remainder);
   308             d->mVisibleIndex = d->mModelIterator->index(indexPosition + columnsCount - remainder);
   304         }
   309         }
   305     }
   310     }
   306 
   311 
   307     // abstract part is enough - container update buffer
   312     scrollTo(d->mVisibleIndex, HbAbstractItemView::PositionAtTop);
   308     HbAbstractItemView::scrollTo(d->mVisibleIndex, HbAbstractItemView::PositionAtTop);
       
   309 
   313 
   310     d->mVisibleIndex = QModelIndex();
   314     d->mVisibleIndex = QModelIndex();
   311 }
   315 }
   312 
   316 
   313 /*!
   317 /*!