diff -r 328cf6fbe40c -r 4167eb56f30d filemanager/src/inc/fmdrivemodel.cpp --- a/filemanager/src/inc/fmdrivemodel.cpp Thu Aug 05 11:30:07 2010 +0800 +++ b/filemanager/src/inc/fmdrivemodel.cpp Thu Sep 02 17:00:51 2010 +0800 @@ -84,10 +84,7 @@ if (role == Qt::DisplayRole ) { return displayString( index ); - } else if (role == Qt::UserRole ) { - return driveName( index ); - } - + } if (index.column() == 0) { if (role == Qt::DecorationRole ) { QString path = driveName( index ); @@ -139,17 +136,39 @@ return data; } -QString FmDriveModel::displayString( const QModelIndex &index ) const +QVariant FmDriveModel::displayString( const QModelIndex &index ) const { - QString data; + QStringList data; if (index.row() >= 0 && index.row() < mDriveList.size()) { int row = index.row(); QString diskName = mDriveList[ row ]; if( mOptions & FillWithVolume ) { - data = FmUtils::fillDriveVolume( diskName, mOptions & FillWithDefaultVolume ); + data << FmUtils::fillDriveVolume( diskName, mOptions & FillWithDefaultVolume ); } else { - data = FmUtils::removePathSplash( diskName ); + data << FmUtils::removePathSplash( diskName ); + } + diskName = FmUtils::fillPathWithSplash( diskName ); + FmDriverInfo driverInfo = FmUtils::queryDriverInfo( diskName ); + if ( mOptions & FillWithTotalSize ) { + if( driverInfo.driveState() & FmDriverInfo::EDriveAvailable ) { + data << QString( hbTrId ( "Size: " ) + FmUtils::formatStorageSize( driverInfo.size() ) ); + } else if( driverInfo.driveState() & FmDriverInfo::EDriveLocked ) { + data << QString( hbTrId ( "Locked" ) ); + } else if( driverInfo.driveState() & FmDriverInfo::EDriveCorrupted ) { + data << QString( hbTrId ( "Corrupted" ) ); + } else if( driverInfo.driveState() & FmDriverInfo::EDriveNotPresent ) { + data << QString( hbTrId ( "Not Ready" ) ); + } + } + if ( mOptions & FillWithFreeSize ) { + if( driverInfo.driveState() & FmDriverInfo::EDriveAvailable ) { + data << QString( hbTrId ( "Free: " ) + FmUtils::formatStorageSize( driverInfo.freeSize() ) ); + } else if( ( driverInfo.driveState() & FmDriverInfo::EDriveLocked ) || + ( driverInfo.driveState() & FmDriverInfo::EDriveCorrupted ) || + ( driverInfo.driveState() & FmDriverInfo::EDriveNotPresent )) { + data << QString( QString(" ") ); + } } } return data;