diff -r c3690ec91ef8 -r 923ff622b8b9 src/hbwidgets/dataform/hbdataformviewitem.cpp --- a/src/hbwidgets/dataform/hbdataformviewitem.cpp Wed Jun 23 18:33:25 2010 +0300 +++ b/src/hbwidgets/dataform/hbdataformviewitem.cpp Tue Jul 06 14:36:53 2010 +0300 @@ -25,6 +25,7 @@ #include "hbdataformviewitem.h" #include "hbdataformviewitem_p.h" +#include "hbabstractitemcontainer_p_p.h" #include "hbdataformmodelitem_p.h" #include "hbdataform_p.h" @@ -398,7 +399,11 @@ // Expansion is valid only for group ,form page and group page if( d->mType < HbDataFormModelItem::SliderItem ) { static_cast(this)->setExpanded(expanded); - } + } else { + HbAbstractItemContainer *container = qobject_cast( + static_cast( d->mSharedData->mItemView->contentWidget( ) ) ); + container->setItemTransientStateValue(d->mIndex, "expanded", expanded); + } } /*! @@ -412,13 +417,18 @@ Q_D( const HbDataFormViewItem); // Expansion is valid only for group ,form page and group page if( d->mType < HbDataFormModelItem::SliderItem ) { - HbDataGroup *group = qobject_cast(const_cast(this)); + HbDataGroup *group = qobject_cast< HbDataGroup *>(const_cast(this)); if( group ) { return group->isExpanded(); - } else { - return false; } } + if(d->mSharedData->mItemView) { + HbAbstractItemContainer *container = qobject_cast( + static_cast( d->mSharedData->mItemView->contentWidget( ) ) ); + if(container) { + return container->itemTransientState(d->mIndex).value("expanded").toBool(); + } + } return false; } @@ -435,26 +445,25 @@ HbWidget* HbDataFormViewItem::dataItemContentWidget()const { Q_D(const HbDataFormViewItem); - HbWidget *widget = d->mContentWidget;; + HbWidget *widget = d->mContentWidget; - switch( d->mType ) { - case HbDataFormModelItem::RadioButtonListItem: - { + if(d->mContentWidget) { + switch( d->mType ) { + case HbDataFormModelItem::RadioButtonListItem:{ widget = static_cast(d->mContentWidget)->createRadioButton(); } break; - case HbDataFormModelItem::MultiselectionItem: - { + case HbDataFormModelItem::MultiselectionItem:{ widget = NULL; } break; - case HbDataFormModelItem::ToggleValueItem: - { + case HbDataFormModelItem::ToggleValueItem:{ widget = static_cast(d->mContentWidget)->contentWidget(); } break; - default: + default: break; + } } return widget; }