filemanager/src/inc/fmdrivemodel.cpp
changeset 29 b3155376f2b4
parent 24 1d0c87b42e2e
child 30 6e96d2143d46
equal deleted inserted replaced
24:1d0c87b42e2e 29:b3155376f2b4
    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 }