1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-04-22 00:42:04 +02:00

Redundant code is redundant.

This commit is contained in:
Teo Mrnjavac 2013-09-27 12:55:21 +02:00
parent 6242b1633f
commit 7e598a5aba
3 changed files with 32 additions and 73 deletions

@ -387,80 +387,16 @@ PlaylistItemDelegate::drawLoveBox( QPainter* painter, const QRect& rect, Playabl
}
QRect
PlaylistItemDelegate::drawSentBox( QPainter* painter, const QStyleOptionViewItem& option, const QRect& rect, PlayableItem* item, const QModelIndex& index ) const
QRect PlaylistItemDelegate::drawGenericBox( QPainter* painter, const QStyleOptionViewItem& option, const QRect& rect, const QString& text, const QList< Tomahawk::source_ptr >& sources ) const
{
const int height = rect.height() - 4 * 2;
const int width = 2 + rect.height() - 4 * 2;
QList< QPixmap > pixmaps;
QDateTime earliestTimestamp = QDateTime::currentDateTime();
foreach ( const Tomahawk::SocialAction& sa, item->query()->queryTrack()->socialActions( "Inbox", QVariant() /*neither true nor false!*/, true ) )
foreach ( const Tomahawk::source_ptr& s, sources )
{
QDateTime saTimestamp = QDateTime::fromTime_t( sa.timestamp.toInt() );
if ( saTimestamp < earliestTimestamp && saTimestamp.toTime_t() > 0 )
earliestTimestamp = saTimestamp;
pixmaps << sa.source->avatar( TomahawkUtils::Original, QSize( height, height ) );
pixmaps << s->avatar( TomahawkUtils::Original, QSize( height, height ) );
}
const int max = 5;
const unsigned int count = qMin( pixmaps.count(), max );
painter->save();
painter->setRenderHint( QPainter::Antialiasing, true );
painter->setBrush( Qt::transparent );
QPen pen = painter->pen().color();
pen.setWidthF( 0.2 );
painter->setPen( pen );
QTextDocument textDoc;
textDoc.setHtml( QString( "<b>%1</b>" )
.arg( TomahawkUtils::ageToString( earliestTimestamp, true ) ) );
textDoc.setDocumentMargin( 0 );
textDoc.setDefaultFont( painter->font() );
textDoc.setDefaultTextOption( m_bottomOption );
QRect innerRect = rect.adjusted( rect.width() - width * count - 4 * 4 -
textDoc.idealWidth(),
0, 0, 0 );
QRect textRect = innerRect.adjusted( 4, 4, - innerRect.width() + textDoc.idealWidth() + 2*4, -4 );
drawRichText( painter, option, textRect, Qt::AlignVCenter|Qt::AlignRight, textDoc );
if ( !pixmaps.isEmpty() && !textDoc.isEmpty() )
painter->drawRoundedRect( innerRect, 4, 4, Qt::RelativeSize );
unsigned int i = 0;
foreach ( QPixmap pixmap, pixmaps )
{
if ( i >= max )
break;
QRect r = innerRect.adjusted( textDoc.idealWidth() + 3*4, 4, -4, -4 );
r.adjust( width * i, 0, 0, 0 );
r.setWidth( width );
if ( pixmap.isNull() )
pixmap = TomahawkUtils::defaultPixmap( TomahawkUtils::DefaultSourceAvatar, TomahawkUtils::Original, QSize( r.height(), r.height() ) );
painter->drawPixmap( r.adjusted( 1, 0, -1, 0 ), pixmap );
i++;
}
painter->restore();
return rect;
}
QRect PlaylistItemDelegate::drawRecentBox(QPainter* painter, const QStyleOptionViewItem& option, const QRect& rect, PlayableItem* item, const QModelIndex& index) const
{
const int height = rect.height() - 4 * 2;
const int width = 2 + rect.height() - 4 * 2;
QList< QPixmap > pixmaps;
pixmaps << item->playbackLog().source->avatar( TomahawkUtils::Original, QSize( height, height ) );
const int max = 5;
const unsigned int count = qMin( pixmaps.count(), max );
@ -473,10 +409,9 @@ QRect PlaylistItemDelegate::drawRecentBox(QPainter* painter, const QStyleOptionV
pen.setWidthF( 0.2 );
painter->setPen( pen );
QString playtime = TomahawkUtils::ageToString( QDateTime::fromTime_t( item->playbackLog().timestamp ), true );
QTextDocument textDoc;
textDoc.setHtml( QString( "<b>%1</b>" ).arg( playtime ) );
textDoc.setHtml( QString( "<b>%1</b>" ).arg( text ) );
textDoc.setDocumentMargin( 0 );
textDoc.setDefaultFont( painter->font() );
textDoc.setDefaultTextOption( m_bottomOption );

@ -25,6 +25,7 @@
#include <QTextDocument>
#include "DllMacro.h"
#include "Typedefs.h"
class TrackModel;
class PlayableItem;
@ -67,9 +68,8 @@ protected:
QRect drawSourceIcon( QPainter* painter, const QRect& rect, PlayableItem* item, float height ) const;
QRect drawCover( QPainter* painter, const QRect& rect, PlayableItem* item, const QModelIndex& index ) const;
QRect drawLoveBox( QPainter* painter, const QRect& rect, PlayableItem* item, const QModelIndex& index ) const;
QRect drawGenericBox( QPainter* painter, const QStyleOptionViewItem& option, const QRect& rect, const QString& text, const QList< Tomahawk::source_ptr >& sources ) const;
void drawRichText( QPainter* painter, const QStyleOptionViewItem& option, const QRect& rect, int flags, QTextDocument& text ) const;
QRect drawSentBox( QPainter* painter, const QStyleOptionViewItem& option, const QRect& rect, PlayableItem* item, const QModelIndex& index ) const;
QRect drawRecentBox( QPainter* painter, const QStyleOptionViewItem& option, const QRect& rect, PlayableItem* item, const QModelIndex& index ) const;
void paintDetailed( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const;
void paintShort( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const;

@ -208,11 +208,35 @@ PlaylistLargeItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem&
leftRect = rightRect.adjusted( -128, 4, 0, -4 );
leftRect.setWidth( 96 );
if ( m_mode == Inbox )
drawSentBox( painter, opt, leftRect, item, index );
{
QDateTime earliestTimestamp = QDateTime::currentDateTime();
QList< Tomahawk::source_ptr > sources;
foreach ( const Tomahawk::SocialAction& sa, item->query()->queryTrack()->socialActions( "Inbox", QVariant() /*neither true nor false!*/, true ) )
{
QDateTime saTimestamp = QDateTime::fromTime_t( sa.timestamp.toInt() );
if ( saTimestamp < earliestTimestamp && saTimestamp.toTime_t() > 0 )
earliestTimestamp = saTimestamp;
sources << sa.source;
}
QString timeString = TomahawkUtils::ageToString( earliestTimestamp, true );
drawGenericBox( painter, opt, leftRect, timeString, sources );
}
else if ( m_mode == RecentlyPlayed )
drawRecentBox( painter, opt, leftRect, item, index );
{
QList< Tomahawk::source_ptr > sources;
sources << item->playbackLog().source;
QString playtime = TomahawkUtils::ageToString( QDateTime::fromTime_t( item->playbackLog().timestamp ), true );
drawGenericBox( painter, opt, leftRect, playtime, sources );
}
else
{
drawLoveBox( painter, leftRect, item, index );
}
if ( track->duration() > 0 )
{