phonebookui/pbkcommonui/src/cntphonenumbermodel.cpp
changeset 31 2a11b5b00470
parent 25 76a2435edfd4
child 40 b46a585f6909
equal deleted inserted replaced
27:de1630741fbe 31:2a11b5b00470
    33         all.append( detail );
    33         all.append( detail );
    34     
    34     
    35     // if there's no details, add 
    35     // if there's no details, add 
    36     if ( all.isEmpty() )
    36     if ( all.isEmpty() )
    37         {
    37         {
    38         QContactPhoneNumber number;
    38         QContactPhoneNumber mobileNumber;
    39         number.setSubTypes( QContactPhoneNumber::SubTypeMobile );
    39         mobileNumber.setSubTypes( QContactPhoneNumber::SubTypeMobile );
    40         
    40         all.append( mobileNumber );
    41         all.append( number );
    41 
       
    42         QContactPhoneNumber landLineNumber;
       
    43         landLineNumber.setSubTypes( QContactPhoneNumber::SubTypeLandline );
       
    44         all.append( landLineNumber );
    42         }
    45         }
    43             
    46             
    44     HbDataFormModelItem* root = invisibleRootItem();
    47     HbDataFormModelItem* root = invisibleRootItem();
    45     // add all phone numbers & online accounts to model
    48     // add all phone numbers & online accounts to model
    46     foreach ( QContactDetail contactDetail, all )
    49     foreach ( QContactDetail contactDetail, all )
    52 
    55 
    53 void CntPhoneNumberModel::insertDetailField()
    56 void CntPhoneNumberModel::insertDetailField()
    54 {
    57 {
    55     QContactPhoneNumber number;
    58     QContactPhoneNumber number;
    56     number.setSubTypes( QContactPhoneNumber::SubTypeMobile );
    59     number.setSubTypes( QContactPhoneNumber::SubTypeMobile );
    57     
    60         
    58     appendDataFormItem( new CntDetailModelItem(number), invisibleRootItem() );
    61     appendDataFormItem( new CntDetailModelItem(number), invisibleRootItem() );
    59 }
    62 }
    60 
    63 
    61 void CntPhoneNumberModel::saveContactDetails()
    64 void CntPhoneNumberModel::saveContactDetails()
    62 {
    65 {
    63     HbDataFormModelItem* root = invisibleRootItem();
    66     HbDataFormModelItem* root = invisibleRootItem();
    64     int count( root->childCount() );
    67     int count( root->childCount() );
    65     for ( int i = 0; i < count; i++ ) {
    68     for ( int i = 0; i < count; i++ ) {
    66         CntDetailModelItem* item = static_cast<CntDetailModelItem*>( root->childAt(i) );
    69         CntDetailModelItem* item = static_cast<CntDetailModelItem*>( root->childAt(i) );
    67         QContactDetail detail = item->detail();
    70         QContactDetail detail = item->detail();
       
    71         mContact->saveDetail( &detail );
    68         
    72         
    69         if ( detail.definitionName() == QContactPhoneNumber::DefinitionName )
    73         if ( detail.definitionName() == QContactPhoneNumber::DefinitionName )
    70         {
    74         {
    71             QContactPhoneNumber phonenumber = detail;
    75             if ( detail.value(QContactPhoneNumber::FieldNumber).isEmpty() )
    72             if ( phonenumber.number().length() > 0 ) {
    76                 mContact->removeDetail( &detail );
    73                 mContact->saveDetail( &phonenumber );
    77         }
       
    78         
       
    79         if ( detail.definitionName() == QContactOnlineAccount::DefinitionName )
       
    80         {
       
    81             if ( detail.value(QContactOnlineAccount::FieldAccountUri).isEmpty() )
       
    82             {
       
    83                 mContact->removeDetail( &detail );
    74             }
    84             }
    75         }
       
    76         else if ( detail.definitionName() == QContactOnlineAccount::DefinitionName )
       
    77         {
       
    78             QContactOnlineAccount account = detail;
       
    79             if ( account.accountUri().length() > 0 ) {
       
    80                 mContact->saveDetail( &account );
       
    81             }
       
    82         }
       
    83         else {
       
    84             /* should never be here */
       
    85             qWarning() << "Unknown: " << detail.definitionName(); 
       
    86         }
    85         }
    87     }
    86     }
    88 }
    87 }
    89 
    88 
    90 CntPhoneNumberModel::~CntPhoneNumberModel()
    89 CntPhoneNumberModel::~CntPhoneNumberModel()