mpviewplugins/mpdetailsviewplugin/src/mpdetailsview.cpp
changeset 45 612c4815aebe
parent 43 0f32e550d9d8
child 47 4cc1412daed0
equal deleted inserted replaced
43:0f32e550d9d8 45:612c4815aebe
    53 #include "mpdetailssharedialog.h"
    53 #include "mpdetailssharedialog.h"
    54 #endif
    54 #endif
    55 
    55 
    56 
    56 
    57 const int KRecommendationCount = 2;
    57 const int KRecommendationCount = 2;
    58 
    58 const int KOneKiloByteInBytes = 1024;
       
    59 const int KOneMegabyteInBytes = 1048576;        
       
    60 const int KOneGigaByteInBytes = 134217728;        
    59 
    61 
    60 /*!
    62 /*!
    61  Constructor
    63  Constructor
    62  */
    64  */
    63 MpDetailsView::MpDetailsView()
    65 MpDetailsView::MpDetailsView()
   336         const int maxTextRowCount = 20;
   338         const int maxTextRowCount = 20;
   337         const int minTextRowCount = 1;
   339         const int minTextRowCount = 1;
   338         prototype->setSecondaryTextRowCount(minTextRowCount,maxTextRowCount);
   340         prototype->setSecondaryTextRowCount(minTextRowCount,maxTextRowCount);
   339 
   341 
   340         HbListWidgetItem  *inspireMeItem = new HbListWidgetItem();
   342         HbListWidgetItem  *inspireMeItem = new HbListWidgetItem();
   341         QString info(tr("There are no recommendations for this track, but you can always discover new music on Ovi"));
   343         inspireMeItem->setSecondaryText( hbTrId( "txt_mus_dblist_val_there_are_no_recommendations" ) );
   342         inspireMeItem->setText( QString( " " ) );
       
   343         inspireMeItem->setSecondaryText( info );
       
   344         mInspireList->addItem( inspireMeItem );
   344         mInspireList->addItem( inspireMeItem );
   345     }
   345     }
   346 
   346 
   347     TX_EXIT
   347     TX_EXIT
   348 }
   348 }
   384     }
   384     }
   385 
   385 
   386     if ( !mSongData->album().isEmpty () ) {
   386     if ( !mSongData->album().isEmpty () ) {
   387         mAlbumText->setPlainText( mSongData->album() );
   387         mAlbumText->setPlainText( mSongData->album() );
   388     } else {
   388     } else {
   389         mAlbumText->setPlainText( tr( "Unknown") );
   389         mAlbumText->setPlainText( hbTrId( "txt_mus_other_unknown7") );
   390     }
   390     }
   391 
   391 
   392     if ( !mSongData->artist().isEmpty() ) {
   392     if ( !mSongData->artist().isEmpty() ) {
   393         mArtistText->setPlainText( mSongData->artist() );
   393         mArtistText->setPlainText( mSongData->artist() );
   394     } else {
   394     } else {
   395         mArtistText->setPlainText( tr( "Unknown") );
   395         mArtistText->setPlainText( hbTrId( "txt_mus_other_unknown6") );
   396     }
   396     }
   397 
   397 
   398     if (canQuerySharePlayerLink() ) {
   398     if (canQuerySharePlayerLink() ) {
   399         mMpQueryManager->queryLocalMusicStore(mSongData->artist(),mSongData->album(),mSongData->title());
   399         mMpQueryManager->queryLocalMusicStore(mSongData->artist(),mSongData->album(),mSongData->title());
   400     }
   400     }
   431     TX_ENTRY
   431     TX_ENTRY
   432     mDetailList->clear();
   432     mDetailList->clear();
   433 
   433 
   434     if ( !mSongData->albumTrack().isNull() ) {
   434     if ( !mSongData->albumTrack().isNull() ) {
   435         HbListWidgetItem *item = new HbListWidgetItem();
   435         HbListWidgetItem *item = new HbListWidgetItem();
   436         item->setText( tr( "Song number" ) );
   436         item->setText( hbTrId( "txt_mus_dblist_song_number" ) );
   437         item->setSecondaryText( mSongData->albumTrack() );
   437         item->setSecondaryText( mSongData->albumTrack() );
   438         item->setEnabled( false );
   438         item->setEnabled( false );
   439         mDetailList->addItem( item );
   439         mDetailList->addItem( item );
   440     }
   440     }
   441 
   441 
   442     if ( !mSongData->year().isNull() ) {
   442     if ( !mSongData->year().isNull() ) {
   443         HbListWidgetItem *item = new HbListWidgetItem();
   443         HbListWidgetItem *item = new HbListWidgetItem();
   444         item->setText( tr( "Year" ) );
   444         item->setText( hbTrId( "txt_mus_dblist_year" ) );
   445         item->setSecondaryText( mSongData->year() );
   445         item->setSecondaryText( mSongData->year() );
   446         item->setEnabled( false );
   446         item->setEnabled( false );
   447         mDetailList->addItem( item );
   447         mDetailList->addItem( item );
   448     }
   448     }
   449 
   449 
   450     if ( !mSongData->genre().isNull() ) {
   450     if ( !mSongData->genre().isNull() ) {
   451         HbListWidgetItem *item = new HbListWidgetItem();
   451         HbListWidgetItem *item = new HbListWidgetItem();
   452         item->setText( tr( "Genre" ) );
   452         item->setText( hbTrId( "txt_mus_dblist_genre" ) );
   453         item->setSecondaryText( mSongData->genre() );
   453         item->setSecondaryText( mSongData->genre() );
   454         item->setEnabled( false );
   454         item->setEnabled( false );
   455         mDetailList->addItem( item );
   455         mDetailList->addItem( item );
   456     }
   456     }
   457 
   457 
   458     if ( !mSongData->composer().isNull() ) {
   458     if ( !mSongData->composer().isNull() ) {
   459         HbListWidgetItem *item = new HbListWidgetItem();
   459         HbListWidgetItem *item = new HbListWidgetItem();
   460         item->setText( tr( "Composer" ) );
   460         item->setText( hbTrId( "txt_mus_dblist_composer" ) );
   461         item->setSecondaryText( mSongData->composer() );
   461         item->setSecondaryText( mSongData->composer() );
   462         item->setEnabled( false );
   462         item->setEnabled( false );
   463         mDetailList->addItem( item );
   463         mDetailList->addItem( item );
   464     }
   464     }
   465 
   465 
   466     if ( !mSongData->fileName().isNull() ) {
   466     if ( !mSongData->fileName().isNull() ) {
   467         HbListWidgetItem *item = new HbListWidgetItem();
   467         HbListWidgetItem *item = new HbListWidgetItem();
   468         item->setText( tr( "File name" ) );
   468         item->setText( hbTrId( "txt_mus_dblist_file_name" ) );
   469         item->setSecondaryText( mSongData->fileName() );
   469         item->setSecondaryText( mSongData->fileName() );
   470         item->setEnabled( false );
   470         item->setEnabled( false );
   471         mDetailList->addItem( item );
   471         mDetailList->addItem( item );
   472     }
   472     }
   473 
   473 
   474     if ( !mSongData->mimeType().isNull() ) {
   474     if ( !mSongData->mimeType().isNull() ) {
   475         HbListWidgetItem *item = new HbListWidgetItem();
   475         HbListWidgetItem *item = new HbListWidgetItem();
   476         item->setText( tr( "Format" ) );
   476         item->setText( hbTrId( "txt_mus_dblist_format" ) );
   477         item->setSecondaryText( mSongData->mimeType() );
   477         item->setSecondaryText( mSongData->mimeType() );
   478         item->setEnabled( false );
   478         item->setEnabled( false );
   479         mDetailList->addItem( item );
   479         mDetailList->addItem( item );
   480     }
   480     }
   481 
   481 
   482     if ( !mSongData->duration().isNull() ) {
   482     if ( !mSongData->duration().isNull() ) {
   483         HbListWidgetItem *item = new HbListWidgetItem();
   483         HbListWidgetItem *item = new HbListWidgetItem();
   484         item->setText( tr( "Duration" ) );
   484         item->setText( hbTrId( "txt_mus_dblist_duration" ) );
   485         item->setSecondaryText( mSongData->duration() );
   485         item->setSecondaryText( mSongData->duration() );
   486         item->setEnabled( false );
   486         item->setEnabled( false );
   487         mDetailList->addItem( item );
   487         mDetailList->addItem( item );
   488     }
   488     }
   489 
   489 
   490     if ( !mSongData->bitRate().isNull() ) {
   490     if ( !mSongData->bitRate().isNull() ) {
   491         HbListWidgetItem *item = new HbListWidgetItem();
   491         HbListWidgetItem *item = new HbListWidgetItem();
   492         item->setText( tr( "Bitrate" ) );
   492         item->setText( hbTrId( "txt_mus_dblist_bitrate" ) );
   493         item->setSecondaryText( mSongData->bitRate().append( " Kbps" ) );
   493         bool ok = false;
       
   494         int bitRate = mSongData->bitRate().toInt(&ok);
       
   495         TX_LOG_ARGS("Warning: If zero, bitrate is not read correctly. It wont show up in details" << ok);
       
   496         if(ok) {
       
   497             item->setSecondaryText( hbTrId("txt_mus_dblist_bitrate_val_ln_kbps", bitRate) );
       
   498         }    
   494         item->setEnabled( false );
   499         item->setEnabled( false );
   495         mDetailList->addItem( item );
   500         mDetailList->addItem( item );
   496     }
   501     }
   497 
   502 
   498     if ( !mSongData->sampleRate().isNull() ) {
   503     if ( !mSongData->sampleRate().isNull() ) {
   499         HbListWidgetItem *item = new HbListWidgetItem();
   504         HbListWidgetItem *item = new HbListWidgetItem();
   500         item->setText( tr( "Sampling rate" ) );
   505         item->setText( hbTrId( "txt_mus_dblist_sampling_rate" ) );
   501         item->setSecondaryText( mSongData->sampleRate().append( " hz" ) );
   506         bool ok = false;
       
   507         int samplingRate = mSongData->sampleRate().toInt(&ok);
       
   508         TX_LOG_ARGS("Warning: If zero, sampling rate is not read correctly. It wont show up in details" << ok);
       
   509         if(ok) {
       
   510             item->setSecondaryText(	hbTrId("txt_mus_dblist_sampling_rate_val_ln_hz", samplingRate) );
       
   511         }            
   502         item->setEnabled( false );
   512         item->setEnabled( false );
   503         mDetailList->addItem( item );
   513         mDetailList->addItem( item );
   504     }
   514     }
   505 
   515 
   506     if ( !mSongData->size().isNull() ) {
   516     if ( !mSongData->size().isNull() ) {
   507         HbListWidgetItem *item = new HbListWidgetItem();
   517         HbListWidgetItem *item = new HbListWidgetItem();
   508         item->setText( tr( "Size" ) );
   518         item->setText( hbTrId( "txt_mus_dblist_size" ) );
   509         item->setSecondaryText( mSongData->size().append( " MB" ) );
   519         bool ok = false;
       
   520         long size = mSongData->size().toLong(&ok); // in bytes
       
   521         TX_LOG_ARGS("WARNING: If zero, Cant get song data size right. You wont see the size in details groupbox correctly" << ok );
       
   522         if( size < KOneKiloByteInBytes) {
       
   523             // under 1 KB
       
   524             item->setSecondaryText( hbTrId("txt_mus_dblist_size_val_ln_b", size) );
       
   525         } else if( size < KOneMegabyteInBytes ) {
       
   526             // under 1 MB
       
   527             size /= KOneKiloByteInBytes; // turn size into KB
       
   528             item->setSecondaryText( hbTrId("txt_mus_dblist_size_val_ln_kb", size) );
       
   529         } else if( size < KOneGigaByteInBytes ) {
       
   530             // under 1 GB
       
   531             size /= KOneMegabyteInBytes; // turn size to MB
       
   532             item->setSecondaryText( hbTrId("txt_mus_dblist_size_val_ln_mb", size) );
       
   533         } else {
       
   534             // 1 GB or higher
       
   535             size /= KOneGigaByteInBytes; // turn size to GB
       
   536             item->setSecondaryText( hbTrId("txt_mus_dblist_size_val_ln_gb", size) );            
       
   537         }
   510         item->setEnabled( false );
   538         item->setEnabled( false );
   511         mDetailList->addItem( item );
   539         mDetailList->addItem( item );
   512     }
   540     }
   513 
   541 
   514     if ( !mSongData->modified().isNull() ) {
   542     if ( !mSongData->modified().isNull() ) {
   515         HbListWidgetItem *item = new HbListWidgetItem();
   543         HbListWidgetItem *item = new HbListWidgetItem();
   516         item->setText( tr( "Modified" ) );
   544         item->setText( hbTrId( "txt_mus_dblist_modified" ) );
   517         item->setSecondaryText( mSongData->modified() );
   545         item->setSecondaryText( mSongData->modified() );
   518         item->setEnabled( false );
   546         item->setEnabled( false );
   519         mDetailList->addItem( item );
   547         mDetailList->addItem( item );
   520     }
   548     }
   521 
   549 
   522     if ( !mSongData->copyright().isNull() ) {
   550     if ( !mSongData->copyright().isNull() ) {
   523         HbListWidgetItem *item = new HbListWidgetItem();
   551         HbListWidgetItem *item = new HbListWidgetItem();
   524         item->setText( tr( "Copyright" ) );
   552         item->setText( hbTrId( "txt_mus_dblist_copyright" ) );
   525         item->setSecondaryText( mSongData->copyright() );
   553         item->setSecondaryText( mSongData->copyright() );
   526         item->setEnabled( false );
   554         item->setEnabled( false );
   527         mDetailList->addItem( item );
   555         mDetailList->addItem( item );
   528     }
   556     }
   529 
   557 
   530     if ( !mSongData->musicURL().isNull() ) {
   558     if ( !mSongData->musicURL().isNull() ) {
   531         HbListWidgetItem *item = new HbListWidgetItem();
   559         HbListWidgetItem *item = new HbListWidgetItem();
   532         item->setText( tr( "Web site" ) );
   560         item->setText( hbTrId( "txt_mus_dblist_web_site" ) );
   533         item->setSecondaryText( mSongData->musicURL() );
   561         item->setSecondaryText( mSongData->musicURL() );
   534         item->setEnabled( true );
   562         item->setEnabled( true );
   535         mDetailList->addItem( item );
   563         mDetailList->addItem( item );
   536     }
   564     }
   537 
   565 
   538     if ( mSongData->isDrmProtected() ) {
   566     if ( mSongData->isDrmProtected() ) {
   539         HbListWidgetItem *item = new HbListWidgetItem();
   567         HbListWidgetItem *item = new HbListWidgetItem();
   540         item->setText( tr( "Licences" ) );
   568         item->setText( hbTrId( "txt_mus_dblist_licences" ) );
   541         item->setSecondaryText( tr( "Click for details" ) );
   569         item->setSecondaryText( hbTrId( "txt_mus_dblist_licences_val_click_for_details" ) );
   542         item->setEnabled( true );
   570         item->setEnabled( true );
   543         mDetailList->addItem( item );
   571         mDetailList->addItem( item );
   544     }
   572     }
   545 
   573 
   546     TX_EXIT
   574     TX_EXIT
   615         mSharePopup = new MpDetailsShareDialog();
   643         mSharePopup = new MpDetailsShareDialog();
   616     }
   644     }
   617     if ( !mSharePopup->isInitialized() )
   645     if ( !mSharePopup->isInitialized() )
   618     {
   646     {
   619         connect( mSharePopup, SIGNAL( closeShareDialog() ), this, SLOT( closeShareDialog() ) );
   647         connect( mSharePopup, SIGNAL( closeShareDialog() ), this, SLOT( closeShareDialog() ) );
       
   648 		// TODO: Ask for a localization string for this, there is none in text map
   620         mSharePopup->initialize( mSongData, tr( "Unknown" ) );
   649         mSharePopup->initialize( mSongData, tr( "Unknown" ) );
   621     }
   650     }
   622     TX_EXIT
   651     TX_EXIT
   623 }
   652 }
   624 
   653