本文整理汇总了C++中SourceItem::pixmap方法的典型用法代码示例。如果您正苦于以下问题:C++ SourceItem::pixmap方法的具体用法?C++ SourceItem::pixmap怎么用?C++ SourceItem::pixmap使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SourceItem
的用法示例。
在下文中一共展示了SourceItem::pixmap方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
void
SourceDelegate::paintSource( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const
{
painter->save();
painter->setPen( Qt::black );
QFont font = painter->font();
font.setPointSize( TomahawkUtils::defaultFontSize() );
painter->setFont( font );
SourceTreeItem* item = index.data( SourcesModel::SourceTreeItemRole ).value< SourceTreeItem* >();
SourcesModel::RowType type = static_cast< SourcesModel::RowType >( index.data( SourcesModel::SourceTreeItemTypeRole ).toInt() );
const int iconRectVertMargin = m_margin / 4;
const QRect iconRect = option.rect.adjusted( m_margin / 2 + m_margin / 4, iconRectVertMargin, -option.rect.width() + option.rect.height() + m_margin / 4, -iconRectVertMargin );
QString name = index.data().toString();
QPixmap avatar;
int figWidth = 0;
bool isPlaying = false;
QString desc;
QString tracks;
bool shouldDrawDropHint = false;
if ( type == SourcesModel::Source )
{
// If the user is about to drop a track on a peer
QRect itemsRect = option.rect;
QPoint cursorPos = m_parent->mapFromGlobal( QCursor::pos() );
bool cursorInRect = itemsRect.contains( cursorPos );
if ( cursorInRect && m_dropHoverIndex.isValid() && m_dropHoverIndex == index )
shouldDrawDropHint = true;
SourceItem* colItem = qobject_cast< SourceItem* >( item );
Q_ASSERT( colItem );
bool status = !( !colItem->source() || !colItem->source()->isOnline() );
if ( colItem->source() && !colItem->source()->isLocal() )
{
if ( status )
{
tracks = QString::number( colItem->source()->trackCount() );
if ( shouldDrawDropHint )
figWidth = iconRect.width();
name = colItem->source()->friendlyName();
}
avatar = colItem->pixmap( iconRect.size() );
isPlaying = !colItem->source()->currentTrack().isNull();
desc = colItem->source()->textStatus();
if ( colItem->source().isNull() )
desc = tr( "All available tracks" );
}
}
else if ( type == SourcesModel::ScriptCollection )
{
ScriptCollectionItem* scItem = qobject_cast< ScriptCollectionItem* >( item );
Q_ASSERT( scItem );
if ( !scItem->collection().isNull() )
{
int trackCount = scItem->collection()->trackCount();
if ( trackCount >= 0 )
{
tracks = QString::number( trackCount );
figWidth = painter->fontMetrics().width( tracks );
}
name = scItem->collection()->itemName();
}
avatar = scItem->icon().pixmap( iconRect.size() );
desc = qobject_cast< Tomahawk::ScriptCollection* >( scItem->collection().data() )->description();
}
painter->setOpacity( 1.0 );
painter->drawPixmap( iconRect, avatar );
QRect textRect = option.rect.adjusted( iconRect.width() + m_margin, m_margin / 6 + m_margin / 32, -figWidth - ( figWidth ? m_margin : 0 ), 0 );
QString text = painter->fontMetrics().elidedText( name, Qt::ElideRight, textRect.width() );
{
QTextOption to;
to.setWrapMode( QTextOption::NoWrap );
painter->setOpacity( 0.7 );
painter->drawText( textRect, text, to );
}
textRect = option.rect.adjusted( iconRect.width() + m_margin, option.rect.height() / 2, -figWidth - ( figWidth ? m_margin : 0 ), -m_margin / 4 );
if ( type == SourcesModel::Source )
{
SourceItem* colItem = qobject_cast< SourceItem* >( item );
Q_ASSERT( colItem );
bool privacyOn = TomahawkSettings::instance()->privateListeningMode() == TomahawkSettings::FullyPrivate;
if ( !colItem->source().isNull() && colItem->source()->isLocal() && privacyOn )
{
QRect pmRect = textRect;
pmRect.setRight( pmRect.left() + pmRect.height() );
ActionCollection::instance()->getAction( "togglePrivacy" )->icon().paint( painter, pmRect );
textRect.adjust( pmRect.width() + m_margin / 8, 0, 0, 0 );
}
//.........这里部分代码省略.........