filemanager/src/inc/fmdrivemodel.cpp
changeset 40 4167eb56f30d
parent 32 39cf9ced4cc4
--- 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;