本文整理汇总了C++中tomahawk::query_ptr::score方法的典型用法代码示例。如果您正苦于以下问题:C++ query_ptr::score方法的具体用法?C++ query_ptr::score怎么用?C++ query_ptr::score使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tomahawk::query_ptr
的用法示例。
在下文中一共展示了query_ptr::score方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: localeAwareCompare
bool
PlayableProxyModel::lessThan( int column, const Tomahawk::query_ptr& q1, const Tomahawk::query_ptr& q2 ) const
{
// Attention: This function may be called very often!
// So be aware of its performance.
const Tomahawk::track_ptr& t1 = q1->track();
const Tomahawk::track_ptr& t2 = q2->track();
const QString& artist1 = t1->artistSortname();
const QString& artist2 = t2->artistSortname();
const QString& album1 = t1->albumSortname();
const QString& album2 = t2->albumSortname();
const unsigned int albumpos1 = t1->albumpos();
const unsigned int albumpos2 = t2->albumpos();
const unsigned int discnumber1 = t1->discnumber();
const unsigned int discnumber2 = t2->discnumber();
const qint64 id1 = (qint64)&q1;
const qint64 id2 = (qint64)&q2;
if ( column == PlayableModel::Artist ) // sort by artist
{
if ( artist1 == artist2 )
{
if ( album1 == album2 )
{
if ( discnumber1 == discnumber2 )
{
if ( albumpos1 == albumpos2 )
return id1 < id2;
return albumpos1 < albumpos2;
}
return discnumber1 < discnumber2;
}
return QString::localeAwareCompare( album1, album2 ) < 0;
}
return QString::localeAwareCompare( artist1, artist2 ) < 0;
}
// Sort by Composer
const QString& composer1 = t1->composerSortname();
const QString& composer2 = t2->composerSortname();
if ( column == PlayableModel::Composer )
{
if ( composer1 == composer2 )
{
if ( album1 == album2 )
{
if ( discnumber1 == discnumber2 )
{
if ( albumpos1 == albumpos2 )
return id1 < id2;
return albumpos1 < albumpos2;
}
return discnumber1 < discnumber2;
}
return QString::localeAwareCompare( album1, album2 ) < 0;
}
return QString::localeAwareCompare( composer1, composer2 ) < 0;
}
// Sort by Album
if ( column == PlayableModel::Album ) // sort by album
{
if ( album1 == album2 )
{
if ( discnumber1 == discnumber2 )
{
if ( albumpos1 == albumpos2 )
return id1 < id2;
return albumpos1 < albumpos2;
}
return discnumber1 < discnumber2;
}
return QString::localeAwareCompare( album1, album2 ) < 0;
}
// Lazy load these variables, they are not used before.
unsigned int bitrate1 = 0, bitrate2 = 0;
unsigned int mtime1 = 0, mtime2 = 0;
unsigned int size1 = 0, size2 = 0;
unsigned int year1 = 0, year2 = 0;
float score1 = 0, score2 = 0;
QString origin1;
QString origin2;
if ( !q1->results().isEmpty() )
{
Tomahawk::result_ptr r = q1->results().first();
bitrate1 = r->bitrate();
mtime1 = r->modificationTime();
size1 = r->size();
//.........这里部分代码省略.........