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.icon_ = QIcon(":/providers/echonest.png");
TagWidget* widget = new TagWidget;
TagWidget* widget = new TagWidget(TagWidget::Type_Artists);
data.contents_ = widget;
widget->SetIcon(QIcon(":/icons/22x22/x-clementine-artist.png"));
widget->SetUrlPattern("lastfm://artist/%1/similarartists");
foreach (const Echonest::Artist& artist, artists) {
widget->AddTag(artist.name());

View File

@ -59,11 +59,10 @@ void EchoNestTags::RequestFinished() {
data.type_ = CollapsibleInfoPane::Data::Type_Tags;
data.icon_ = QIcon(":/last.fm/icon_tag.png");
TagWidget* widget = new TagWidget;
TagWidget* widget = new TagWidget(TagWidget::Type_Tags);
data.contents_ = widget;
widget->SetIcon(data.icon_);
widget->SetUrlPattern("lastfm://globaltags/%1");
foreach (const Echonest::Term& term, request->artist_->terms()) {
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.icon_ = QIcon(":/last.fm/icon_tag.png");
TagWidget* widget = new TagWidget;
TagWidget* widget = new TagWidget(TagWidget::Type_Tags);
data.contents_ = widget;
widget->SetIcon(data.icon_);
widget->SetUrlPattern("lastfm://globaltags/%1");
foreach (const lastfm::XmlQuery& e, q["track"]["toptags"].children("tag")) {
widget->AddTag(e["name"].text());

View File

@ -209,11 +209,17 @@ void SongInfoBase::ReloadSettings() {
}
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()));
}
if (widget->metaObject()->indexOfSignal("AddPlaylistItems(PlaylistItemList)") != -1) {
if (m->indexOfSignal("AddPlaylistItems(PlaylistItemList)") != -1) {
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 "core/song.h"
#include "playlist/playlistitem.h"
#include "smartplaylists/generator_fwd.h"
#include "widgets/widgetfadehelper.h"
class CollapsibleInfoPane;
@ -48,6 +49,7 @@ public slots:
signals:
void ShowSettingsDialog();
void AddPlaylistItems(const PlaylistItemList& items, bool clear_first = false);
void AddGenerator(smart_playlists::GeneratorPtr gen);
protected:
void showEvent(QShowEvent* e);

View File

@ -18,7 +18,10 @@
#include "tagwidget.h"
#include "radio/lastfmservice.h"
#include "radio/radiomodel.h"
#include "smartplaylists/generator.h"
#include "smartplaylists/querygenerator.h"
#include "ui/flowlayout.h"
#include "ui/iconloader.h"
#include <QPainter>
#include <QPropertyAnimation>
@ -100,9 +103,15 @@ void TagWidgetTag::mouseReleaseEvent(QMouseEvent*) {
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));
}
@ -118,18 +127,66 @@ void TagWidget::AddTag(const QString& tag) {
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() {
TagWidgetTag* tag = qobject_cast<TagWidgetTag*>(sender());
if (!tag)
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>();
if (!last_fm->IsAuthenticated()) {
last_fm->ShowConfig();
return;
}
QUrl url(url_pattern_.arg(tag->text()));
QUrl url(url_pattern.arg(context_item_));
PlaylistItemPtr item(last_fm->PlaylistItemForUrl(url));
if (!item)
return;

View File

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

View File

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

View File

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

View File

@ -1572,9 +1572,18 @@ msgstr ""
msgid "Play custom radio..."
msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Reproduix la radio de l'etiqueta..."

View File

@ -1547,9 +1547,18 @@ msgstr "Počet přehrání"
msgid "Play custom radio..."
msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Přehrávat označené rádio..."

View File

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

View File

@ -1548,9 +1548,18 @@ msgstr ""
msgid "Play custom radio..."
msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Spil mærkeradio..."

View File

@ -1575,9 +1575,18 @@ msgstr "Abspielzähler"
msgid "Play custom radio..."
msgstr "Benutzerdefiniertes Radio abspielen..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Spiele Tag-Radio..."

View File

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

View File

@ -1548,9 +1548,18 @@ msgstr ""
msgid "Play custom radio..."
msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "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..."
msgstr "Play tag radio..."

View File

@ -1545,9 +1545,18 @@ msgstr ""
msgid "Play custom radio..."
msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "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..."
msgstr "Play tag radio..."

View File

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

View File

@ -1586,9 +1586,18 @@ msgstr "Número de reproducciones"
msgid "Play custom radio..."
msgstr "Reproducir Radio Personalizada"
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Reproducir radio de la etiqueta..."

View File

@ -1545,9 +1545,18 @@ msgstr "Esitamiste arv"
msgid "Play custom radio..."
msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Mängi sildipilve raadiot..."

View File

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

View File

@ -1585,9 +1585,18 @@ msgstr "Compteur d'écoutes"
msgid "Play custom radio..."
msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Écouter la radio à partir d'un tag..."

View File

@ -1549,9 +1549,18 @@ msgstr ""
msgid "Play custom radio..."
msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Reproduzir a tag da rádio..."

View File

@ -1577,9 +1577,18 @@ msgstr "Lejátszások száma"
msgid "Play custom radio..."
msgstr "Egyéni rádió lejátszása..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Címke rádió lejátszása..."

View File

@ -1586,9 +1586,18 @@ msgstr "Contatore di riproduzione"
msgid "Play custom radio..."
msgstr "Riproduci radio personalizzata..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Riproduci radio del tag..."

View File

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

View File

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

View File

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

View File

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

View File

@ -1576,9 +1576,18 @@ msgstr ""
msgid "Play custom radio..."
msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Tagradio afspelen"

View File

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

View File

@ -1573,9 +1573,18 @@ msgstr ""
msgid "Play custom radio..."
msgstr "Odtwarzaj własne radio..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Odtwarzaj radio znacznika..."

View File

@ -1582,9 +1582,18 @@ msgstr "Contagem de reproduções"
msgid "Play custom radio..."
msgstr "Reproduzir rádio personalizada..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Reproduzir a etiqueta da rádio..."

View File

@ -1561,9 +1561,18 @@ msgstr ""
msgid "Play custom radio..."
msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Reproduzir rádio de marcação..."

View File

@ -1544,9 +1544,18 @@ msgstr ""
msgid "Play custom radio..."
msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr ""

View File

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

View File

@ -1569,9 +1569,18 @@ msgstr "Počet prehraní"
msgid "Play custom radio..."
msgstr "Hrať vlastné rádio..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Hrať rádio tagu..."

View File

@ -1572,9 +1572,18 @@ msgstr "Število predvajanj"
msgid "Play custom radio..."
msgstr "Predvajaj radio po meri ..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Predvajaj radio oznak ..."

View File

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

View File

@ -1569,9 +1569,18 @@ msgstr "Antal spelningar"
msgid "Play custom radio..."
msgstr "Spela upp anpassad radio..."
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Spela upp taggradio..."

View File

@ -1569,9 +1569,18 @@ msgstr ""
msgid "Play custom radio..."
msgstr ""
msgid "Play from my Library"
msgstr ""
msgid "Play if stopped, pause if playing"
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..."
msgstr "Etiket radyosu çal..."

View File

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

View File

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

View File

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

View File

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

View File

@ -55,6 +55,7 @@
#include "radio/radioview.h"
#include "radio/radioviewcontainer.h"
#include "radio/savedradio.h"
#include "smartplaylists/generator.h"
#include "songinfo/artistinfoview.h"
#include "songinfo/songinfoview.h"
#include "transcoder/transcodedialog.h"
@ -1674,6 +1675,16 @@ void MainWindow::ConnectInfoView(SongInfoBase* view) {
connect(view, SIGNAL(ShowSettingsDialog()), SLOT(ShowSongInfoConfig()));
connect(view, SIGNAL(AddPlaylistItems(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() {

View File

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