diff -r 95243422089a -r 491b3ed49290 filemanager/src/inc/fmfileiconprovider.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/inc/fmfileiconprovider.cpp Tue Aug 31 15:06:05 2010 +0300 @@ -0,0 +1,174 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: filemanager file icon provider source file +* +*/ + +#include "fmfileiconprovider.h" +#include "fmfiletyperecognizer.h" +#include "fmutils.h" + +#include +#include + +#include "hbicon.h" + +//#define mmcIcon ":image/qgn_prop_mmc_memc.svg" +//#define mmcNoneIcon ":image/qgn_prop_fmgr_mmc_no_sub.svg" +//#define mmcLockedIcon ":image/qgn_prop_mmc_locked.svg" +//#define phoneMemoryIcon ":image/qgn_prop_phone_memc.svg" +//#define usbMemoryIcon ":image/qgn_prop_usb_memc.svg" +//#define massMemoryIcon ":image/qgn_prop_fmgr_ms.svg" + +#define phoneMemoryIcon "qtg_large_mobile" +#define massMemoryIcon "qtg_large_mass_storage" +#define mmcIcon "qtg_large_mmc" +#define mmcNoneIcon "qtg_large_mmc_removed" +#define usbMemoryIcon "qtg_large_usb_memory" + +//TODO: UI_Update: mmcl locked icon have not provided in icon spec +// Just use original custom-defined icon +#define mmcLockedIcon ":image/qgn_prop_mmc_locked.svg" + + +#define folderIcon "qtg_large_folder" + +#define imageIcon "qtg_large_photos" +#define videoIcon "qtg_large_video" +#define toneIcon "qtg_large_tone" +#define playlistIcon "qtg_large_playlist" +#define textIcon "qtg_large_text" +#define sisxIcon "qtg_large_sisx" +#define javaIcon "qtg_large_java" +#define flashIcon "qtg_large_flash" +#define widgetIcon "qtg_large_widget" +#define weblinkIcon "qtg_large_web_link" +#define queryIcon "qtg_large_query" + +FmFileIconProvider::FmFileIconProvider() +{ + mFileTypeRecognizer = new FmFileTypeRecognizer(); +} + +FmFileIconProvider::~FmFileIconProvider() +{ + delete mFileTypeRecognizer; +} + +QIcon FmFileIconProvider::icon(const QFileInfo &info) const +{ + QIcon retIcon; + + QString filePath( info.absoluteFilePath() ); + FmFileTypeRecognizer::FileType fileType = mFileTypeRecognizer->getType( filePath ); + switch( fileType ) + { + case FmFileTypeRecognizer::FileTypeDrive: + { + FmDriverInfo driveInfo = FmUtils::queryDriverInfo( filePath ); + switch ( driveInfo.driveType() ) + { + case FmDriverInfo::EDriveTypeMassStorage: + retIcon = HbIcon( massMemoryIcon ).qicon(); + break; + case FmDriverInfo::EDriveTypeUsbMemory: + retIcon = HbIcon( usbMemoryIcon ).qicon(); + break; + case FmDriverInfo::EDriveTypeMemoryCard: + if( !( driveInfo.driveState() & FmDriverInfo::EDriveNotPresent ) ) { + retIcon = HbIcon( mmcIcon ).qicon(); + } else { + retIcon = HbIcon( mmcNoneIcon ).qicon(); + } + break; + case FmDriverInfo::EDriveTypePhoneMemory: + retIcon = HbIcon( phoneMemoryIcon ).qicon(); + break; + case FmDriverInfo::EDriveTypeNotExist: // drive not exist, let QFileIconProvider to judge icon + default: // filemanger do not provide icon for other drive types, let QFileIconProvider to judge icon + break; + } + break; + } + case FmFileTypeRecognizer::FileTypeFolder: + { + retIcon = HbIcon( folderIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeImage: + { + retIcon = HbIcon( imageIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeVideo: + { + retIcon = HbIcon( videoIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeTone: + { + retIcon = HbIcon( toneIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypePlaylist: + { + retIcon = HbIcon( playlistIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeText: + { + retIcon = HbIcon( textIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeSisx: + { + retIcon = HbIcon( sisxIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeJava: + { + retIcon = HbIcon( javaIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeFlash: + { + retIcon = HbIcon( flashIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeWidget: + { + retIcon = HbIcon( widgetIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeWebLink: + { + retIcon = HbIcon( weblinkIcon ).qicon(); + break; + } + case FmFileTypeRecognizer::FileTypeUnKnown: + { + // currently filemanger icon doc is not unified with icon name. + // for example, qtg_small_unknown qtg_large_query both means for unknown type + // but the two icon name is not the same. + retIcon = HbIcon( queryIcon ).qicon(); + break; + } + } + + // if cannot get icon, return icon from QFileIconProvider + if( retIcon.isNull() ) { + retIcon = QFileIconProvider::icon( info ); + } + return retIcon; +}