Add skip count and last played columns to the playlist, draw the background behind the rating column properly, hide rating and statistic columns when upgrading from an old version.

This commit is contained in:
David Sansome 2010-10-17 18:21:30 +00:00
parent 42e4c4a8db
commit bbe1250c31
39 changed files with 279 additions and 38 deletions

View File

@ -192,28 +192,30 @@ QVariant Playlist::data(const QModelIndex& index, int role) const {
if (!song.basefilename().isEmpty())
return song.basefilename();
return song.filename();
case Column_Artist: return song.artist();
case Column_Album: return song.album();
case Column_Length: return song.length();
case Column_Track: return song.track();
case Column_Disc: return song.disc();
case Column_Year: return song.year();
case Column_Genre: return song.genre();
case Column_AlbumArtist: return song.albumartist();
case Column_Composer: return song.composer();
case Column_Artist: return song.artist();
case Column_Album: return song.album();
case Column_Length: return song.length();
case Column_Track: return song.track();
case Column_Disc: return song.disc();
case Column_Year: return song.year();
case Column_Genre: return song.genre();
case Column_AlbumArtist: return song.albumartist();
case Column_Composer: return song.composer();
case Column_Rating: return song.rating();
case Column_PlayCount:return song.playcount();
case Column_Rating: return song.rating();
case Column_PlayCount: return song.playcount();
case Column_SkipCount: return song.skipcount();
case Column_LastPlayed: return song.lastplayed();
case Column_BPM: return song.bpm();
case Column_Bitrate: return song.bitrate();
case Column_Samplerate: return song.samplerate();
case Column_Filename: return song.filename();
case Column_BPM: return song.bpm();
case Column_Bitrate: return song.bitrate();
case Column_Samplerate: return song.samplerate();
case Column_Filename: return song.filename();
case Column_BaseFilename: return song.basefilename();
case Column_Filesize: return song.filesize();
case Column_Filetype: return song.filetype();
case Column_Filesize: return song.filesize();
case Column_Filetype: return song.filetype();
case Column_DateModified: return song.mtime();
case Column_DateCreated: return song.ctime();
case Column_DateCreated: return song.ctime();
}
}
@ -228,6 +230,7 @@ QVariant Playlist::data(const QModelIndex& index, int role) const {
case Column_Samplerate:
case Column_Filesize:
case Column_PlayCount:
case Column_SkipCount:
return QVariant(Qt::AlignRight | Qt::AlignVCenter);
default:
@ -798,6 +801,8 @@ bool Playlist::CompareItems(int column, Qt::SortOrder order,
case Column_Rating: cmp(rating);
case Column_PlayCount: cmp(playcount);
case Column_SkipCount: cmp(skipcount);
case Column_LastPlayed: cmp(lastplayed);
case Column_BPM: cmp(bpm);
case Column_Bitrate: cmp(bitrate);
@ -818,29 +823,31 @@ bool Playlist::CompareItems(int column, Qt::SortOrder order,
QString Playlist::column_name(Column column) {
switch (column) {
case Column_Title: return tr("Title");
case Column_Artist: return tr("Artist");
case Column_Album: return tr("Album");
case Column_Length: return tr("Length");
case Column_Track: return tr("Track");
case Column_Disc: return tr("Disc");
case Column_Year: return tr("Year");
case Column_Genre: return tr("Genre");
case Column_AlbumArtist: return tr("Album artist");
case Column_Composer: return tr("Composer");
case Column_Title: return tr("Title");
case Column_Artist: return tr("Artist");
case Column_Album: return tr("Album");
case Column_Length: return tr("Length");
case Column_Track: return tr("Track");
case Column_Disc: return tr("Disc");
case Column_Year: return tr("Year");
case Column_Genre: return tr("Genre");
case Column_AlbumArtist: return tr("Album artist");
case Column_Composer: return tr("Composer");
case Column_Rating: return tr("Rating");
case Column_PlayCount:return tr("Play count");
case Column_Rating: return tr("Rating");
case Column_PlayCount: return tr("Play count");
case Column_SkipCount: return tr("Skip count");
case Column_LastPlayed: return tr("Last played");
case Column_BPM: return tr("BPM");
case Column_Bitrate: return tr("Bit rate");
case Column_Samplerate: return tr("Sample rate");
case Column_Filename: return tr("File name");
case Column_BPM: return tr("BPM");
case Column_Bitrate: return tr("Bit rate");
case Column_Samplerate: return tr("Sample rate");
case Column_Filename: return tr("File name");
case Column_BaseFilename: return tr("File name (without path)");
case Column_Filesize: return tr("File size");
case Column_Filetype: return tr("File type");
case Column_Filesize: return tr("File size");
case Column_Filetype: return tr("File type");
case Column_DateModified: return tr("Date modified");
case Column_DateCreated: return tr("Date created");
case Column_DateCreated: return tr("Date created");
default: return QString();
}
return "";

View File

@ -83,6 +83,8 @@ class Playlist : public QAbstractListModel {
Column_Rating,
Column_PlayCount,
Column_SkipCount,
Column_LastPlayed,
ColumnCount
};

View File

@ -293,6 +293,16 @@ void RatingItemDelegate::paint(
const QPixmap empty(star_.pixmap(star_size, QIcon::Disabled));
const QPixmap full(star_.pixmap(star_size));
// Draw the background
const QStyleOptionViewItemV3* vopt =
qstyleoption_cast<const QStyleOptionViewItemV3*>(&option);
vopt->widget->style()->drawPrimitive(
QStyle::PE_PanelItemViewItem, vopt, painter, vopt->widget);
// Set the clip rect so we don't draw outside the item
painter->setClipRect(option.rect);
// Draw the stars
int x = option.rect.x() + (option.rect.width() - width) / 2;
for (int i=0 ; i<kStarCount ; ++i, x+=star_size) {
const QRect rect(x, option.rect.y(), star_size, star_size);
@ -313,6 +323,8 @@ void RatingItemDelegate::paint(
painter->drawPixmap(rect, full);
}
}
painter->setClipping(false);
}
QSize RatingItemDelegate::sizeHint(

View File

@ -33,6 +33,7 @@
#include <math.h>
const char* PlaylistView::kSettingsGroup = "Playlist";
const int PlaylistView::kStateVersion = 1;
const int PlaylistView::kGlowIntensitySteps = 24;
const int PlaylistView::kAutoscrollGraceTimeout = 60; // seconds
const int PlaylistView::kDropIndicatorWidth = 2;
@ -124,6 +125,7 @@ void PlaylistView::SetItemDelegates(LibraryBackend* backend) {
setItemDelegateForColumn(Playlist::Column_Bitrate, new PlaylistDelegateBase(this, tr("kbps")));
setItemDelegateForColumn(Playlist::Column_Filename, new NativeSeparatorsDelegate(this));
setItemDelegateForColumn(Playlist::Column_Rating, new RatingItemDelegate(this));
setItemDelegateForColumn(Playlist::Column_LastPlayed, new DateItemDelegate(this));
}
void PlaylistView::SetPlaylist(Playlist *playlist) {
@ -171,18 +173,31 @@ void PlaylistView::LoadGeometry() {
header_->HideSection(Playlist::Column_DateModified);
header_->HideSection(Playlist::Column_AlbumArtist);
header_->HideSection(Playlist::Column_Composer);
header_->HideSection(Playlist::Column_PlayCount);
header_->HideSection(Playlist::Column_Rating);
header_->HideSection(Playlist::Column_PlayCount);
header_->HideSection(Playlist::Column_SkipCount);
header_->HideSection(Playlist::Column_LastPlayed);
header_->moveSection(header_->visualIndex(Playlist::Column_Track), 0);
setting_initial_header_layout_ = true;
}
// New columns that we add are visible by default if the user has upgraded
// Clementine. Hide them again here
const int state_version = settings.value("state_version", 0).toInt();
if (state_version < 1) {
header_->HideSection(Playlist::Column_Rating);
header_->HideSection(Playlist::Column_PlayCount);
header_->HideSection(Playlist::Column_SkipCount);
header_->HideSection(Playlist::Column_LastPlayed);
}
}
void PlaylistView::SaveGeometry() {
QSettings settings;
settings.beginGroup(kSettingsGroup);
settings.setValue("state", header_->saveState());
settings.setValue("state_version", kStateVersion);
}
void PlaylistView::ReloadBarPixmaps() {

View File

@ -57,6 +57,7 @@ class PlaylistView : public QTreeView {
PlaylistView(QWidget* parent = 0);
static const char* kSettingsGroup;
static const int kStateVersion;
void SetItemDelegates(LibraryBackend* backend);
void SetPlaylist(Playlist* playlist);

View File

@ -1034,6 +1034,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr ""
@ -1719,6 +1722,9 @@ msgstr ""
msgid "Skip backwards in playlist"
msgstr "تجاهل السابق في قائمة التشغيل"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "تجاهل اللاحق في قائمة التشغيل"

View File

@ -1035,6 +1035,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr ""
@ -1720,6 +1723,9 @@ msgstr ""
msgid "Skip backwards in playlist"
msgstr ""
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr ""

View File

@ -1060,6 +1060,9 @@ msgstr "Caràtula gran de l'àlbum"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1749,6 +1752,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Salta enrere en la llista de reproducció"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Salta endavant en la llista de reproducció"

View File

@ -1039,6 +1039,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1724,6 +1727,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Přeskočit dozadu v seznamu skladeb"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Přeskočit dopředu v seznamu skladeb"

View File

@ -1040,6 +1040,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1727,6 +1730,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Skip tilbage i spillelisten"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Skip fremad i spillelisten"

View File

@ -1061,6 +1061,9 @@ msgstr "Großes Albumcover"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1750,6 +1753,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Voriges Stück in der Wiedergabeliste"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Nächstes Stück in der Wiedergabeliste"

View File

@ -1066,6 +1066,9 @@ msgstr "Μεγάλο εξώφυλλο άλμπουμ"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1753,6 +1756,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Παράλειψη προς τα πίσω στη λίστα"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Παράλειψη προς τα μπροστά στη λίστα"

View File

@ -1038,6 +1038,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1724,6 +1727,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Skip backwards in playlist"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Skip forwards in playlist"

View File

@ -1036,6 +1036,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1721,6 +1724,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Skip backwards in playlist"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Skip forwards in playlist"

View File

@ -1065,6 +1065,9 @@ msgstr "Caratula grande del álbum"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1754,6 +1757,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Saltar hacia atrás en la lista de reproducción"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Saltar hacia adelante en la lista de reproducción"

View File

@ -1036,6 +1036,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1722,6 +1725,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr ""
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr ""

View File

@ -1067,6 +1067,9 @@ msgstr "Grande jaquette d'album"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1758,6 +1761,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Lire la piste précédente"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Lire la piste suivante"

View File

@ -1040,6 +1040,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr ""
@ -1726,6 +1729,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Saltar para trás na lista de músicas"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr ""

View File

@ -1059,6 +1059,9 @@ msgstr "Nagy albumborító"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1748,6 +1751,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Visszalépés a lejátszási listában"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Léptetés előre a lejátszási listában"

View File

@ -1068,6 +1068,9 @@ msgstr "Copertina grande"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1758,6 +1761,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Salta indietro nella scaletta"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Salta in avanti nella scaletta"

View File

@ -1036,6 +1036,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr ""
@ -1721,6 +1724,9 @@ msgstr "Ска"
msgid "Skip backwards in playlist"
msgstr ""
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr ""

View File

@ -1035,6 +1035,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr ""
@ -1720,6 +1723,9 @@ msgstr ""
msgid "Skip backwards in playlist"
msgstr ""
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr ""

View File

@ -1038,6 +1038,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1723,6 +1726,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr ""
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr ""

View File

@ -1063,6 +1063,9 @@ msgstr "Grote albumhoes"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1753,6 +1756,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Terug in afspeellijst"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Vooruit in afspeellijst"

View File

@ -1034,6 +1034,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1719,6 +1722,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr ""
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr ""

View File

@ -1060,6 +1060,9 @@ msgstr "Duża okładka albumu"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1749,6 +1752,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Przeskocz wstecz w liście odtwarzania"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Przeskocz w przód w liście odtwarzania"

View File

@ -1060,6 +1060,9 @@ msgstr "Capa de álbum grande"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1750,6 +1753,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Recuar na lista de reprodução"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Avançar na lista de reprodução"

View File

@ -1049,6 +1049,9 @@ msgstr "Capa grande de álbum"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1738,6 +1741,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Pular para a música anterior da lista"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Pular para a próxima música da lista"

View File

@ -1035,6 +1035,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1720,6 +1723,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Sare în listă înapoi"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Sare în listă înainte"

View File

@ -1054,6 +1054,9 @@ msgstr "Большая обложка альбома"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1742,6 +1745,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Переместить назад в списке воспроизведения"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Переместить вперед в списке воспроизведения"

View File

@ -1057,6 +1057,9 @@ msgstr "Veľký obal albumu"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1743,6 +1746,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Preskočiť dozadu v playliste"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Preskočiť dopredu v playliste"

View File

@ -1056,6 +1056,9 @@ msgstr "Velik ovitek albuma"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1743,6 +1746,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Skoči nazaj po seznamu predvajanja"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Skoči naprej po seznamu predvajanja"

View File

@ -1039,6 +1039,9 @@ msgstr "Велики омот албума"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "ЛастФМ"
@ -1725,6 +1728,9 @@ msgstr "Ска"
msgid "Skip backwards in playlist"
msgstr "Прескочи уназад у листи нумера"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Прескочи унапред у листи нумера"

View File

@ -1044,6 +1044,9 @@ msgstr "Stor omslagsbild"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1729,6 +1732,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Gå bakåt i spellista"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Gå framåt i spellista"

View File

@ -1057,6 +1057,9 @@ msgstr "Geniş albüm kapağı"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1746,6 +1749,9 @@ msgstr "Ska"
msgid "Skip backwards in playlist"
msgstr "Parça listesinde geri git"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Parça listesinde ileri git"

View File

@ -1025,6 +1025,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr ""
@ -1710,6 +1713,9 @@ msgstr ""
msgid "Skip backwards in playlist"
msgstr ""
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr ""

View File

@ -1056,6 +1056,9 @@ msgstr "Велика обкладинка альбому"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1743,6 +1746,9 @@ msgstr "Ска"
msgid "Skip backwards in playlist"
msgstr "Перейти до попередньої пісні у списку відтворення"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "Перейти до наступної пісні у списку відтворення"

View File

@ -1034,6 +1034,9 @@ msgstr ""
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr ""
@ -1719,6 +1722,9 @@ msgstr ""
msgid "Skip backwards in playlist"
msgstr "在播放列表中后退"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "在播放列表中前进"

View File

@ -1040,6 +1040,9 @@ msgstr "大專輯封面"
msgid "Large sidebar"
msgstr ""
msgid "Last played"
msgstr ""
msgid "Last.fm"
msgstr "Last.fm"
@ -1725,6 +1728,9 @@ msgstr ""
msgid "Skip backwards in playlist"
msgstr "跳至播放清單開頭"
msgid "Skip count"
msgstr ""
msgid "Skip forwards in playlist"
msgstr "跳至播放清單最後頭"