mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-14 01:54:07 +02:00
Show rated resolver star in yellow, so it's clear what you have rated and can no longer change
This commit is contained in:
@@ -191,8 +191,10 @@ GetNewStuffDelegate::paint( QPainter* painter, const QStyleOptionViewItem& optio
|
|||||||
if ( i == 1 )
|
if ( i == 1 )
|
||||||
m_cachedStarRects[ QPair<int, int>(index.row(), index.column()) ] = r;
|
m_cachedStarRects[ QPair<int, int>(index.row(), index.column()) ] = r;
|
||||||
|
|
||||||
QPixmap pm;
|
const bool userHasRated = index.data( GetNewStuffModel::UserHasRatedRole ).toBool();
|
||||||
if ( m_hoveringOver > -1 && ( m_hoveringItem.first == index.row() && m_hoveringItem.second == index.column() ) )
|
if ( !userHasRated && // Show on-hover animation if the user hasn't rated it yet, and is hovering over it
|
||||||
|
m_hoveringOver > -1 &&
|
||||||
|
m_hoveringItem == index )
|
||||||
{
|
{
|
||||||
if ( i <= m_hoveringOver ) // positive star
|
if ( i <= m_hoveringOver ) // positive star
|
||||||
painter->drawPixmap( r, m_onHoverStar );
|
painter->drawPixmap( r, m_onHoverStar );
|
||||||
@@ -201,8 +203,13 @@ GetNewStuffDelegate::paint( QPainter* painter, const QStyleOptionViewItem& optio
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( i <= rating ) // positive star
|
if ( i <= rating ) // positive or rated star
|
||||||
painter->drawPixmap( r, m_ratingStarPositive );
|
{
|
||||||
|
if ( userHasRated )
|
||||||
|
painter->drawPixmap( r, m_onHoverStar );
|
||||||
|
else
|
||||||
|
painter->drawPixmap( r, m_ratingStarPositive );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
painter->drawPixmap( r, m_ratingStarNegative );
|
painter->drawPixmap( r, m_ratingStarNegative );
|
||||||
}
|
}
|
||||||
@@ -299,8 +306,7 @@ GetNewStuffDelegate::editorEvent( QEvent* event, QAbstractItemModel* model, cons
|
|||||||
{
|
{
|
||||||
// 0-indexed
|
// 0-indexed
|
||||||
m_hoveringOver = whichStar;
|
m_hoveringOver = whichStar;
|
||||||
m_hoveringItem.first = index.row();
|
m_hoveringItem = index;
|
||||||
m_hoveringItem.second = index.column();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -309,10 +315,9 @@ GetNewStuffDelegate::editorEvent( QEvent* event, QAbstractItemModel* model, cons
|
|||||||
|
|
||||||
if ( m_hoveringOver > -1 )
|
if ( m_hoveringOver > -1 )
|
||||||
{
|
{
|
||||||
QModelIndex idx = model->index( m_hoveringItem.first, m_hoveringItem.second );
|
emit update( m_hoveringItem );
|
||||||
emit update( idx );
|
|
||||||
m_hoveringOver = -1;
|
m_hoveringOver = -1;
|
||||||
m_hoveringItem = QPair<int, int>();
|
m_hoveringItem = QPersistentModelIndex();
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@@ -42,7 +42,7 @@ private:
|
|||||||
|
|
||||||
int m_widestTextWidth;
|
int m_widestTextWidth;
|
||||||
int m_hoveringOver;
|
int m_hoveringOver;
|
||||||
QPair<int, int> m_hoveringItem;
|
QPersistentModelIndex m_hoveringItem;
|
||||||
mutable QHash< QPair<int, int>, QRect > m_cachedButtonRects;
|
mutable QHash< QPair<int, int>, QRect > m_cachedButtonRects;
|
||||||
mutable QHash< QPair<int, int>, QRect > m_cachedStarRects;
|
mutable QHash< QPair<int, int>, QRect > m_cachedStarRects;
|
||||||
};
|
};
|
||||||
|
@@ -94,6 +94,8 @@ GetNewStuffModel::data( const QModelIndex& index, int role ) const
|
|||||||
return resolver.author();
|
return resolver.author();
|
||||||
case StateRole:
|
case StateRole:
|
||||||
return (int)AtticaManager::instance()->resolverState( resolver );
|
return (int)AtticaManager::instance()->resolverState( resolver );
|
||||||
|
case UserHasRatedRole:
|
||||||
|
return AtticaManager::instance()->userHasRated( resolver );
|
||||||
}
|
}
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
@@ -38,7 +38,8 @@ public:
|
|||||||
DescriptionRole = Qt::UserRole + 5,
|
DescriptionRole = Qt::UserRole + 5,
|
||||||
TypeRole = Qt::UserRole + 6, // Category in attica-speak. What sort of item this is (resolver, etc).
|
TypeRole = Qt::UserRole + 6, // Category in attica-speak. What sort of item this is (resolver, etc).
|
||||||
AuthorRole = Qt::UserRole + 7,
|
AuthorRole = Qt::UserRole + 7,
|
||||||
StateRole = Qt::UserRole + 8
|
StateRole = Qt::UserRole + 8,
|
||||||
|
UserHasRatedRole = Qt::UserRole + 9
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Types {
|
enum Types {
|
||||||
|
Reference in New Issue
Block a user