mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectproplist.cpp
branchRCL_3
changeset 14 05b0d2323768
parent 9 bee149131e4b
child 17 780c925249c1
equal deleted inserted replaced
9:bee149131e4b 14:05b0d2323768
   217                 break;
   217                 break;
   218 
   218 
   219             case EMTPObjectPropCodeObjectFileName:
   219             case EMTPObjectPropCodeObjectFileName:
   220                 {
   220                 {
   221                 TPtrC suid( object->DesC( CMTPObjectMetaData::ESuid ) );
   221                 TPtrC suid( object->DesC( CMTPObjectMetaData::ESuid ) );
   222                 TBuf<KMaxFileName> newSuid( aPropListElement.StringL(
   222                 TPtrC ptr( aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) );
   223                     CMTPTypeObjectPropListElement::EValue ) );
   223                 if ( KMaxFileName < ptr.Length() )
   224                 TInt err = MmMtpDpUtility::UpdateObjectFileName( iFramework.Fs(), suid, newSuid );
   224                     responseCode = EMTPRespCodeInvalidDataset;
   225                 PRINT1( _L( "MM MTP <> Update object file name err = %d" ), err );
   225                 else
   226                 if ( KErrOverflow == err ) // full path name is too long
       
   227                     {
   226                     {
   228                     responseCode = EMTPRespCodeInvalidDataset;
   227                     TFileName newSuid( ptr );
   229                     }
   228                     TInt err = MmMtpDpUtility::UpdateObjectFileName( iFramework.Fs(), suid, newSuid );
   230                 else if ( ( KErrNone == err ) || ( KErrAlreadyExists == err ) )
   229                     PRINT1( _L( "MM MTP <> Update object file name err = %d" ), err );
   231                     {
   230                     if ( KErrOverflow == err ) // full path name is too long
   232                     TRAP( err, iDpConfig.GetWrapperL().RenameObjectL( suid, newSuid ) ); //Update MPX DB
       
   233                     PRINT1( _L( "MM MTP <> Rename Object err = %d" ), err );
       
   234                     // it is ok if file is not found in DB, following S60 solution
       
   235                     if ( KErrNotFound == err )
       
   236                         {
   231                         {
   237                         TUint formatCode = object->Uint( CMTPObjectMetaData::EFormatCode );
   232                         responseCode = EMTPRespCodeInvalidDataset;
   238                         TUint subFormatCode = object->Uint( CMTPObjectMetaData::EFormatSubCode );
       
   239                         TRAP( err, iDpConfig.GetWrapperL().AddObjectL( newSuid, formatCode, subFormatCode ) );
       
   240                         PRINT1( _L( "MM MTP <> Add Object err = %d" ), err );
       
   241                         }
   233                         }
   242 
   234                     else if ( ( KErrNone == err ) || ( KErrAlreadyExists == err ) )
   243                     if ( KErrNone == err )
       
   244                         {
   235                         {
   245                         object->SetDesCL( CMTPObjectMetaData::ESuid, newSuid );
   236                         TRAP( err, iDpConfig.GetWrapperL().RenameObjectL( suid, newSuid ) ); //Update MPX DB
   246                         iFramework.ObjectMgr().ModifyObjectL( *object );
   237                         PRINT1( _L( "MM MTP <> Rename Object err = %d" ), err );
   247                         }
   238                         // it is ok if file is not found in DB, following S60 solution
   248                     else
   239                         if ( KErrNotFound == err )
   249                         {
   240                             {
   250                         responseCode = EMTPRespCodeGeneralError;
   241                             TUint formatCode = object->Uint( CMTPObjectMetaData::EFormatCode );
       
   242                             TUint subFormatCode = object->Uint( CMTPObjectMetaData::EFormatSubCode );
       
   243                             TRAP( err, iDpConfig.GetWrapperL().AddObjectL( newSuid, formatCode, subFormatCode ) );
       
   244                             PRINT1( _L( "MM MTP <> Add Object err = %d" ), err );
       
   245                             }
       
   246 
       
   247                         if ( KErrNone == err )
       
   248                             {
       
   249                             object->SetDesCL( CMTPObjectMetaData::ESuid, newSuid );
       
   250                             iFramework.ObjectMgr().ModifyObjectL( *object );
       
   251                             }
       
   252                         else
       
   253                             {
       
   254                             responseCode = EMTPRespCodeGeneralError;
       
   255                             }
   251                         }
   256                         }
   252                     }
   257                     }
   253                 }
   258                 }
   254                 break;
   259                 break;
   255 
   260 
   256             case EMTPObjectPropCodeName:
   261             case EMTPObjectPropCodeName:
   257                 {
   262                 {
   258                 CMTPTypeString* stringData = CMTPTypeString::NewLC(
   263                 CMTPTypeString* stringData = CMTPTypeString::NewLC(
   259                     aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) );// + stringData
   264                     aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) );// + stringData
   260 
   265 
   261                 responseCode = iDpConfig.PropSettingUtility()->SetMetaDataToWrapperL( iDpConfig,
   266                 responseCode = iDpConfig.PropSettingUtility()->SetMetaDataToWrapper( iDpConfig,
   262                     propertyCode,
   267                     propertyCode,
   263                     *stringData,
   268                     *stringData,
   264                     *object );
   269                     *object );
   265 
   270 
   266                 CleanupStack::PopAndDestroy( stringData );// - stringData
   271                 CleanupStack::PopAndDestroy( stringData );// - stringData
   330 //
   335 //
   331 // -----------------------------------------------------------------------------
   336 // -----------------------------------------------------------------------------
   332 //
   337 //
   333 EXPORT_C TInt CSetObjectPropList::RunError( TInt aError )
   338 EXPORT_C TInt CSetObjectPropList::RunError( TInt aError )
   334     {
   339     {
   335     PRINT1( _L( "MM MTP <> CGetObjectPropList::RunError aError = %d" ), aError );
   340     if ( aError != KErrNone )
       
   341         PRINT1( _L( "MM MTP <> CGetObjectPropList::RunError aError = %d" ), aError );
   336 
   342 
   337     TRAP_IGNORE( SendResponseL( EMTPRespCodeGeneralError ) );
   343     TRAP_IGNORE( SendResponseL( EMTPRespCodeGeneralError ) );
   338 
   344 
   339     return KErrNone;
   345     return KErrNone;
   340     }
   346     }