40 |
40 |
41 // ------------------------------------------------------------------------------------------------- |
41 // ------------------------------------------------------------------------------------------------- |
42 // QMPXVideoPlaybackFileDetailsWidget::QMPXVideoPlaybackFileDetailsWidget |
42 // QMPXVideoPlaybackFileDetailsWidget::QMPXVideoPlaybackFileDetailsWidget |
43 // ------------------------------------------------------------------------------------------------- |
43 // ------------------------------------------------------------------------------------------------- |
44 // |
44 // |
45 QMPXVideoPlaybackFileDetailsWidget::QMPXVideoPlaybackFileDetailsWidget( |
45 QMPXVideoPlaybackFileDetailsWidget::QMPXVideoPlaybackFileDetailsWidget( |
46 QMPXVideoPlaybackControlsController* controller ) |
46 QMPXVideoPlaybackControlsController* controller ) |
47 : mController( controller ) |
47 : mController( controller ) |
48 , mListWidget( 0 ) |
48 , mListWidget( 0 ) |
49 , mFileDetailsUpdated( false ) |
49 , mFileDetailsUpdated( false ) |
50 { |
50 { |
116 value = value % 60; |
116 value = value % 60; |
117 QString sec = locale.toString( value ); |
117 QString sec = locale.toString( value ); |
118 |
118 |
119 addItemToListWidget( |
119 addItemToListWidget( |
120 hbTrId( "txt_videos_list_duration" ), |
120 hbTrId( "txt_videos_list_duration" ), |
121 hbTrId( "txt_videos_list_l1l2l3" ).arg( hour ).arg( min ).arg( sec ) ); |
121 hbTrId( "txt_videos_list_l1l2l3" ).arg( hour ).arg( min ).arg( sec ) ); |
122 } |
122 } |
123 |
123 |
124 // |
124 // |
125 // Date/Time |
125 // Date/Time |
126 // |
126 // |
127 makeDateTimeItem( details ); |
127 makeDateTimeItem( details ); |
128 |
128 |
129 // |
129 // |
130 // Location |
130 // Location |
131 // |
131 // |
132 addItemToListWidget( hbTrId( "txt_videos_list_location" ), details->mLocation ); |
132 addItemToListWidget( hbTrId( "txt_videos_list_location" ), details->mLocation ); |
133 |
133 |
134 // |
134 // |
135 // Author |
135 // Author |
136 // |
136 // |
137 addItemToListWidget( hbTrId( "txt_videos_list_author" ), details->mArtist ); |
137 addItemToListWidget( hbTrId( "txt_videos_list_author" ), details->mArtist ); |
138 |
138 |
139 // |
139 // |
140 // Copyright |
140 // Copyright |
141 // |
141 // |
142 addItemToListWidget( hbTrId( "txt_videos_list_copyright" ), details->mCopyright ); |
142 addItemToListWidget( hbTrId( "txt_videos_list_copyright" ), details->mCopyright ); |
143 |
143 |
144 // |
144 // |
145 // Language |
145 // Language |
146 // |
146 // |
147 addItemToListWidget( hbTrId( "txt_videos_list_language" ), details->mLanguage ); |
147 addItemToListWidget( hbTrId( "txt_videos_list_language" ), details->mLanguage ); |
148 |
148 |
149 // |
149 // |
150 // Keywords |
150 // Keywords |
151 // |
151 // |
152 addItemToListWidget( hbTrId( "txt_videos_list_keywords" ), details->mKeywords ); |
152 addItemToListWidget( hbTrId( "txt_videos_list_keywords" ), details->mKeywords ); |
153 |
153 |
154 // |
154 // |
155 // Size |
155 // Size |
156 // |
156 // |
157 makeSizeItem( details ); |
157 makeSizeItem( details ); |
161 // |
161 // |
162 if ( details->mVideoEnabled ) |
162 if ( details->mVideoEnabled ) |
163 { |
163 { |
164 QString resolution = hbTrId( "txt_videos_list_l1l2" ) |
164 QString resolution = hbTrId( "txt_videos_list_l1l2" ) |
165 .arg( locale.toString( details->mVideoWidth ) ) |
165 .arg( locale.toString( details->mVideoWidth ) ) |
166 .arg( locale.toString( details->mVideoHeight ) ); |
166 .arg( locale.toString( details->mVideoHeight ) ); |
167 addItemToListWidget( hbTrId( "txt_videos_list_resolution" ), resolution ); |
167 addItemToListWidget( hbTrId( "txt_videos_list_resolution" ), resolution ); |
168 } |
168 } |
169 |
169 |
170 // |
170 // |
171 // Format |
171 // Format |
172 // |
172 // |
173 addItemToListWidget( hbTrId( "txt_videos_list_format" ), details->mMimeType ); |
173 addItemToListWidget( hbTrId( "txt_videos_list_format" ), details->mMimeType ); |
174 |
174 |
175 // |
175 // |
176 // Bitrate |
176 // Bitrate |
177 // |
177 // |
178 makeBitRateItem( details ); |
178 makeBitRateItem( details ); |
232 // ------------------------------------------------------------------------------------------------- |
232 // ------------------------------------------------------------------------------------------------- |
233 // QMPXVideoPlaybackFileDetailsWidget::makeTitleItem |
233 // QMPXVideoPlaybackFileDetailsWidget::makeTitleItem |
234 // ------------------------------------------------------------------------------------------------- |
234 // ------------------------------------------------------------------------------------------------- |
235 // |
235 // |
236 void QMPXVideoPlaybackFileDetailsWidget::makeTitleItem( QMPXVideoPlaybackViewFileDetails* details ) |
236 void QMPXVideoPlaybackFileDetailsWidget::makeTitleItem( QMPXVideoPlaybackViewFileDetails* details ) |
237 { |
237 { |
238 MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget::makeTitleItem()")); |
238 MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget::makeTitleItem()")); |
239 |
239 |
240 // |
240 // |
241 // Title should be the first item in file details list |
241 // Title should be the first item in file details list |
242 // |
242 // |
243 if ( mController->viewMode() == EAudioOnlyView ) |
243 if ( mController->viewMode() == EAudioOnlyView ) |
244 { |
244 { |
245 // |
245 // |
246 // show the title for audio-only view |
246 // show the title for audio-only view |
247 // |
247 // |
248 if ( mListWidget->count() == 0 || ! mListWidget->item( 0 )->text().contains( "Title", Qt::CaseInsensitive ) ) |
248 if ( mListWidget->count() == 0 || ! mListWidget->item( 0 )->text().contains( "Title", Qt::CaseInsensitive ) ) |
249 { |
249 { |
250 QString title = details->mTitle; |
250 QString title = details->mTitle; |
251 |
251 |
252 if ( title.count() == 0 ) |
252 if ( title.count() == 0 ) |
253 { |
253 { |
254 // |
254 // |
255 // If title is not available, show clip name |
255 // If title is not available, show clip name |
256 // |
256 // |
257 QFileInfo fileInfo( details->mClipName ); |
257 QFileInfo fileInfo( details->mClipName ); |
258 title = fileInfo.baseName (); |
258 title = fileInfo.completeBaseName(); |
259 } |
259 } |
260 |
260 |
261 // |
261 // |
262 // populate Title and its associated text |
262 // populate Title and its associated text |
263 // |
263 // |
281 // ------------------------------------------------------------------------------------------------- |
281 // ------------------------------------------------------------------------------------------------- |
282 // QMPXVideoPlaybackFileDetailsWidget::makeSizeItem |
282 // QMPXVideoPlaybackFileDetailsWidget::makeSizeItem |
283 // ------------------------------------------------------------------------------------------------- |
283 // ------------------------------------------------------------------------------------------------- |
284 // |
284 // |
285 void QMPXVideoPlaybackFileDetailsWidget::makeSizeItem( QMPXVideoPlaybackViewFileDetails* details ) |
285 void QMPXVideoPlaybackFileDetailsWidget::makeSizeItem( QMPXVideoPlaybackViewFileDetails* details ) |
286 { |
286 { |
287 if ( details->mPlaybackMode == EMPXVideoLocal || |
287 if ( details->mPlaybackMode == EMPXVideoLocal || |
288 details->mPlaybackMode == EMPXVideoProgressiveDownload ) |
288 details->mPlaybackMode == EMPXVideoProgressiveDownload ) |
289 { |
289 { |
290 QFileInfo fileInfo( details->mClipName ); |
290 QFileInfo fileInfo( details->mClipName ); |
291 |
291 |
292 // |
292 // |
293 // to prevent overflow, get an unsigned value of file size |
293 // to prevent overflow, get an unsigned value of file size |
294 // |
294 // |
295 ulong fileSize = fileInfo.size(); |
295 ulong fileSize = fileInfo.size(); |
296 |
296 |
297 // |
297 // |
298 // convert file size to KB, MB, GB accordingly |
298 // convert file size to KB, MB, GB accordingly |
299 // |
299 // |
300 if ( fileSize > 0 ) |
300 if ( fileSize > 0 ) |
301 { |
301 { |
327 } |
327 } |
328 |
328 |
329 int temp = size * 10; |
329 int temp = size * 10; |
330 size = (float)temp / 10; |
330 size = (float)temp / 10; |
331 |
331 |
332 addItemToListWidget( |
332 addItemToListWidget( |
333 hbTrId( "txt_videos_list_file_size" ), scale.arg( locale.toString( size ) ) ); |
333 hbTrId( "txt_videos_list_file_size" ), scale.arg( locale.toString( size ) ) ); |
334 } |
334 } |
335 } |
335 } |
336 } |
336 } |
337 |
337 |
338 // ------------------------------------------------------------------------------------------------- |
338 // ------------------------------------------------------------------------------------------------- |
339 // QMPXVideoPlaybackFileDetailsWidget::makeBitRateItem |
339 // QMPXVideoPlaybackFileDetailsWidget::makeBitRateItem |
340 // ------------------------------------------------------------------------------------------------- |
340 // ------------------------------------------------------------------------------------------------- |
341 // |
341 // |
342 void QMPXVideoPlaybackFileDetailsWidget::makeBitRateItem( QMPXVideoPlaybackViewFileDetails* details ) |
342 void QMPXVideoPlaybackFileDetailsWidget::makeBitRateItem( QMPXVideoPlaybackViewFileDetails* details ) |
343 { |
343 { |
344 if ( details->mBitRate > 0 ) |
344 if ( details->mBitRate > 0 ) |
345 { |
345 { |
346 HbExtendedLocale locale = HbExtendedLocale::system(); |
346 HbExtendedLocale locale = HbExtendedLocale::system(); |
347 |
347 |
348 float bitrate = details->mBitRate; |
348 float bitrate = details->mBitRate; |
351 |
351 |
352 if ( bitrate > KILOBYTE ) |
352 if ( bitrate > KILOBYTE ) |
353 { |
353 { |
354 bitrate /= KILOBYTE; |
354 bitrate /= KILOBYTE; |
355 } |
355 } |
356 |
356 |
357 if ( bitrate > KILOBYTE ) |
357 if ( bitrate > KILOBYTE ) |
358 { |
358 { |
359 bitrate /= KILOBYTE; |
359 bitrate /= KILOBYTE; |
360 scale = hbTrId( "txt_videos_list_l1_mbps" ); |
360 scale = hbTrId( "txt_videos_list_l1_mbps" ); |
361 } |
361 } |
362 |
362 |
363 int temp = bitrate * 10; |
363 int temp = bitrate * 10; |
364 bitrate = (float)temp / 10; |
364 bitrate = (float)temp / 10; |
365 |
365 |
366 addItemToListWidget( |
366 addItemToListWidget( |
367 hbTrId( "txt_videos_list_bitrate" ), scale.arg( locale.toString( bitrate ) ) ); |
367 hbTrId( "txt_videos_list_bitrate" ), scale.arg( locale.toString( bitrate ) ) ); |
368 } |
368 } |
369 } |
369 } |
370 |
370 |
371 // ------------------------------------------------------------------------------------------------- |
371 // ------------------------------------------------------------------------------------------------- |
372 // QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget |
372 // QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget |
373 // ------------------------------------------------------------------------------------------------- |
373 // ------------------------------------------------------------------------------------------------- |
374 // |
374 // |
375 void QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget( QString item, QString text ) |
375 void QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget( QString item, QString text ) |
376 { |
376 { |
377 MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget")); |
377 MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget")); |
378 |
378 |
379 if ( text.count() > 0 ) |
379 if ( text.count() > 0 ) |
380 { |
380 { |
381 MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget( %s %s )"), |
381 MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget( %s %s )"), |
382 item.data(), text.data() ); |
382 item.data(), text.data() ); |
383 |
383 |
384 HbListWidgetItem* listWidgetItem = new HbListWidgetItem(); |
384 HbListWidgetItem* listWidgetItem = new HbListWidgetItem(); |
385 listWidgetItem->setText( item ); |
385 listWidgetItem->setText( item ); |
386 listWidgetItem->setSecondaryText( text ); |
386 listWidgetItem->setSecondaryText( text ); |
387 |
387 |
388 mListWidget->addItem( listWidgetItem ); |
388 mListWidget->addItem( listWidgetItem ); |
389 } |
389 } |
390 } |
390 } |
391 |
391 |
392 // ------------------------------------------------------------------------------------------------- |
392 // ------------------------------------------------------------------------------------------------- |
393 // QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem |
393 // QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem |
394 // ------------------------------------------------------------------------------------------------- |
394 // ------------------------------------------------------------------------------------------------- |
395 // |
395 // |
396 void QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem( QMPXVideoPlaybackViewFileDetails* details ) |
396 void QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem( QMPXVideoPlaybackViewFileDetails* details ) |
397 { |
397 { |
398 MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem")); |
398 MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem")); |
399 |
399 |
400 // |
400 // |
401 // attempt to get 'created' and 'last modified' date/time from metadata first, |
401 // attempt to get 'created' and 'last modified' date/time from metadata first, |
402 // if it's not available, then get it from the file system |
402 // if it's not available, then get it from the file system |
403 // |
403 // |
404 |
404 |
405 if ( details->mPlaybackMode == EMPXVideoLocal || |
405 if ( details->mPlaybackMode == EMPXVideoLocal || |
406 details->mPlaybackMode == EMPXVideoProgressiveDownload ) |
406 details->mPlaybackMode == EMPXVideoProgressiveDownload ) |
407 { |
407 { |
408 QDateTime dateTime; |
408 QDateTime dateTime; |
409 QFileInfo fileInfo( details->mClipName ); |
409 QFileInfo fileInfo( details->mClipName ); |
410 HbExtendedLocale locale = HbExtendedLocale::system(); |
410 HbExtendedLocale locale = HbExtendedLocale::system(); |
411 |
411 |
412 // |
412 // |
413 // Date created |
413 // Date created |
414 // |
414 // |
415 if ( details->mCreationTime > 0 ) |
415 if ( details->mCreationTime > 0 ) |
416 { |
416 { |
418 } |
418 } |
419 else |
419 else |
420 { |
420 { |
421 dateTime = fileInfo.created(); |
421 dateTime = fileInfo.created(); |
422 } |
422 } |
423 |
423 |
424 // |
424 // |
425 // convert 'created' date/time to proper string format |
425 // convert 'created' date/time to proper string format |
426 // according to its current locale |
426 // according to its current locale |
427 // |
427 // |
428 QString date = locale.format( dateTime.date(), r_qtn_date_usual ); |
428 QString date = locale.format( dateTime.date(), r_qtn_date_usual ); |
429 QString time = locale.format( dateTime.time(), r_qtn_time_long_with_zero ); |
429 QString time = locale.format( dateTime.time(), r_qtn_time_long_with_zero ); |
430 addItemToListWidget( hbTrId( "txt_videos_list_date" ), date + " " + time ); |
430 addItemToListWidget( hbTrId( "txt_videos_list_date" ), date + " " + time ); |
431 |
431 |
432 // |
432 // |
433 // Date modified |
433 // Date modified |
434 // |
434 // |
435 if ( details->mModificationTime > 0 ) |
435 if ( details->mModificationTime > 0 ) |
436 { |
436 { |
438 } |
438 } |
439 else |
439 else |
440 { |
440 { |
441 dateTime = fileInfo.lastModified(); |
441 dateTime = fileInfo.lastModified(); |
442 } |
442 } |
443 |
443 |
444 // |
444 // |
445 // convert 'last modified' date/time to proper string format |
445 // convert 'last modified' date/time to proper string format |
446 // according to its current locale |
446 // according to its current locale |
447 // |
447 // |
448 date = locale.format( dateTime.date(), r_qtn_date_usual ); |
448 date = locale.format( dateTime.date(), r_qtn_date_usual ); |
449 time = locale.format( dateTime.time(), r_qtn_time_long_with_zero ); |
449 time = locale.format( dateTime.time(), r_qtn_time_long_with_zero ); |
450 addItemToListWidget( hbTrId( "txt_videos_list_modified" ), date + " " + time ); |
450 addItemToListWidget( hbTrId( "txt_videos_list_modified" ), date + " " + time ); |
451 } |
451 } |
452 } |
452 } |
453 |
453 |
454 //End of file |
454 //End of file |