diff options
-rw-r--r-- | playerwidget.cpp | 17 | ||||
-rw-r--r-- | playerwidget.h | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/playerwidget.cpp b/playerwidget.cpp index 348b249..d0b1916 100644 --- a/playerwidget.cpp +++ b/playerwidget.cpp @@ -363,6 +363,8 @@ void PlayerWidget::createActions(){ connect(miscMusicBrainzRightA, &QAction::triggered, this, &PlayerWidget::searchMusicbrainzRight); QAction *miscMusicBrainzLeftA = new QAction(QIcon(":/bizarre_amputee.png"), tr("Search Musicbrainz"), this); connect(miscMusicBrainzLeftA, &QAction::triggered, this, &PlayerWidget::searchMusicbrainzLeft); + QAction *miscFilterFromPlaylistA = new QAction(QIcon(":/chastity_belt.png"), tr("Filter artist"), this); + connect(miscFilterFromPlaylistA, &QAction::triggered, this, &PlayerWidget::filterFromPlaylist); mView->addAction(addToPlayListA); mView->addAction(addToPlayListAndClearA); mView->addAction(Helper::createSeparator(this)); @@ -382,6 +384,7 @@ void PlayerWidget::createActions(){ mPlayListView->addAction(removeFromPlayListA); mPlayListView->addAction(Helper::createSeparator(this)); mPlayListView->addAction(miscMusicBrainzRightA); + mPlayListView->addAction(miscFilterFromPlaylistA); mPlayListView->addAction(Helper::createSeparator(this)); mPlayListView->addAction(shufflePlayistA); mPlayListView->addAction(clearPlayListA); @@ -1094,6 +1097,10 @@ void PlayerWidget::doFilter(){ QModelIndex exp = mCurrentModel->index(i, 0, QModelIndex()); if(exp.isValid()){ mView->expand(exp); + QModelIndex next = mCurrentModel->index(0, 0, exp); + if(next.isValid()){ + mView->expand(next); + } } } qApp->restoreOverrideCursor(); @@ -1273,6 +1280,16 @@ void PlayerWidget::webDlDone(){ mLeftTE->setText(text); } +void PlayerWidget::filterFromPlaylist(){ + QModelIndex idx = mPlayListView->selectionModel()->currentIndex(); + if(!idx.isValid()){ + return; + } + QString artist = idx.data(ArtistRole).toString(); + mSearch->setText(artist); + doFilter(); +} + void PlayerWidget::play(const QString &fullPath){ mPlayer->setMedia(QUrl::fromLocalFile(fullPath)); TagLib::FileRef file(QString(fullPath).toUtf8()); diff --git a/playerwidget.h b/playerwidget.h index 738b72e..4e27293 100644 --- a/playerwidget.h +++ b/playerwidget.h @@ -70,6 +70,7 @@ class PlayerWidget : public QWidget { void searchMusicbrainzRight(); void searchMusicbrainzLeft(); void webDlDone(); + void filterFromPlaylist(); void mute(bool triggered); void volumeChanged(int volume); |