filemanager/src/filemanager/src/fmdriverlistwidget.cpp
changeset 27 df183af6b92f
parent 25 b7bfdea70ca2
child 32 39cf9ced4cc4
equal deleted inserted replaced
25:b7bfdea70ca2 27:df183af6b92f
   255     if ( state & FmDriverInfo::EDriveWriteProtected ){
   255     if ( state & FmDriverInfo::EDriveWriteProtected ){
   256         FmDlgUtils::information( hbTrId( "Unable to perform operation. Memory card is read only." ) );
   256         FmDlgUtils::information( hbTrId( "Unable to perform operation. Memory card is read only." ) );
   257         return;
   257         return;
   258         }
   258         }
   259 
   259 
   260     QString title( hbTrId( "Drive name ") );  
   260     QString title( hbTrId( "Drive name ") );
   261     QString volumeName = driverInfo.volumeName();
   261     //save the volume status, empty or set
   262 
   262     bool needToSetVolume = false;
       
   263     QString volumeName = FmUtils::getVolumeNameWithDefaultNameIfNull( diskName, needToSetVolume );    
       
   264     QString oldVolumeName( volumeName );
   263     QString associatedDrives( FmUtils::getDriveLetterFromPath( diskName ) );
   265     QString associatedDrives( FmUtils::getDriveLetterFromPath( diskName ) );
   264     while( FmDlgUtils::showTextQuery( title, volumeName, false, FmMaxLengthofDriveName, associatedDrives ) ){
   266     //use isReturnFalseWhenNoTextChanged = false in order that FmUtils::renameDrive( driveName, volumeName ) will
       
   267     //be excuted at lease once to set the volume name.
       
   268     while( FmDlgUtils::showTextQuery( title, volumeName, QStringList(), FmMaxLengthofDriveName, associatedDrives, false ) ){
       
   269         //if volume is not set or oldVolumeName != volumeName , FmUtils::renameDrive will be called
       
   270         if ( oldVolumeName == volumeName && !needToSetVolume ) {
       
   271             break;
       
   272         }
   265         int err = FmUtils::renameDrive( diskName, volumeName );
   273         int err = FmUtils::renameDrive( diskName, volumeName );
   266         if ( err == FmErrNone ){
   274         if ( err == FmErrNone ) {
   267             FmDlgUtils::information( hbTrId( "The name has been changed!" ) );
   275             FmDlgUtils::information( hbTrId( "The name has been changed!" ) );
   268             mModel->refresh();
   276             mModel->refresh();
   269             break;
   277             break;
   270         } else if( err == FmErrBadName ) {
   278         } else if( err == FmErrBadName ) {
   271             FmDlgUtils::information( hbTrId( "Illegal characters! Use only letters and numbers." ) );
   279             FmDlgUtils::information( hbTrId( "Illegal characters! Use only letters and numbers." ) );