62 typeFilters.append( QString( "*.wma" ) ); |
63 typeFilters.append( QString( "*.wma" ) ); |
63 typeFilters.append( QString( "*.m4a" ) ); |
64 typeFilters.append( QString( "*.m4a" ) ); |
64 typeFilters.append( QString( "*.ott" ) ); |
65 typeFilters.append( QString( "*.ott" ) ); |
65 typeFilters.append( QString( "*.mxmf" ) ); |
66 typeFilters.append( QString( "*.mxmf" ) ); |
66 |
67 |
67 dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupSoundFiles, typeFilters )); |
68 dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupSoundFiles, |
|
69 typeFilters, FmDriveDetailsDataGroup::EDataRecognizeExtName )); |
68 |
70 |
69 typeFilters.clear(); |
71 typeFilters.clear(); |
70 typeFilters.append( QString( "*.jad" ) ); |
72 typeFilters.append( QString( "*.jad" ) ); |
71 typeFilters.append( QString( "*.jar" ) ); |
73 typeFilters.append( QString( "*.jar" ) ); |
72 |
74 |
73 dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupMidpJava, typeFilters )); |
75 dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupMidpJava, |
|
76 typeFilters, FmDriveDetailsDataGroup::EDataRecognizeExtName )); |
74 |
77 |
75 typeFilters.clear(); |
78 typeFilters.clear(); |
76 typeFilters.append( QString( "*.sis" ) ); |
79 typeFilters.append( QString( "*.sis" ) ); |
77 typeFilters.append( QString( "*.sisx" ) ); |
80 typeFilters.append( QString( "*.sisx" ) ); |
78 |
81 |
79 dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupNativeApps, typeFilters )); |
82 dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupNativeApps, |
|
83 typeFilters, FmDriveDetailsDataGroup::EDataRecognizeExtName )); |
80 |
84 |
81 typeFilters.clear(); |
85 typeFilters.clear(); |
82 typeFilters.append( QString( "*.3gp" ) ); |
86 typeFilters.append( QString( "*.3gp" ) ); |
83 typeFilters.append( QString( "*.mp4" ) ); |
87 typeFilters.append( QString( "*.mp4" ) ); |
84 typeFilters.append( QString( "*.nim" ) ); |
88 typeFilters.append( QString( "*.nim" ) ); |
85 typeFilters.append( QString( "*.rm" ) ); |
89 typeFilters.append( QString( "*.rm" ) ); |
86 typeFilters.append( QString( "*.rv" ) ); |
90 typeFilters.append( QString( "*.rv" ) ); |
87 typeFilters.append( QString( "*.wmv" ) ); |
91 typeFilters.append( QString( "*.wmv" ) ); |
88 typeFilters.append( QString( "*.3g2" ) ); |
92 typeFilters.append( QString( "*.3g2" ) ); |
|
93 typeFilters.append( QString( "*.rmvb") ); |
|
94 typeFilters.append( QString( "*.mkv" ) ); |
89 |
95 |
90 dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupVideos, typeFilters )); |
96 dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupVideos, |
|
97 typeFilters, FmDriveDetailsDataGroup::EDataRecognizeExtName )); |
91 |
98 |
92 typeFilters.clear(); |
99 typeFilters.clear(); |
93 typeFilters.append( QString( "*.doc" ) ); |
100 typeFilters.append( QString( "*.doc" ) ); |
94 typeFilters.append( QString( "*.pdf" ) ); |
101 typeFilters.append( QString( "*.pdf" ) ); |
95 typeFilters.append( QString( "*.pps" ) ); |
102 typeFilters.append( QString( "*.pps" ) ); |
96 typeFilters.append( QString( "*.ppt" ) ); |
103 typeFilters.append( QString( "*.ppt" ) ); |
97 typeFilters.append( QString( "*.txt" ) ); |
104 typeFilters.append( QString( "*.txt" ) ); |
98 typeFilters.append( QString( "*.xls" ) ); |
105 typeFilters.append( QString( "*.xls" ) ); |
99 |
106 |
100 dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupDocuments, typeFilters )); |
107 dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupDocuments, |
|
108 typeFilters, FmDriveDetailsDataGroup::EDataRecognizeExtName )); |
101 |
109 |
102 typeFilters.clear(); |
110 typeFilters.clear(); |
103 typeFilters.append( QString( "*.vcs" ) ); |
111 typeFilters.append( QString( "*.vcs" ) ); |
104 |
112 |
105 dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupCalendar, typeFilters )); |
113 dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupCalendar, |
106 |
114 typeFilters, FmDriveDetailsDataGroup::EDataRecognizeExtName )); |
|
115 |
|
116 // Add absolute path and use EDataRecognizeAbsolutePath method for Contacts |
|
117 typeFilters.clear(); |
|
118 typeFilters.append( QString( FmViewDetail_Contacts ) ); |
|
119 dataGroupList.append( new FmDriveDetailsDataGroup( FmDriveDetailsDataGroup::EGroupContacts, |
|
120 typeFilters, FmDriveDetailsDataGroup::EDataRecognizeAbsolutePath )); |
107 return dataGroupList; |
121 return dataGroupList; |
108 |
122 |
109 } |
123 } |
110 |
124 |
111 int FmDriveDetailsContent::querySizeofContent( const QString &driveName, |
125 int FmDriveDetailsContent::querySizeofContent( const QString &driveName, |
112 QList<FmDriveDetailsSize*> &detailsSizeList, volatile bool *isStopped ) |
126 QList<FmDriveDetailsSize*> &detailsSizeList, volatile bool *isStopped ) |
113 { |
127 { |
114 quint64 totalSize = 0; |
128 int err = FmErrNone; |
115 |
129 QList< FmDriveDetailsDataGroup* > dataGroupList = queryDetailsContent(); |
|
130 detailsSizeList.clear(); |
|
131 for( QList< FmDriveDetailsDataGroup* >::iterator it = dataGroupList.begin(); |
|
132 it!= dataGroupList.end(); ++it ) { |
|
133 if ( *isStopped ){ |
|
134 return FmErrCancel; |
|
135 } |
|
136 FmDriveDetailsDataGroup* driveDetailsDataGroup = *it; |
|
137 |
|
138 switch( (*it)->dataRecognizeType() ) |
|
139 { |
|
140 case FmDriveDetailsDataGroup::EDataRecognizeExtName: |
|
141 err = getDataSizeByExtName(driveName, driveDetailsDataGroup, detailsSizeList, isStopped) ; |
|
142 break; |
|
143 case FmDriveDetailsDataGroup::EDataRecognizeAbsolutePath: |
|
144 err = getDataSizeByAbsolutePath(driveName, driveDetailsDataGroup, detailsSizeList, isStopped); |
|
145 break; |
|
146 default: |
|
147 Q_ASSERT_X( false, "querySizeofContent", "please handle all recognize methods "); |
|
148 break; |
|
149 } |
|
150 |
|
151 // return if error occur. |
|
152 if( err != FmErrNone ) { |
|
153 return err; |
|
154 } |
|
155 } |
|
156 return FmErrNone; |
|
157 } |
|
158 |
|
159 int FmDriveDetailsContent::getDataSizeByExtName( const QString &driveName, |
|
160 const FmDriveDetailsDataGroup* const dataGroup, |
|
161 QList<FmDriveDetailsSize*> &detailsSizeList, volatile bool *isStopped ) |
|
162 { |
|
163 quint64 totalSize = 0; |
116 QString path; |
164 QString path; |
117 path.clear(); |
165 path.clear(); |
118 |
166 |
119 if( FmUtils::isDriveC( driveName )){ |
167 if( FmUtils::isDriveC( driveName )){ |
120 path = QString( "c:\\Data\\" ); |
168 path = QString( "c:\\Data\\" ); |
121 } |
169 } |
122 else{ |
170 else{ |
123 path = driveName; |
171 path = driveName; |
124 } |
172 } |
125 |
173 QStringList typeFilter = dataGroup->typeFilters(); |
126 QList< FmDriveDetailsDataGroup* > dataGroupList = queryDetailsContent(); |
174 QList<QDir> dirs; |
127 |
175 dirs.append( QDir( path ) ); |
128 QStringList typeFilter; |
176 while (!dirs.isEmpty()) { |
129 detailsSizeList.clear(); |
177 QFileInfoList infoList = dirs.first().entryInfoList( QDir::NoDotAndDotDot | QDir::AllEntries ); |
130 QDir dir( path ); |
178 QFileInfoList filterInforList = dirs.first().entryInfoList( typeFilter, QDir::NoDotAndDotDot | QDir::Files ); |
131 |
179 |
132 for( QList< FmDriveDetailsDataGroup* >::iterator it = dataGroupList.begin(); |
180 for ( QFileInfoList::Iterator it = filterInforList.begin(); it != filterInforList.end(); ++it ) { |
133 it!= dataGroupList.end(); ++it ){ |
181 if ( *isStopped ){ |
|
182 return FmErrCancel; |
|
183 } |
|
184 if ( it->isFile() ) { |
|
185 totalSize += it->size(); |
|
186 } |
|
187 } |
|
188 for ( QFileInfoList::Iterator it = infoList.begin(); it != infoList.end(); ++it ) { |
|
189 if ( *isStopped ){ |
|
190 return FmErrCancel; |
|
191 } |
|
192 if ( it->isDir() ) { |
|
193 dirs.append( QDir( it->absoluteFilePath() ) ); |
|
194 } |
|
195 } |
|
196 dirs.removeFirst(); |
|
197 } |
|
198 detailsSizeList.append( new FmDriveDetailsSize( dataGroup->dataGroups(), totalSize ) ); |
|
199 return FmErrNone; |
|
200 |
|
201 } |
|
202 |
|
203 int FmDriveDetailsContent::getDataSizeByAbsolutePath( const QString &driveName, |
|
204 const FmDriveDetailsDataGroup* const dataGroup, |
|
205 QList<FmDriveDetailsSize*> &detailsSizeList, volatile bool *isStopped ) |
|
206 { |
|
207 quint64 totalSize = 0; |
|
208 QStringList typeFilter = dataGroup->typeFilters(); |
|
209 |
|
210 for( QStringList::iterator it = typeFilter.begin(); |
|
211 it!= typeFilter.end(); ++it ) { |
134 if ( *isStopped ){ |
212 if ( *isStopped ){ |
135 return FmErrCancel; |
213 return FmErrCancel; |
136 } |
214 } |
137 totalSize = 0; |
215 QString driver(FmUtils::removePathSplash(FmUtils::getDriveNameFromPath(driveName))); |
138 typeFilter = ( *it )->typeFilters(); |
216 QFileInfo fileInfo(QString(driver + (*it))); |
139 |
217 if (fileInfo.exists()) { |
140 QList<QDir> dirs; |
218 totalSize += fileInfo.size(); |
141 dirs.append( QDir( path ) ); |
219 } |
142 |
220 } |
143 while (!dirs.isEmpty()) { |
221 |
144 QFileInfoList infoList = dirs.first().entryInfoList( QDir::NoDotAndDotDot | QDir::AllEntries ); |
222 detailsSizeList.append( new FmDriveDetailsSize( dataGroup->dataGroups(), totalSize ) ); |
145 QFileInfoList filterInforList = dirs.first().entryInfoList( typeFilter, QDir::NoDotAndDotDot | QDir::Files ); |
|
146 |
|
147 for ( QFileInfoList::Iterator it = filterInforList.begin(); it != filterInforList.end(); ++it ) { |
|
148 if ( *isStopped ){ |
|
149 return FmErrCancel; |
|
150 } |
|
151 |
|
152 if ( it->isFile() ) { |
|
153 totalSize += it->size(); |
|
154 } |
|
155 } |
|
156 |
|
157 for ( QFileInfoList::Iterator it = infoList.begin(); it != infoList.end(); ++it ) { |
|
158 if ( *isStopped ){ |
|
159 return FmErrCancel; |
|
160 } |
|
161 |
|
162 if ( it->isDir() ) { |
|
163 dirs.append( QDir( it->absoluteFilePath() ) ); |
|
164 } |
|
165 } |
|
166 |
|
167 dirs.removeFirst(); |
|
168 } |
|
169 |
|
170 detailsSizeList.append( new FmDriveDetailsSize( ( *it )->dataGroups(), totalSize ) ); |
|
171 } |
|
172 return FmErrNone; |
223 return FmErrNone; |
173 } |
224 } |
174 |
225 |
175 int FmFolderDetails::queryDetailOfContentList( const QStringList folderPathList,int &numofFolders, |
226 int FmFolderDetails::queryDetailOfContentList( const QStringList folderPathList,int &numofFolders, |
176 int &numofFiles, quint64 &totalSize, |
227 int &numofFiles, quint64 &totalSize, |