diff -r 1d0c87b42e2e -r b3155376f2b4 filemanager/src/inc/fmdrivemodel.cpp --- a/filemanager/src/inc/fmdrivemodel.cpp Fri Jun 11 13:29:48 2010 +0300 +++ b/filemanager/src/inc/fmdrivemodel.cpp Wed Jun 23 18:03:11 2010 +0300 @@ -22,8 +22,9 @@ #include #include -FmDriveModel::FmDriveModel( QObject *parent, Options options ) : - QAbstractListModel( parent ), mOptions( options ) +FmDriveModel::FmDriveModel( QObject *parent, Options options, + FmDriveListProvider *driveListProvider ) : + QAbstractListModel( parent ), mOptions( options ), mDriveListProvider( driveListProvider ) { mIconProvider = new FmFileIconProvider(); refresh(); @@ -36,17 +37,23 @@ void FmDriveModel::refresh() { - QFileInfoList infoList = QDir::drives(); - - emit layoutAboutToBeChanged(); + emit layoutAboutToBeChanged(); mDriveList.clear(); - if( mOptions & HideUnAvailableDrive ) { - FmLogger::log( QString( "FmDriveModel::refresh HideUnAvailableDrive_true" ) ); - FmUtils::getDriveList( mDriveList, true ); + + // if mDriveListProvider existed, use it to fetch drive list + // otherwise use FmUtils::getDriveList to fetch drive list. + if( mDriveListProvider ) { + mDriveListProvider->getDriveList( mDriveList ); } else { - FmLogger::log( QString( "FmDriveModel::refresh HideUnAvailableDrive_false" ) ); - FmUtils::getDriveList( mDriveList, false ); + if( mOptions & HideUnAvailableDrive ) { + FmLogger::log( QString( "FmDriveModel::refresh HideUnAvailableDrive_true" ) ); + FmUtils::getDriveList( mDriveList, true ); + } else { + FmLogger::log( QString( "FmDriveModel::refresh HideUnAvailableDrive_false" ) ); + FmUtils::getDriveList( mDriveList, false ); + } } + emit layoutChanged(); for( int i=0; i