filemanager/src/inc/fmfiletyperecognizer.cpp
changeset 35 060d0b1ab845
parent 30 6e96d2143d46
child 47 12b82dc0e8db
child 48 1bebd60c0f00
equal deleted inserted replaced
30:6e96d2143d46 35:060d0b1ab845
    21 #include <QFileInfo>
    21 #include <QFileInfo>
    22 #include <QStringList>
    22 #include <QStringList>
    23 
    23 
    24 FmFileTypeRecognizer::FmFileTypeRecognizer()
    24 FmFileTypeRecognizer::FmFileTypeRecognizer()
    25 {
    25 {
    26     QStringList fileExtensionList;
    26     mFileExtensionMap.insert( QString( "bmp" ), FileTypeImage );
       
    27     mFileExtensionMap.insert( QString( "gif" ), FileTypeImage );
       
    28     mFileExtensionMap.insert( QString( "jpe" ), FileTypeImage );
       
    29     mFileExtensionMap.insert( QString( "jpeg" ),FileTypeImage );
       
    30     mFileExtensionMap.insert( QString( "jpg" ), FileTypeImage );
       
    31     mFileExtensionMap.insert( QString( "ota" ), FileTypeImage );
       
    32     mFileExtensionMap.insert( QString( "png" ), FileTypeImage );
       
    33     mFileExtensionMap.insert( QString( "tif" ), FileTypeImage );
       
    34     mFileExtensionMap.insert( QString( "tiff" ),FileTypeImage );
       
    35     mFileExtensionMap.insert( QString( "wbmp" ),FileTypeImage );
       
    36     mFileExtensionMap.insert( QString( "wmf" ), FileTypeImage );
       
    37     mFileExtensionMap.insert( QString( "jp2" ), FileTypeImage );
       
    38     mFileExtensionMap.insert( QString( "jpg2" ),FileTypeImage );
       
    39     mFileExtensionMap.insert( QString( "jp3" ), FileTypeImage );
       
    40     mFileExtensionMap.insert( QString( "ico" ), FileTypeImage );
       
    41     mFileExtensionMap.insert( QString( "vcf" ), FileTypeImage );
       
    42 
       
    43     mFileExtensionMap.insert( QString( "3gp" ), FileTypeVideo );
       
    44     mFileExtensionMap.insert( QString( "mp4" ), FileTypeVideo );
       
    45     mFileExtensionMap.insert( QString( "nim" ), FileTypeVideo );
       
    46     mFileExtensionMap.insert( QString( "rm" ),  FileTypeVideo );
       
    47     mFileExtensionMap.insert( QString( "rv" ),  FileTypeVideo );
       
    48     mFileExtensionMap.insert( QString( "wmv" ), FileTypeVideo );
       
    49     mFileExtensionMap.insert( QString( "3g2" ), FileTypeVideo );
       
    50     mFileExtensionMap.insert( QString( "rmvb" ),FileTypeVideo );
       
    51     mFileExtensionMap.insert( QString( "mkv" ), FileTypeVideo );
    27     
    52     
    28     fileExtensionList.append( QString( "bmp" ) );
    53 
    29     fileExtensionList.append( QString( "gif" ) );
    54     mFileExtensionMap.insert( QString( "aac" ), FileTypeTone );
    30     fileExtensionList.append( QString( "jpe" ) );
    55     mFileExtensionMap.insert( QString( "amr" ), FileTypeTone );
    31     fileExtensionList.append( QString( "jpeg" ) );
    56     mFileExtensionMap.insert( QString( "au" ),  FileTypeTone );
    32     fileExtensionList.append( QString( "jpg" ) );
    57     mFileExtensionMap.insert( QString( "awb" ), FileTypeTone );
    33     fileExtensionList.append( QString( "ota" ) );
    58     mFileExtensionMap.insert( QString( "mid" ), FileTypeTone );
    34     fileExtensionList.append( QString( "png" ) );
    59     mFileExtensionMap.insert( QString( "mp3" ), FileTypeTone );
    35     fileExtensionList.append( QString( "tif" ) );
    60     mFileExtensionMap.insert( QString( "ra" ),  FileTypeTone );
    36     fileExtensionList.append( QString( "tiff" ) );
    61     mFileExtensionMap.insert( QString( "rmf" ), FileTypeTone );
    37     fileExtensionList.append( QString( "wbmp" ) );
    62     mFileExtensionMap.insert( QString( "rng" ), FileTypeTone );
    38     fileExtensionList.append( QString( "wmf" ) );
    63     mFileExtensionMap.insert( QString( "snd" ), FileTypeTone );
    39     fileExtensionList.append( QString( "jp2" ) );
    64     mFileExtensionMap.insert( QString( "wav" ), FileTypeTone );
    40     fileExtensionList.append( QString( "jpg2" ) );
    65     mFileExtensionMap.insert( QString( "wve" ), FileTypeTone );
    41     fileExtensionList.append( QString( "jp3" ) );
    66     mFileExtensionMap.insert( QString( "wma" ), FileTypeTone );
    42     fileExtensionList.append( QString( "ico" ) );
    67     mFileExtensionMap.insert( QString( "m4a" ), FileTypeTone );
    43     fileExtensionList.append( QString( "vcf" ) );
    68     mFileExtensionMap.insert( QString( "ott" ), FileTypeTone );
    44     mFileTypeMap.insert( FileTypeImage, fileExtensionList );
    69     mFileExtensionMap.insert( QString( "mxmf" ),FileTypeTone );
    45    
       
    46     fileExtensionList.clear();
       
    47     fileExtensionList.append( QString( "3gp" ) );
       
    48     fileExtensionList.append( QString( "mp4" ) );
       
    49     fileExtensionList.append( QString( "nim" ) );
       
    50     fileExtensionList.append( QString( "rm"  ) );
       
    51     fileExtensionList.append( QString( "rv"  ) );
       
    52     fileExtensionList.append( QString( "wmv" ) );
       
    53     fileExtensionList.append( QString( "3g2" ) );
       
    54     fileExtensionList.append( QString( "rmvb") );
       
    55     fileExtensionList.append( QString( "mkv" ) );
       
    56     mFileTypeMap.insert( FileTypeVideo, fileExtensionList );
       
    57     
    70     
    58     fileExtensionList.clear();
    71     mFileExtensionMap.insert( QString( "doc" ), FileTypeText );
    59     fileExtensionList.append( QString( "aac" ) );
    72     mFileExtensionMap.insert( QString( "pdf" ), FileTypeText );
    60     fileExtensionList.append( QString( "amr" ) );
    73     mFileExtensionMap.insert( QString( "pps" ), FileTypeText );
    61     fileExtensionList.append( QString( "au" ) );
    74     mFileExtensionMap.insert( QString( "ppt" ), FileTypeText );
    62     fileExtensionList.append( QString( "awb" ) );
    75     mFileExtensionMap.insert( QString( "txt" ), FileTypeText );
    63     fileExtensionList.append( QString( "mid" ) );
    76     mFileExtensionMap.insert( QString( "xls" ), FileTypeText );
    64     fileExtensionList.append( QString( "mp3" ) );
       
    65     fileExtensionList.append( QString( "ra" ) );
       
    66     fileExtensionList.append( QString( "rmf" ) );
       
    67     fileExtensionList.append( QString( "rng" ) );
       
    68     fileExtensionList.append( QString( "snd" ) );
       
    69     fileExtensionList.append( QString( "wav" ) );
       
    70     fileExtensionList.append( QString( "wve" ) );
       
    71     fileExtensionList.append( QString( "wma" ) );
       
    72     fileExtensionList.append( QString( "m4a" ) );
       
    73     fileExtensionList.append( QString( "ott" ) );
       
    74     fileExtensionList.append( QString( "mxmf" ) );
       
    75     mFileTypeMap.insert( FileTypeTone, fileExtensionList );
       
    76 
       
    77     fileExtensionList.clear();
       
    78     fileExtensionList.append( QString( "doc" ) );
       
    79     fileExtensionList.append( QString( "pdf" ) );
       
    80     fileExtensionList.append( QString( "pps" ) );
       
    81     fileExtensionList.append( QString( "ppt" ) );
       
    82     fileExtensionList.append( QString( "txt" ) );
       
    83     fileExtensionList.append( QString( "xls" ) );
       
    84     mFileTypeMap.insert( FileTypeText, fileExtensionList );
       
    85             
    77             
    86     fileExtensionList.clear();
    78     mFileExtensionMap.insert( QString( "sis" ), FileTypeSisx );
    87     fileExtensionList.append( QString( "sis" ) );
    79     mFileExtensionMap.insert( QString( "sisx" ),FileTypeSisx );
    88     fileExtensionList.append( QString( "sisx" ) );
    80         
    89     mFileTypeMap.insert( FileTypeSisx, fileExtensionList );
    81     mFileExtensionMap.insert( QString( "jad" ), FileTypeJava );
       
    82     mFileExtensionMap.insert( QString( "jar" ), FileTypeJava );
    90     
    83     
    91     fileExtensionList.clear();
    84     mFileExtensionMap.insert( QString( "swf" ), FileTypeFlash );
    92     fileExtensionList.append( QString( "jad" ) );
       
    93     fileExtensionList.append( QString( "jar" ) );
       
    94     mFileTypeMap.insert( FileTypeJava, fileExtensionList );
       
    95     
       
    96     fileExtensionList.clear();
       
    97     fileExtensionList.append( QString( "swf" ) );
       
    98     mFileTypeMap.insert( FileTypeFlash, fileExtensionList );
       
    99 
    85 
   100     // have not handle FileTypePlaylist
    86     // have not handle FileTypePlaylist
   101     // have not handle FileTypeWidget
    87     // have not handle FileTypeWidget
   102     // have not handle FileTypeWebLink 
    88     // have not handle FileTypeWebLink 
   103     
       
   104     // make mFileExtensionMap( data map for extenstion ) from mFileTypeMap
       
   105     // this map is used to speed up recognize    
       
   106     QMapIterator<FileType, QStringList> i( mFileTypeMap );
       
   107     while (i.hasNext()) {
       
   108         i.next();
       
   109         foreach( const QString extension, i.value() ) {
       
   110             mFileExtensionMap.insert( extension, i.key() );
       
   111         }
       
   112     }
       
   113     
       
   114 
       
   115 }
    89 }
   116 
    90 
   117 FmFileTypeRecognizer::~FmFileTypeRecognizer()
    91 FmFileTypeRecognizer::~FmFileTypeRecognizer()
   118 {
    92 {
   119     
    93     
   131     }
   105     }
   132     
   106     
   133     //if can not find key, return default value: FileTypeUnKnown
   107     //if can not find key, return default value: FileTypeUnKnown
   134     return mFileExtensionMap.value( fileInfo.suffix().toLower(), FileTypeUnKnown );
   108     return mFileExtensionMap.value( fileInfo.suffix().toLower(), FileTypeUnKnown );
   135 }
   109 }
   136 
       
   137 const QStringList FmFileTypeRecognizer::getFileListFromFileType( const FmFileTypeRecognizer::FileType fileType ) const
       
   138 {
       
   139     return mFileTypeMap.value( fileType, QStringList() );
       
   140 }