videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackfiledetailswidget.cpp
changeset 36 8aed59de29f9
parent 34 bbb98528c666
child 37 4eb2df7f7cbe
equal deleted inserted replaced
35:3738fe97f027 36:8aed59de29f9
    13 *
    13 *
    14 * Description:  Implementation of QMPXVideoPlaybackFileDetailsWidget
    14 * Description:  Implementation of QMPXVideoPlaybackFileDetailsWidget
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 // Version : %version:  19 %
    18 // Version : %version:  22 %
    19 
    19 
    20 
    20 
    21 #include <QDir>
    21 #include <QDir>
    22 #include <QDateTime>
    22 #include <QDateTime>
    23 #include <QFileInfo>
    23 #include <QFileInfo>
    25 #include <hbglobal.h>
    25 #include <hbglobal.h>
    26 #include <hblistwidgetitem.h>
    26 #include <hblistwidgetitem.h>
    27 #include <hbratingslider.h>
    27 #include <hbratingslider.h>
    28 #include <hblistwidget.h>
    28 #include <hblistwidget.h>
    29 #include <hblistviewitem.h>
    29 #include <hblistviewitem.h>
       
    30 #include <hbextendedlocale.h>
    30 
    31 
    31 #include "mpxvideo_debug.h"
    32 #include "mpxvideo_debug.h"
    32 #include "mpxvideoplaybackdocumentloader.h"
    33 #include "mpxvideoplaybackdocumentloader.h"
    33 #include "mpxvideoplaybackfiledetailswidget.h"
    34 #include "mpxvideoplaybackfiledetailswidget.h"
    34 #include "mpxvideoplaybackdocumentloader.h"
    35 #include "mpxvideoplaybackdocumentloader.h"
    35 #include "mpxvideoplaybackcontrolscontroller.h"
    36 #include "mpxvideoplaybackcontrolscontroller.h"
    36 
    37 
    37 const float KILOBYTE = 1024 ;
    38 const float KILOBYTE = 1024 ;
    38 const QString KDATETIMEFORMAT = "d/M/yyyy hh:mm:ss ap";
       
    39 
    39 
    40 // -------------------------------------------------------------------------------------------------
    40 // -------------------------------------------------------------------------------------------------
    41 // QMPXVideoPlaybackFileDetailsWidget::QMPXVideoPlaybackFileDetailsWidget
    41 // QMPXVideoPlaybackFileDetailsWidget::QMPXVideoPlaybackFileDetailsWidget
    42 // -------------------------------------------------------------------------------------------------
    42 // -------------------------------------------------------------------------------------------------
    43 //
    43 //
    98 
    98 
    99         //
    99         //
   100         // set the min/max number of lines in the second row
   100         // set the min/max number of lines in the second row
   101         //
   101         //
   102         HbListViewItem *prototype = mListWidget->listItemPrototype();
   102         HbListViewItem *prototype = mListWidget->listItemPrototype();
   103         prototype->setSecondaryTextRowCount(1, 3);
   103         prototype->setSecondaryTextRowCount( 1, 30 );
   104         
   104         
   105         if ( ! mFileDetailsUpdated )
   105         if ( ! mFileDetailsUpdated )
   106         {                    
   106         {
       
   107             HbExtendedLocale locale = HbExtendedLocale::system();
       
   108 
   107             mFileDetailsUpdated = true;
   109             mFileDetailsUpdated = true;
   108             
   110             
   109             QFileInfo fileInfo( details->mClipName );     
       
   110 
       
   111             //
   111             //
   112             // Title
   112             // Title
   113             //            
   113             //            
   114             makeTitleItem( details );
   114             makeTitleItem( details );
   115             
   115             
   123             //
   123             //
   124             // Duration
   124             // Duration
   125             //
   125             //
   126             if ( details->mPlaybackMode != EMPXVideoLiveStreaming && details->mDuration > 0 )
   126             if ( details->mPlaybackMode != EMPXVideoLiveStreaming && details->mDuration > 0 )
   127             {
   127             {
   128                 QString duration = QString("%1").arg( 
   128                 int value = (qreal)details->mDuration / (qreal)KPbMilliMultiplier;
   129                         valueToReadableFormat( (qreal)details->mDuration / (qreal)KPbMilliMultiplier ) );                    
   129                 QString hour = locale.toString( value / 3600 );
   130                 addItemToListWidget( hbTrId( "txt_videos_list_duration" ), duration );                                                                        
   130                 value = value % 3600;
       
   131                 QString min = locale.toString( value / 60 );
       
   132                 value = value % 60;
       
   133                 QString sec = locale.toString( value );
       
   134 
       
   135                 addItemToListWidget( 
       
   136                         hbTrId( "txt_videos_list_duration" ),
       
   137                         hbTrId( "txt_videos_list_l1_l2_l3" ).arg( hour ).arg( min ).arg( sec ) );                                                                        
   131             }    
   138             }    
   132             
   139             
   133             //
   140             //
   134             // Date 
   141             // Date/Time
   135             //
   142             //
   136             if ( details->mPlaybackMode == EMPXVideoLocal ||
   143             makeDateTimeItem( details );
   137                  details->mPlaybackMode == EMPXVideoProgressiveDownload )
       
   138             {       
       
   139                 //
       
   140                 // Date created
       
   141                 //
       
   142                 QString date = QString("%1").arg( fileInfo.created().toString( KDATETIMEFORMAT ) );                
       
   143                 addItemToListWidget( hbTrId( "txt_videos_list_date" ), date );      
       
   144                 
       
   145                 //
       
   146                 // Date modified
       
   147                 //
       
   148                 QString modified = QString("%1").arg( fileInfo.lastModified().toString( KDATETIMEFORMAT ) );                
       
   149                 addItemToListWidget( hbTrId( "txt_videos_list_modified" ), modified );                                                                        
       
   150             }
       
   151 
   144 
   152             //
   145             //
   153             // Location
   146             // Location
   154             //
   147             //
   155             addItemToListWidget( hbTrId( "txt_videos_list_location" ), details->mLocation );                                                
   148             addItemToListWidget( hbTrId( "txt_videos_list_location" ), details->mLocation );                                                
   182             //
   175             //
   183             // Resolution
   176             // Resolution
   184             //
   177             //
   185             if ( details->mVideoEnabled )
   178             if ( details->mVideoEnabled )
   186             {
   179             {
   187                 QString resolution = QString("%1 x %2")
   180                 QString resolution = hbTrId( "txt_videos_list_l1l2" )
   188                        .arg( details->mVideoWidth ).arg( details->mVideoHeight );            
   181                        .arg( locale.toString( details->mVideoWidth ) )
       
   182                        .arg( locale.toString( details->mVideoHeight ) );            
   189                 addItemToListWidget( hbTrId( "txt_videos_list_resolution" ), resolution );                    
   183                 addItemToListWidget( hbTrId( "txt_videos_list_resolution" ), resolution );                    
   190             }
   184             }
   191             
   185             
   192             //
   186             //
   193             // Format
   187             // Format
   203             // Folder
   197             // Folder
   204             //
   198             //
   205             if ( details->mPlaybackMode == EMPXVideoLocal ||
   199             if ( details->mPlaybackMode == EMPXVideoLocal ||
   206                  details->mPlaybackMode == EMPXVideoProgressiveDownload)
   200                  details->mPlaybackMode == EMPXVideoProgressiveDownload)
   207             {
   201             {
       
   202                 QFileInfo fileInfo( details->mClipName );     
   208                 QString folder = fileInfo.dir().dirName();
   203                 QString folder = fileInfo.dir().dirName();
   209                 addItemToListWidget( hbTrId( "txt_videos_list_collection_name" ), folder );
   204                 addItemToListWidget( hbTrId( "txt_videos_list_collection_name" ), folder );
   210             }
   205             }
   211             
   206             
   212         }
   207         }
   238         if ( ! ok )
   233         if ( ! ok )
   239         {
   234         {
   240             MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget failed to load section"));
   235             MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget failed to load section"));
   241         }
   236         }
   242     }
   237     }
   243 }
       
   244 
       
   245 // -------------------------------------------------------------------------------------------------
       
   246 // QMPXVideoPlaybackFileDetailsWidget::valueToReadableFormat
       
   247 // -------------------------------------------------------------------------------------------------
       
   248 //
       
   249 QString QMPXVideoPlaybackFileDetailsWidget::valueToReadableFormat( int value )
       
   250 {
       
   251     MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget::valueToReadableFormat value = %d"), value);
       
   252 
       
   253     int hour = value / 3600;
       
   254     value = value % 3600;
       
   255     int minutes = value / 60;
       
   256     value = value % 60;
       
   257     int second = value;
       
   258 
       
   259     QTime time( hour ,minutes ,second );
       
   260     QString str;
       
   261     
       
   262     if ( hour > 0 )
       
   263     {
       
   264         str = time.toString( QString::number( hour ) ).append(" hr "); 
       
   265     }
       
   266     
       
   267     if ( minutes > 0 )
       
   268     {
       
   269         str.append( time.toString( QString::number( minutes ) ).append(" min ")); 
       
   270     }
       
   271     
       
   272     if ( second > 0 )
       
   273     {
       
   274         str.append( time.toString( QString::number( second ) ).append(" sec ")); 
       
   275     }
       
   276     
       
   277     return str;
       
   278 }
   238 }
   279 
   239 
   280 // -------------------------------------------------------------------------------------------------
   240 // -------------------------------------------------------------------------------------------------
   281 // QMPXVideoPlaybackFileDetailsWidget::makeTitleItem
   241 // QMPXVideoPlaybackFileDetailsWidget::makeTitleItem
   282 // -------------------------------------------------------------------------------------------------
   242 // -------------------------------------------------------------------------------------------------
   308 
   268 
   309             //
   269             //
   310             // populate Title and its associated text
   270             // populate Title and its associated text
   311             //
   271             //
   312             HbListWidgetItem* listWidgetItem = new HbListWidgetItem();
   272             HbListWidgetItem* listWidgetItem = new HbListWidgetItem();
   313             listWidgetItem->setText( hbTrId( "txt_videos_title_videos" ) );
   273             listWidgetItem->setText( hbTrId( "txt_videos_list_title" ) );
   314             listWidgetItem->setSecondaryText( title );
   274             listWidgetItem->setSecondaryText( title );
   315             mListWidget->insertItem( 0, listWidgetItem );
   275             mListWidget->insertItem( 0, listWidgetItem );
   316         }
   276         }
   317     }
   277     }
   318     else if ( mListWidget->count() &&
   278     else if ( mListWidget->count() &&
   322         // title is displayed under the status pane for video clips,
   282         // title is displayed under the status pane for video clips,
   323         // so hide the title for this details view
   283         // so hide the title for this details view
   324         //
   284         //
   325         delete mListWidget->takeItem ( 0 );
   285         delete mListWidget->takeItem ( 0 );
   326     }
   286     }
   327     
       
   328 }
   287 }
   329 
   288 
   330 // -------------------------------------------------------------------------------------------------
   289 // -------------------------------------------------------------------------------------------------
   331 // QMPXVideoPlaybackFileDetailsWidget::makeSizeItem
   290 // QMPXVideoPlaybackFileDetailsWidget::makeSizeItem
   332 // -------------------------------------------------------------------------------------------------
   291 // -------------------------------------------------------------------------------------------------
   345                 
   304                 
   346         //
   305         //
   347         // convert file size to KB, MB, GB accordingly
   306         // convert file size to KB, MB, GB accordingly
   348         //
   307         //
   349         if ( fileSize > 0 )
   308         if ( fileSize > 0 )
   350         {        
   309         {
   351             QString scale(" KB");
   310             HbExtendedLocale locale = HbExtendedLocale::system();
   352         
   311 
       
   312             QString scale;
       
   313 
   353             //
   314             //
   354             // cast for later conversion with floating point
   315             // cast for later conversion with floating point
   355             //
   316             //
   356             float size = (float) fileSize;
   317             float size = (float) fileSize;
   357                 
   318 
   358             if ( size > KILOBYTE )
   319             if ( size > KILOBYTE )
   359             {
   320             {
   360                 size /= KILOBYTE;
   321                 size /= KILOBYTE;
   361             }
   322                 scale = hbTrId( "txt_videos_list_l1_kb" );
   362             
   323             }
       
   324 
   363             if ( size > KILOBYTE )
   325             if ( size > KILOBYTE )
   364             {
   326             {
   365                 size /= KILOBYTE;
   327                 size /= KILOBYTE;
   366                 scale = QString(" MB");
   328                 scale = hbTrId( "txt_videos_list_l1_mb" );
   367             }
   329             }
   368      
   330 
   369             if ( size > KILOBYTE )
   331             if ( size > KILOBYTE )
   370             {
   332             {
   371                 size /= KILOBYTE;
   333                 size /= KILOBYTE;
   372                 scale = QString(" GB");
   334                 scale = hbTrId( "txt_videos_list_l1_gb" );
   373             }
   335             }
   374              
   336 
   375             int temp = size * 10;
   337             int temp = size * 10;
   376             size = (float)temp / 10;
   338             size = (float)temp / 10;
   377     
   339 
   378             QString text = QString("%1").arg( size );
   340             addItemToListWidget( 
   379             text.append( scale );
   341                     hbTrId( "txt_videos_list_file_size" ), scale.arg( locale.toString( size ) ) );
   380             
       
   381             addItemToListWidget( hbTrId( "txt_videos_list_file_size" ), text );                            
       
   382         }    
   342         }    
   383     }
   343     }
   384 }
   344 }
   385 
   345 
   386 // -------------------------------------------------------------------------------------------------
   346 // -------------------------------------------------------------------------------------------------
   389 //
   349 //
   390 void QMPXVideoPlaybackFileDetailsWidget::makeBitRateItem( QMPXVideoPlaybackViewFileDetails* details  )
   350 void QMPXVideoPlaybackFileDetailsWidget::makeBitRateItem( QMPXVideoPlaybackViewFileDetails* details  )
   391 {        
   351 {        
   392     if ( details->mBitRate > 0 )
   352     if ( details->mBitRate > 0 )
   393     {
   353     {
       
   354         HbExtendedLocale locale = HbExtendedLocale::system();
       
   355 
   394         float bitrate = details->mBitRate;
   356         float bitrate = details->mBitRate;
   395     
   357 
   396         QString scale(" Kbps");
   358         QString scale = hbTrId( "txt_videos_list_l1_kbps" );
   397         
   359 
   398         if ( bitrate > KILOBYTE )
   360         if ( bitrate > KILOBYTE )
   399         {
   361         {
   400              bitrate /= KILOBYTE;
   362              bitrate /= KILOBYTE;
   401         }
   363         }
   402         
   364         
   403         if ( bitrate > KILOBYTE )
   365         if ( bitrate > KILOBYTE )
   404         {
   366         {
   405              bitrate /= KILOBYTE;
   367              bitrate /= KILOBYTE;
   406              scale = QString(" Mbps");
   368              scale = hbTrId( "txt_videos_list_l1_mbps" );
   407         }
   369         }
   408     
   370     
   409         int temp = bitrate * 10;
   371         int temp = bitrate * 10;
   410         bitrate = (float)temp / 10;
   372         bitrate = (float)temp / 10;
   411     
   373 
   412         QString text = QString("%1").arg( bitrate );
   374         addItemToListWidget( 
   413         text.append( scale );
   375                 hbTrId( "txt_videos_list_bitrate" ), scale.arg( locale.toString( bitrate ) ) );
   414         
       
   415         addItemToListWidget( hbTrId( "txt_videos_list_bitrate" ), text );            
       
   416     }
   376     }
   417 }
   377 }
   418 
   378 
   419 // -------------------------------------------------------------------------------------------------
   379 // -------------------------------------------------------------------------------------------------
   420 // QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget
   380 // QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget
   421 // -------------------------------------------------------------------------------------------------
   381 // -------------------------------------------------------------------------------------------------
   422 //
   382 //
   423 void QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget( QString item, QString text  )
   383 void QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget( QString item, QString text  )
   424 {    
   384 {    
       
   385     MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget"));
       
   386 	
   425     if ( text.count() > 0 )
   387     if ( text.count() > 0 )
   426     {
   388     {
   427         MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget( %s , %s )"), item.data(), text.data() );
   389         MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget( %s %s )"), 
       
   390 		    item.data(), text.data() );
   428 		
   391 		
   429         HbListWidgetItem* listWidgetItem = new HbListWidgetItem();
   392         HbListWidgetItem* listWidgetItem = new HbListWidgetItem();
   430         listWidgetItem->setText( item );
   393         listWidgetItem->setText( item );
   431         listWidgetItem->setSecondaryText( text );
   394         listWidgetItem->setSecondaryText( text );
   432         
   395         
   433         mListWidget->addItem( listWidgetItem );
   396         mListWidget->addItem( listWidgetItem );
   434     }
   397     }
   435 }
   398 }
   436 
   399 
       
   400 // -------------------------------------------------------------------------------------------------
       
   401 // QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem
       
   402 // -------------------------------------------------------------------------------------------------
       
   403 //
       
   404 void QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem( QMPXVideoPlaybackViewFileDetails* details )
       
   405 {    
       
   406     MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem"));
       
   407         
       
   408     //
       
   409     // attempt to get 'created' and 'last modified' date/time from metadata first,
       
   410     // if it's not available, then get it from the file system
       
   411     //
       
   412     
       
   413     if ( details->mPlaybackMode == EMPXVideoLocal ||
       
   414          details->mPlaybackMode == EMPXVideoProgressiveDownload )
       
   415     {        
       
   416         QDateTime dateTime;
       
   417         QFileInfo fileInfo( details->mClipName );     
       
   418         HbExtendedLocale locale = HbExtendedLocale::system();
       
   419         
       
   420         //
       
   421         // Date created
       
   422         //
       
   423         if ( details->mCreationTime > 0 )
       
   424         {
       
   425             dateTime.setTime_t( details->mCreationTime );
       
   426         }
       
   427         else
       
   428         {
       
   429             dateTime = fileInfo.created();
       
   430         }
       
   431         
       
   432         //
       
   433         // convert 'created' date/time to proper string format
       
   434         // according to its current locale
       
   435         //
       
   436         QString date = locale.format( dateTime.date(), r_qtn_date_usual );
       
   437         QString time = locale.format( dateTime.time(), r_qtn_time_long_with_zero );
       
   438         addItemToListWidget( hbTrId( "txt_videos_list_date" ), date + "  " + time );      
       
   439         
       
   440         //
       
   441         // Date modified
       
   442         //
       
   443         if ( details->mModificationTime > 0 )
       
   444         {
       
   445             dateTime.setTime_t( details->mModificationTime );
       
   446         }
       
   447         else
       
   448         {
       
   449             dateTime = fileInfo.lastModified();
       
   450         }
       
   451         
       
   452         //
       
   453         // convert 'last modified' date/time to proper string format
       
   454         // according to its current locale
       
   455         //
       
   456         date = locale.format( dateTime.date(), r_qtn_date_usual );
       
   457         time = locale.format( dateTime.time(), r_qtn_time_long_with_zero );
       
   458         addItemToListWidget( hbTrId( "txt_videos_list_modified" ), date + "  " + time );           
       
   459     }    
       
   460 }
       
   461 
   437 //End of file
   462 //End of file