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 view details dialog of file manager |
|
17 */ |
|
18 |
|
19 #include "fmviewdetailsdialog.h" |
|
20 #include "fmutils.h" |
|
21 #include "fmviewdetailsitem.h" |
|
22 #include "fmdrivedetailstype.h" |
|
23 #include "fmviewmanager.h" |
|
24 |
|
25 #include <QFileInfo> |
|
26 #include <QDateTime> |
|
27 #include <QStandardItemModel> |
|
28 #include <QStringList> |
|
29 |
|
30 #include <hblabel.h> |
|
31 #include <hblistview.h> |
|
32 #include <hbaction.h> |
|
33 |
|
34 FmViewDetailsDialog::FmViewDetailsDialog( QGraphicsItem *parent ) |
|
35 : FmDialog( parent ), |
|
36 mNumofSubFolers( 0 ), |
|
37 mNumofFiles( 0 ), |
|
38 mSizeofFolder( 0 ), |
|
39 mSizeofImage( 0 ), |
|
40 mSizeofSounds( 0 ), |
|
41 mSizeofVideo( 0 ), |
|
42 mSizeofJava( 0 ), |
|
43 mSizeofNativeFiles( 0 ), |
|
44 mSizeofDocument( 0 ), |
|
45 mSizeofCalendar( 0 ), |
|
46 mSizeofContacts( 0 ) |
|
47 { |
|
48 init(); |
|
49 |
|
50 setTimeout( NoTimeout ); |
|
51 } |
|
52 |
|
53 FmViewDetailsDialog::~FmViewDetailsDialog() |
|
54 { |
|
55 if( mDataListModel ){ |
|
56 mListView->setModel( 0 ); |
|
57 delete mListView; |
|
58 } |
|
59 } |
|
60 |
|
61 void FmViewDetailsDialog::init() |
|
62 { |
|
63 setObjectName( "viewDetailsDialog" ); |
|
64 mHeaderLabel = new HbLabel( this ); |
|
65 setHeadingWidget( mHeaderLabel ); |
|
66 mHeaderLabel->setObjectName( "viewDetailsHeaderLabel" ); |
|
67 |
|
68 mListView = new HbListView( this ); |
|
69 mListView->setObjectName( "viewDetailsListView" ); |
|
70 setContentWidget( mListView ); |
|
71 |
|
72 // init QStardardItemModel as 0 row and 1 column |
|
73 mDataListModel = new QStandardItemModel( 0, 1 ); |
|
74 mListView->setModel( mDataListModel ); |
|
75 mListView->listItemPrototype()->setStretchingStyle(HbListViewItem::StretchLandscape); |
|
76 |
|
77 mOkAction = new HbAction( this ); |
|
78 mOkAction->setText( hbTrId("txt_common_button_ok") ); |
|
79 setPrimaryAction( mOkAction ); |
|
80 } |
|
81 |
|
82 void FmViewDetailsDialog::setDriveDetails( const QString &driverName ) |
|
83 { |
|
84 const QString dataDir = "C:\\data"; |
|
85 QStringList dataList; |
|
86 mHeaderLabel->setPlainText( hbTrId( "txt_fmgr_title_memory_details" ) ); |
|
87 |
|
88 quint64 sizeOfOthers = 0; |
|
89 |
|
90 FmDriverInfo driverInfo = FmUtils::queryDriverInfo( driverName ); |
|
91 QString detailString( "" ); |
|
92 |
|
93 mDataListModel->removeRows( 0, mDataListModel->rowCount() ); |
|
94 mDataListModel->insertRows( 0, EDriveDetailEntryEnd ); |
|
95 |
|
96 dataList.clear(); |
|
97 dataList << hbTrId ( "txt_fmgr_dblist_memory_name" ); |
|
98 dataList << FmUtils::fillDriveVolume( driverInfo.name(), true ) ; |
|
99 mDataListModel->setData( mDataListModel->index( EMemoryName, 0 ), dataList, Qt::DisplayRole ); |
|
100 |
|
101 dataList.clear(); |
|
102 dataList << hbTrId ( "txt_fmgr_dblist_size_memory" ); |
|
103 dataList << FmUtils::formatStorageSize( driverInfo.size() ) ; |
|
104 mDataListModel->setData( mDataListModel->index( EMemorySize, 0 ), dataList, Qt::DisplayRole ); |
|
105 |
|
106 dataList.clear(); |
|
107 dataList << hbTrId ( "txt_fmgr_dblist_free_memory" ); |
|
108 dataList << FmUtils::formatStorageSize( driverInfo.freeSize() ); |
|
109 mDataListModel->setData( mDataListModel->index( EMemoryFree, 0 ), dataList, Qt::DisplayRole ); |
|
110 |
|
111 sizeOfOthers = driverInfo.size() - driverInfo.freeSize(); |
|
112 |
|
113 // getContentDetails( dataDir ); |
|
114 |
|
115 dataList.clear(); |
|
116 dataList << hbTrId ( "Images:" ) ; |
|
117 dataList << FmUtils::formatStorageSize( mSizeofImage ); |
|
118 mDataListModel->setData( mDataListModel->index( EMemoryImages, 0 ), dataList, Qt::DisplayRole ); |
|
119 |
|
120 sizeOfOthers -= mSizeofImage; |
|
121 |
|
122 dataList.clear(); |
|
123 dataList << hbTrId ( "Sounds:" ); |
|
124 dataList << FmUtils::formatStorageSize( mSizeofSounds ); |
|
125 mDataListModel->setData( mDataListModel->index( EMemorySounds, 0 ), dataList, Qt::DisplayRole ); |
|
126 |
|
127 sizeOfOthers -= mSizeofSounds; |
|
128 |
|
129 dataList.clear(); |
|
130 dataList << hbTrId ( "Video:" ); |
|
131 dataList << FmUtils::formatStorageSize( mSizeofVideo ); |
|
132 mDataListModel->setData( mDataListModel->index( EMemoryVideos, 0 ), dataList, Qt::DisplayRole ); |
|
133 |
|
134 sizeOfOthers -= mSizeofVideo; |
|
135 |
|
136 dataList.clear(); |
|
137 dataList << hbTrId ( "Java Files:" ); |
|
138 dataList << FmUtils::formatStorageSize( mSizeofJava ); |
|
139 mDataListModel->setData( mDataListModel->index( EMemoryMidpJava, 0 ), dataList, Qt::DisplayRole ); |
|
140 |
|
141 sizeOfOthers -= mSizeofJava; |
|
142 |
|
143 dataList.clear(); |
|
144 dataList << hbTrId ( "Sis files:" ); |
|
145 dataList << FmUtils::formatStorageSize( mSizeofNativeFiles ); |
|
146 mDataListModel->setData( mDataListModel->index( EMemoryNativeApps, 0 ), dataList, Qt::DisplayRole ); |
|
147 |
|
148 sizeOfOthers -= mSizeofNativeFiles; |
|
149 |
|
150 dataList.clear(); |
|
151 dataList << hbTrId ( "Documents:" ); |
|
152 dataList << FmUtils::formatStorageSize( mSizeofDocument ); |
|
153 mDataListModel->setData( mDataListModel->index( EMemoryDocuments, 0 ), dataList, Qt::DisplayRole ); |
|
154 |
|
155 sizeOfOthers -= mSizeofDocument; |
|
156 |
|
157 dataList.clear(); |
|
158 dataList << hbTrId ( "Calendars:" ); |
|
159 dataList << FmUtils::formatStorageSize( mSizeofCalendar ); |
|
160 mDataListModel->setData( mDataListModel->index( EMemoryCalendar, 0 ), dataList, Qt::DisplayRole ); |
|
161 |
|
162 sizeOfOthers -= mSizeofCalendar; |
|
163 |
|
164 dataList.clear(); |
|
165 dataList << hbTrId ( "Contacts:" ); |
|
166 dataList << FmUtils::formatStorageSize( mSizeofContacts ); |
|
167 mDataListModel->setData( mDataListModel->index( EMemoryContacts, 0 ), dataList, Qt::DisplayRole ); |
|
168 |
|
169 sizeOfOthers -= mSizeofContacts; |
|
170 |
|
171 dataList.clear(); |
|
172 dataList << hbTrId ( "Others:" ); |
|
173 dataList << FmUtils::formatStorageSize( sizeOfOthers ); |
|
174 mDataListModel->setData( mDataListModel->index( EMemoryOthers, 0 ), dataList, Qt::DisplayRole ); |
|
175 } |
|
176 |
|
177 void FmViewDetailsDialog::setFolderDetails( const QString &folderPath ) |
|
178 { |
|
179 mHeaderLabel->setPlainText( hbTrId( "txt_fmgr_title_folder_details" ) ); |
|
180 |
|
181 QString detailString( "" ); |
|
182 QStringList dataList; |
|
183 QFileInfo fileInfo( folderPath ); |
|
184 |
|
185 mDataListModel->removeRows( 0, mDataListModel->rowCount() ); |
|
186 mDataListModel->insertRows( 0, EFolderDetailEntryEnd ); |
|
187 |
|
188 dataList << hbTrId ( "txt_fmgr_dblist_name_folder" ); |
|
189 dataList << fileInfo.fileName(); |
|
190 mDataListModel->setData( mDataListModel->index( EFolderName, 0 ), dataList, Qt::DisplayRole ); |
|
191 |
|
192 QDateTime modifiedDateTime = fileInfo.lastModified (); |
|
193 QDate modifiedDate = modifiedDateTime.date(); |
|
194 QTime modifiedTime = modifiedDateTime.time(); |
|
195 |
|
196 dataList.clear(); |
|
197 dataList << hbTrId ( "txt_fmgr_dblist_date_folder" ); |
|
198 dataList << modifiedDate.toString(); |
|
199 mDataListModel->setData( mDataListModel->index( EModifiedDate, 0 ), dataList, Qt::DisplayRole ); |
|
200 |
|
201 dataList.clear(); |
|
202 dataList << hbTrId ( "txt_fmgr_dblist_time_folder" ); |
|
203 dataList << modifiedTime.toString(); |
|
204 mDataListModel->setData( mDataListModel->index( EModifiedTime, 0 ), dataList, Qt::DisplayRole ); |
|
205 |
|
206 dataList.clear(); |
|
207 dataList << hbTrId ( "txt_fmgr_dblist_size_folder" ); |
|
208 dataList << FmUtils::formatStorageSize( mSizeofFolder ); |
|
209 mDataListModel->setData( mDataListModel->index( EFolderSize, 0 ), dataList, Qt::DisplayRole ); |
|
210 |
|
211 dataList.clear(); |
|
212 dataList << hbTrId ( "txt_fmgr_dblist_subfolders" ); |
|
213 dataList << QString::number( mNumofSubFolers ); |
|
214 mDataListModel->setData( mDataListModel->index( ENumofSubFolders, 0 ), dataList, Qt::DisplayRole ); |
|
215 |
|
216 dataList.clear(); |
|
217 dataList << hbTrId ( "txt_fmgr_dblist_files" ); |
|
218 dataList << QString::number( mNumofFiles ); |
|
219 mDataListModel->setData( mDataListModel->index( ENumofFiles, 0 ), dataList, Qt::DisplayRole ); |
|
220 } |
|
221 |
|
222 void FmViewDetailsDialog::setFileDetails( const QString &filePath ) |
|
223 { |
|
224 mHeaderLabel->setPlainText( hbTrId( "txt_fmgr_title_file_details") ); |
|
225 |
|
226 QString detailString( "" ); |
|
227 QStringList dataList; |
|
228 |
|
229 QFileInfo fileInfo( filePath ); |
|
230 |
|
231 mDataListModel->removeRows( 0, mDataListModel->rowCount() ); |
|
232 mDataListModel->insertRows( 0, EFileDetailEntryEnd ); |
|
233 |
|
234 dataList << hbTrId ( "txt_fmgr_dblist_name_file" ); |
|
235 dataList << fileInfo.fileName(); |
|
236 mDataListModel->setData( mDataListModel->index( EFileName, 0 ), dataList, Qt::DisplayRole ); |
|
237 |
|
238 dataList.clear(); |
|
239 dataList << hbTrId ( "txt_fmgr_dblist_type_file" ); |
|
240 |
|
241 |
|
242 |
|
243 QString fileType = FmUtils::getFileType( filePath ); |
|
244 if( fileType.isEmpty() ){ |
|
245 fileType.append( fileInfo.suffix() ); |
|
246 } |
|
247 dataList << fileType; |
|
248 mDataListModel->setData( mDataListModel->index( EFileType, 0 ), dataList, Qt::DisplayRole ); |
|
249 |
|
250 QDateTime modifiedDateTime = fileInfo.lastModified (); |
|
251 QDate modifiedDate = modifiedDateTime.date(); |
|
252 QTime modifiedTime = modifiedDateTime.time(); |
|
253 |
|
254 dataList.clear(); |
|
255 dataList << hbTrId ( "txt_fmgr_dblist_date_file" ); |
|
256 dataList << modifiedDate.toString(); |
|
257 mDataListModel->setData( mDataListModel->index( EFileModifiedDate, 0 ), dataList, Qt::DisplayRole ); |
|
258 |
|
259 dataList.clear(); |
|
260 dataList << hbTrId ( "txt_fmgr_dblist_time_file" ); |
|
261 dataList << modifiedTime.toString(); |
|
262 mDataListModel->setData( mDataListModel->index( EFileModifiedTime, 0 ), dataList, Qt::DisplayRole ); |
|
263 |
|
264 dataList.clear(); |
|
265 dataList << hbTrId ( "txt_fmgr_dblist_size_file" ); |
|
266 dataList << FmUtils::formatStorageSize( fileInfo.size() ); |
|
267 mDataListModel->setData( mDataListModel->index( EFileSize, 0 ), dataList, Qt::DisplayRole ); |
|
268 } |
|
269 |
|
270 void FmViewDetailsDialog::setNumofSubfolders( int numofSubFolders, int numofFiles, quint64 sizeofFolder ) |
|
271 { |
|
272 mNumofSubFolers = 0; |
|
273 mNumofFiles = 0; |
|
274 mSizeofFolder = 0; |
|
275 |
|
276 mNumofSubFolers = numofSubFolders; |
|
277 mNumofFiles = numofFiles; |
|
278 mSizeofFolder = sizeofFolder; |
|
279 } |
|
280 |
|
281 void FmViewDetailsDialog::setSizeofContent( QList<FmDriveDetailsSize*> detailsSizeList ) |
|
282 { |
|
283 mSizeofImage = 0; |
|
284 mSizeofSounds = 0; |
|
285 mSizeofVideo = 0; |
|
286 mSizeofJava = 0; |
|
287 mSizeofNativeFiles = 0; |
|
288 mSizeofDocument = 0; |
|
289 mSizeofCalendar = 0; |
|
290 mSizeofContacts = 0; |
|
291 |
|
292 for( QList< FmDriveDetailsSize* >::const_iterator it = detailsSizeList.begin(); |
|
293 it!= detailsSizeList.end(); ++it ){ |
|
294 |
|
295 switch( ( *it )->dataType() ){ |
|
296 case FmDriveDetailsSize::ETypeImages: |
|
297 { |
|
298 mSizeofImage = ( *it )->size(); |
|
299 break; |
|
300 } |
|
301 case FmDriveDetailsSize::ETypeSoundFiles: |
|
302 { |
|
303 mSizeofSounds = ( *it )->size(); |
|
304 break; |
|
305 } |
|
306 case FmDriveDetailsSize::ETypeMidpJava: |
|
307 { |
|
308 mSizeofJava = ( *it )->size(); |
|
309 break; |
|
310 } |
|
311 case FmDriveDetailsSize::ETypeNativeApps: |
|
312 { |
|
313 mSizeofNativeFiles = ( *it )->size(); |
|
314 break; |
|
315 } |
|
316 case FmDriveDetailsSize::ETypeVideos: |
|
317 { |
|
318 mSizeofVideo = ( *it )->size(); |
|
319 break; |
|
320 } |
|
321 case FmDriveDetailsSize::ETypeDocuments: |
|
322 { |
|
323 mSizeofDocument = ( *it )->size(); |
|
324 break; |
|
325 } |
|
326 case FmDriveDetailsSize::ETypeCalendar: |
|
327 { |
|
328 mSizeofCalendar = ( *it )->size(); |
|
329 break; |
|
330 } |
|
331 case FmDriveDetailsSize::ETypeContacts: |
|
332 { |
|
333 mSizeofContacts = ( *it )->size(); |
|
334 break; |
|
335 } |
|
336 default: |
|
337 break; |
|
338 } |
|
339 } |
|
340 } |
|
341 |
|
342 HbAction *FmViewDetailsDialog::executeDialog( FmDialog *dialog, const QString &associatedDrives ) |
|
343 { |
|
344 for( int i = 0; i < associatedDrives.length(); i++ ) { |
|
345 QString drive( associatedDrives[i] + QString( ":/" ) ); |
|
346 if( !FmUtils::isDriveAvailable( drive ) ) { |
|
347 FM_LOG( "executeDialog return 0_ " + associatedDrives ); |
|
348 return 0; |
|
349 } |
|
350 } |
|
351 |
|
352 FmDlgCloseUnit dlgCloseUnit( dialog ); |
|
353 dlgCloseUnit.addAssociatedDrives( associatedDrives ); |
|
354 |
|
355 FmViewManager::viewManager()->addDlgCloseUnit( &dlgCloseUnit ); |
|
356 FM_LOG( " Exec Dialog start " ); |
|
357 HbAction* action = dialog->exec(); |
|
358 FM_LOG( " Exec Dialog end " ); |
|
359 FmViewManager::viewManager()->removeDlgCloseUnit( &dlgCloseUnit ); |
|
360 return action; |
|
361 } |
|
362 |
|
363 void FmViewDetailsDialog::showDriveViewDetailsDialog( const QString &driverName, |
|
364 QList<FmDriveDetailsSize*> detailsSizeList, const QString& associatedDrives ) |
|
365 { |
|
366 FM_LOG( "showDriveViewDetailsDialog_" + associatedDrives ); |
|
367 FmViewDetailsDialog viewDetailsDialog; |
|
368 |
|
369 viewDetailsDialog.setSizeofContent( detailsSizeList ); |
|
370 viewDetailsDialog.setDriveDetails( driverName ); |
|
371 |
|
372 //viewDetailsDialog.exec(); |
|
373 executeDialog( &viewDetailsDialog , associatedDrives ); |
|
374 } |
|
375 |
|
376 void FmViewDetailsDialog::showFolderViewDetailsDialog( const QString &folderPath, |
|
377 int numofSubFolders, int numofFiles, quint64 sizeofFolder, const QString& associatedDrives ) |
|
378 { |
|
379 FmViewDetailsDialog viewDetailsDialog; |
|
380 |
|
381 viewDetailsDialog.setNumofSubfolders( numofSubFolders, numofFiles, sizeofFolder ); |
|
382 viewDetailsDialog.setFolderDetails( folderPath ); |
|
383 |
|
384 //viewDetailsDialog.exec(); |
|
385 executeDialog( &viewDetailsDialog , associatedDrives ); |
|
386 } |
|
387 |
|
388 void FmViewDetailsDialog::showFileViewDetailsDialog( const QString &filePath, const QString& associatedDrives ) |
|
389 { |
|
390 FmViewDetailsDialog viewDetailsDialog; |
|
391 viewDetailsDialog.setFileDetails( filePath ); |
|
392 |
|
393 //viewDetailsDialog.exec(); |
|
394 executeDialog( &viewDetailsDialog , associatedDrives ); |
|
395 } |
|