82 if (!indexValid( index )) |
82 if (!indexValid( index )) |
83 return QVariant(); |
83 return QVariant(); |
84 |
84 |
85 if (role == Qt::DisplayRole ) { |
85 if (role == Qt::DisplayRole ) { |
86 return displayString( index ); |
86 return displayString( index ); |
87 } else if (role == Qt::UserRole ) { |
87 } |
88 return driveName( index ); |
|
89 } |
|
90 |
|
91 if (index.column() == 0) { |
88 if (index.column() == 0) { |
92 if (role == Qt::DecorationRole ) { |
89 if (role == Qt::DecorationRole ) { |
93 QString path = driveName( index ); |
90 QString path = driveName( index ); |
94 return mIconProvider->icon( QFileInfo( path ) ); |
91 return mIconProvider->icon( QFileInfo( path ) ); |
95 } |
92 } |
137 data = diskName; |
134 data = diskName; |
138 } |
135 } |
139 return data; |
136 return data; |
140 } |
137 } |
141 |
138 |
142 QString FmDriveModel::displayString( const QModelIndex &index ) const |
139 QVariant FmDriveModel::displayString( const QModelIndex &index ) const |
143 { |
140 { |
144 QString data; |
141 QStringList data; |
145 if (index.row() >= 0 && index.row() < mDriveList.size()) { |
142 if (index.row() >= 0 && index.row() < mDriveList.size()) { |
146 int row = index.row(); |
143 int row = index.row(); |
147 QString diskName = mDriveList[ row ]; |
144 QString diskName = mDriveList[ row ]; |
148 |
145 |
149 if( mOptions & FillWithVolume ) { |
146 if( mOptions & FillWithVolume ) { |
150 data = FmUtils::fillDriveVolume( diskName, mOptions & FillWithDefaultVolume ); |
147 data << FmUtils::fillDriveVolume( diskName, mOptions & FillWithDefaultVolume ); |
151 } else { |
148 } else { |
152 data = FmUtils::removePathSplash( diskName ); |
149 data << FmUtils::removePathSplash( diskName ); |
|
150 } |
|
151 diskName = FmUtils::fillPathWithSplash( diskName ); |
|
152 FmDriverInfo driverInfo = FmUtils::queryDriverInfo( diskName ); |
|
153 if ( mOptions & FillWithTotalSize ) { |
|
154 if( driverInfo.driveState() & FmDriverInfo::EDriveAvailable ) { |
|
155 data << QString( hbTrId ( "Size: " ) + FmUtils::formatStorageSize( driverInfo.size() ) ); |
|
156 } else if( driverInfo.driveState() & FmDriverInfo::EDriveLocked ) { |
|
157 data << QString( hbTrId ( "Locked" ) ); |
|
158 } else if( driverInfo.driveState() & FmDriverInfo::EDriveCorrupted ) { |
|
159 data << QString( hbTrId ( "Corrupted" ) ); |
|
160 } else if( driverInfo.driveState() & FmDriverInfo::EDriveNotPresent ) { |
|
161 data << QString( hbTrId ( "Not Ready" ) ); |
|
162 } |
|
163 } |
|
164 if ( mOptions & FillWithFreeSize ) { |
|
165 if( driverInfo.driveState() & FmDriverInfo::EDriveAvailable ) { |
|
166 data << QString( hbTrId ( "Free: " ) + FmUtils::formatStorageSize( driverInfo.freeSize() ) ); |
|
167 } else if( ( driverInfo.driveState() & FmDriverInfo::EDriveLocked ) || |
|
168 ( driverInfo.driveState() & FmDriverInfo::EDriveCorrupted ) || |
|
169 ( driverInfo.driveState() & FmDriverInfo::EDriveNotPresent )) { |
|
170 data << QString( QString(" ") ); |
|
171 } |
153 } |
172 } |
154 } |
173 } |
155 return data; |
174 return data; |
156 } |
175 } |