mirror of
https://github.com/clementine-player/Clementine
synced 2025-01-31 19:45:31 +01:00
Add GS subscribed playlits
This commit is contained in:
parent
7a188787de
commit
1e02bbe485
@ -85,6 +85,7 @@ GroovesharkService::GroovesharkService(InternetModel *parent)
|
||||
popular_month_(NULL),
|
||||
popular_today_(NULL),
|
||||
favorites_(NULL),
|
||||
subscribed_playlists_divider_(NULL),
|
||||
network_(new NetworkAccessManager(this)),
|
||||
context_menu_(NULL),
|
||||
remove_from_playlist_(NULL),
|
||||
@ -429,7 +430,9 @@ void GroovesharkService::Logout() {
|
||||
popular_month_ = NULL;
|
||||
popular_today_ = NULL;
|
||||
favorites_ = NULL;
|
||||
subscribed_playlists_divider_ = NULL;
|
||||
playlists_.clear();
|
||||
subscribed_playlists_.clear();
|
||||
}
|
||||
|
||||
void GroovesharkService::ResetSessionId() {
|
||||
@ -459,7 +462,7 @@ void GroovesharkService::ShowContextMenu(const QModelIndex& index, const QPoint&
|
||||
int parent_playlist_type = index.parent().data(Role_PlaylistType).toInt();
|
||||
if (parent_playlist_type == UserFavorites)
|
||||
display_remove_from_favorites_action = true;
|
||||
else
|
||||
else if (parent_playlist_type == UserPlaylist)
|
||||
display_remove_from_playlist_action = true;
|
||||
}
|
||||
delete_playlist_->setVisible(display_delete_playlist_action);
|
||||
@ -546,8 +549,13 @@ void GroovesharkService::EnsureItemsCreated() {
|
||||
InternetModel::Role_PlayBehaviour);
|
||||
root_->appendRow(favorites_);
|
||||
|
||||
subscribed_playlists_divider_ = new QStandardItem(tr("Subscribed playlists"));
|
||||
subscribed_playlists_divider_->setData(true, InternetModel::Role_IsDivider);
|
||||
root_->appendRow(subscribed_playlists_divider_);
|
||||
|
||||
RetrieveUserFavorites();
|
||||
RetrieveUserPlaylists();
|
||||
RetrieveSubscribedPlaylists();
|
||||
RetrievePopularSongs();
|
||||
}
|
||||
}
|
||||
@ -612,8 +620,12 @@ void GroovesharkService::PlaylistSongsRetrieved() {
|
||||
PlaylistInfo playlist_info = pending_retrieve_playlists_.take(reply);
|
||||
// Get the playlist item (in case of refresh) or create a new one
|
||||
QStandardItem* item = NULL;
|
||||
PlaylistType playlist_type = UserPlaylist;
|
||||
if (playlists_.contains(playlist_info.id_)) {
|
||||
item = playlists_[playlist_info.id_].item_;
|
||||
} else if (subscribed_playlists_.contains(playlist_info.id_)) {
|
||||
item = subscribed_playlists_[playlist_info.id_].item_;
|
||||
playlist_type = SubscribedPlaylist;
|
||||
}
|
||||
bool item_already_exists = false;
|
||||
if (item) {
|
||||
@ -637,13 +649,18 @@ void GroovesharkService::PlaylistSongsRetrieved() {
|
||||
item->appendRow(child);
|
||||
}
|
||||
if (!item_already_exists) {
|
||||
root_->appendRow(item);
|
||||
// Insert this new item just below the favorites list
|
||||
root_->insertRow(favorites_->row() + 1, item);
|
||||
}
|
||||
|
||||
// Keep in mind this playlist
|
||||
playlist_info.songs_ids_ = ExtractSongsIds(result);
|
||||
playlist_info.item_ = item;
|
||||
playlists_.insert(playlist_info.id_, playlist_info);
|
||||
if (playlist_type == SubscribedPlaylist) {
|
||||
subscribed_playlists_.insert(playlist_info.id_, playlist_info);
|
||||
} else {
|
||||
playlists_.insert(playlist_info.id_, playlist_info);
|
||||
}
|
||||
|
||||
if (pending_retrieve_playlists_.isEmpty()) {
|
||||
model()->task_manager()->SetTaskFinished(task_playlists_id_);
|
||||
@ -742,6 +759,37 @@ void GroovesharkService::PopularSongsTodayRetrieved(QNetworkReply* reply) {
|
||||
}
|
||||
}
|
||||
|
||||
void GroovesharkService::RetrieveSubscribedPlaylists() {
|
||||
QNetworkReply* reply = CreateRequest("getUserPlaylistsSubscribed", QList<Param>());
|
||||
NewClosure(reply, SIGNAL(finished()),
|
||||
this, SLOT(SubscribedPlaylistsRetrieved(QNetworkReply*)), reply);
|
||||
}
|
||||
|
||||
void GroovesharkService::SubscribedPlaylistsRetrieved(QNetworkReply* reply) {
|
||||
reply->deleteLater();
|
||||
QVariantMap result = ExtractResult(reply);
|
||||
QVariantList playlists = result["playlists"].toList();
|
||||
QVariantList::iterator it;
|
||||
for (it = playlists.begin(); it != playlists.end(); ++it) {
|
||||
// Get playlist info
|
||||
QVariantMap playlist = (*it).toMap();
|
||||
int playlist_id = playlist["PlaylistID"].toInt();
|
||||
QString playlist_name = playlist["PlaylistName"].toString();
|
||||
|
||||
QStandardItem* playlist_item = CreatePlaylistItem(playlist_name, playlist_id);
|
||||
// Refine some playlist properties that should be different for subscribed
|
||||
// playlists
|
||||
playlist_item->setData(SubscribedPlaylist, Role_PlaylistType);
|
||||
playlist_item->setData(false, InternetModel::Role_CanBeModified);
|
||||
PlaylistInfo playlist_info(playlist_id, playlist_name, playlist_item);
|
||||
subscribed_playlists_.insert(playlist_id, playlist_info);
|
||||
root_->insertRow(subscribed_playlists_divider_->row() + 1, playlist_item);
|
||||
|
||||
// Request playlist's songs
|
||||
RefreshPlaylist(playlist_id, playlist_name);
|
||||
}
|
||||
}
|
||||
|
||||
void GroovesharkService::MarkStreamKeyOver30Secs(const QString& stream_key,
|
||||
const QString& server_id) {
|
||||
QList<Param> parameters;
|
||||
|
@ -48,7 +48,8 @@ class GroovesharkService : public InternetService {
|
||||
UserPlaylist = Qt::UserRole,
|
||||
// Favorites list is like a playlist, but we want to do special treatments
|
||||
// in some cases
|
||||
UserFavorites
|
||||
UserFavorites,
|
||||
SubscribedPlaylist
|
||||
};
|
||||
|
||||
// Values are persisted - don't change.
|
||||
@ -81,6 +82,7 @@ class GroovesharkService : public InternetService {
|
||||
void RetrievePopularSongs();
|
||||
void RetrievePopularSongsMonth();
|
||||
void RetrievePopularSongsToday();
|
||||
void RetrieveSubscribedPlaylists();
|
||||
void SetPlaylistSongs(int playlist_id, const QList<int>& songs_ids);
|
||||
void RemoveFromPlaylist(int playlist_id, int song_id);
|
||||
// Refresh playlist_id playlist , or create it if it doesn't exist
|
||||
@ -118,8 +120,8 @@ class GroovesharkService : public InternetService {
|
||||
|
||||
struct PlaylistInfo {
|
||||
PlaylistInfo() {}
|
||||
PlaylistInfo(int id, QString name)
|
||||
: id_(id), name_(name), item_(NULL) {}
|
||||
PlaylistInfo(int id, QString name, QStandardItem* item = NULL)
|
||||
: id_(id), name_(name), item_(item) {}
|
||||
|
||||
int id_;
|
||||
QString name_;
|
||||
@ -142,6 +144,7 @@ class GroovesharkService : public InternetService {
|
||||
void UserFavoritesRetrieved(QNetworkReply* reply, int task_id);
|
||||
void PopularSongsMonthRetrieved(QNetworkReply* reply);
|
||||
void PopularSongsTodayRetrieved(QNetworkReply* reply);
|
||||
void SubscribedPlaylistsRetrieved(QNetworkReply* reply);
|
||||
void PlaylistSongsRetrieved();
|
||||
void PlaylistSongsSet(QNetworkReply* reply, int playlist_id, int task_id);
|
||||
void CreateNewPlaylist();
|
||||
@ -201,12 +204,14 @@ class GroovesharkService : public InternetService {
|
||||
QMap<QNetworkReply*, PlaylistInfo> pending_retrieve_playlists_;
|
||||
|
||||
QMap<int, PlaylistInfo> playlists_;
|
||||
QMap<int, PlaylistInfo> subscribed_playlists_;
|
||||
|
||||
QStandardItem* root_;
|
||||
QStandardItem* search_;
|
||||
QStandardItem* popular_month_;
|
||||
QStandardItem* popular_today_;
|
||||
QStandardItem* favorites_;
|
||||
QStandardItem* subscribed_playlists_divider_;
|
||||
|
||||
NetworkAccessManager* network_;
|
||||
|
||||
|
@ -213,11 +213,7 @@ msgstr ""
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
#: ui_magnatunedownloaddialog.h:143
|
||||
msgid "128K MP3"
|
||||
msgstr ""
|
||||
|
||||
#: ui_magnatunesettingspage.h:170
|
||||
#: ui_magnatunedownloaddialog.h:143 ui_magnatunesettingspage.h:170
|
||||
msgid "128k MP3"
|
||||
msgstr ""
|
||||
|
||||
@ -241,7 +237,7 @@ msgstr ""
|
||||
msgid "A Grooveshark Anywhere account is required."
|
||||
msgstr ""
|
||||
|
||||
#: internet/spotifysettingspage.cpp:147
|
||||
#: internet/spotifysettingspage.cpp:145
|
||||
msgid "A Spotify Premium account is required."
|
||||
msgstr ""
|
||||
|
||||
@ -419,11 +415,11 @@ msgstr ""
|
||||
msgid "Add stream..."
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:840
|
||||
#: internet/groovesharkservice.cpp:905
|
||||
msgid "Add to Grooveshark favorites"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:846
|
||||
#: internet/groovesharkservice.cpp:911
|
||||
msgid "Add to Grooveshark playlists"
|
||||
msgstr ""
|
||||
|
||||
@ -467,7 +463,7 @@ msgstr ""
|
||||
msgid "Added within three months"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:1038
|
||||
#: internet/groovesharkservice.cpp:1103
|
||||
msgid "Adding song to favorites"
|
||||
msgstr ""
|
||||
|
||||
@ -479,7 +475,7 @@ msgstr ""
|
||||
msgid "After copying..."
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1099 ui/organisedialog.cpp:52
|
||||
#: playlist/playlist.cpp:1103 ui/organisedialog.cpp:52
|
||||
#: ui/qtsystemtrayicon.cpp:252 ui_groupbydialog.h:129 ui_groupbydialog.h:142
|
||||
#: ui_groupbydialog.h:155 ui_albumcoversearcher.h:110
|
||||
#: ui_albumcoversearcher.h:112 ui_edittagdialog.h:656
|
||||
@ -491,7 +487,7 @@ msgstr ""
|
||||
msgid "Album (ideal loudness for all tracks)"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1105 ui/organisedialog.cpp:55 ui_edittagdialog.h:658
|
||||
#: playlist/playlist.cpp:1109 ui/organisedialog.cpp:55 ui_edittagdialog.h:658
|
||||
msgid "Album artist"
|
||||
msgstr ""
|
||||
|
||||
@ -622,7 +618,7 @@ msgstr ""
|
||||
msgid "Are you sure you want to delete the \"%1\" preset?"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:1010
|
||||
#: internet/groovesharkservice.cpp:1075
|
||||
msgid "Are you sure you want to delete this playlist?"
|
||||
msgstr ""
|
||||
|
||||
@ -630,7 +626,7 @@ msgstr ""
|
||||
msgid "Are you sure you want to reset this song's statistics?"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1098 ui/organisedialog.cpp:53
|
||||
#: playlist/playlist.cpp:1102 ui/organisedialog.cpp:53
|
||||
#: ui/qtsystemtrayicon.cpp:250 ui_groupbydialog.h:130 ui_groupbydialog.h:143
|
||||
#: ui_groupbydialog.h:156 ui_albumcoversearcher.h:106
|
||||
#: ui_albumcoversearcher.h:108 ui_edittagdialog.h:654
|
||||
@ -696,7 +692,7 @@ msgstr ""
|
||||
msgid "Average image size"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1114 ui/organisedialog.cpp:59 ui_edittagdialog.h:638
|
||||
#: playlist/playlist.cpp:1118 ui/organisedialog.cpp:59 ui_edittagdialog.h:638
|
||||
msgid "BPM"
|
||||
msgstr ""
|
||||
|
||||
@ -741,7 +737,7 @@ msgstr ""
|
||||
msgid "Biography from %1"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1115 ui_edittagdialog.h:640
|
||||
#: playlist/playlist.cpp:1119 ui_edittagdialog.h:640
|
||||
msgid "Bit rate"
|
||||
msgstr ""
|
||||
|
||||
@ -958,7 +954,7 @@ msgstr ""
|
||||
msgid "Comma separated list of class:level, level is 0-3"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1124 smartplaylists/searchterm.cpp:279
|
||||
#: playlist/playlist.cpp:1128 smartplaylists/searchterm.cpp:279
|
||||
#: ui/organisedialog.cpp:62 ui_edittagdialog.h:661
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
@ -971,12 +967,12 @@ msgstr ""
|
||||
msgid "Complete tags automatically..."
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1106 ui/organisedialog.cpp:56 ui_groupbydialog.h:132
|
||||
#: playlist/playlist.cpp:1110 ui/organisedialog.cpp:56 ui_groupbydialog.h:132
|
||||
#: ui_groupbydialog.h:145 ui_groupbydialog.h:158 ui_edittagdialog.h:659
|
||||
msgid "Composer"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:492
|
||||
#: internet/groovesharkservice.cpp:504
|
||||
msgid "Configure Grooveshark..."
|
||||
msgstr ""
|
||||
|
||||
@ -1029,7 +1025,7 @@ msgstr ""
|
||||
msgid "Convert any music that the device can't play"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:893
|
||||
#: internet/groovesharkservice.cpp:958
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
@ -1108,7 +1104,7 @@ msgstr ""
|
||||
msgid "Covers from %1"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:477 internet/groovesharkservice.cpp:962
|
||||
#: internet/groovesharkservice.cpp:488 internet/groovesharkservice.cpp:1027
|
||||
msgid "Create a new Grooveshark playlist"
|
||||
msgstr ""
|
||||
|
||||
@ -1216,11 +1212,11 @@ msgstr ""
|
||||
msgid "Dance"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1122 ui_edittagdialog.h:649
|
||||
#: playlist/playlist.cpp:1126 ui_edittagdialog.h:649
|
||||
msgid "Date created"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1121 ui_edittagdialog.h:648
|
||||
#: playlist/playlist.cpp:1125 ui_edittagdialog.h:648
|
||||
msgid "Date modified"
|
||||
msgstr ""
|
||||
|
||||
@ -1248,7 +1244,7 @@ msgstr ""
|
||||
msgid "Delay between visualizations"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:480 internet/groovesharkservice.cpp:1009
|
||||
#: internet/groovesharkservice.cpp:491 internet/groovesharkservice.cpp:1074
|
||||
msgid "Delete Grooveshark playlist"
|
||||
msgstr ""
|
||||
|
||||
@ -1354,7 +1350,7 @@ msgstr ""
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1102 ui/organisedialog.cpp:58 ui_edittagdialog.h:655
|
||||
#: playlist/playlist.cpp:1106 ui/organisedialog.cpp:58 ui_edittagdialog.h:655
|
||||
msgid "Disc"
|
||||
msgstr ""
|
||||
|
||||
@ -1675,7 +1671,7 @@ msgstr ""
|
||||
msgid "Fast"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:524
|
||||
#: internet/groovesharkservice.cpp:543
|
||||
msgid "Favorites"
|
||||
msgstr ""
|
||||
|
||||
@ -1707,19 +1703,19 @@ msgstr ""
|
||||
msgid "File formats"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1117 ui_edittagdialog.h:650
|
||||
#: playlist/playlist.cpp:1121 ui_edittagdialog.h:650
|
||||
msgid "File name"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1118
|
||||
#: playlist/playlist.cpp:1122
|
||||
msgid "File name (without path)"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1119 ui_edittagdialog.h:644
|
||||
#: playlist/playlist.cpp:1123 ui_edittagdialog.h:644
|
||||
msgid "File size"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1120 ui_groupbydialog.h:133 ui_groupbydialog.h:146
|
||||
#: playlist/playlist.cpp:1124 ui_groupbydialog.h:133 ui_groupbydialog.h:146
|
||||
#: ui_groupbydialog.h:159 ui_edittagdialog.h:646
|
||||
msgid "File type"
|
||||
msgstr ""
|
||||
@ -1845,16 +1841,16 @@ msgstr ""
|
||||
msgid "General settings"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1104 ui/organisedialog.cpp:61 ui_groupbydialog.h:134
|
||||
#: playlist/playlist.cpp:1108 ui/organisedialog.cpp:61 ui_groupbydialog.h:134
|
||||
#: ui_groupbydialog.h:147 ui_groupbydialog.h:160 ui_edittagdialog.h:660
|
||||
msgid "Genre"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:857
|
||||
#: internet/groovesharkservice.cpp:922
|
||||
msgid "Get an URL to share this Grooveshark song"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:667
|
||||
#: internet/groovesharkservice.cpp:701
|
||||
msgid "Getting Grooveshark popular songs"
|
||||
msgstr ""
|
||||
|
||||
@ -1900,11 +1896,11 @@ msgstr ""
|
||||
msgid "Grooveshark"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:404
|
||||
#: internet/groovesharkservice.cpp:413
|
||||
msgid "Grooveshark login error"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:889
|
||||
#: internet/groovesharkservice.cpp:954
|
||||
msgid "Grooveshark song's URL"
|
||||
msgstr ""
|
||||
|
||||
@ -2099,7 +2095,7 @@ msgstr ""
|
||||
msgid "Invalid session key"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:397
|
||||
#: internet/groovesharkservice.cpp:406
|
||||
msgid "Invalid username and/or password"
|
||||
msgstr ""
|
||||
|
||||
@ -2174,7 +2170,7 @@ msgstr ""
|
||||
msgid "Large sidebar"
|
||||
msgstr ""
|
||||
|
||||
#: library/library.cpp:66 playlist/playlist.cpp:1111 ui_edittagdialog.h:641
|
||||
#: library/library.cpp:66 playlist/playlist.cpp:1115 ui_edittagdialog.h:641
|
||||
msgid "Last played"
|
||||
msgstr ""
|
||||
|
||||
@ -2252,7 +2248,7 @@ msgstr ""
|
||||
msgid "Leave blank for the default. Examples: \"/dev/dsp\", \"front\", etc."
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1100 ui/organisedialog.cpp:63
|
||||
#: playlist/playlist.cpp:1104 ui/organisedialog.cpp:63
|
||||
#: ui/qtsystemtrayicon.cpp:255 ui_edittagdialog.h:636
|
||||
msgid "Length"
|
||||
msgstr ""
|
||||
@ -2567,7 +2563,7 @@ msgstr ""
|
||||
msgid "My Recommendations"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:963 ui/equalizer.cpp:172
|
||||
#: internet/groovesharkservice.cpp:1028 ui/equalizer.cpp:172
|
||||
#: ui_deviceproperties.h:369 ui_magnatunedownloaddialog.h:135
|
||||
#: ui_wizardfinishpage.h:84 ui_globalshortcutssettingspage.h:174
|
||||
msgid "Name"
|
||||
@ -2733,7 +2729,7 @@ msgid "Only show the first"
|
||||
msgstr ""
|
||||
|
||||
#: internet/digitallyimportedservicebase.cpp:178
|
||||
#: internet/groovesharkservice.cpp:493 internet/icecastservice.cpp:300
|
||||
#: internet/groovesharkservice.cpp:503 internet/icecastservice.cpp:300
|
||||
#: internet/jamendoservice.cpp:414 internet/magnatuneservice.cpp:271
|
||||
#: internet/somafmservice.cpp:84
|
||||
#, qt-format
|
||||
@ -2863,7 +2859,7 @@ msgstr ""
|
||||
msgid "Play artist radio..."
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1109 ui_edittagdialog.h:637
|
||||
#: playlist/playlist.cpp:1113 ui_edittagdialog.h:637
|
||||
msgid "Play count"
|
||||
msgstr ""
|
||||
|
||||
@ -2924,6 +2920,10 @@ msgstr ""
|
||||
msgid "Playlist type"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:539
|
||||
msgid "Playlists"
|
||||
msgstr ""
|
||||
|
||||
#: ui_spotifysettingspage.h:185
|
||||
msgid "Plugin status:"
|
||||
msgstr ""
|
||||
@ -2932,11 +2932,15 @@ msgstr ""
|
||||
msgid "Pop"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:510
|
||||
#: internet/groovesharkservice.cpp:521
|
||||
msgid "Popular songs"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:525
|
||||
msgid "Popular songs of the Month"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:517
|
||||
#: internet/groovesharkservice.cpp:532
|
||||
msgid "Popular songs today"
|
||||
msgstr ""
|
||||
|
||||
@ -3091,7 +3095,7 @@ msgstr ""
|
||||
msgid "Rate the current song 5 stars"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1108 ui_edittagdialog.h:645
|
||||
#: playlist/playlist.cpp:1112 ui_edittagdialog.h:645
|
||||
msgid "Rating"
|
||||
msgstr ""
|
||||
|
||||
@ -3148,11 +3152,11 @@ msgstr ""
|
||||
msgid "Remove folder"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:487
|
||||
#: internet/groovesharkservice.cpp:498
|
||||
msgid "Remove from favorites"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:484 ui_mainwindow.h:674
|
||||
#: internet/groovesharkservice.cpp:495 ui_mainwindow.h:674
|
||||
msgid "Remove from playlist"
|
||||
msgstr ""
|
||||
|
||||
@ -3160,7 +3164,7 @@ msgstr ""
|
||||
msgid "Remove playlist"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:1096
|
||||
#: internet/groovesharkservice.cpp:1161
|
||||
msgid "Removing song from favorites"
|
||||
msgstr ""
|
||||
|
||||
@ -3238,11 +3242,11 @@ msgstr ""
|
||||
msgid "Results"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:638
|
||||
#: internet/groovesharkservice.cpp:672
|
||||
msgid "Retrieving Grooveshark favorites songs"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:560
|
||||
#: internet/groovesharkservice.cpp:585
|
||||
msgid "Retrieving Grooveshark playlists"
|
||||
msgstr ""
|
||||
|
||||
@ -3262,7 +3266,7 @@ msgstr ""
|
||||
msgid "Safely remove the device after copying"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1116 ui_edittagdialog.h:642
|
||||
#: playlist/playlist.cpp:1120 ui_edittagdialog.h:642
|
||||
msgid "Sample rate"
|
||||
msgstr ""
|
||||
|
||||
@ -3306,7 +3310,7 @@ msgstr ""
|
||||
msgid "Scalable sampling rate profile (SSR)"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1112 ui_edittagdialog.h:643
|
||||
#: playlist/playlist.cpp:1116 ui_edittagdialog.h:643
|
||||
msgid "Score"
|
||||
msgstr ""
|
||||
|
||||
@ -3319,11 +3323,11 @@ msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharksearchplaylisttype.cpp:32
|
||||
#: internet/groovesharkservice.cpp:775
|
||||
#: internet/groovesharkservice.cpp:840
|
||||
msgid "Search Grooveshark"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:490 internet/groovesharkservice.cpp:504
|
||||
#: internet/groovesharkservice.cpp:501 internet/groovesharkservice.cpp:515
|
||||
msgid "Search Grooveshark (opens a new tab)"
|
||||
msgstr ""
|
||||
|
||||
@ -3375,7 +3379,7 @@ msgstr ""
|
||||
msgid "Search terms"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:264
|
||||
#: internet/groovesharkservice.cpp:273
|
||||
msgid "Searching on Grooveshark"
|
||||
msgstr ""
|
||||
|
||||
@ -3594,7 +3598,7 @@ msgstr ""
|
||||
msgid "Skip backwards in playlist"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1110 ui_edittagdialog.h:639
|
||||
#: playlist/playlist.cpp:1114 ui_edittagdialog.h:639
|
||||
msgid "Skip count"
|
||||
msgstr ""
|
||||
|
||||
@ -3750,6 +3754,10 @@ msgstr ""
|
||||
msgid "Streaming membership"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:552
|
||||
msgid "Subscribed playlists"
|
||||
msgstr ""
|
||||
|
||||
#: transcoder/transcoder.cpp:198
|
||||
#, qt-format
|
||||
msgid "Successfully written %1"
|
||||
@ -3960,7 +3968,7 @@ msgstr ""
|
||||
msgid "Timezone"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1097 ui/organisedialog.cpp:51
|
||||
#: playlist/playlist.cpp:1101 ui/organisedialog.cpp:51
|
||||
#: ui/qtsystemtrayicon.cpp:248 ui_about.h:142 ui_edittagdialog.h:652
|
||||
#: ui_trackselectiondialog.h:211
|
||||
msgid "Title"
|
||||
@ -3998,7 +4006,7 @@ msgstr ""
|
||||
msgid "Total network requests made"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1101 ui/organisedialog.cpp:57 ui_edittagdialog.h:653
|
||||
#: playlist/playlist.cpp:1105 ui/organisedialog.cpp:57 ui_edittagdialog.h:653
|
||||
#: ui_trackselectiondialog.h:212
|
||||
msgid "Track"
|
||||
msgstr ""
|
||||
@ -4069,7 +4077,7 @@ msgstr ""
|
||||
msgid "Unset cover"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:917
|
||||
#: internet/groovesharkservice.cpp:982
|
||||
msgid "Update Grooveshark playlist"
|
||||
msgstr ""
|
||||
|
||||
@ -4147,7 +4155,7 @@ msgstr ""
|
||||
msgid "Used"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharkservice.cpp:400
|
||||
#: internet/groovesharkservice.cpp:409
|
||||
#, qt-format
|
||||
msgid "User %1 doesn't have a Grooveshark Anywhere account"
|
||||
msgstr ""
|
||||
@ -4305,7 +4313,7 @@ msgstr ""
|
||||
msgid "Would you like to run a full rescan right now?"
|
||||
msgstr ""
|
||||
|
||||
#: playlist/playlist.cpp:1103 ui/organisedialog.cpp:60 ui_groupbydialog.h:135
|
||||
#: playlist/playlist.cpp:1107 ui/organisedialog.cpp:60 ui_groupbydialog.h:135
|
||||
#: ui_groupbydialog.h:148 ui_groupbydialog.h:161 ui_edittagdialog.h:657
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
@ -4376,7 +4384,7 @@ msgstr ""
|
||||
msgid "You do not have a Grooveshark Anywhere account."
|
||||
msgstr ""
|
||||
|
||||
#: internet/spotifysettingspage.cpp:138
|
||||
#: internet/spotifysettingspage.cpp:136
|
||||
msgid "You do not have a Spotify Premium account."
|
||||
msgstr ""
|
||||
|
||||
@ -4439,7 +4447,7 @@ msgid "Your scrobbles: %1"
|
||||
msgstr ""
|
||||
|
||||
#: internet/groovesharksettingspage.cpp:109
|
||||
#: internet/spotifysettingspage.cpp:143
|
||||
#: internet/spotifysettingspage.cpp:141
|
||||
msgid "Your username or password was incorrect."
|
||||
msgstr ""
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user