filemanager/src/inc/fmfiletyperecognizer.cpp
changeset 25 b7bfdea70ca2
child 32 39cf9ced4cc4
equal deleted inserted replaced
16:ada7962b4308 25:b7bfdea70ca2
       
     1 /*
       
     2  * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of "Eclipse Public License v1.0"
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Nokia Corporation - initial contribution.
       
    11  * 
       
    12  * Contributors:
       
    13  *     
       
    14  * 
       
    15  * Description:
       
    16  *      The source file of the file type recognizer
       
    17  */
       
    18 
       
    19 #include "fmfiletyperecognizer.h"
       
    20 #include "fmutils.h"
       
    21 #include <QFileInfo>
       
    22 #include <QStringList>
       
    23 
       
    24 FmFileTypeRecognizer::FmFileTypeRecognizer()
       
    25 {
       
    26     QStringList fileExtensionList;
       
    27     
       
    28     fileExtensionList.append( QString( "bmp" ) );
       
    29     fileExtensionList.append( QString( "gif" ) );
       
    30     fileExtensionList.append( QString( "jpe" ) );
       
    31     fileExtensionList.append( QString( "jpeg" ) );
       
    32     fileExtensionList.append( QString( "jpg" ) );
       
    33     fileExtensionList.append( QString( "ota" ) );
       
    34     fileExtensionList.append( QString( "png" ) );
       
    35     fileExtensionList.append( QString( "tif" ) );
       
    36     fileExtensionList.append( QString( "tiff" ) );
       
    37     fileExtensionList.append( QString( "wbmp" ) );
       
    38     fileExtensionList.append( QString( "wmf" ) );
       
    39     fileExtensionList.append( QString( "jp2" ) );
       
    40     fileExtensionList.append( QString( "jpg2" ) );
       
    41     fileExtensionList.append( QString( "jp3" ) );
       
    42     fileExtensionList.append( QString( "ico" ) );
       
    43     fileExtensionList.append( QString( "vcf" ) );
       
    44     mFileTypeMap.insert( FileTypeImage, fileExtensionList );
       
    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     
       
    58     fileExtensionList.clear();
       
    59     fileExtensionList.append( QString( "aac" ) );
       
    60     fileExtensionList.append( QString( "amr" ) );
       
    61     fileExtensionList.append( QString( "au" ) );
       
    62     fileExtensionList.append( QString( "awb" ) );
       
    63     fileExtensionList.append( QString( "mid" ) );
       
    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             
       
    86     fileExtensionList.clear();
       
    87     fileExtensionList.append( QString( "sis" ) );
       
    88     fileExtensionList.append( QString( "sisx" ) );
       
    89     mFileTypeMap.insert( FileTypeSisx, fileExtensionList );
       
    90     
       
    91     fileExtensionList.clear();
       
    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 
       
   100     // have not handle FileTypePlaylist
       
   101     // have not handle FileTypeWidget
       
   102     // 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 }
       
   116 
       
   117 FmFileTypeRecognizer::~FmFileTypeRecognizer()
       
   118 {
       
   119     
       
   120 }
       
   121 
       
   122 FmFileTypeRecognizer::FileType FmFileTypeRecognizer::getType( const QString& path ) const
       
   123 {
       
   124     if( FmUtils::isDrive( path ) ) {
       
   125         return FileTypeDrive;
       
   126     }
       
   127     
       
   128     QFileInfo fileInfo(path);
       
   129     if( fileInfo.isDir() ) {
       
   130         return FileTypeFolder;
       
   131     }
       
   132     
       
   133     //if can not find key, return default value: FileTypeUnKnown
       
   134     return mFileExtensionMap.value( fileInfo.suffix().toLower(), FileTypeUnKnown );
       
   135 }
       
   136 
       
   137 const QStringList FmFileTypeRecognizer::getFileListFromFileType( const FmFileTypeRecognizer::FileType fileType ) const
       
   138 {
       
   139     return mFileTypeMap.value( fileType, QStringList() );
       
   140 }