Add a "Play from my Library" context menu item to similar artists in the song info view. Fixes issue #1014

This commit is contained in:
David Sansome 2010-12-04 16:19:30 +00:00
parent 5bb287c223
commit a18dafac9c
47 changed files with 450 additions and 14 deletions

View File

@ -57,11 +57,10 @@ void EchoNestSimilarArtists::RequestFinished() {
data.type_ = CollapsibleInfoPane::Data::Type_Similar; data.type_ = CollapsibleInfoPane::Data::Type_Similar;
data.icon_ = QIcon(":/providers/echonest.png"); data.icon_ = QIcon(":/providers/echonest.png");
TagWidget* widget = new TagWidget; TagWidget* widget = new TagWidget(TagWidget::Type_Artists);
data.contents_ = widget; data.contents_ = widget;
widget->SetIcon(QIcon(":/icons/22x22/x-clementine-artist.png")); widget->SetIcon(QIcon(":/icons/22x22/x-clementine-artist.png"));
widget->SetUrlPattern("lastfm://artist/%1/similarartists");
foreach (const Echonest::Artist& artist, artists) { foreach (const Echonest::Artist& artist, artists) {
widget->AddTag(artist.name()); widget->AddTag(artist.name());

View File

@ -59,11 +59,10 @@ void EchoNestTags::RequestFinished() {
data.type_ = CollapsibleInfoPane::Data::Type_Tags; data.type_ = CollapsibleInfoPane::Data::Type_Tags;
data.icon_ = QIcon(":/last.fm/icon_tag.png"); data.icon_ = QIcon(":/last.fm/icon_tag.png");
TagWidget* widget = new TagWidget; TagWidget* widget = new TagWidget(TagWidget::Type_Tags);
data.contents_ = widget; data.contents_ = widget;
widget->SetIcon(data.icon_); widget->SetIcon(data.icon_);
widget->SetUrlPattern("lastfm://globaltags/%1");
foreach (const Echonest::Term& term, request->artist_->terms()) { foreach (const Echonest::Term& term, request->artist_->terms()) {
widget->AddTag(term.name()); widget->AddTag(term.name());

View File

@ -140,11 +140,10 @@ void LastfmTrackInfoProvider::GetTags(int id, const lastfm::XmlQuery& q) {
data.type_ = CollapsibleInfoPane::Data::Type_Biography; data.type_ = CollapsibleInfoPane::Data::Type_Biography;
data.icon_ = QIcon(":/last.fm/icon_tag.png"); data.icon_ = QIcon(":/last.fm/icon_tag.png");
TagWidget* widget = new TagWidget; TagWidget* widget = new TagWidget(TagWidget::Type_Tags);
data.contents_ = widget; data.contents_ = widget;
widget->SetIcon(data.icon_); widget->SetIcon(data.icon_);
widget->SetUrlPattern("lastfm://globaltags/%1");
foreach (const lastfm::XmlQuery& e, q["track"]["toptags"].children("tag")) { foreach (const lastfm::XmlQuery& e, q["track"]["toptags"].children("tag")) {
widget->AddTag(e["name"].text()); widget->AddTag(e["name"].text());

View File

@ -209,11 +209,17 @@ void SongInfoBase::ReloadSettings() {
} }
void SongInfoBase::ConnectWidget(QWidget* widget) { void SongInfoBase::ConnectWidget(QWidget* widget) {
if (widget->metaObject()->indexOfSignal("ShowSettingsDialog()") != -1) { const QMetaObject* m = widget->metaObject();
if (m->indexOfSignal("ShowSettingsDialog()") != -1) {
connect(widget, SIGNAL(ShowSettingsDialog()), SIGNAL(ShowSettingsDialog())); connect(widget, SIGNAL(ShowSettingsDialog()), SIGNAL(ShowSettingsDialog()));
} }
if (widget->metaObject()->indexOfSignal("AddPlaylistItems(PlaylistItemList)") != -1) { if (m->indexOfSignal("AddPlaylistItems(PlaylistItemList)") != -1) {
connect(widget, SIGNAL(AddPlaylistItems(PlaylistItemList)), SIGNAL(AddPlaylistItems(PlaylistItemList))); connect(widget, SIGNAL(AddPlaylistItems(PlaylistItemList)), SIGNAL(AddPlaylistItems(PlaylistItemList)));
} }
if (m->indexOfSignal("AddGenerator(smart_playlists::GeneratorPtr)") != -1) {
connect(widget, SIGNAL(AddGenerator(smart_playlists::GeneratorPtr)), SIGNAL(AddGenerator(smart_playlists::GeneratorPtr)));
}
} }

View File

@ -24,6 +24,7 @@
#include "songinfofetcher.h" #include "songinfofetcher.h"
#include "core/song.h" #include "core/song.h"
#include "playlist/playlistitem.h" #include "playlist/playlistitem.h"
#include "smartplaylists/generator_fwd.h"
#include "widgets/widgetfadehelper.h" #include "widgets/widgetfadehelper.h"
class CollapsibleInfoPane; class CollapsibleInfoPane;
@ -48,6 +49,7 @@ public slots:
signals: signals:
void ShowSettingsDialog(); void ShowSettingsDialog();
void AddPlaylistItems(const PlaylistItemList& items, bool clear_first = false); void AddPlaylistItems(const PlaylistItemList& items, bool clear_first = false);
void AddGenerator(smart_playlists::GeneratorPtr gen);
protected: protected:
void showEvent(QShowEvent* e); void showEvent(QShowEvent* e);

View File

@ -18,7 +18,10 @@
#include "tagwidget.h" #include "tagwidget.h"
#include "radio/lastfmservice.h" #include "radio/lastfmservice.h"
#include "radio/radiomodel.h" #include "radio/radiomodel.h"
#include "smartplaylists/generator.h"
#include "smartplaylists/querygenerator.h"
#include "ui/flowlayout.h" #include "ui/flowlayout.h"
#include "ui/iconloader.h"
#include <QPainter> #include <QPainter>
#include <QPropertyAnimation> #include <QPropertyAnimation>
@ -100,9 +103,15 @@ void TagWidgetTag::mouseReleaseEvent(QMouseEvent*) {
emit Clicked(); emit Clicked();
} }
void TagWidgetTag::contextMenuEvent(QContextMenuEvent*) {
emit Clicked();
}
TagWidget::TagWidget(QWidget* parent)
: QWidget(parent) TagWidget::TagWidget(Type type, QWidget* parent)
: QWidget(parent),
type_(type),
menu_(NULL)
{ {
setLayout(new FlowLayout(4, 6, 4)); setLayout(new FlowLayout(4, 6, 4));
} }
@ -118,18 +127,66 @@ void TagWidget::AddTag(const QString& tag) {
tags_ << widget; tags_ << widget;
} }
void TagWidget::EnsureMenuCreated() {
if (menu_)
return;
menu_ = new QMenu(this);
switch (type_) {
case Type_Tags:
menu_->addAction(QIcon(":/last.fm/as.png"), tr("Play last.fm tag radio"),
this, SLOT(PlayLastFmTagRadio()));
break;
case Type_Artists:
menu_->addAction(QIcon(":/last.fm/as.png"), tr("Play last.fm artist radio"),
this, SLOT(PlayLastFmArtistRadio()));
menu_->addAction(IconLoader::Load("folder-sound"), tr("Play from my Library"),
this, SLOT(PlayFromLibrary()));
break;
}
}
void TagWidget::TagClicked() { void TagWidget::TagClicked() {
TagWidgetTag* tag = qobject_cast<TagWidgetTag*>(sender()); TagWidgetTag* tag = qobject_cast<TagWidgetTag*>(sender());
if (!tag) if (!tag)
return; return;
EnsureMenuCreated();
context_item_ = tag->text();
menu_->popup(tag->mapToGlobal(tag->rect().bottomLeft()));
}
void TagWidget::PlayLastFmArtistRadio() {
PlayLastFm("lastfm://artist/%1/similarartists");
}
void TagWidget::PlayLastFmTagRadio() {
PlayLastFm("lastfm://globaltags/%1");
}
void TagWidget::PlayFromLibrary() {
using smart_playlists::GeneratorPtr;
using smart_playlists::QueryGenerator;
using smart_playlists::Search;
using smart_playlists::SearchTerm;
GeneratorPtr gen(new QueryGenerator(QString(), Search(
Search::Type_And, Search::TermList() <<
SearchTerm(SearchTerm::Field_Artist, SearchTerm::Op_Contains, context_item_),
Search::Sort_FieldAsc, SearchTerm::Field_Album, 100)));
emit AddGenerator(gen);
}
void TagWidget::PlayLastFm(const QString& url_pattern) {
LastFMService* last_fm = RadioModel::Service<LastFMService>(); LastFMService* last_fm = RadioModel::Service<LastFMService>();
if (!last_fm->IsAuthenticated()) { if (!last_fm->IsAuthenticated()) {
last_fm->ShowConfig(); last_fm->ShowConfig();
return; return;
} }
QUrl url(url_pattern_.arg(tag->text())); QUrl url(url_pattern.arg(context_item_));
PlaylistItemPtr item(last_fm->PlaylistItemForUrl(url)); PlaylistItemPtr item(last_fm->PlaylistItemForUrl(url));
if (!item) if (!item)
return; return;

View File

@ -19,10 +19,12 @@
#define TAGWIDGET_H #define TAGWIDGET_H
#include "playlist/playlistitem.h" #include "playlist/playlistitem.h"
#include "smartplaylists/generator_fwd.h"
#include <QIcon> #include <QIcon>
#include <QWidget> #include <QWidget>
class QMenu;
class QPropertyAnimation; class QPropertyAnimation;
class TagWidgetTag : public QWidget { class TagWidgetTag : public QWidget {
@ -53,6 +55,7 @@ protected:
void leaveEvent(QEvent*); void leaveEvent(QEvent*);
void paintEvent(QPaintEvent*); void paintEvent(QPaintEvent*);
void mouseReleaseEvent(QMouseEvent*); void mouseReleaseEvent(QMouseEvent*);
void contextMenuEvent(QContextMenuEvent*);
private: private:
QString text_; QString text_;
@ -66,9 +69,13 @@ class TagWidget : public QWidget {
Q_OBJECT Q_OBJECT
public: public:
TagWidget(QWidget* parent = 0); enum Type {
Type_Tags,
Type_Artists,
};
TagWidget(Type type, QWidget* parent = 0);
void SetUrlPattern(const QString& pattern) { url_pattern_ = pattern; }
void SetIcon(const QIcon& icon) { icon_ = icon; } void SetIcon(const QIcon& icon) { icon_ = icon; }
void AddTag(const QString& tag); void AddTag(const QString& tag);
@ -76,14 +83,26 @@ public:
signals: signals:
void AddPlaylistItems(const PlaylistItemList& items); void AddPlaylistItems(const PlaylistItemList& items);
void AddGenerator(smart_playlists::GeneratorPtr gen);
private slots: private slots:
void TagClicked(); void TagClicked();
void PlayLastFmTagRadio();
void PlayLastFmArtistRadio();
void PlayFromLibrary();
private: private:
QString url_pattern_; void EnsureMenuCreated();
void PlayLastFm(const QString& url_pattern);
private:
Type type_;
QIcon icon_; QIcon icon_;
QList<TagWidgetTag*> tags_; QList<TagWidgetTag*> tags_;
QString context_item_;
QMenu* menu_;
}; };
#endif // TAGWIDGET_H #endif // TAGWIDGET_H

View File

@ -1543,9 +1543,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "شغل إذا توقف، توقف مؤقتا إذا اشتغل" msgstr "شغل إذا توقف، توقف مؤقتا إذا اشتغل"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "" msgstr ""

View File

@ -1547,9 +1547,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "" msgstr ""
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "" msgstr ""

View File

@ -1572,9 +1572,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Reprodueix si esta parat, pausa si esta reproduïnt" msgstr "Reprodueix si esta parat, pausa si esta reproduïnt"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Reproduix la radio de l'etiqueta..." msgstr "Reproduix la radio de l'etiqueta..."

View File

@ -1547,9 +1547,18 @@ msgstr "Počet přehrání"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Přehrát pokud je zastaveno, pozastavit pokud je přehráváno" msgstr "Přehrát pokud je zastaveno, pozastavit pokud je přehráváno"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Přehrávat označené rádio..." msgstr "Přehrávat označené rádio..."

View File

@ -1543,9 +1543,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "" msgstr ""
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "" msgstr ""

View File

@ -1548,9 +1548,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Spil hvis der er stoppet, hold pause hvis der spilles" msgstr "Spil hvis der er stoppet, hold pause hvis der spilles"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Spil mærkeradio..." msgstr "Spil mærkeradio..."

View File

@ -1575,9 +1575,18 @@ msgstr "Abspielzähler"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "Benutzerdefiniertes Radio abspielen..." msgstr "Benutzerdefiniertes Radio abspielen..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Wiedergeben wenn angehalten, pausieren bei Wiedergabe" msgstr "Wiedergeben wenn angehalten, pausieren bei Wiedergabe"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Spiele Tag-Radio..." msgstr "Spiele Tag-Radio..."

View File

@ -1586,9 +1586,18 @@ msgstr "Μετρητής εκτελέσεων"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "Αναπαραγωγή προσαρμοσμένου ραδιοφώνου..." msgstr "Αναπαραγωγή προσαρμοσμένου ραδιοφώνου..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Αναπαραγωγή αν είναι σταματημένο, αλλιώς παύση" msgstr "Αναπαραγωγή αν είναι σταματημένο, αλλιώς παύση"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Αναπαραγωγή ραδιοφώνου ετικετών..." msgstr "Αναπαραγωγή ραδιοφώνου ετικετών..."

View File

@ -1548,9 +1548,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Play if stopped, pause if playing" msgstr "Play if stopped, pause if playing"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Play tag radio..." msgstr "Play tag radio..."

View File

@ -1545,9 +1545,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Play if stopped, pause if playing" msgstr "Play if stopped, pause if playing"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Play tag radio..." msgstr "Play tag radio..."

View File

@ -1543,9 +1543,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "" msgstr ""
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "" msgstr ""

View File

@ -1586,9 +1586,18 @@ msgstr "Número de reproducciones"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "Reproducir Radio Personalizada" msgstr "Reproducir Radio Personalizada"
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Reproducir si está detenida, pausar si se está reproduciendo" msgstr "Reproducir si está detenida, pausar si se está reproduciendo"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Reproducir radio de la etiqueta..." msgstr "Reproducir radio de la etiqueta..."

View File

@ -1545,9 +1545,18 @@ msgstr "Esitamiste arv"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Mängi, kui on peatatud, paus, kui mängitakse" msgstr "Mängi, kui on peatatud, paus, kui mängitakse"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Mängi sildipilve raadiot..." msgstr "Mängi sildipilve raadiot..."

View File

@ -1545,9 +1545,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "" msgstr ""
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "" msgstr ""

View File

@ -1585,9 +1585,18 @@ msgstr "Compteur d'écoutes"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Lire ou mettre en pause, selon l'état courant" msgstr "Lire ou mettre en pause, selon l'état courant"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Écouter la radio à partir d'un tag..." msgstr "Écouter la radio à partir d'un tag..."

View File

@ -1549,9 +1549,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Reproducir se está detido, pausar se está a reproducir" msgstr "Reproducir se está detido, pausar se está a reproducir"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Reproduzir a tag da rádio..." msgstr "Reproduzir a tag da rádio..."

View File

@ -1577,9 +1577,18 @@ msgstr "Lejátszások száma"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "Egyéni rádió lejátszása..." msgstr "Egyéni rádió lejátszása..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Lejátszás, ha le van állítva, különben szünet" msgstr "Lejátszás, ha le van állítva, különben szünet"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Címke rádió lejátszása..." msgstr "Címke rádió lejátszása..."

View File

@ -1586,9 +1586,18 @@ msgstr "Contatore di riproduzione"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "Riproduci radio personalizzata..." msgstr "Riproduci radio personalizzata..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Riproduci se fermata, sospendi se in riproduzione" msgstr "Riproduci se fermata, sospendi se in riproduzione"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Riproduci radio del tag..." msgstr "Riproduci radio del tag..."

View File

@ -1571,9 +1571,18 @@ msgstr "再生回数"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "カスタム ラジオの再生..." msgstr "カスタム ラジオの再生..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "停止中は再生し、再生中は一時停止します" msgstr "停止中は再生し、再生中は一時停止します"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "タグ ラジオの再生..." msgstr "タグ ラジオの再生..."

View File

@ -1545,9 +1545,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "" msgstr ""
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "" msgstr ""

View File

@ -1543,9 +1543,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "" msgstr ""
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "" msgstr ""

View File

@ -1557,9 +1557,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "" msgstr ""
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Spill etikettradio..." msgstr "Spill etikettradio..."

View File

@ -1576,9 +1576,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Afspelen indien gestopt, pauzeren indien afgespeeld" msgstr "Afspelen indien gestopt, pauzeren indien afgespeeld"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Tagradio afspelen" msgstr "Tagradio afspelen"

View File

@ -1543,9 +1543,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "" msgstr ""
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "" msgstr ""

View File

@ -1573,9 +1573,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "Odtwarzaj własne radio..." msgstr "Odtwarzaj własne radio..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Odtwarzaj gdy zatrzymane, zatrzymaj gdy odtwarzane" msgstr "Odtwarzaj gdy zatrzymane, zatrzymaj gdy odtwarzane"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Odtwarzaj radio znacznika..." msgstr "Odtwarzaj radio znacznika..."

View File

@ -1582,9 +1582,18 @@ msgstr "Contagem de reproduções"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "Reproduzir rádio personalizada..." msgstr "Reproduzir rádio personalizada..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Reproduzir se parado, pausar se em reprodução" msgstr "Reproduzir se parado, pausar se em reprodução"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Reproduzir a etiqueta da rádio..." msgstr "Reproduzir a etiqueta da rádio..."

View File

@ -1561,9 +1561,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Reproduzir se estiver parado, pausar se estiver tocando" msgstr "Reproduzir se estiver parado, pausar se estiver tocando"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Reproduzir rádio de marcação..." msgstr "Reproduzir rádio de marcação..."

View File

@ -1544,9 +1544,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Redă dacă este oprit, întrerupe dacă se redă" msgstr "Redă dacă este oprit, întrerupe dacă se redă"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "" msgstr ""

View File

@ -1567,9 +1567,18 @@ msgstr "Количество прослушшиваний"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "Слушать пользовательское радио..." msgstr "Слушать пользовательское радио..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Воспроизвести если остановлено, приостановить если воспроизводится" msgstr "Воспроизвести если остановлено, приостановить если воспроизводится"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Проиграть радио тега..." msgstr "Проиграть радио тега..."

View File

@ -1569,9 +1569,18 @@ msgstr "Počet prehraní"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "Hrať vlastné rádio..." msgstr "Hrať vlastné rádio..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Hrať ak je zastavené, pozastaviť ak hrá" msgstr "Hrať ak je zastavené, pozastaviť ak hrá"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Hrať rádio tagu..." msgstr "Hrať rádio tagu..."

View File

@ -1572,9 +1572,18 @@ msgstr "Število predvajanj"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "Predvajaj radio po meri ..." msgstr "Predvajaj radio po meri ..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Predvajaj, če je ustavljeno, napravi premor, če se predvaja" msgstr "Predvajaj, če je ustavljeno, napravi premor, če se predvaja"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Predvajaj radio oznak ..." msgstr "Predvajaj radio oznak ..."

View File

@ -1548,9 +1548,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Пусти ако је заустављено, заустави ако се пушта" msgstr "Пусти ако је заустављено, заустави ако се пушта"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "" msgstr ""

View File

@ -1569,9 +1569,18 @@ msgstr "Antal spelningar"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "Spela upp anpassad radio..." msgstr "Spela upp anpassad radio..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Spela upp om stoppad, gör paus vid uppspelning" msgstr "Spela upp om stoppad, gör paus vid uppspelning"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Spela upp taggradio..." msgstr "Spela upp taggradio..."

View File

@ -1569,9 +1569,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Duraklatılmışsa çal, çalıyorsa beklet" msgstr "Duraklatılmışsa çal, çalıyorsa beklet"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Etiket radyosu çal..." msgstr "Etiket radyosu çal..."

View File

@ -1533,9 +1533,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "" msgstr ""
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "" msgstr ""

View File

@ -1571,9 +1571,18 @@ msgstr "Кількість відтворень"
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "Слухати іншу радіостанцію..." msgstr "Слухати іншу радіостанцію..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "Відтворити, якщо зупинено; призупинити, якщо відтворюється" msgstr "Відтворити, якщо зупинено; призупинити, якщо відтворюється"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "Слухати радіо за позначками..." msgstr "Слухати радіо за позначками..."

View File

@ -1545,9 +1545,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "若停止则播放,若播放则停止" msgstr "若停止则播放,若播放则停止"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "播放标签电台..." msgstr "播放标签电台..."

View File

@ -1548,9 +1548,18 @@ msgstr ""
msgid "Play custom radio..." msgid "Play custom radio..."
msgstr "" msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing" msgid "Play if stopped, pause if playing"
msgstr "停止的話就開始播放,播放中的就暫停" msgstr "停止的話就開始播放,播放中的就暫停"
msgid "Play last.fm artist radio"
msgstr ""
msgid "Play last.fm tag radio"
msgstr ""
msgid "Play tag radio..." msgid "Play tag radio..."
msgstr "" msgstr ""

View File

@ -55,6 +55,7 @@
#include "radio/radioview.h" #include "radio/radioview.h"
#include "radio/radioviewcontainer.h" #include "radio/radioviewcontainer.h"
#include "radio/savedradio.h" #include "radio/savedradio.h"
#include "smartplaylists/generator.h"
#include "songinfo/artistinfoview.h" #include "songinfo/artistinfoview.h"
#include "songinfo/songinfoview.h" #include "songinfo/songinfoview.h"
#include "transcoder/transcodedialog.h" #include "transcoder/transcodedialog.h"
@ -1674,6 +1675,16 @@ void MainWindow::ConnectInfoView(SongInfoBase* view) {
connect(view, SIGNAL(ShowSettingsDialog()), SLOT(ShowSongInfoConfig())); connect(view, SIGNAL(ShowSettingsDialog()), SLOT(ShowSongInfoConfig()));
connect(view, SIGNAL(AddPlaylistItems(PlaylistItemList,bool)), connect(view, SIGNAL(AddPlaylistItems(PlaylistItemList,bool)),
SLOT(InsertRadioItems(PlaylistItemList,bool))); SLOT(InsertRadioItems(PlaylistItemList,bool)));
connect(view, SIGNAL(AddGenerator(smart_playlists::GeneratorPtr)),
SLOT(AddSongInfoGenerator(smart_playlists::GeneratorPtr)));
}
void MainWindow::AddSongInfoGenerator(smart_playlists::GeneratorPtr gen) {
if (!gen)
return;
gen->set_library(library_->backend());
AddSmartPlaylistToPlaylist(false, gen);
} }
void MainWindow::ShowSongInfoConfig() { void MainWindow::ShowSongInfoConfig() {

View File

@ -201,6 +201,8 @@ class MainWindow : public QMainWindow, public PlatformInterface {
void SaveGeometry(); void SaveGeometry();
void AddSongInfoGenerator(smart_playlists::GeneratorPtr gen);
private: private:
void AddFilesToPlaylist(bool clear_first, const QList<QUrl>& urls); void AddFilesToPlaylist(bool clear_first, const QList<QUrl>& urls);
void AddLibraryItemToPlaylist(bool clear_first, const QModelIndexList& indexes); void AddLibraryItemToPlaylist(bool clear_first, const QModelIndexList& indexes);