20 #include "fmutils.h" |
20 #include "fmutils.h" |
21 |
21 |
22 #include <QDir> |
22 #include <QDir> |
23 #include <QFileInfo> |
23 #include <QFileInfo> |
24 |
24 |
25 FmDriveModel::FmDriveModel( QObject *parent, Options options ) : |
25 FmDriveModel::FmDriveModel( QObject *parent, Options options, |
26 QAbstractListModel( parent ), mOptions( options ) |
26 FmDriveListProvider *driveListProvider ) : |
|
27 QAbstractListModel( parent ), mOptions( options ), mDriveListProvider( driveListProvider ) |
27 { |
28 { |
28 mIconProvider = new FmFileIconProvider(); |
29 mIconProvider = new FmFileIconProvider(); |
29 refresh(); |
30 refresh(); |
30 } |
31 } |
31 |
32 |
34 delete mIconProvider; |
35 delete mIconProvider; |
35 } |
36 } |
36 |
37 |
37 void FmDriveModel::refresh() |
38 void FmDriveModel::refresh() |
38 { |
39 { |
39 QFileInfoList infoList = QDir::drives(); |
40 emit layoutAboutToBeChanged(); |
|
41 mDriveList.clear(); |
|
42 |
|
43 // if mDriveListProvider existed, use it to fetch drive list |
|
44 // otherwise use FmUtils::getDriveList to fetch drive list. |
|
45 if( mDriveListProvider ) { |
|
46 mDriveListProvider->getDriveList( mDriveList ); |
|
47 } else { |
|
48 if( mOptions & HideUnAvailableDrive ) { |
|
49 FmLogger::log( QString( "FmDriveModel::refresh HideUnAvailableDrive_true" ) ); |
|
50 FmUtils::getDriveList( mDriveList, true ); |
|
51 } else { |
|
52 FmLogger::log( QString( "FmDriveModel::refresh HideUnAvailableDrive_false" ) ); |
|
53 FmUtils::getDriveList( mDriveList, false ); |
|
54 } |
|
55 } |
40 |
56 |
41 emit layoutAboutToBeChanged(); |
|
42 mDriveList.clear(); |
|
43 if( mOptions & HideUnAvailableDrive ) { |
|
44 FmLogger::log( QString( "FmDriveModel::refresh HideUnAvailableDrive_true" ) ); |
|
45 FmUtils::getDriveList( mDriveList, true ); |
|
46 } else { |
|
47 FmLogger::log( QString( "FmDriveModel::refresh HideUnAvailableDrive_false" ) ); |
|
48 FmUtils::getDriveList( mDriveList, false ); |
|
49 } |
|
50 emit layoutChanged(); |
57 emit layoutChanged(); |
51 for( int i=0; i<mDriveList.count(); i++ ) { |
58 for( int i=0; i<mDriveList.count(); i++ ) { |
52 emit dataChanged(index( i, 0 ), index( i, 0 )); |
59 emit dataChanged(index( i, 0 ), index( i, 0 )); |
53 } |
60 } |
54 } |
61 } |