controlpanel/src/cpframework/src/cpsettingformentryitemdata_p.cpp
changeset 39 c044bc2ea8f7
parent 36 48848d132687
child 40 6465d5bb863a
equal deleted inserted replaced
38:5a264aaf7677 39:c044bc2ea8f7
    24 #include <cpsettingformentryitemdata.h>
    24 #include <cpsettingformentryitemdata.h>
    25 
    25 
    26 CpSettingFormEntryItemDataPrivate::CpSettingFormEntryItemDataPrivate()
    26 CpSettingFormEntryItemDataPrivate::CpSettingFormEntryItemDataPrivate()
    27 : mDataForm(0),
    27 : mDataForm(0),
    28   mItemDataHelper(0),
    28   mItemDataHelper(0),
    29   mItemPressed(false), 
    29   mItemPressed(false)
    30   mDataFormScrolling(false)
       
    31 {
    30 {
    32     
    31     
    33 }
    32 }
    34 
    33 
    35 CpSettingFormEntryItemDataPrivate::CpSettingFormEntryItemDataPrivate(CpItemDataHelper *itemDataHelper) 
    34 CpSettingFormEntryItemDataPrivate::CpSettingFormEntryItemDataPrivate(CpItemDataHelper *itemDataHelper) 
    36 : mDataForm(0),
    35 : mDataForm(0),
    37   mItemDataHelper(itemDataHelper),
    36   mItemDataHelper(itemDataHelper),
    38   mItemPressed(false), 
    37   mItemPressed(false)
    39   mDataFormScrolling(false)
       
    40 {
    38 {
    41     
    39     
    42 }
    40 }
    43 
    41 
    44 CpSettingFormEntryItemDataPrivate::CpSettingFormEntryItemDataPrivate(HbDataForm *dataForm)
    42 CpSettingFormEntryItemDataPrivate::CpSettingFormEntryItemDataPrivate(HbDataForm *dataForm)
    45 : mDataForm(dataForm),
    43 : mDataForm(dataForm),
    46   mItemDataHelper(0),
    44   mItemDataHelper(0),
    47   mItemPressed(false),
    45   mItemPressed(false)
    48   mDataFormScrolling(false)
       
    49 {
    46 {
    50     
    47     
    51 }
    48 }
    52 
    49 
    53 void CpSettingFormEntryItemDataPrivate::init(CpSettingFormEntryItemData *parent)
    50 void CpSettingFormEntryItemDataPrivate::init(CpSettingFormEntryItemData *parent)
    60     default: break;
    57     default: break;
    61     case CpSettingFormEntryItemData::ListEntryItem:
    58     case CpSettingFormEntryItemData::ListEntryItem:
    62         {
    59         {
    63             if (mItemDataHelper) {
    60             if (mItemDataHelper) {
    64                 mItemDataHelper->connectToForm(SIGNAL(pressed (QModelIndex)),mParent,SLOT(_q_itemPressed(QModelIndex)));
    61                 mItemDataHelper->connectToForm(SIGNAL(pressed (QModelIndex)),mParent,SLOT(_q_itemPressed(QModelIndex)));
    65                 mItemDataHelper->connectToForm(SIGNAL(released (QModelIndex)),mParent,SLOT(_q_itemReleased(QModelIndex)));
    62                 mItemDataHelper->connectToForm(SIGNAL(activated(QModelIndex)),mParent,SLOT(_q_itemActivated(QModelIndex)));
    66                 mItemDataHelper->connectToForm(SIGNAL(scrollingStarted ()),mParent,SLOT(_q_scrollingStarted()));
       
    67             }
    63             }
    68             else if (mDataForm) {
    64             else if (mDataForm) {
    69                 QObject::connect( mDataForm,SIGNAL(pressed(QModelIndex)),mParent,SLOT(_q_itemPressed(QModelIndex)) );
    65                 QObject::connect( mDataForm,SIGNAL(pressed(QModelIndex)),mParent,SLOT(_q_itemPressed(QModelIndex)) );
    70                 QObject::connect( mDataForm,SIGNAL(released(QModelIndex)),mParent,SLOT(_q_itemReleased(QModelIndex)) );
    66                 QObject::connect( mDataForm,SIGNAL(activated(QModelIndex)),mParent,SLOT(_q_itemActivated(QModelIndex)) );
    71                 QObject::connect( mDataForm,SIGNAL(scrollingStarted()),mParent,SLOT(_q_scrollingStarted()) );
       
    72             }
    67             }
    73         }
    68         }
    74         break;
    69         break;
    75     case CpSettingFormEntryItemData::ButtonEntryItem:
    70     case CpSettingFormEntryItemData::ButtonEntryItem:
    76         {
    71         {
   198 void CpSettingFormEntryItemDataPrivate::_q_itemPressed(const QModelIndex &index)
   193 void CpSettingFormEntryItemDataPrivate::_q_itemPressed(const QModelIndex &index)
   199 {
   194 {
   200     mItemPressed = ( modelItemFromModelIndex(index) == mParent );
   195     mItemPressed = ( modelItemFromModelIndex(index) == mParent );
   201 }
   196 }
   202 
   197 
   203 void CpSettingFormEntryItemDataPrivate::_q_itemReleased(const QModelIndex &index)
   198 
   204 {    
   199 void CpSettingFormEntryItemDataPrivate::_q_itemActivated(const QModelIndex &index)
   205     if (!mDataFormScrolling && mItemPressed && modelItemFromModelIndex(index) == mParent) {
   200 {
       
   201     if (mItemPressed && modelItemFromModelIndex(index) == mParent) {
   206         mParent->onLaunchView();
   202         mParent->onLaunchView();
   207     }
   203     }
   208     mDataFormScrolling = false;
   204     mItemPressed = false;
   209 }
   205 }
   210 
   206 
   211 void CpSettingFormEntryItemDataPrivate::_q_scrollingStarted()
       
   212 {
       
   213     mDataFormScrolling = true;
       
   214 }
       
   215 
   207 
   216 HbDataFormModelItem *CpSettingFormEntryItemDataPrivate::modelItemFromModelIndex(const QModelIndex &index)
   208 HbDataFormModelItem *CpSettingFormEntryItemDataPrivate::modelItemFromModelIndex(const QModelIndex &index)
   217 {
   209 {
   218     if (mItemDataHelper) {
   210     if (mItemDataHelper) {
   219         return mItemDataHelper->modelItemFromModelIndex(index);
   211         return mItemDataHelper->modelItemFromModelIndex(index);