filemanager/App/src/CFileManagerViewBase.cpp
branchRCL_3
changeset 22 f5c50b8af68c
parent 21 65326cf895ed
equal deleted inserted replaced
21:65326cf895ed 22:f5c50b8af68c
   351 //
   351 //
   352 void CFileManagerViewBase::HandleCommandL( TInt aCommand )
   352 void CFileManagerViewBase::HandleCommandL( TInt aCommand )
   353     {
   353     {
   354     if ( !iContainer ) return;
   354     if ( !iContainer ) return;
   355 
   355 
       
   356     // Initialization, do not allow marking mode exit as default.
       
   357     iContainer->AllowMarkingModeExit( EFalse );
       
   358 
   356     TBool updateCba( !iContainer->SelectionModeEnabled() );
   359     TBool updateCba( !iContainer->SelectionModeEnabled() );
   357 
   360 
   358     switch( aCommand )
   361     switch( aCommand )
   359         {
   362         {
   360         case EFileManagerOpen:
   363         case EFileManagerOpen:
   378             break;
   381             break;
   379             }
   382             }
   380         case EFileManagerNewFolder:
   383         case EFileManagerNewFolder:
   381             {
   384             {
   382             CmdNewFolderL();
   385             CmdNewFolderL();
   383             break;
       
   384             }
       
   385         case EFileManagerMarkOne:   // FALLTHROUGH
       
   386         case EFileManagerUnmarkOne: // FALLTHROUGH
       
   387         case EFileManagerToggleMark:
       
   388             {
       
   389             CmdToggleMarkL();
       
   390             break;
       
   391             }
       
   392         case EFileManagerMarkAll:
       
   393             {
       
   394             CmdMarkAllL();
       
   395             break;
       
   396             }
       
   397         case EFileManagerUnmarkAll:
       
   398             {
       
   399             CmdUnmarkAllL();
       
   400             break;
   386             break;
   401             }
   387             }
   402         case EFileManagerRename:
   388         case EFileManagerRename:
   403             {
   389             {
   404             CmdRenameL();
   390             CmdRenameL();
   422 //            break;
   408 //            break;
   423 //            }
   409 //            }
   424         case EFileManagerReceiveViaIR:
   410         case EFileManagerReceiveViaIR:
   425             {
   411             {
   426             CmdReceiveViaIRL();
   412             CmdReceiveViaIRL();
   427             break;
       
   428             }
       
   429         case EFileManagerCheckMark: // Suppress
       
   430             {
       
   431             break;
   413             break;
   432             }
   414             }
   433         case EAknSoftkeyContextOptions: // FALLTHROUGH
   415         case EAknSoftkeyContextOptions: // FALLTHROUGH
   434         case EFileManagerSelectionKey:
   416         case EFileManagerSelectionKey:
   435             {
   417             {
   537 // 
   519 // 
   538 // -----------------------------------------------------------------------------
   520 // -----------------------------------------------------------------------------
   539 // 
   521 // 
   540 void CFileManagerViewBase::SendUiQueryL()
   522 void CFileManagerViewBase::SendUiQueryL()
   541     {
   523     {
   542     //iSendUiPopupOpened = ETrue;	
   524     // Do not allow marking mode exit during send.
   543     	
   525     // No need to call iContainer->AllowMarkingModeExit( EFalse ).
       
   526     // Already done in CFileManagerViewBase::HandleCommandL().
       
   527     
   544     CSendUi& sendUi( static_cast< CFileManagerAppUi* >( AppUi() )->SendUiL() );
   528     CSendUi& sendUi( static_cast< CFileManagerAppUi* >( AppUi() )->SendUiL() );
   545     CMessageData* msgData = CMessageData::NewL();
   529     CMessageData* msgData = CMessageData::NewL();
   546     CleanupStack::PushL( msgData );
   530     CleanupStack::PushL( msgData );
   547     TInt msgSize( KMessageSize );
   531     TInt msgSize( KMessageSize );
   548     CArrayFixFlat< TInt >* files = GetSendFilesLC( msgSize );
   532     CArrayFixFlat< TInt >* files = GetSendFilesLC( msgSize );
   591 // 
   575 // 
   592 // -----------------------------------------------------------------------------
   576 // -----------------------------------------------------------------------------
   593 // 
   577 // 
   594 void CFileManagerViewBase::MarkMenuFilteringL( CEikMenuPane& aMenuPane )
   578 void CFileManagerViewBase::MarkMenuFilteringL( CEikMenuPane& aMenuPane )
   595     {
   579     {
   596     TInt index( iContainer->ListBoxCurrentItemIndex() );
       
   597 
       
   598     if ( iEngine.IsFolder( index ) )
       
   599         {
       
   600         aMenuPane.SetItemDimmed( EFileManagerMarkOne, ETrue );
       
   601         aMenuPane.SetItemDimmed( EFileManagerUnmarkOne, ETrue );
       
   602         }
       
   603     else
       
   604         {
       
   605         if ( iContainer->ListBoxIsItemSelected( index ) )
       
   606             {
       
   607             aMenuPane.SetItemDimmed( EFileManagerMarkOne, ETrue );
       
   608             }
       
   609         else
       
   610             {
       
   611             aMenuPane.SetItemDimmed( EFileManagerUnmarkOne, ETrue );
       
   612             }
       
   613         }
       
   614     TInt files( 0 );
   580     TInt files( 0 );
   615     if( iContainer->IsSearchFieldVisible() )
   581     // Get file count in current view, first check whether there is a
       
   582     // filter rule working.
       
   583     if ( iContainer->IsSearchFieldVisible() )
   616         {
   584         {
   617         files = FilesCountInSearchField();
   585         files = FilesCountInSearchField();
   618         }
   586         }
   619     else
   587     else
   620         {
   588         {
   621         files = iEngine.FilesInFolderL();
   589         files = iEngine.FilesInFolderL();
   622         }  
   590         }  
   623     TInt count( iContainer->ListBoxSelectionIndexesCount() );
   591     TInt count( iContainer->ListBoxSelectionIndexesCount() );
       
   592     // if all the files are marked or no file eixists,
       
   593     // dim MarkAll.
   624     if ( count == files )
   594     if ( count == files )
   625         {
   595         {
   626         aMenuPane.SetItemDimmed( EFileManagerMarkAll, ETrue );
   596         aMenuPane.SetItemDimmed( EAknCmdMarkingModeMarkAll, ETrue );
   627         }
   597         }
   628 
   598     // if no file marked, dim UnmarkAll.
   629     if ( !count )
   599     if ( count == 0 )
   630         {
   600         {
   631         aMenuPane.SetItemDimmed( EFileManagerUnmarkAll, ETrue );
   601         aMenuPane.SetItemDimmed( EAknCmdMarkingModeUnmarkAll, ETrue );
       
   602         }
       
   603     // Dim MarkAll and UnMarkAll if the list is empty.
       
   604     if ( iContainer->ListBoxNumberOfItems() == 0 )
       
   605         {
       
   606         aMenuPane.SetItemDimmed( EAknCmdMarkingModeMarkAll, ETrue );
       
   607         aMenuPane.SetItemDimmed( EAknCmdMarkingModeUnmarkAll, ETrue );
   632         }
   608         }
   633     }
   609     }
   634 
   610 
   635 // -----------------------------------------------------------------------------
   611 // -----------------------------------------------------------------------------
   636 // CFileManagerViewBase::CmdOpenL
   612 // CFileManagerViewBase::CmdOpenL
   723     TBool ret( EFalse );
   699     TBool ret( EFalse );
   724     DenyDirectoryRefresh( ETrue );
   700     DenyDirectoryRefresh( ETrue );
   725     TRAPD( err, ret = FileManagerDlgUtils::ShowConfirmQueryWithYesNoL( *prompt ) );
   701     TRAPD( err, ret = FileManagerDlgUtils::ShowConfirmQueryWithYesNoL( *prompt ) );
   726     DenyDirectoryRefresh( EFalse );
   702     DenyDirectoryRefresh( EFalse );
   727     User::LeaveIfError( err );
   703     User::LeaveIfError( err );
       
   704 
       
   705     // Set flag to indicate marking mode could exit or not.
       
   706     // Do not allow Marking mode exit when leave occurs.
       
   707     iContainer->AllowMarkingModeExit( ret );
       
   708 
       
   709 
   728     if ( ret )
   710     if ( ret )
   729         {
   711         {
   730         if( IsDriveAvailable( DriveInfo().iDrive ) )
   712         if( IsDriveAvailable( DriveInfo().iDrive ) )
   731             {
   713             {
   732             DeleteItemsL( index );
   714             DeleteItemsL( index );
   782         R_FILEMANAGER_MOVE_MEMORY_SELECTIONDIALOG,
   764         R_FILEMANAGER_MOVE_MEMORY_SELECTIONDIALOG,
   783         filter ) );
   765         filter ) );
   784     DenyDirectoryRefresh( EFalse );
   766     DenyDirectoryRefresh( EFalse );
   785     CleanupStack::PopAndDestroy( filter );
   767     CleanupStack::PopAndDestroy( filter );
   786 
   768 
       
   769     // Set flag to indicate marking mode could exit or not
       
   770     iContainer->AllowMarkingModeExit( ret );
       
   771 
   787     if ( ret && ptrFileName.Length() )
   772     if ( ret && ptrFileName.Length() )
   788         {
   773         {
   789         if ( !DriveReadOnlyMmcL( ptrFileName ) )
   774         if ( !DriveReadOnlyMmcL( ptrFileName ) )
   790             {
   775             {
   791             RunOperationL( 
   776             RunOperationL( 
   830         R_FILEMANAGER_COPY_MEMORY_SELECTIONDIALOG,
   815         R_FILEMANAGER_COPY_MEMORY_SELECTIONDIALOG,
   831         filter ) );
   816         filter ) );
   832     DenyDirectoryRefresh( EFalse );
   817     DenyDirectoryRefresh( EFalse );
   833     CleanupStack::PopAndDestroy( filter );
   818     CleanupStack::PopAndDestroy( filter );
   834 
   819 
       
   820     // Set flag to indicate marking mode could exit or not
       
   821     iContainer->AllowMarkingModeExit( ret );
       
   822 
   835     if ( ret && ptrFileName.Length() )
   823     if ( ret && ptrFileName.Length() )
   836         {
   824         {
   837         if ( !DriveReadOnlyMmcL( ptrFileName ) )
   825         if ( !DriveReadOnlyMmcL( ptrFileName ) )
   838             {
   826             {
   839             RunOperationL(
   827             RunOperationL(
   896             {
   884             {
   897             iContainer->DrawDeferred();
   885             iContainer->DrawDeferred();
   898             }
   886             }
   899         }
   887         }
   900     CleanupStack::PopAndDestroy( folderNameBuf );
   888     CleanupStack::PopAndDestroy( folderNameBuf );
   901     }
       
   902 
       
   903 // -----------------------------------------------------------------------------
       
   904 // CFileManagerViewBase::CmdToggleMarkL
       
   905 // 
       
   906 // -----------------------------------------------------------------------------
       
   907 // 
       
   908 void CFileManagerViewBase::CmdToggleMarkL()
       
   909     {
       
   910     const TInt index( iContainer->ListBoxCurrentItemIndex() );
       
   911     if ( iEngine.IsFolder( index ) )
       
   912         {
       
   913         iContainer->ListBoxDeselectItem( index );
       
   914         }
       
   915     else
       
   916         {
       
   917         iContainer->ListBoxToggleItemL( index );
       
   918         }
       
   919     }
       
   920 
       
   921 // -----------------------------------------------------------------------------
       
   922 // CFileManagerViewBase::CmdMarkAllL
       
   923 // 
       
   924 // -----------------------------------------------------------------------------
       
   925 // 
       
   926 void CFileManagerViewBase::CmdMarkAllL()
       
   927     {
       
   928     iContainer->ListBoxSelectAllL();
       
   929     }
       
   930 
       
   931 // -----------------------------------------------------------------------------
       
   932 // CFileManagerViewBase::CmdUnmarkAllL
       
   933 // 
       
   934 // -----------------------------------------------------------------------------
       
   935 // 
       
   936 void CFileManagerViewBase::CmdUnmarkAllL()
       
   937     {
       
   938     iContainer->ListBoxClearSelection();
       
   939     }
   889     }
   940 
   890 
   941 // -----------------------------------------------------------------------------
   891 // -----------------------------------------------------------------------------
   942 // CFileManagerViewBase::CmdRenameL
   892 // CFileManagerViewBase::CmdRenameL
   943 // 
   893 // 
  1182         case R_FILEMANAGER_MEMORY_STORE_VIEW_MENU:
  1132         case R_FILEMANAGER_MEMORY_STORE_VIEW_MENU:
  1183             {
  1133             {
  1184             MemoryStoreMenuFilteringL( *aMenuPane );
  1134             MemoryStoreMenuFilteringL( *aMenuPane );
  1185             break;
  1135             break;
  1186             }
  1136             }
  1187         case R_FILEMANAGER_MARK_UNMARK_MENU:
  1137         // Marking mode menu
  1188         case R_FILEMANAGER_CONTEXT_SENSITIVE_MARK_UNMARK_MENU:
  1138         case R_AVKON_MENUPANE_MARK_MULTIPLE:
  1189             {
  1139             {
  1190             MarkMenuFilteringL( *aMenuPane );
  1140             MarkMenuFilteringL( *aMenuPane );
  1191             break;
  1141             break;
  1192             }
  1142             }
  1193         case R_FILEMANAGER_ORGANISE_MENU:
  1143         case R_FILEMANAGER_ORGANISE_MENU:
  1456     LOG_IF_ERROR2( aError, "CFileManagerViewBase::DoProcessFinishedL-iActiveProcess=%d,aError=%d",
  1406     LOG_IF_ERROR2( aError, "CFileManagerViewBase::DoProcessFinishedL-iActiveProcess=%d,aError=%d",
  1457         iActiveProcess, aError )
  1407         iActiveProcess, aError )
  1458 
  1408 
  1459     if ( iPeriodic && iProgressInfo && iTotalTransferredBytes )
  1409     if ( iPeriodic && iProgressInfo && iTotalTransferredBytes )
  1460         {
  1410         {
  1461         iProgressInfo->SetAndDraw( iTotalTransferredBytes );
  1411         if ( iActiveProcess == ECopyProcess || iActiveProcess == EMoveProcess )
       
  1412             {
       
  1413             iProgressInfo->SetAndDraw( iTotalTransferredBytes / KMinificationFactor );
       
  1414             }
       
  1415         else
       
  1416             {
       
  1417             iProgressInfo->SetAndDraw( iTotalTransferredBytes );
       
  1418             }
  1462         }
  1419         }
  1463     if ( IsSystemProcess( iActiveProcess ) )
  1420     if ( IsSystemProcess( iActiveProcess ) )
  1464         {
  1421         {
  1465         // Remove system status to allow app close from task switcher
  1422         // Remove system status to allow app close from task switcher
  1466         iEikonEnv->SetSystem( EFalse );
  1423         iEikonEnv->SetSystem( EFalse );
  3213     TInt driveNumber = drvInfo.iDrive;
  3170     TInt driveNumber = drvInfo.iDrive;
  3214     iEngine.GetDriveInfoL(driveNumber,drvInfo);
  3171     iEngine.GetDriveInfoL(driveNumber,drvInfo);
  3215 
  3172 
  3216     // Common remote drive filtering
  3173     // Common remote drive filtering
  3217     RemoteDriveCommonFilteringL( aMenuPane );
  3174     RemoteDriveCommonFilteringL( aMenuPane );
  3218     if( iContainer->IsSearchFieldVisible() && 
  3175     
  3219             !FilesCountInSearchField() )
  3176     // Used while checking EAknCmdMarkingModeEnter's existance
  3220         {
  3177     TInt pos ( 0 );
  3221         aMenuPane.SetItemDimmed( EFileManagerMark, ETrue );
  3178     // No file exists after find pane filtering,
       
  3179     // disable enter marking mode
       
  3180     if ( iContainer->IsSearchFieldVisible() && 
       
  3181             FilesCountInSearchField() == 0 )
       
  3182         {
       
  3183         if ( aMenuPane.MenuItemExists( EAknCmdMarkingModeEnter, pos ) )
       
  3184             {
       
  3185             aMenuPane.SetItemDimmed( EAknCmdMarkingModeEnter, ETrue );
       
  3186             }
  3222         }
  3187         }
  3223     if ( iContainer->ListBoxNumberOfItems() )
  3188     if ( iContainer->ListBoxNumberOfItems() )
  3224         {
  3189         {
  3225         if ( !iContainer->ListBoxSelectionIndexesCount() )
  3190         if ( !iContainer->ListBoxSelectionIndexesCount() )
  3226             {
  3191             {
  3237         aMenuPane.SetItemDimmed( EFileManagerMoveToFolder, ETrue );
  3202         aMenuPane.SetItemDimmed( EFileManagerMoveToFolder, ETrue );
  3238         aMenuPane.SetItemDimmed( EFileManagerCopyToFolder, ETrue );
  3203         aMenuPane.SetItemDimmed( EFileManagerCopyToFolder, ETrue );
  3239         }
  3204         }
  3240     TInt index(iContainer->ListBoxCurrentItemIndex());
  3205     TInt index(iContainer->ListBoxCurrentItemIndex());
  3241     TUint32 fileType(iEngine.FileTypeL(index));
  3206     TUint32 fileType(iEngine.FileTypeL(index));
  3242     if (!(fileType & CFileManagerItemProperties::EFolder))
  3207     // Do not dim move to folder command in option menu and stylus popup
       
  3208     // menu while marking mode is activated.
       
  3209     // At least one item is marked.
       
  3210     if ( !(fileType & CFileManagerItemProperties::EFolder )
       
  3211             && iContainer->ListBoxSelectionIndexesCount() == 0 )
  3243         {
  3212         {
  3244         aMenuPane.SetItemDimmed(EFileManagerMoveToFolder, ETrue);
  3213         aMenuPane.SetItemDimmed(EFileManagerMoveToFolder, ETrue);
  3245         }
  3214         }
  3246     CFileManagerFeatureManager& featureManager( FeatureManager() );
  3215     CFileManagerFeatureManager& featureManager( FeatureManager() );
  3247     
  3216     
  3276         {
  3245         {
  3277         // Search view item dimming
  3246         // Search view item dimming
  3278         aMenuPane.SetItemDimmed( EFileManagerRename, ETrue );
  3247         aMenuPane.SetItemDimmed( EFileManagerRename, ETrue );
  3279         aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
  3248         aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
  3280         aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
  3249         aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
  3281 //        aMenuPane.SetItemDimmed( EFileManagerMemoryCard, ETrue );
       
  3282 //        aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
       
  3283         //aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
       
  3284         aMenuPane.SetItemDimmed( EFileManagerRefreshRemoteDrive, ETrue );
  3250         aMenuPane.SetItemDimmed( EFileManagerRefreshRemoteDrive, ETrue );
  3285 #ifdef RD_MULTIPLE_DRIVE
  3251 #ifdef RD_MULTIPLE_DRIVE
  3286         aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
  3252         aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
  3287 #endif // RD_MULTIPLE_DRIVE
  3253 #endif // RD_MULTIPLE_DRIVE
  3288         aMenuPane.SetItemDimmed( EFileManagerSort, ETrue );
  3254         aMenuPane.SetItemDimmed( EFileManagerSort, ETrue );
  3297         {
  3263         {
  3298         // Write protected item dimming
  3264         // Write protected item dimming
  3299         aMenuPane.SetItemDimmed( EFileManagerRename, ETrue );
  3265         aMenuPane.SetItemDimmed( EFileManagerRename, ETrue );
  3300         aMenuPane.SetItemDimmed( EFileManagerDelete, ETrue );
  3266         aMenuPane.SetItemDimmed( EFileManagerDelete, ETrue );
  3301         aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
  3267         aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
  3302 //        aMenuPane.SetItemDimmed( EFileManagerMemoryCard, ETrue );
       
  3303 //        aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
       
  3304 #ifdef RD_MULTIPLE_DRIVE
  3268 #ifdef RD_MULTIPLE_DRIVE
  3305         aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
  3269         aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
  3306 #endif // RD_MULTIPLE_DRIVE
  3270 #endif // RD_MULTIPLE_DRIVE
  3307         }
  3271         }
  3308 
  3272 
  3309 #ifdef RD_MULTIPLE_DRIVE
  3273 #ifdef RD_MULTIPLE_DRIVE
  3310     if ( drvInfo.iState & TFileManagerDriveInfo::EDriveMassStorage )
  3274     if ( drvInfo.iState & TFileManagerDriveInfo::EDriveMassStorage )
  3311         {
  3275         {
  3312         // Mass storage item dimming
  3276         // Mass storage item dimming
  3313 //        aMenuPane.SetItemDimmed( EFileManagerMemoryCard, ETrue );
       
  3314 //        aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
       
  3315         aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
  3277         aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
  3316 
  3278 
  3317         if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) )
  3279         if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) )
  3318             {
  3280             {
  3319             aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
  3281             aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
  3326         // Memory card item dimming
  3288         // Memory card item dimming
  3327         if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) ||
  3289         if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) ||
  3328              ( drvInfo.iState & ( TFileManagerDriveInfo::EDriveCorrupted |
  3290              ( drvInfo.iState & ( TFileManagerDriveInfo::EDriveCorrupted |
  3329                                   TFileManagerDriveInfo::EDriveLocked ) ) )
  3291                                   TFileManagerDriveInfo::EDriveLocked ) ) )
  3330             {
  3292             {
  3331 //            aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
       
  3332             aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
  3293             aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
  3333             }
  3294             }
  3334         if ( ( drvInfo.iState & TFileManagerDriveInfo::EDriveCorrupted ) ||
  3295         if ( ( drvInfo.iState & TFileManagerDriveInfo::EDriveCorrupted ) ||
  3335              !( drvInfo.iState & TFileManagerDriveInfo::EDriveLocked ) )
  3296              !( drvInfo.iState & TFileManagerDriveInfo::EDriveLocked ) )
  3336             {
  3297             {
  3337             aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
  3298             aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
  3338             }
  3299             }
  3339 //        if ( !( drvInfo.iState & TFileManagerDriveInfo::EDriveLockable ) )
       
  3340 //            {
       
  3341 //            aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
       
  3342 //            }
       
  3343         if ( !featureManager.IsMmcPassWdSupported() )
  3300         if ( !featureManager.IsMmcPassWdSupported() )
  3344             {
  3301             {
  3345             //aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
       
  3346             aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
  3302             aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
  3347             }
  3303             }
  3348 #ifdef RD_MULTIPLE_DRIVE
  3304 #ifdef RD_MULTIPLE_DRIVE
  3349         aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
  3305         aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
  3350 #endif // RD_MULTIPLE_DRIVE
  3306 #endif // RD_MULTIPLE_DRIVE
  3351         }
  3307         }
  3352     else
  3308     else
  3353         {
  3309         {
  3354         // No mass storage or memory card item dimming
  3310         // No mass storage or memory card item dimming
  3355 //        aMenuPane.SetItemDimmed( EFileManagerMemoryCard, ETrue );
       
  3356 //        aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
       
  3357         aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
  3311         aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
  3358 #ifdef RD_MULTIPLE_DRIVE
  3312 #ifdef RD_MULTIPLE_DRIVE
  3359         aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
  3313         aMenuPane.SetItemDimmed( EFileManagerFormatMassStorage, ETrue );
  3360 #endif // RD_MULTIPLE_DRIVE
  3314 #endif // RD_MULTIPLE_DRIVE
  3361         }
  3315         }
  3362 
  3316     
  3363 //    CEikListBox& listBox = iContainer->ListBox();
       
  3364     TBool dimSend( EFalse );
  3317     TBool dimSend( EFalse );
  3365 
  3318 
  3366     if ( iContainer->ListBoxSelectionIndexesCount() )
  3319     if ( iContainer->ListBoxSelectionIndexesCount() )
  3367         {
  3320         {
  3368         // Selections in list
  3321         // Selections in list
  3384             {
  3337             {
  3385             aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
  3338             aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
  3386             }
  3339             }
  3387         
  3340         
  3388         if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) || 
  3341         if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) || 
  3389         	 ( ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote ) &&
  3342              ( drvInfo.iState & TFileManagerDriveInfo::EDriveInUse ) ||
       
  3343              ( ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote ) &&
  3390              !( drvInfo.iState & TFileManagerDriveInfo::EDriveConnected ) ) )
  3344              !( drvInfo.iState & TFileManagerDriveInfo::EDriveConnected ) ) )
  3391            {
  3345            {
  3392            // Handle unavailable drive OR  disconnected remote drive
  3346            // Handle unavailable drive or disconnected remote drive
  3393            dimSend = ETrue;
  3347            dimSend = ETrue;
  3394            aMenuPane.SetItemDimmed( EFileManagerSort, ETrue );
  3348            aMenuPane.SetItemDimmed( EFileManagerSort, ETrue );
  3395            aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
  3349            aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
  3396            aMenuPane.SetItemDimmed( EFileManagerMark, ETrue );             
  3350            aMenuPane.SetItemDimmed( EFileManagerDelete, ETrue );
       
  3351            if ( aMenuPane.MenuItemExists( EAknCmdMarkingModeEnter, pos ) )
       
  3352                {
       
  3353                aMenuPane.SetItemDimmed( EAknCmdMarkingModeEnter, ETrue );
       
  3354                }
  3397            }
  3355            }
  3398         }
  3356         }
  3399     else if ( iContainer->ListBoxNumberOfItems() )
  3357     else if ( iContainer->ListBoxNumberOfItems() )
  3400         {
  3358         {
  3401         // Check if there is files on the list
  3359         // Check whether there is file on the list
  3402         TInt files( iEngine.FilesInFolderL() );
  3360         TInt files( iEngine.FilesInFolderL() );
  3403         if ( !files ) 
  3361         if ( files == 0 ) 
  3404             {
  3362             {
  3405             dimSend = ETrue;
  3363             dimSend = ETrue;
  3406             aMenuPane.SetItemDimmed( EFileManagerMark, ETrue );
  3364             if ( aMenuPane.MenuItemExists( EAknCmdMarkingModeEnter, pos ) )
       
  3365                 {
       
  3366                 aMenuPane.SetItemDimmed( EAknCmdMarkingModeEnter, ETrue );
       
  3367                 }
  3407             }
  3368             }
  3408         
  3369         
  3409         // There is items in list, check selection type
  3370         // There is items in list, check selection type
  3410         TUint32 fileType( iEngine.FileTypeL(
  3371         TUint32 fileType( iEngine.FileTypeL(
  3411             iContainer->ListBoxCurrentItemIndex() ) );
  3372             iContainer->ListBoxCurrentItemIndex() ) );
  3441     else 
  3402     else 
  3442         {
  3403         {
  3443         // List is empty
  3404         // List is empty
  3444         aMenuPane.SetItemDimmed( EFileManagerOpen, ETrue );
  3405         aMenuPane.SetItemDimmed( EFileManagerOpen, ETrue );
  3445         aMenuPane.SetItemDimmed( EFileManagerDelete, ETrue );
  3406         aMenuPane.SetItemDimmed( EFileManagerDelete, ETrue );
  3446         aMenuPane.SetItemDimmed( EFileManagerMark, ETrue );
  3407         if ( aMenuPane.MenuItemExists( EAknCmdMarkingModeEnter, pos ) )
       
  3408             {
       
  3409             aMenuPane.SetItemDimmed( EAknCmdMarkingModeEnter, ETrue );
       
  3410             }
  3447         aMenuPane.SetItemDimmed( EFileManagerRename, ETrue );
  3411         aMenuPane.SetItemDimmed( EFileManagerRename, ETrue );
  3448         aMenuPane.SetItemDimmed( EFileManagerSort, ETrue );
  3412         aMenuPane.SetItemDimmed( EFileManagerSort, ETrue );
  3449         aMenuPane.SetItemDimmed( EFileManagerSearchSort, ETrue );
  3413         aMenuPane.SetItemDimmed( EFileManagerSearchSort, ETrue );
  3450         aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
  3414         aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
  3451         dimSend = ETrue;
  3415         dimSend = ETrue;
  3465              !( drvInfo.iState & TFileManagerDriveInfo::EDriveConnected ) )
  3429              !( drvInfo.iState & TFileManagerDriveInfo::EDriveConnected ) )
  3466             {
  3430             {
  3467             // Handle disconnected remote drive
  3431             // Handle disconnected remote drive
  3468             aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
  3432             aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
  3469             aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
  3433             aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
  3470 //            aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
       
  3471             }
  3434             }
  3472         else if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) ||  
  3435         else if ( !( drvInfo.iState & TFileManagerDriveInfo::EDrivePresent ) ||  
  3473                  ( drvInfo.iState & (
  3436                  ( drvInfo.iState & (
  3474                     TFileManagerDriveInfo::EDriveCorrupted |
  3437                     TFileManagerDriveInfo::EDriveCorrupted |
  3475                     TFileManagerDriveInfo::EDriveLocked ) ) )
  3438                     TFileManagerDriveInfo::EDriveLocked ) ) )
  3476             {
  3439             {
  3477             // Handle unavailable drive
  3440             // Handle unavailable drive
  3478 //            aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
       
  3479             aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
  3441             aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
  3480             aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
  3442             aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
  3481 //            aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
       
  3482             
  3443             
  3483             if ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemovable &&
  3444             if ( drvInfo.iState & TFileManagerDriveInfo::EDriveRemovable &&
  3484                  !( drvInfo.iState & TFileManagerDriveInfo::EDriveLocked ) )
  3445                  !( drvInfo.iState & TFileManagerDriveInfo::EDriveLocked ) )
  3485                 {
  3446                 {
  3486                 aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
  3447                 aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
  3493             // Handle empty search results and invalid path
  3454             // Handle empty search results and invalid path
  3494             if ( isSearchOn || !iEngine.CurrentDirectory().Length() )
  3455             if ( isSearchOn || !iEngine.CurrentDirectory().Length() )
  3495                 {
  3456                 {
  3496                 aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
  3457                 aMenuPane.SetItemDimmed( EFileManagerReceiveViaIR, ETrue );
  3497                 aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
  3458                 aMenuPane.SetItemDimmed( EFileManagerOrganise, ETrue );
  3498 //                aMenuPane.SetItemDimmed( EFileManagerMemoryCardPassword, ETrue );
       
  3499 //                aMenuPane.SetItemDimmed( EFileManagerMemoryCard, ETrue );
       
  3500                 aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
  3459                 aMenuPane.SetItemDimmed( EFileManagerUnlockMemoryCard, ETrue );
  3501 //                aMenuPane.SetItemDimmed( EFileManagerDetails, ETrue );
       
  3502                 }
  3460                 }
  3503             else
  3461             else
  3504                 {
  3462                 {
  3505                 // BaflUtils::PathExists does not work for remote drive root dirs.
  3463                 // BaflUtils::PathExists does not work for remote drive root dirs.
  3506                 if( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote )
  3464                 if( drvInfo.iState & TFileManagerDriveInfo::EDriveRemote )