Dont count playlist in stats
This commit is contained in:
@@ -240,9 +240,9 @@ QVariant AlbumsModel::data(const QModelIndex &index, int role) const
|
||||
? al->name
|
||||
: (year>0 ? QString("%1\n%2 (%3)\n").arg(al->artist).arg(al->album).arg(QString::number(year)) : QString("%1\n%2\n").arg(al->artist).arg(al->album))+
|
||||
#ifdef ENABLE_KDE_SUPPORT
|
||||
i18np("1 Track (%2)", "%1 Tracks (%2)", al->songs.count(), Song::formattedTime(al->totalTime(), true));
|
||||
i18np("1 Track (%2)", "%1 Tracks (%2)", al->trackCount(), Song::formattedTime(al->totalTime(), true));
|
||||
#else
|
||||
QTP_TRACKS_DURATION_STR(al->songs.count(), Song::formattedTime(al->totalTime(), true));
|
||||
QTP_TRACKS_DURATION_STR(al->trackCount(), Song::formattedTime(al->totalTime(), true));
|
||||
#endif
|
||||
}
|
||||
case Qt::DisplayRole:
|
||||
@@ -535,6 +535,7 @@ AlbumsModel::AlbumItem::AlbumItem(const QString &ar, const QString &al, quint16
|
||||
, cover(0)
|
||||
, updated(false)
|
||||
, coverRequested(false)
|
||||
, numTracks(0)
|
||||
, time(0)
|
||||
{
|
||||
setName();
|
||||
@@ -581,14 +582,29 @@ void AlbumsModel::AlbumItem::setName()
|
||||
: (artist+QLatin1String(" - ")+album);
|
||||
}
|
||||
|
||||
quint32 AlbumsModel::AlbumItem::trackCount()
|
||||
{
|
||||
updateStats();
|
||||
return numTracks;
|
||||
}
|
||||
|
||||
quint32 AlbumsModel::AlbumItem::totalTime()
|
||||
{
|
||||
updateStats();
|
||||
return time;
|
||||
}
|
||||
|
||||
void AlbumsModel::AlbumItem::updateStats()
|
||||
{
|
||||
if (0==time) {
|
||||
numTracks=0;
|
||||
foreach (SongItem *s, songs) {
|
||||
time+=s->time;
|
||||
if (Song::Playlist!=s->type) {
|
||||
time+=s->time;
|
||||
numTracks++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return time;
|
||||
}
|
||||
|
||||
void AlbumsModel::AlbumItem::getCover()
|
||||
|
||||
@@ -83,7 +83,9 @@ public:
|
||||
void clearSongs();
|
||||
void setSongs(MusicLibraryItemAlbum *ai);
|
||||
void setName();
|
||||
quint32 trackCount();
|
||||
quint32 totalTime();
|
||||
void updateStats();
|
||||
void getCover();
|
||||
bool isSingleTracks() const { return Song::SingleTracks==type; }
|
||||
const SongItem *getCueFile() const;
|
||||
@@ -97,6 +99,7 @@ public:
|
||||
bool updated;
|
||||
bool coverRequested;
|
||||
Song::Type type;
|
||||
quint32 numTracks;
|
||||
quint32 time;
|
||||
};
|
||||
|
||||
|
||||
@@ -267,13 +267,29 @@ const QPixmap & MusicLibraryItemAlbum::cover()
|
||||
}
|
||||
|
||||
quint32 MusicLibraryItemAlbum::totalTime()
|
||||
{
|
||||
updateStats();
|
||||
return m_totalTime;
|
||||
}
|
||||
|
||||
quint32 MusicLibraryItemAlbum::trackCount()
|
||||
{
|
||||
updateStats();
|
||||
return m_numTracks;
|
||||
}
|
||||
|
||||
void MusicLibraryItemAlbum::updateStats()
|
||||
{
|
||||
if (0==m_totalTime) {
|
||||
m_numTracks=0;
|
||||
foreach (MusicLibraryItem *i, m_childItems) {
|
||||
m_totalTime+=static_cast<MusicLibraryItemSong *>(i)->time();
|
||||
MusicLibraryItemSong *song=static_cast<MusicLibraryItemSong *>(i);
|
||||
if (Song::Playlist!=song->song().type) {
|
||||
m_totalTime+=song->time();
|
||||
m_numTracks++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return m_totalTime;
|
||||
}
|
||||
|
||||
void MusicLibraryItemAlbum::addTracks(MusicLibraryItemAlbum *other)
|
||||
|
||||
@@ -69,6 +69,7 @@ public:
|
||||
bool hasRealCover() const { return !m_coverIsDefault; }
|
||||
quint32 year() const { return m_year; }
|
||||
quint32 totalTime();
|
||||
quint32 trackCount();
|
||||
void addTracks(MusicLibraryItemAlbum *other);
|
||||
bool isSingleTracks() const { return Song::SingleTracks==m_type; }
|
||||
void setIsSingleTracks();
|
||||
@@ -93,12 +94,14 @@ private:
|
||||
void setCoverImage(const QImage &img) const;
|
||||
void setYear(const MusicLibraryItemSong *song);
|
||||
bool largeImages() const;
|
||||
void updateStats();
|
||||
|
||||
private:
|
||||
quint32 m_year;
|
||||
quint16 m_yearOfTrack;
|
||||
quint16 m_yearOfDisc;
|
||||
quint32 m_totalTime;
|
||||
quint32 m_numTracks;
|
||||
mutable bool m_coverIsDefault;
|
||||
mutable QPixmap *m_cover;
|
||||
Song::Type m_type;
|
||||
|
||||
@@ -291,9 +291,11 @@ QVariant MusicLibraryModel::data(const QModelIndex &index, int role) const
|
||||
? item->data()
|
||||
: item->data()+"<br/>"+
|
||||
#ifdef ENABLE_KDE_SUPPORT
|
||||
i18np("1 Track (%2)", "%1 Tracks (%2)", item->childCount(), Song::formattedTime(static_cast<MusicLibraryItemAlbum *>(item)->totalTime(), true))
|
||||
i18np("1 Track (%2)", "%1 Tracks (%2)", static_cast<MusicLibraryItemAlbum *>(item)->trackCount(),
|
||||
Song::formattedTime(static_cast<MusicLibraryItemAlbum *>(item)->totalTime(), true))
|
||||
#else
|
||||
QTP_TRACKS_DURATION_STR(item->childCount(), Song::formattedTime(static_cast<MusicLibraryItemAlbum *>(item)->totalTime(), true))
|
||||
QTP_TRACKS_DURATION_STR(static_cast<MusicLibraryItemAlbum *>(item)->trackCount(),
|
||||
Song::formattedTime(static_cast<MusicLibraryItemAlbum *>(item)->totalTime(), true))
|
||||
#endif
|
||||
);
|
||||
case MusicLibraryItem::Type_Song: {
|
||||
@@ -325,9 +327,11 @@ QVariant MusicLibraryModel::data(const QModelIndex &index, int role) const
|
||||
return Song::formattedTime(static_cast<MusicLibraryItemSong *>(item)->time(), true);
|
||||
case MusicLibraryItem::Type_Album:
|
||||
#ifdef ENABLE_KDE_SUPPORT
|
||||
return i18np("1 Track (%2)", "%1 Tracks (%2)", item->childCount(), Song::formattedTime(static_cast<MusicLibraryItemAlbum *>(item)->totalTime(), true));
|
||||
return i18np("1 Track (%2)", "%1 Tracks (%2)", static_cast<MusicLibraryItemAlbum *>(item)->trackCount(),
|
||||
Song::formattedTime(static_cast<MusicLibraryItemAlbum *>(item)->totalTime(), true));
|
||||
#else
|
||||
return QTP_TRACKS_DURATION_STR(item->childCount(), Song::formattedTime(static_cast<MusicLibraryItemAlbum *>(item)->totalTime(), true));
|
||||
return QTP_TRACKS_DURATION_STR(static_cast<MusicLibraryItemAlbum *>(item)->trackCount(),
|
||||
Song::formattedTime(static_cast<MusicLibraryItemAlbum *>(item)->totalTime(), true));
|
||||
#endif
|
||||
default: return QVariant();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user