Magnatune context menu

This commit is contained in:
David Sansome 2010-05-09 18:36:10 +00:00
parent 8b76cfa19d
commit 8d3353520a
30 changed files with 203 additions and 26 deletions

View File

@ -27,6 +27,8 @@
#include <QXmlStreamReader> #include <QXmlStreamReader>
#include <QtIOCompressor> #include <QtIOCompressor>
#include <QSortFilterProxyModel> #include <QSortFilterProxyModel>
#include <QMenu>
#include <QDesktopServices>
#include <QtDebug> #include <QtDebug>
@ -34,10 +36,12 @@ const char* MagnatuneService::kServiceName = "Magnatune";
const char* MagnatuneService::kDatabaseUrl = const char* MagnatuneService::kDatabaseUrl =
"http://magnatune.com/info/song_info2_xml.gz"; "http://magnatune.com/info/song_info2_xml.gz";
const char* MagnatuneService::kSongsTable = "magnatune_songs"; const char* MagnatuneService::kSongsTable = "magnatune_songs";
const char* MagnatuneService::kHomepage = "http://magnatune.com";
MagnatuneService::MagnatuneService(RadioModel* parent) MagnatuneService::MagnatuneService(RadioModel* parent)
: RadioService(kServiceName, parent), : RadioService(kServiceName, parent),
root_(NULL), root_(NULL),
context_menu_(new QMenu),
library_backend_(new LibraryBackend(parent->db(), kSongsTable, library_backend_(new LibraryBackend(parent->db(), kSongsTable,
QString::null, QString::null, this)), QString::null, QString::null, this)),
library_model_(new LibraryModel(library_backend_, this)), library_model_(new LibraryModel(library_backend_, this)),
@ -53,9 +57,19 @@ MagnatuneService::MagnatuneService(RadioModel* parent)
library_sort_model_->setDynamicSortFilter(true); library_sort_model_->setDynamicSortFilter(true);
library_sort_model_->sort(0); library_sort_model_->sort(0);
add_to_playlist_ = context_menu_->addAction(
QIcon(":media-playback-start.png"), tr("Add to playlist"), this, SLOT(AddToPlaylist()));
context_menu_->addSeparator();
context_menu_->addAction(QIcon(":web.png"), tr("Open magnatune.com in browser"), this, SLOT(Homepage()));
context_menu_->addAction(QIcon(":refresh.png"), tr("Refresh catalogue"), this, SLOT(ReloadDatabase()));
library_model_->Init(); library_model_->Init();
} }
MagnatuneService::~MagnatuneService() {
delete context_menu_;
}
RadioItem* MagnatuneService::CreateRootItem(RadioItem *parent) { RadioItem* MagnatuneService::CreateRootItem(RadioItem *parent) {
root_ = new RadioItem(this, RadioItem::Type_Service, kServiceName, parent); root_ = new RadioItem(this, RadioItem::Type_Service, kServiceName, parent);
root_->icon = QIcon(":magnatune.png"); root_->icon = QIcon(":magnatune.png");
@ -154,7 +168,22 @@ Song MagnatuneService::ReadTrack(QXmlStreamReader& reader) {
return song; return song;
} }
void MagnatuneService::ShowContextMenu(RadioItem* item, const QModelIndex& index, void MagnatuneService::ShowContextMenu(RadioItem*, const QModelIndex& index,
const QPoint& global_pos) { const QPoint& global_pos) {
if (index.model() == library_sort_model_)
context_item_ = index;
else
context_item_ = QModelIndex();
add_to_playlist_->setEnabled(context_item_.isValid());
context_menu_->popup(global_pos);
}
void MagnatuneService::AddToPlaylist() {
emit AddItemsToPlaylist(library_model_->GetChildSongs(
library_sort_model_->mapToSource(context_item_)));
}
void MagnatuneService::Homepage() {
QDesktopServices::openUrl(QUrl(kHomepage));
} }

View File

@ -32,10 +32,12 @@ class MagnatuneService : public RadioService {
public: public:
MagnatuneService(RadioModel* parent); MagnatuneService(RadioModel* parent);
~MagnatuneService();
static const char* kServiceName; static const char* kServiceName;
static const char* kDatabaseUrl; static const char* kDatabaseUrl;
static const char* kSongsTable; static const char* kSongsTable;
static const char* kHomepage;
RadioItem* CreateRootItem(RadioItem* parent); RadioItem* CreateRootItem(RadioItem* parent);
void LazyPopulate(RadioItem* item); void LazyPopulate(RadioItem* item);
@ -50,11 +52,19 @@ class MagnatuneService : public RadioService {
void ReloadDatabase(); void ReloadDatabase();
void ReloadDatabaseFinished(); void ReloadDatabaseFinished();
void AddToPlaylist();
void Homepage();
private: private:
Song ReadTrack(QXmlStreamReader& reader); Song ReadTrack(QXmlStreamReader& reader);
private: private:
RadioItem* root_; RadioItem* root_;
QMenu* context_menu_;
QModelIndex context_item_;
QAction* add_to_playlist_;
LibraryBackend* library_backend_; LibraryBackend* library_backend_;
LibraryModel* library_model_; LibraryModel* library_model_;
QSortFilterProxyModel* library_sort_model_; QSortFilterProxyModel* library_sort_model_;

View File

@ -347,6 +347,7 @@ MainWindow::MainWindow(QNetworkAccessManager* network, Engine::Type engine, QWid
connect(radio_model_, SIGNAL(StreamReady(QUrl,QUrl)), player_, SLOT(StreamReady(QUrl,QUrl))); connect(radio_model_, SIGNAL(StreamReady(QUrl,QUrl)), player_, SLOT(StreamReady(QUrl,QUrl)));
connect(radio_model_, SIGNAL(StreamMetadataFound(QUrl,Song)), playlist_, SLOT(SetStreamMetadata(QUrl,Song))); connect(radio_model_, SIGNAL(StreamMetadataFound(QUrl,Song)), playlist_, SLOT(SetStreamMetadata(QUrl,Song)));
connect(radio_model_, SIGNAL(AddItemToPlaylist(RadioItem*)), SLOT(InsertRadioItem(RadioItem*))); connect(radio_model_, SIGNAL(AddItemToPlaylist(RadioItem*)), SLOT(InsertRadioItem(RadioItem*)));
connect(radio_model_, SIGNAL(AddItemsToPlaylist(SongList)), SLOT(InsertRadioItems(SongList)));
connect(radio_model_->GetLastFMService(), SIGNAL(ScrobblingEnabledChanged(bool)), SLOT(ScrobblingEnabledChanged(bool))); connect(radio_model_->GetLastFMService(), SIGNAL(ScrobblingEnabledChanged(bool)), SLOT(ScrobblingEnabledChanged(bool)));
connect(radio_model_->GetLastFMService(), SIGNAL(ButtonVisibilityChanged(bool)), SLOT(LastFMButtonVisibilityChanged(bool))); connect(radio_model_->GetLastFMService(), SIGNAL(ButtonVisibilityChanged(bool)), SLOT(LastFMButtonVisibilityChanged(bool)));
connect(ui_.radio_view, SIGNAL(doubleClicked(QModelIndex)), SLOT(RadioDoubleClick(QModelIndex))); connect(ui_.radio_view, SIGNAL(doubleClicked(QModelIndex)), SLOT(RadioDoubleClick(QModelIndex)));
@ -705,6 +706,13 @@ void MainWindow::InsertRadioItem(RadioItem* item) {
player_->PlayAt(first_song.row(), Engine::First, true); player_->PlayAt(first_song.row(), Engine::First, true);
} }
void MainWindow::InsertRadioItems(const SongList& items) {
QModelIndex first_song = playlist_->InsertSongs(items);
if (first_song.isValid() && player_->GetState() != Engine::Playing)
player_->PlayAt(first_song.row(), Engine::First, true);
}
void MainWindow::PlaylistRightClick(const QPoint& global_pos, const QModelIndex& index) { void MainWindow::PlaylistRightClick(const QPoint& global_pos, const QModelIndex& index) {
playlist_menu_index_ = index; playlist_menu_index_ = index;

View File

@ -119,6 +119,7 @@ class MainWindow : public QMainWindow {
void RadioDoubleClick(const QModelIndex& index); void RadioDoubleClick(const QModelIndex& index);
void InsertRadioItem(RadioItem*); void InsertRadioItem(RadioItem*);
void InsertRadioItems(const SongList& songs);
void ScrobblingEnabledChanged(bool value); void ScrobblingEnabledChanged(bool value);
void LastFMButtonVisibilityChanged(bool value); void LastFMButtonVisibilityChanged(bool value);
void Love(); void Love();

View File

@ -307,5 +307,5 @@ QModelIndex MergedProxyModel::FindSourceParent(const QModelIndex& proxy_index) c
QModelIndex source_index = mapToSource(proxy_index); QModelIndex source_index = mapToSource(proxy_index);
if (source_index.model() == sourceModel()) if (source_index.model() == sourceModel())
return source_index; return source_index;
return merge_points_.value(proxy_index.model()); return merge_points_.value(source_index.model());
} }

View File

@ -63,7 +63,7 @@ QString MultiLoadingIndicator::TaskTypeToString(TaskType type) {
case GettingChannels: return tr("Getting channels"); case GettingChannels: return tr("Getting channels");
case LoadingStream: return tr("Loading stream"); case LoadingStream: return tr("Loading stream");
case LoadingLastFM: return tr("Loading Last.fm radio"); case LoadingLastFM: return tr("Loading Last.fm radio");
case LoadingMagnatune: return tr("Downloading Magnatune database"); case LoadingMagnatune: return tr("Downloading Magnatune catalogue");
default: return QString::null; default: return QString::null;
} }

View File

@ -55,6 +55,7 @@ void RadioModel::AddService(RadioService *service) {
connect(service, SIGNAL(StreamError(QString)), SIGNAL(StreamError(QString))); connect(service, SIGNAL(StreamError(QString)), SIGNAL(StreamError(QString)));
connect(service, SIGNAL(StreamMetadataFound(QUrl,Song)), SIGNAL(StreamMetadataFound(QUrl,Song))); connect(service, SIGNAL(StreamMetadataFound(QUrl,Song)), SIGNAL(StreamMetadataFound(QUrl,Song)));
connect(service, SIGNAL(AddItemToPlaylist(RadioItem*)), SIGNAL(AddItemToPlaylist(RadioItem*))); connect(service, SIGNAL(AddItemToPlaylist(RadioItem*)), SIGNAL(AddItemToPlaylist(RadioItem*)));
connect(service, SIGNAL(AddItemsToPlaylist(SongList)), SIGNAL(AddItemsToPlaylist(SongList)));
} }
RadioService* RadioModel::ServiceByName(const QString& name) { RadioService* RadioModel::ServiceByName(const QString& name) {

View File

@ -20,10 +20,10 @@
#include "radioitem.h" #include "radioitem.h"
#include "simpletreemodel.h" #include "simpletreemodel.h"
#include "multiloadingindicator.h" #include "multiloadingindicator.h"
#include "song.h"
class RadioService; class RadioService;
class LastFMService; class LastFMService;
class Song;
class MergedProxyModel; class MergedProxyModel;
class Database; class Database;
@ -67,6 +67,7 @@ class RadioModel : public SimpleTreeModel<RadioItem> {
void StreamMetadataFound(const QUrl& original_url, const Song& song); void StreamMetadataFound(const QUrl& original_url, const Song& song);
void AddItemToPlaylist(RadioItem* item); void AddItemToPlaylist(RadioItem* item);
void AddItemsToPlaylist(const SongList& items);
protected: protected:
void LazyPopulate(RadioItem* parent); void LazyPopulate(RadioItem* parent);

View File

@ -23,8 +23,8 @@
#include "radioitem.h" #include "radioitem.h"
#include "multiloadingindicator.h" #include "multiloadingindicator.h"
#include "song.h"
class Song;
class RadioModel; class RadioModel;
class RadioService : public QObject { class RadioService : public QObject {
@ -68,6 +68,7 @@ class RadioService : public QObject {
void StreamMetadataFound(const QUrl& original_url, const Song& song); void StreamMetadataFound(const QUrl& original_url, const Song& song);
void AddItemToPlaylist(RadioItem* item); void AddItemToPlaylist(RadioItem* item);
void AddItemsToPlaylist(const SongList& items);
private: private:
RadioModel* model_; RadioModel* model_;

View File

@ -329,7 +329,7 @@ msgstr "Načítám kanál"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Načítám rádio Last.fm" msgstr "Načítám rádio Last.fm"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -623,6 +623,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Různí umělci" msgstr "Různí umělci"

View File

@ -329,7 +329,7 @@ msgstr "Indlæser stream"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Indlæser Last.fm-radio" msgstr "Indlæser Last.fm-radio"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -626,6 +626,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Diverse kunstnere" msgstr "Diverse kunstnere"

View File

@ -328,7 +328,7 @@ msgstr "Lade Stream"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Last.fm Radio wird geladen" msgstr "Last.fm Radio wird geladen"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -622,6 +622,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Verschiedene Interpreten" msgstr "Verschiedene Interpreten"

View File

@ -330,7 +330,7 @@ msgstr "Φόρτωμα ροής (stream)"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Φόρτωμα Last.fm" msgstr "Φόρτωμα Last.fm"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -624,6 +624,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Διάφοροι καλλιτέχνες" msgstr "Διάφοροι καλλιτέχνες"

View File

@ -328,7 +328,7 @@ msgstr "Loading stream"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Loading Last.fm radio" msgstr "Loading Last.fm radio"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -622,6 +622,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Various Artists" msgstr "Various Artists"

View File

@ -329,7 +329,7 @@ msgstr "Cargando flujo"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Cargando radio de Last.fm" msgstr "Cargando radio de Last.fm"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -624,6 +624,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Varios Artistas" msgstr "Varios Artistas"

View File

@ -328,7 +328,7 @@ msgstr ""
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "" msgstr ""
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -621,6 +621,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Useita artisteja" msgstr "Useita artisteja"

View File

@ -331,7 +331,7 @@ msgstr "Chargement du flux"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Chargement de la radio Last.fm" msgstr "Chargement de la radio Last.fm"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -625,6 +625,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Compilations d'artistes" msgstr "Compilations d'artistes"

View File

@ -329,7 +329,7 @@ msgstr "A carregar a stream"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Carregando a rádio da Last.fm" msgstr "Carregando a rádio da Last.fm"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -623,6 +623,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Vários Artistas" msgstr "Vários Artistas"

View File

@ -329,7 +329,7 @@ msgstr "Caricamento flusso"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Caricamento radio Last.fm" msgstr "Caricamento radio Last.fm"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -624,6 +624,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "Aggiungi file da convertire" msgstr "Aggiungi file da convertire"
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Artisti vari" msgstr "Artisti vari"

View File

@ -328,7 +328,7 @@ msgstr ""
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "" msgstr ""
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -623,6 +623,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "" msgstr ""

View File

@ -328,7 +328,7 @@ msgstr "Lader lydstrøm"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Laster inn Last.fm radio" msgstr "Laster inn Last.fm radio"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -623,6 +623,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Diverse artister" msgstr "Diverse artister"

View File

@ -329,7 +329,7 @@ msgstr "Ładowanie strumienia"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Ładowanie radia Last.fm" msgstr "Ładowanie radia Last.fm"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -623,6 +623,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Różni wykonawcy" msgstr "Różni wykonawcy"

View File

@ -330,7 +330,7 @@ msgstr "A carregar a stream"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Carregando a rádio da Last.fm" msgstr "Carregando a rádio da Last.fm"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -624,6 +624,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Vários Artistas" msgstr "Vários Artistas"

View File

@ -328,7 +328,7 @@ msgstr ""
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "" msgstr ""
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -621,6 +621,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Vários artistas" msgstr "Vários artistas"

View File

@ -328,7 +328,7 @@ msgstr "Se încarcă fluxul"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Se încarcă radio Last.fm" msgstr "Se încarcă radio Last.fm"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -622,6 +622,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Diferiți artiști" msgstr "Diferiți artiști"

View File

@ -327,7 +327,7 @@ msgstr "Загрузка потока"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Загрузка радио Last.fm" msgstr "Загрузка радио Last.fm"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -622,6 +622,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "Добавить файлы для перекодирования" msgstr "Добавить файлы для перекодирования"
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Разные исполнители" msgstr "Разные исполнители"

View File

@ -329,7 +329,7 @@ msgstr "Načítava sa stream"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Načítava sa Last.fm rádio" msgstr "Načítava sa Last.fm rádio"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -623,6 +623,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Rôzni interpréti" msgstr "Rôzni interpréti"

View File

@ -328,7 +328,7 @@ msgstr "Laddar ström"
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "Laddar Last.fm radio" msgstr "Laddar Last.fm radio"
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -622,6 +622,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "Diverse artister" msgstr "Diverse artister"

View File

@ -328,7 +328,7 @@ msgstr ""
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "" msgstr ""
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -621,6 +621,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "" msgstr ""

View File

@ -319,7 +319,7 @@ msgstr ""
msgid "Loading Last.fm radio" msgid "Loading Last.fm radio"
msgstr "" msgstr ""
msgid "Downloading Magnatune database" msgid "Downloading Magnatune catalogue"
msgstr "" msgstr ""
msgid "Open somafm.com in browser" msgid "Open somafm.com in browser"
@ -612,6 +612,12 @@ msgstr ""
msgid "Add files to transcode" msgid "Add files to transcode"
msgstr "" msgstr ""
msgid "Open magnatune.com in browser"
msgstr ""
msgid "Refresh catalogue"
msgstr ""
msgid "Various Artists" msgid "Various Artists"
msgstr "" msgstr ""