14 * Description: filemanager file icon provider source file |
14 * Description: filemanager file icon provider source file |
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 #include "fmfileiconprovider.h" |
18 #include "fmfileiconprovider.h" |
|
19 #include "fmfiletyperecognizer.h" |
19 #include "fmutils.h" |
20 #include "fmutils.h" |
20 |
21 |
21 #include <QDir> |
22 #include <QDir> |
22 #include <QFileInfo> |
23 #include <QFileInfo> |
23 |
24 |
24 #define mmcIcon ":image/qgn_prop_mmc_memc.svg" |
25 #include "hbicon.h" |
25 #define mmcNoneIcon ":image/qgn_prop_fmgr_mmc_no_sub.svg" |
26 |
|
27 //#define mmcIcon ":image/qgn_prop_mmc_memc.svg" |
|
28 //#define mmcNoneIcon ":image/qgn_prop_fmgr_mmc_no_sub.svg" |
|
29 //#define mmcLockedIcon ":image/qgn_prop_mmc_locked.svg" |
|
30 //#define phoneMemoryIcon ":image/qgn_prop_phone_memc.svg" |
|
31 //#define usbMemoryIcon ":image/qgn_prop_usb_memc.svg" |
|
32 //#define massMemoryIcon ":image/qgn_prop_fmgr_ms.svg" |
|
33 |
|
34 #define phoneMemoryIcon "qtg_large_mobile" |
|
35 #define massMemoryIcon "qtg_large_mass_storage" |
|
36 #define mmcIcon "qtg_large_mmc" |
|
37 #define mmcNoneIcon "qtg_large_mmc_removed" |
|
38 #define usbMemoryIcon "qtg_large_usb_memory" |
|
39 |
|
40 //TODO: UI_Update: mmcl locked icon have not provided in icon spec |
|
41 // Just use original custom-defined icon |
26 #define mmcLockedIcon ":image/qgn_prop_mmc_locked.svg" |
42 #define mmcLockedIcon ":image/qgn_prop_mmc_locked.svg" |
27 #define phoneMemoryIcon ":image/qgn_prop_phone_memc.svg" |
43 |
28 #define usbMemoryIcon ":image/qgn_prop_usb_memc.svg" |
44 |
29 #define massMemoryIcon ":image/qgn_prop_fmgr_ms.svg" |
45 #define folderIcon "qtg_large_folder" |
|
46 |
|
47 #define imageIcon "qtg_large_photos" |
|
48 #define videoIcon "qtg_large_video" |
|
49 #define toneIcon "qtg_large_tone" |
|
50 #define playlistIcon "qtg_large_playlist" |
|
51 #define textIcon "qtg_large_text" |
|
52 #define sisxIcon "qtg_large_sisx" |
|
53 #define javaIcon "qtg_large_java" |
|
54 #define flashIcon "qtg_large_flash" |
|
55 #define widgetIcon "qtg_large_widget" |
|
56 #define weblinkIcon "qtg_large_web_link" |
|
57 #define queryIcon "qtg_large_query" |
30 |
58 |
31 FmFileIconProvider::FmFileIconProvider() |
59 FmFileIconProvider::FmFileIconProvider() |
32 { |
60 { |
33 |
61 mFileTypeRecognizer = new FmFileTypeRecognizer(); |
34 } |
62 } |
35 |
63 |
36 FmFileIconProvider::~FmFileIconProvider() |
64 FmFileIconProvider::~FmFileIconProvider() |
37 { |
65 { |
|
66 delete mFileTypeRecognizer; |
38 } |
67 } |
39 |
68 |
40 QIcon FmFileIconProvider::icon(const QFileInfo &info) const |
69 QIcon FmFileIconProvider::icon(const QFileInfo &info) const |
41 { |
70 { |
42 QString filePath( info.path() ); |
71 QIcon retIcon; |
43 if( FmUtils::isDrive( filePath ) ) { |
72 |
44 FmDriverInfo::DriveState driveState = FmUtils::queryDriverInfo( filePath ).driveState(); |
73 QString filePath( info.absoluteFilePath() ); |
45 if( driveState & FmDriverInfo::EDriveAvailable ){ |
74 FmFileTypeRecognizer::FileType fileType = mFileTypeRecognizer->getType( filePath ); |
46 if( driveState & FmDriverInfo::EDriveRemovable ) { |
75 switch( fileType ) |
47 if( driveState & FmDriverInfo::EDriveMassStorage ) { |
76 { |
48 // Mass Storage |
77 case FmFileTypeRecognizer::FileTypeDrive: |
49 return QIcon( massMemoryIcon ); |
78 { |
50 } |
79 FmDriverInfo driveInfo = FmUtils::queryDriverInfo( filePath ); |
51 else{ |
80 switch ( driveInfo.driveType() ) |
52 //Memory Card |
81 { |
53 return QIcon( mmcIcon ); |
82 case FmDriverInfo::EDriveTypeMassStorage: |
54 } |
83 retIcon = HbIcon( massMemoryIcon ).qicon(); |
55 } else{ |
84 break; |
56 //Phone Memory |
85 case FmDriverInfo::EDriveTypeUsbMemory: |
57 return QIcon( phoneMemoryIcon ); |
86 retIcon = HbIcon( usbMemoryIcon ).qicon(); |
|
87 break; |
|
88 case FmDriverInfo::EDriveTypeMemoryCard: |
|
89 if( !( driveInfo.driveState() & FmDriverInfo::EDriveNotPresent ) ) { |
|
90 retIcon = HbIcon( mmcIcon ).qicon(); |
|
91 } else { |
|
92 retIcon = HbIcon( mmcNoneIcon ).qicon(); |
|
93 } |
|
94 break; |
|
95 case FmDriverInfo::EDriveTypePhoneMemory: |
|
96 retIcon = HbIcon( phoneMemoryIcon ).qicon(); |
|
97 break; |
|
98 case FmDriverInfo::EDriveTypeNotExist: // drive not exist, let QFileIconProvider to judge icon |
|
99 default: // filemanger do not provide icon for other drive types, let QFileIconProvider to judge icon |
|
100 break; |
|
101 } |
|
102 break; |
58 } |
103 } |
59 } else if( driveState & FmDriverInfo::EDriveLocked ) { |
104 case FmFileTypeRecognizer::FileTypeFolder: |
60 return QIcon( mmcLockedIcon ); |
105 { |
61 } else if( driveState & FmDriverInfo::EDriveCorrupted ) { |
106 retIcon = HbIcon( folderIcon ).qicon(); |
62 return QIcon( mmcNoneIcon ); |
107 break; |
63 } else if( driveState & FmDriverInfo::EDriveNotPresent ){ |
108 } |
64 return QIcon( mmcNoneIcon ); |
109 case FmFileTypeRecognizer::FileTypeImage: |
65 } else { |
110 { |
66 return QIcon( mmcNoneIcon ); |
111 retIcon = HbIcon( imageIcon ).qicon(); |
|
112 break; |
|
113 } |
|
114 case FmFileTypeRecognizer::FileTypeVideo: |
|
115 { |
|
116 retIcon = HbIcon( videoIcon ).qicon(); |
|
117 break; |
|
118 } |
|
119 case FmFileTypeRecognizer::FileTypeTone: |
|
120 { |
|
121 retIcon = HbIcon( toneIcon ).qicon(); |
|
122 break; |
|
123 } |
|
124 case FmFileTypeRecognizer::FileTypePlaylist: |
|
125 { |
|
126 retIcon = HbIcon( playlistIcon ).qicon(); |
|
127 break; |
|
128 } |
|
129 case FmFileTypeRecognizer::FileTypeText: |
|
130 { |
|
131 retIcon = HbIcon( textIcon ).qicon(); |
|
132 break; |
|
133 } |
|
134 case FmFileTypeRecognizer::FileTypeSisx: |
|
135 { |
|
136 retIcon = HbIcon( sisxIcon ).qicon(); |
|
137 break; |
|
138 } |
|
139 case FmFileTypeRecognizer::FileTypeJava: |
|
140 { |
|
141 retIcon = HbIcon( javaIcon ).qicon(); |
|
142 break; |
|
143 } |
|
144 case FmFileTypeRecognizer::FileTypeFlash: |
|
145 { |
|
146 retIcon = HbIcon( flashIcon ).qicon(); |
|
147 break; |
|
148 } |
|
149 case FmFileTypeRecognizer::FileTypeWidget: |
|
150 { |
|
151 retIcon = HbIcon( widgetIcon ).qicon(); |
|
152 break; |
|
153 } |
|
154 case FmFileTypeRecognizer::FileTypeWebLink: |
|
155 { |
|
156 retIcon = HbIcon( weblinkIcon ).qicon(); |
|
157 break; |
|
158 } |
|
159 case FmFileTypeRecognizer::FileTypeUnKnown: |
|
160 { |
|
161 // currently filemanger icon doc is not unified with icon name. |
|
162 // for example, qtg_small_unknown qtg_large_query both means for unknown type |
|
163 // but the two icon name is not the same. |
|
164 retIcon = HbIcon( queryIcon ).qicon(); |
|
165 break; |
|
166 } |
67 } |
167 } |
68 } else { |
168 |
69 return QFileIconProvider::icon( info ); |
169 // if cannot get icon, return icon from QFileIconProvider |
|
170 if( retIcon.isNull() ) { |
|
171 retIcon = QFileIconProvider::icon( info ); |
70 } |
172 } |
|
173 return retIcon; |
71 } |
174 } |