videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackfiledetailswidget.cpp
author hgs
Thu, 24 Jun 2010 09:49:13 +0300
changeset 41 229f037ce963
parent 38 ff53afa8ad05
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Implementation of QMPXVideoPlaybackFileDetailsWidget
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
41
hgs
parents: 38
diff changeset
    18
// Version : %version:  26 %
30
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
34
hgs
parents: 30
diff changeset
    21
#include <QDir>
hgs
parents: 30
diff changeset
    22
#include <QDateTime>
hgs
parents: 30
diff changeset
    23
#include <QFileInfo>
30
hgs
parents:
diff changeset
    24
34
hgs
parents: 30
diff changeset
    25
#include <hbglobal.h>
30
hgs
parents:
diff changeset
    26
#include <hblistwidgetitem.h>
hgs
parents:
diff changeset
    27
#include <hbratingslider.h>
hgs
parents:
diff changeset
    28
#include <hblistwidget.h>
34
hgs
parents: 30
diff changeset
    29
#include <hblistviewitem.h>
36
hgs
parents: 34
diff changeset
    30
#include <hbextendedlocale.h>
38
hgs
parents: 37
diff changeset
    31
#include <hbanchorlayout.h>
30
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
#include "mpxvideo_debug.h"
hgs
parents:
diff changeset
    34
#include "mpxvideoplaybackdocumentloader.h"
hgs
parents:
diff changeset
    35
#include "mpxvideoplaybackfiledetailswidget.h"
hgs
parents:
diff changeset
    36
#include "mpxvideoplaybackdocumentloader.h"
hgs
parents:
diff changeset
    37
#include "mpxvideoplaybackcontrolscontroller.h"
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
const float KILOBYTE = 1024 ;
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    42
// QMPXVideoPlaybackFileDetailsWidget::QMPXVideoPlaybackFileDetailsWidget
hgs
parents:
diff changeset
    43
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    44
//
41
hgs
parents: 38
diff changeset
    45
QMPXVideoPlaybackFileDetailsWidget::QMPXVideoPlaybackFileDetailsWidget(
30
hgs
parents:
diff changeset
    46
        QMPXVideoPlaybackControlsController* controller )
hgs
parents:
diff changeset
    47
    : mController( controller )
hgs
parents:
diff changeset
    48
    , mListWidget( 0 )
hgs
parents:
diff changeset
    49
    , mFileDetailsUpdated( false )
hgs
parents:
diff changeset
    50
{
hgs
parents:
diff changeset
    51
    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::QMPXVideoPlaybackFileDetailsWidget()"));
hgs
parents:
diff changeset
    52
}
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    55
// QMPXVideoPlaybackFileDetailsWidget::~QMPXVideoPlaybackFileDetailsWidget
hgs
parents:
diff changeset
    56
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    57
//
hgs
parents:
diff changeset
    58
QMPXVideoPlaybackFileDetailsWidget::~QMPXVideoPlaybackFileDetailsWidget()
hgs
parents:
diff changeset
    59
{
hgs
parents:
diff changeset
    60
    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::~QMPXVideoPlaybackFileDetailsWidget()"));
hgs
parents:
diff changeset
    61
}
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
// -------------------------------------------------------------------------------------------------
34
hgs
parents: 30
diff changeset
    64
// QMPXVideoPlaybackFileDetailsWidget::updateWithFileDetails
30
hgs
parents:
diff changeset
    65
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    66
//
hgs
parents:
diff changeset
    67
void QMPXVideoPlaybackFileDetailsWidget::updateWithFileDetails(
hgs
parents:
diff changeset
    68
        QMPXVideoPlaybackViewFileDetails* details )
hgs
parents:
diff changeset
    69
{
hgs
parents:
diff changeset
    70
    QMPXVideoPlaybackDocumentLoader *loader = mController->layoutLoader();
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
    if ( loader )
hgs
parents:
diff changeset
    73
    {
hgs
parents:
diff changeset
    74
        //
hgs
parents:
diff changeset
    75
        // load fileDetails widget
hgs
parents:
diff changeset
    76
        //
hgs
parents:
diff changeset
    77
        QGraphicsWidget *widget = loader->findWidget( QString( "fileDetails" ) );
41
hgs
parents: 38
diff changeset
    78
30
hgs
parents:
diff changeset
    79
        //
hgs
parents:
diff changeset
    80
        // cast fileDetails widget to HbListWidget
hgs
parents:
diff changeset
    81
        //
hgs
parents:
diff changeset
    82
        mListWidget = qobject_cast<HbListWidget*>( widget );
hgs
parents:
diff changeset
    83
34
hgs
parents: 30
diff changeset
    84
        //
hgs
parents: 30
diff changeset
    85
        // set the min/max number of lines in the second row
hgs
parents: 30
diff changeset
    86
        //
hgs
parents: 30
diff changeset
    87
        HbListViewItem *prototype = mListWidget->listItemPrototype();
36
hgs
parents: 34
diff changeset
    88
        prototype->setSecondaryTextRowCount( 1, 30 );
38
hgs
parents: 37
diff changeset
    89
hgs
parents: 37
diff changeset
    90
        //
hgs
parents: 37
diff changeset
    91
        // Title
41
hgs
parents: 38
diff changeset
    92
        //
38
hgs
parents: 37
diff changeset
    93
        makeTitleItem( details );
hgs
parents: 37
diff changeset
    94
30
hgs
parents:
diff changeset
    95
        if ( ! mFileDetailsUpdated )
36
hgs
parents: 34
diff changeset
    96
        {
hgs
parents: 34
diff changeset
    97
            HbExtendedLocale locale = HbExtendedLocale::system();
hgs
parents: 34
diff changeset
    98
30
hgs
parents:
diff changeset
    99
            mFileDetailsUpdated = true;
38
hgs
parents: 37
diff changeset
   100
30
hgs
parents:
diff changeset
   101
            //
hgs
parents:
diff changeset
   102
            // Description
hgs
parents:
diff changeset
   103
            //
41
hgs
parents: 38
diff changeset
   104
            addItemToListWidget(
hgs
parents: 38
diff changeset
   105
                    hbTrId( "txt_videos_list_description" ), details->mDescription );
34
hgs
parents: 30
diff changeset
   106
30
hgs
parents:
diff changeset
   107
            //
hgs
parents:
diff changeset
   108
            // Duration
hgs
parents:
diff changeset
   109
            //
hgs
parents:
diff changeset
   110
            if ( details->mPlaybackMode != EMPXVideoLiveStreaming && details->mDuration > 0 )
hgs
parents:
diff changeset
   111
            {
36
hgs
parents: 34
diff changeset
   112
                int value = (qreal)details->mDuration / (qreal)KPbMilliMultiplier;
hgs
parents: 34
diff changeset
   113
                QString hour = locale.toString( value / 3600 );
hgs
parents: 34
diff changeset
   114
                value = value % 3600;
hgs
parents: 34
diff changeset
   115
                QString min = locale.toString( value / 60 );
hgs
parents: 34
diff changeset
   116
                value = value % 60;
hgs
parents: 34
diff changeset
   117
                QString sec = locale.toString( value );
hgs
parents: 34
diff changeset
   118
38
hgs
parents: 37
diff changeset
   119
                addItemToListWidget(
36
hgs
parents: 34
diff changeset
   120
                        hbTrId( "txt_videos_list_duration" ),
41
hgs
parents: 38
diff changeset
   121
                        hbTrId( "txt_videos_list_l1l2l3" ).arg( hour ).arg( min ).arg( sec ) );
hgs
parents: 38
diff changeset
   122
            }
38
hgs
parents: 37
diff changeset
   123
30
hgs
parents:
diff changeset
   124
            //
36
hgs
parents: 34
diff changeset
   125
            // Date/Time
30
hgs
parents:
diff changeset
   126
            //
36
hgs
parents: 34
diff changeset
   127
            makeDateTimeItem( details );
30
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
            //
hgs
parents:
diff changeset
   130
            // Location
hgs
parents:
diff changeset
   131
            //
41
hgs
parents: 38
diff changeset
   132
            addItemToListWidget( hbTrId( "txt_videos_list_location" ), details->mLocation );
38
hgs
parents: 37
diff changeset
   133
30
hgs
parents:
diff changeset
   134
            //
hgs
parents:
diff changeset
   135
            // Author
hgs
parents:
diff changeset
   136
            //
41
hgs
parents: 38
diff changeset
   137
            addItemToListWidget( hbTrId( "txt_videos_list_author" ), details->mArtist );
38
hgs
parents: 37
diff changeset
   138
30
hgs
parents:
diff changeset
   139
            //
hgs
parents:
diff changeset
   140
            // Copyright
hgs
parents:
diff changeset
   141
            //
41
hgs
parents: 38
diff changeset
   142
            addItemToListWidget( hbTrId( "txt_videos_list_copyright" ), details->mCopyright );
38
hgs
parents: 37
diff changeset
   143
30
hgs
parents:
diff changeset
   144
            //
hgs
parents:
diff changeset
   145
            // Language
hgs
parents:
diff changeset
   146
            //
41
hgs
parents: 38
diff changeset
   147
            addItemToListWidget( hbTrId( "txt_videos_list_language" ), details->mLanguage );
38
hgs
parents: 37
diff changeset
   148
30
hgs
parents:
diff changeset
   149
            //
hgs
parents:
diff changeset
   150
            // Keywords
hgs
parents:
diff changeset
   151
            //
41
hgs
parents: 38
diff changeset
   152
            addItemToListWidget( hbTrId( "txt_videos_list_keywords" ), details->mKeywords );
38
hgs
parents: 37
diff changeset
   153
30
hgs
parents:
diff changeset
   154
            //
hgs
parents:
diff changeset
   155
            // Size
hgs
parents:
diff changeset
   156
            //
hgs
parents:
diff changeset
   157
            makeSizeItem( details );
hgs
parents:
diff changeset
   158
hgs
parents:
diff changeset
   159
            //
hgs
parents:
diff changeset
   160
            // Resolution
hgs
parents:
diff changeset
   161
            //
hgs
parents:
diff changeset
   162
            if ( details->mVideoEnabled )
hgs
parents:
diff changeset
   163
            {
36
hgs
parents: 34
diff changeset
   164
                QString resolution = hbTrId( "txt_videos_list_l1l2" )
hgs
parents: 34
diff changeset
   165
                       .arg( locale.toString( details->mVideoWidth ) )
41
hgs
parents: 38
diff changeset
   166
                       .arg( locale.toString( details->mVideoHeight ) );
hgs
parents: 38
diff changeset
   167
                addItemToListWidget( hbTrId( "txt_videos_list_resolution" ), resolution );
30
hgs
parents:
diff changeset
   168
            }
38
hgs
parents: 37
diff changeset
   169
30
hgs
parents:
diff changeset
   170
            //
hgs
parents:
diff changeset
   171
            // Format
hgs
parents:
diff changeset
   172
            //
41
hgs
parents: 38
diff changeset
   173
            addItemToListWidget( hbTrId( "txt_videos_list_format" ), details->mMimeType );
38
hgs
parents: 37
diff changeset
   174
30
hgs
parents:
diff changeset
   175
            //
hgs
parents:
diff changeset
   176
            // Bitrate
hgs
parents:
diff changeset
   177
            //
hgs
parents:
diff changeset
   178
            makeBitRateItem( details );
38
hgs
parents: 37
diff changeset
   179
30
hgs
parents:
diff changeset
   180
            //
hgs
parents:
diff changeset
   181
            // Folder
hgs
parents:
diff changeset
   182
            //
hgs
parents:
diff changeset
   183
            if ( details->mPlaybackMode == EMPXVideoLocal ||
hgs
parents:
diff changeset
   184
                 details->mPlaybackMode == EMPXVideoProgressiveDownload)
hgs
parents:
diff changeset
   185
            {
41
hgs
parents: 38
diff changeset
   186
                QFileInfo fileInfo( details->mClipName );
34
hgs
parents: 30
diff changeset
   187
                QString folder = fileInfo.dir().dirName();
hgs
parents: 30
diff changeset
   188
                addItemToListWidget( hbTrId( "txt_videos_list_collection_name" ), folder );
30
hgs
parents:
diff changeset
   189
            }
hgs
parents:
diff changeset
   190
        }
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
        //
hgs
parents:
diff changeset
   193
        // Set the rect size dynamically based on the view mode
hgs
parents:
diff changeset
   194
        //
38
hgs
parents: 37
diff changeset
   195
        QGraphicsWidget *content = loader->findWidget( QString( "content" ) );
hgs
parents: 37
diff changeset
   196
        HbAnchorLayout *layout = static_cast<HbAnchorLayout*>( content->layout() );
30
hgs
parents:
diff changeset
   197
38
hgs
parents: 37
diff changeset
   198
        if ( layout )
30
hgs
parents:
diff changeset
   199
        {
38
hgs
parents: 37
diff changeset
   200
            QGraphicsWidget *titleLayout = loader->findWidget( QString( "titleLayout" ) );
hgs
parents: 37
diff changeset
   201
            QRectF titleRect = titleLayout->geometry();
hgs
parents: 37
diff changeset
   202
hgs
parents: 37
diff changeset
   203
            switch ( mController->viewMode() )
hgs
parents: 37
diff changeset
   204
            {
hgs
parents: 37
diff changeset
   205
                case EDetailsView:
hgs
parents: 37
diff changeset
   206
                {
hgs
parents: 37
diff changeset
   207
                    layout->setAnchor( titleLayout, Hb::BottomEdge, this, Hb::TopEdge, 0 );
hgs
parents: 37
diff changeset
   208
                    layout->setAnchor( layout, Hb::BottomEdge, this, Hb::BottomEdge, 0 );
30
hgs
parents:
diff changeset
   209
38
hgs
parents: 37
diff changeset
   210
                    break;
hgs
parents: 37
diff changeset
   211
                }
hgs
parents: 37
diff changeset
   212
                case EAudioOnlyView:
hgs
parents: 37
diff changeset
   213
                {
hgs
parents: 37
diff changeset
   214
                    QGraphicsWidget *controlLayout = loader->findWidget( QString( "controlBarLayout" ) );
hgs
parents: 37
diff changeset
   215
                    QRectF controlRect = controlLayout->geometry();
34
hgs
parents: 30
diff changeset
   216
38
hgs
parents: 37
diff changeset
   217
                    layout->setAnchor(
hgs
parents: 37
diff changeset
   218
                            this, Hb::TopEdge, titleLayout,
hgs
parents: 37
diff changeset
   219
                            Hb::BottomEdge, titleRect.bottom() - titleRect.top() );
hgs
parents: 37
diff changeset
   220
hgs
parents: 37
diff changeset
   221
                    layout->setAnchor(
hgs
parents: 37
diff changeset
   222
                            this, Hb::BottomEdge,
hgs
parents: 37
diff changeset
   223
                            layout, Hb::BottomEdge, layout->geometry().height() - controlRect.top() );
hgs
parents: 37
diff changeset
   224
hgs
parents: 37
diff changeset
   225
                    break;
hgs
parents: 37
diff changeset
   226
                }
hgs
parents: 37
diff changeset
   227
            }
34
hgs
parents: 30
diff changeset
   228
        }
30
hgs
parents:
diff changeset
   229
    }
hgs
parents:
diff changeset
   230
}
hgs
parents:
diff changeset
   231
hgs
parents:
diff changeset
   232
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   233
// QMPXVideoPlaybackFileDetailsWidget::makeTitleItem
hgs
parents:
diff changeset
   234
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   235
//
hgs
parents:
diff changeset
   236
void QMPXVideoPlaybackFileDetailsWidget::makeTitleItem( QMPXVideoPlaybackViewFileDetails* details )
41
hgs
parents: 38
diff changeset
   237
{
30
hgs
parents:
diff changeset
   238
    MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget::makeTitleItem()"));
hgs
parents:
diff changeset
   239
hgs
parents:
diff changeset
   240
    //
hgs
parents:
diff changeset
   241
    // Title should be the first item in file details list
hgs
parents:
diff changeset
   242
    //
hgs
parents:
diff changeset
   243
    if ( mController->viewMode() == EAudioOnlyView )
41
hgs
parents: 38
diff changeset
   244
    {
30
hgs
parents:
diff changeset
   245
        //
41
hgs
parents: 38
diff changeset
   246
        // show the title for audio-only view
30
hgs
parents:
diff changeset
   247
        //
hgs
parents:
diff changeset
   248
        if ( mListWidget->count() == 0 || ! mListWidget->item( 0 )->text().contains( "Title", Qt::CaseInsensitive ) )
hgs
parents:
diff changeset
   249
        {
hgs
parents:
diff changeset
   250
            QString title = details->mTitle;
hgs
parents:
diff changeset
   251
hgs
parents:
diff changeset
   252
            if ( title.count() == 0 )
hgs
parents:
diff changeset
   253
            {
hgs
parents:
diff changeset
   254
                //
hgs
parents:
diff changeset
   255
                // If title is not available, show clip name
41
hgs
parents: 38
diff changeset
   256
                //
30
hgs
parents:
diff changeset
   257
                QFileInfo fileInfo( details->mClipName );
41
hgs
parents: 38
diff changeset
   258
                title = fileInfo.completeBaseName();
30
hgs
parents:
diff changeset
   259
            }
hgs
parents:
diff changeset
   260
hgs
parents:
diff changeset
   261
            //
hgs
parents:
diff changeset
   262
            // populate Title and its associated text
hgs
parents:
diff changeset
   263
            //
hgs
parents:
diff changeset
   264
            HbListWidgetItem* listWidgetItem = new HbListWidgetItem();
36
hgs
parents: 34
diff changeset
   265
            listWidgetItem->setText( hbTrId( "txt_videos_list_title" ) );
30
hgs
parents:
diff changeset
   266
            listWidgetItem->setSecondaryText( title );
hgs
parents:
diff changeset
   267
            mListWidget->insertItem( 0, listWidgetItem );
hgs
parents:
diff changeset
   268
        }
hgs
parents:
diff changeset
   269
    }
hgs
parents:
diff changeset
   270
    else if ( mListWidget->count() &&
hgs
parents:
diff changeset
   271
              mListWidget->item( 0 )->text().contains( "Title", Qt::CaseInsensitive ) )
hgs
parents:
diff changeset
   272
    {
41
hgs
parents: 38
diff changeset
   273
        //
30
hgs
parents:
diff changeset
   274
        // title is displayed under the status pane for video clips,
hgs
parents:
diff changeset
   275
        // so hide the title for this details view
hgs
parents:
diff changeset
   276
        //
hgs
parents:
diff changeset
   277
        delete mListWidget->takeItem ( 0 );
hgs
parents:
diff changeset
   278
    }
hgs
parents:
diff changeset
   279
}
hgs
parents:
diff changeset
   280
hgs
parents:
diff changeset
   281
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   282
// QMPXVideoPlaybackFileDetailsWidget::makeSizeItem
hgs
parents:
diff changeset
   283
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   284
//
hgs
parents:
diff changeset
   285
void QMPXVideoPlaybackFileDetailsWidget::makeSizeItem( QMPXVideoPlaybackViewFileDetails* details )
41
hgs
parents: 38
diff changeset
   286
{
30
hgs
parents:
diff changeset
   287
    if ( details->mPlaybackMode == EMPXVideoLocal ||
hgs
parents:
diff changeset
   288
         details->mPlaybackMode == EMPXVideoProgressiveDownload )
hgs
parents:
diff changeset
   289
    {
41
hgs
parents: 38
diff changeset
   290
        QFileInfo fileInfo( details->mClipName );
hgs
parents: 38
diff changeset
   291
34
hgs
parents: 30
diff changeset
   292
        //
hgs
parents: 30
diff changeset
   293
        // to prevent overflow, get an unsigned value of file size
hgs
parents: 30
diff changeset
   294
        //
hgs
parents: 30
diff changeset
   295
        ulong fileSize = fileInfo.size();
41
hgs
parents: 38
diff changeset
   296
34
hgs
parents: 30
diff changeset
   297
        //
hgs
parents: 30
diff changeset
   298
        // convert file size to KB, MB, GB accordingly
hgs
parents: 30
diff changeset
   299
        //
hgs
parents: 30
diff changeset
   300
        if ( fileSize > 0 )
36
hgs
parents: 34
diff changeset
   301
        {
hgs
parents: 34
diff changeset
   302
            HbExtendedLocale locale = HbExtendedLocale::system();
hgs
parents: 34
diff changeset
   303
hgs
parents: 34
diff changeset
   304
            QString scale;
hgs
parents: 34
diff changeset
   305
34
hgs
parents: 30
diff changeset
   306
            //
hgs
parents: 30
diff changeset
   307
            // cast for later conversion with floating point
hgs
parents: 30
diff changeset
   308
            //
hgs
parents: 30
diff changeset
   309
            float size = (float) fileSize;
36
hgs
parents: 34
diff changeset
   310
30
hgs
parents:
diff changeset
   311
            if ( size > KILOBYTE )
hgs
parents:
diff changeset
   312
            {
hgs
parents:
diff changeset
   313
                size /= KILOBYTE;
36
hgs
parents: 34
diff changeset
   314
                scale = hbTrId( "txt_videos_list_l1_kb" );
30
hgs
parents:
diff changeset
   315
            }
36
hgs
parents: 34
diff changeset
   316
30
hgs
parents:
diff changeset
   317
            if ( size > KILOBYTE )
hgs
parents:
diff changeset
   318
            {
hgs
parents:
diff changeset
   319
                size /= KILOBYTE;
36
hgs
parents: 34
diff changeset
   320
                scale = hbTrId( "txt_videos_list_l1_mb" );
30
hgs
parents:
diff changeset
   321
            }
36
hgs
parents: 34
diff changeset
   322
30
hgs
parents:
diff changeset
   323
            if ( size > KILOBYTE )
hgs
parents:
diff changeset
   324
            {
hgs
parents:
diff changeset
   325
                size /= KILOBYTE;
36
hgs
parents: 34
diff changeset
   326
                scale = hbTrId( "txt_videos_list_l1_gb" );
30
hgs
parents:
diff changeset
   327
            }
36
hgs
parents: 34
diff changeset
   328
30
hgs
parents:
diff changeset
   329
            int temp = size * 10;
hgs
parents:
diff changeset
   330
            size = (float)temp / 10;
36
hgs
parents: 34
diff changeset
   331
41
hgs
parents: 38
diff changeset
   332
            addItemToListWidget(
36
hgs
parents: 34
diff changeset
   333
                    hbTrId( "txt_videos_list_file_size" ), scale.arg( locale.toString( size ) ) );
41
hgs
parents: 38
diff changeset
   334
        }
30
hgs
parents:
diff changeset
   335
    }
hgs
parents:
diff changeset
   336
}
hgs
parents:
diff changeset
   337
hgs
parents:
diff changeset
   338
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   339
// QMPXVideoPlaybackFileDetailsWidget::makeBitRateItem
hgs
parents:
diff changeset
   340
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   341
//
hgs
parents:
diff changeset
   342
void QMPXVideoPlaybackFileDetailsWidget::makeBitRateItem( QMPXVideoPlaybackViewFileDetails* details  )
41
hgs
parents: 38
diff changeset
   343
{
30
hgs
parents:
diff changeset
   344
    if ( details->mBitRate > 0 )
hgs
parents:
diff changeset
   345
    {
36
hgs
parents: 34
diff changeset
   346
        HbExtendedLocale locale = HbExtendedLocale::system();
hgs
parents: 34
diff changeset
   347
30
hgs
parents:
diff changeset
   348
        float bitrate = details->mBitRate;
36
hgs
parents: 34
diff changeset
   349
hgs
parents: 34
diff changeset
   350
        QString scale = hbTrId( "txt_videos_list_l1_kbps" );
hgs
parents: 34
diff changeset
   351
30
hgs
parents:
diff changeset
   352
        if ( bitrate > KILOBYTE )
hgs
parents:
diff changeset
   353
        {
hgs
parents:
diff changeset
   354
             bitrate /= KILOBYTE;
hgs
parents:
diff changeset
   355
        }
41
hgs
parents: 38
diff changeset
   356
30
hgs
parents:
diff changeset
   357
        if ( bitrate > KILOBYTE )
hgs
parents:
diff changeset
   358
        {
hgs
parents:
diff changeset
   359
             bitrate /= KILOBYTE;
36
hgs
parents: 34
diff changeset
   360
             scale = hbTrId( "txt_videos_list_l1_mbps" );
30
hgs
parents:
diff changeset
   361
        }
41
hgs
parents: 38
diff changeset
   362
30
hgs
parents:
diff changeset
   363
        int temp = bitrate * 10;
hgs
parents:
diff changeset
   364
        bitrate = (float)temp / 10;
36
hgs
parents: 34
diff changeset
   365
41
hgs
parents: 38
diff changeset
   366
        addItemToListWidget(
36
hgs
parents: 34
diff changeset
   367
                hbTrId( "txt_videos_list_bitrate" ), scale.arg( locale.toString( bitrate ) ) );
30
hgs
parents:
diff changeset
   368
    }
hgs
parents:
diff changeset
   369
}
hgs
parents:
diff changeset
   370
hgs
parents:
diff changeset
   371
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   372
// QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget
hgs
parents:
diff changeset
   373
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   374
//
hgs
parents:
diff changeset
   375
void QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget( QString item, QString text  )
41
hgs
parents: 38
diff changeset
   376
{
36
hgs
parents: 34
diff changeset
   377
    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget"));
41
hgs
parents: 38
diff changeset
   378
30
hgs
parents:
diff changeset
   379
    if ( text.count() > 0 )
hgs
parents:
diff changeset
   380
    {
41
hgs
parents: 38
diff changeset
   381
        MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget( %s %s )"),
36
hgs
parents: 34
diff changeset
   382
		    item.data(), text.data() );
41
hgs
parents: 38
diff changeset
   383
30
hgs
parents:
diff changeset
   384
        HbListWidgetItem* listWidgetItem = new HbListWidgetItem();
hgs
parents:
diff changeset
   385
        listWidgetItem->setText( item );
hgs
parents:
diff changeset
   386
        listWidgetItem->setSecondaryText( text );
41
hgs
parents: 38
diff changeset
   387
30
hgs
parents:
diff changeset
   388
        mListWidget->addItem( listWidgetItem );
hgs
parents:
diff changeset
   389
    }
hgs
parents:
diff changeset
   390
}
hgs
parents:
diff changeset
   391
36
hgs
parents: 34
diff changeset
   392
// -------------------------------------------------------------------------------------------------
hgs
parents: 34
diff changeset
   393
// QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem
hgs
parents: 34
diff changeset
   394
// -------------------------------------------------------------------------------------------------
hgs
parents: 34
diff changeset
   395
//
hgs
parents: 34
diff changeset
   396
void QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem( QMPXVideoPlaybackViewFileDetails* details )
41
hgs
parents: 38
diff changeset
   397
{
36
hgs
parents: 34
diff changeset
   398
    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem"));
41
hgs
parents: 38
diff changeset
   399
36
hgs
parents: 34
diff changeset
   400
    //
hgs
parents: 34
diff changeset
   401
    // attempt to get 'created' and 'last modified' date/time from metadata first,
hgs
parents: 34
diff changeset
   402
    // if it's not available, then get it from the file system
hgs
parents: 34
diff changeset
   403
    //
41
hgs
parents: 38
diff changeset
   404
36
hgs
parents: 34
diff changeset
   405
    if ( details->mPlaybackMode == EMPXVideoLocal ||
hgs
parents: 34
diff changeset
   406
         details->mPlaybackMode == EMPXVideoProgressiveDownload )
41
hgs
parents: 38
diff changeset
   407
    {
36
hgs
parents: 34
diff changeset
   408
        QDateTime dateTime;
41
hgs
parents: 38
diff changeset
   409
        QFileInfo fileInfo( details->mClipName );
36
hgs
parents: 34
diff changeset
   410
        HbExtendedLocale locale = HbExtendedLocale::system();
41
hgs
parents: 38
diff changeset
   411
36
hgs
parents: 34
diff changeset
   412
        //
hgs
parents: 34
diff changeset
   413
        // Date created
hgs
parents: 34
diff changeset
   414
        //
hgs
parents: 34
diff changeset
   415
        if ( details->mCreationTime > 0 )
hgs
parents: 34
diff changeset
   416
        {
hgs
parents: 34
diff changeset
   417
            dateTime.setTime_t( details->mCreationTime );
hgs
parents: 34
diff changeset
   418
        }
hgs
parents: 34
diff changeset
   419
        else
hgs
parents: 34
diff changeset
   420
        {
hgs
parents: 34
diff changeset
   421
            dateTime = fileInfo.created();
hgs
parents: 34
diff changeset
   422
        }
41
hgs
parents: 38
diff changeset
   423
36
hgs
parents: 34
diff changeset
   424
        //
hgs
parents: 34
diff changeset
   425
        // convert 'created' date/time to proper string format
hgs
parents: 34
diff changeset
   426
        // according to its current locale
hgs
parents: 34
diff changeset
   427
        //
hgs
parents: 34
diff changeset
   428
        QString date = locale.format( dateTime.date(), r_qtn_date_usual );
hgs
parents: 34
diff changeset
   429
        QString time = locale.format( dateTime.time(), r_qtn_time_long_with_zero );
41
hgs
parents: 38
diff changeset
   430
        addItemToListWidget( hbTrId( "txt_videos_list_date" ), date + "  " + time );
hgs
parents: 38
diff changeset
   431
36
hgs
parents: 34
diff changeset
   432
        //
hgs
parents: 34
diff changeset
   433
        // Date modified
hgs
parents: 34
diff changeset
   434
        //
hgs
parents: 34
diff changeset
   435
        if ( details->mModificationTime > 0 )
hgs
parents: 34
diff changeset
   436
        {
hgs
parents: 34
diff changeset
   437
            dateTime.setTime_t( details->mModificationTime );
hgs
parents: 34
diff changeset
   438
        }
hgs
parents: 34
diff changeset
   439
        else
hgs
parents: 34
diff changeset
   440
        {
hgs
parents: 34
diff changeset
   441
            dateTime = fileInfo.lastModified();
hgs
parents: 34
diff changeset
   442
        }
41
hgs
parents: 38
diff changeset
   443
36
hgs
parents: 34
diff changeset
   444
        //
hgs
parents: 34
diff changeset
   445
        // convert 'last modified' date/time to proper string format
hgs
parents: 34
diff changeset
   446
        // according to its current locale
hgs
parents: 34
diff changeset
   447
        //
hgs
parents: 34
diff changeset
   448
        date = locale.format( dateTime.date(), r_qtn_date_usual );
hgs
parents: 34
diff changeset
   449
        time = locale.format( dateTime.time(), r_qtn_time_long_with_zero );
41
hgs
parents: 38
diff changeset
   450
        addItemToListWidget( hbTrId( "txt_videos_list_modified" ), date + "  " + time );
hgs
parents: 38
diff changeset
   451
    }
36
hgs
parents: 34
diff changeset
   452
}
hgs
parents: 34
diff changeset
   453
30
hgs
parents:
diff changeset
   454
//End of file