diff -r 7516d6d86cf5 -r ed14f46c0e55 src/hbwidgets/itemviews/hbradiobuttonlist.cpp --- a/src/hbwidgets/itemviews/hbradiobuttonlist.cpp Mon Oct 04 17:49:30 2010 +0300 +++ b/src/hbwidgets/itemviews/hbradiobuttonlist.cpp Mon Oct 18 18:23:13 2010 +0300 @@ -126,14 +126,12 @@ QModelIndex mCurrentIndex; //Note that this is not the same as d->mHitItem HbRadioButtonList::PreviewMode mPreviewMode; - bool mPreviewGoingOn; bool mStartUp; }; HbRadioButtonListPrivate::HbRadioButtonListPrivate() : HbListViewPrivate(), mPreviewMode(HbRadioButtonList::NoPreview), - mPreviewGoingOn(false), mStartUp(true) { } @@ -314,7 +312,26 @@ Q_D( HbRadioButtonList ); if(d->mPreviewMode == HbRadioButtonList::Preview && d->mCurrentIndex != modelIndex){ - QTimer::singleShot(HB_RADIOBUTTONLIST_PREVIEW_TIMER, this, SLOT(_q_itemPreviewTimerExpired())); + QTimer::singleShot(HB_RADIOBUTTONLIST_PREVIEW_TIMER, this, SLOT(_q_itemPreviewTimerExpired())); + QModelIndexList selected; + + if (d->mCurrentIndex.isValid()) { + selected.append(d->mCurrentIndex); + } else { + selected = d->mSelectionModel->selectedIndexes(); + } + int count = selected.count(); + for (int i=0; isetCheckState(Qt::Unchecked); + } + } + + HbAbstractViewItem *item = itemByIndex(modelIndex); + if (item) { + itemByIndex(modelIndex)->setCheckState(Qt::Checked); + } d->mCurrentIndex=modelIndex; }else { //Now we let the activate signal go to the application @@ -326,25 +343,6 @@ /*! \reimp */ -void HbRadioButtonList::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - Q_D(HbRadioButtonList); - if(d->mPreviewMode == HbRadioButtonList::Preview ){ - HbAbstractViewItem *hitItem = d->itemAt(event->scenePos()); - if (hitItem){ - if (hitItem->modelIndex() == d->mCurrentIndex) { - d->mPreviewGoingOn=false; - } else { - d->mPreviewGoingOn=true; - } - } - } - HbListView::mouseReleaseEvent(event); -} - -/*! - \reimp -*/ QItemSelectionModel::SelectionFlags HbRadioButtonList::selectionCommand(const HbAbstractViewItem *item, const QEvent *event) { @@ -355,7 +353,7 @@ || event->type() != QEvent::GraphicsSceneMouseRelease){ return QItemSelectionModel::NoUpdate; } else { - if(d->mPreviewGoingOn==true) { + if(d->mPreviewMode == HbRadioButtonList::Preview && d->mCurrentIndex != item->modelIndex()){ return QItemSelectionModel::NoUpdate; } else { return QItemSelectionModel::ClearAndSelect;