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." ) ); |