本文整理汇总了C++中Playlist::mapToLogicalColumn方法的典型用法代码示例。如果您正苦于以下问题:C++ Playlist::mapToLogicalColumn方法的具体用法?C++ Playlist::mapToLogicalColumn怎么用?C++ Playlist::mapToLogicalColumn使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Playlist
的用法示例。
在下文中一共展示了Playlist::mapToLogicalColumn方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setTrack
void TrackToolTip::setTrack( const MetaBundle &tags, bool force )
{
if( force || m_tags != tags || m_tags.url() != tags.url() )
{
m_haspos = false;
m_tooltip = QString::null;
QStringList left, right;
const QString tableRow = "<tr><td width=70 align=right>%1:</td><td align=left>%2</td></tr>";
QString filename = "", title = ""; //special case these, put the first one encountered on top
Playlist *playlist = Playlist::instance();
const int n = playlist->numVisibleColumns();
for( int i = 0; i < n; ++i )
{
const int column = playlist->mapToLogicalColumn( i );
if( column == PlaylistItem::Score )
{
const int score = CollectionDB::instance()->getSongPercentage( tags.url().path() );
if( score > 0 )
{
right << QString::number( score );
left << playlist->columnText( column );
}
}
else if( column == PlaylistItem::Rating )
{
const int rating = CollectionDB::instance()->getSongRating( tags.url().path() );
if( rating > 0 )
{
QString s;
for( int i = 0; i < rating / 2; ++i )
s += QString( "<img src=\"%1\" height=\"%2\" width=\"%3\">" )
.arg( locate( "data", "amarok/images/star.png" ) )
.arg( QFontMetrics( QToolTip::font() ).height() )
.arg( QFontMetrics( QToolTip::font() ).height() );
if( rating % 2 )
s += QString( "<img src=\"%1\" height=\"%2\" width=\"%3\">" )
.arg( locate( "data", "amarok/images/smallstar.png" ) )
.arg( QFontMetrics( QToolTip::font() ).height() )
.arg( QFontMetrics( QToolTip::font() ).height() );
right << s;
left << playlist->columnText( column );
}
}
else if( column == PlaylistItem::PlayCount )
{
const int count = CollectionDB::instance()->getPlayCount( tags.url().path() );
if( count > 0 )
{
right << QString::number( count );
left << playlist->columnText( column );
}
}
else if( column == PlaylistItem::LastPlayed )
{
const uint lastPlayed = CollectionDB::instance()->getLastPlay( tags.url().path() ).toTime_t();
right << amaroK::verboseTimeSince( lastPlayed );
left << playlist->columnText( column );
}
else if( column == PlaylistItem::Filename && title.isEmpty() )
filename = tags.prettyText( column );
else if( column == PlaylistItem::Title && filename.isEmpty() )
title = tags.prettyText( column );
else if( column != PlaylistItem::Length )
{
const QString tag = tags.prettyText( column );
if( !tag.isEmpty() )
{
right << tag;
left << playlist->columnText( column );
}
}
}
if( !filename.isEmpty() )
{
right.prepend( filename );
left.prepend( playlist->columnText( PlaylistItem::Filename ) );
}
else if( !title.isEmpty() )
{
right.prepend( title );
left.prepend( playlist->columnText( PlaylistItem::Title ) );
}
if( tags.length() > 0 ) //special case this too, always on the bottom
{
m_haspos = true;
right << "%9 / " + tags.prettyLength();
left << playlist->columnText( PlaylistItem::Length );
}
//NOTE it seems to be necessary to <center> each element indivdually
m_tooltip += "<center><b>Amarok</b></center><table cellpadding='2' cellspacing='2' align='center'><tr>";
m_tooltip += "%1"; //the cover gets substituted in, in tooltip()
m_cover = CollectionDB::instance()->podcastImage( tags );
//.........这里部分代码省略.........