videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackfiledetailswidget.cpp
changeset 41 229f037ce963
parent 38 ff53afa8ad05
equal deleted inserted replaced
40:13331705e488 41:229f037ce963
    13 *
    13 *
    14 * Description:  Implementation of QMPXVideoPlaybackFileDetailsWidget
    14 * Description:  Implementation of QMPXVideoPlaybackFileDetailsWidget
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 // Version : %version:  25 %
    18 // Version : %version:  26 %
    19 
    19 
    20 
    20 
    21 #include <QDir>
    21 #include <QDir>
    22 #include <QDateTime>
    22 #include <QDateTime>
    23 #include <QFileInfo>
    23 #include <QFileInfo>
    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 {
    73     {
    73     {
    74         //
    74         //
    75         // load fileDetails widget
    75         // load fileDetails widget
    76         //
    76         //
    77         QGraphicsWidget *widget = loader->findWidget( QString( "fileDetails" ) );
    77         QGraphicsWidget *widget = loader->findWidget( QString( "fileDetails" ) );
    78         
    78 
    79         //
    79         //
    80         // cast fileDetails widget to HbListWidget
    80         // cast fileDetails widget to HbListWidget
    81         //
    81         //
    82         mListWidget = qobject_cast<HbListWidget*>( widget );
    82         mListWidget = qobject_cast<HbListWidget*>( widget );
    83 
    83 
    87         HbListViewItem *prototype = mListWidget->listItemPrototype();
    87         HbListViewItem *prototype = mListWidget->listItemPrototype();
    88         prototype->setSecondaryTextRowCount( 1, 30 );
    88         prototype->setSecondaryTextRowCount( 1, 30 );
    89 
    89 
    90         //
    90         //
    91         // Title
    91         // Title
    92         //            
    92         //
    93         makeTitleItem( details );
    93         makeTitleItem( details );
    94 
    94 
    95         if ( ! mFileDetailsUpdated )
    95         if ( ! mFileDetailsUpdated )
    96         {
    96         {
    97             HbExtendedLocale locale = HbExtendedLocale::system();
    97             HbExtendedLocale locale = HbExtendedLocale::system();
    99             mFileDetailsUpdated = true;
    99             mFileDetailsUpdated = true;
   100 
   100 
   101             //
   101             //
   102             // Description
   102             // Description
   103             //
   103             //
   104             addItemToListWidget( 
   104             addItemToListWidget(
   105                     hbTrId( "txt_videos_list_description" ), details->mDescription ); 
   105                     hbTrId( "txt_videos_list_description" ), details->mDescription );
   106 
   106 
   107             //
   107             //
   108             // Duration
   108             // Duration
   109             //
   109             //
   110             if ( details->mPlaybackMode != EMPXVideoLiveStreaming && details->mDuration > 0 )
   110             if ( details->mPlaybackMode != EMPXVideoLiveStreaming && details->mDuration > 0 )
   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 );
   181             // Folder
   181             // Folder
   182             //
   182             //
   183             if ( details->mPlaybackMode == EMPXVideoLocal ||
   183             if ( details->mPlaybackMode == EMPXVideoLocal ||
   184                  details->mPlaybackMode == EMPXVideoProgressiveDownload)
   184                  details->mPlaybackMode == EMPXVideoProgressiveDownload)
   185             {
   185             {
   186                 QFileInfo fileInfo( details->mClipName );     
   186                 QFileInfo fileInfo( details->mClipName );
   187                 QString folder = fileInfo.dir().dirName();
   187                 QString folder = fileInfo.dir().dirName();
   188                 addItemToListWidget( hbTrId( "txt_videos_list_collection_name" ), folder );
   188                 addItemToListWidget( hbTrId( "txt_videos_list_collection_name" ), folder );
   189             }
   189             }
   190         }
   190         }
   191 
   191 
   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             //
   268         }
   268         }
   269     }
   269     }
   270     else if ( mListWidget->count() &&
   270     else if ( mListWidget->count() &&
   271               mListWidget->item( 0 )->text().contains( "Title", Qt::CaseInsensitive ) )
   271               mListWidget->item( 0 )->text().contains( "Title", Qt::CaseInsensitive ) )
   272     {
   272     {
   273         // 
   273         //
   274         // title is displayed under the status pane for video clips,
   274         // title is displayed under the status pane for video clips,
   275         // so hide the title for this details view
   275         // so hide the title for this details view
   276         //
   276         //
   277         delete mListWidget->takeItem ( 0 );
   277         delete mListWidget->takeItem ( 0 );
   278     }
   278     }
   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