diff options
Diffstat (limited to 'playerwidget.cpp')
-rw-r--r-- | playerwidget.cpp | 40 |
1 files changed, 15 insertions, 25 deletions
diff --git a/playerwidget.cpp b/playerwidget.cpp index fb8d563..f589f4d 100644 --- a/playerwidget.cpp +++ b/playerwidget.cpp @@ -164,17 +164,21 @@ void PlayerWidget::setupGui(QSplashScreen *splash){ QAction *addToPlayListAndClearA = new QAction(QIcon(":/belly_right_and_clear.png"), tr("Clear and add"), this); connect(addToPlayListAndClearA, &QAction::triggered, this, &PlayerWidget::addToPlayListAndClear); curW->view()->addAction(addToPlayListAndClearA); + curW->view()->addAction(Helper::createSeparator(this)); QStandardItemModel *model = curW->model(); QModelIndex rootIdx = model->invisibleRootItem()->index(); if(model->hasChildren(model->index(0, 0, rootIdx))){ QAction *expandA = new QAction(Helper::iconFromQChar(QChar(0x2640), 90), tr("Expand"), this); connect(expandA, &QAction::triggered, [curW] { curW->view()->expandOrCollapse(BeetView::Expand);} ); - curW->view()->addAction(Helper::createSeparator(this)); curW->view()->addAction(expandA); QAction *collapseA = new QAction(Helper::iconFromQChar(QChar(0x2642), 120), tr("Collapse"), this); connect(collapseA, &QAction::triggered, [curW] { curW->view()->expandOrCollapse(BeetView::Collapse);} ); curW->view()->addAction(collapseA); + curW->view()->addAction(Helper::createSeparator(this)); } + QAction *searchMBA = new QAction(QIcon(":/bizarre_amputee.png"), tr("Search Musicbrainz"), this); + connect(searchMBA, &QAction::triggered, [this, curW] { searchMusicbrainz(curW->view()->selectionModel()->currentIndex()); }); + curW->view()->addAction(searchMBA); } //left widget @@ -370,16 +374,12 @@ void PlayerWidget::createActions(){ connect(aboutQtA, &QAction::triggered, qApp, &QApplication::aboutQt); helpM->addAction(aboutQtA); helpA->setMenu(helpM); - QAction *miscPrintA = new QAction(QIcon(":/clean_tampon.png"), tr("List selected"), this); - connect(miscPrintA, &QAction::triggered, this, &PlayerWidget::printList); - QAction *miscMusicBrainzRightA = new QAction(QIcon(":/bizarre_amputee.png"), tr("Search Musicbrainz"), this); - 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 *plSearchMB = new QAction(QIcon(":/bizarre_amputee.png"), tr("Search Musicbrainz"), this); + connect(plSearchMB, &QAction::triggered, [this] { searchMusicbrainz(mPlayListView->selectionModel()->currentIndex()); }); mPlayListView->addAction(removeFromPlayListA); mPlayListView->addAction(Helper::createSeparator(this)); - mPlayListView->addAction(miscMusicBrainzRightA); + mPlayListView->addAction(plSearchMB); mPlayListView->addAction(Helper::createSeparator(this)); mPlayListView->addAction(shufflePlayistA); mPlayListView->addAction(clearPlayListA); @@ -723,24 +723,18 @@ void PlayerWidget::printList(){ mLeftTE->setPlainText(output); } -void PlayerWidget::searchMusicbrainzRight(){ - QModelIndex idx = mPlayListView->selectionModel()->currentIndex(); +void PlayerWidget::searchMusicbrainz(const QModelIndex &idx){ if(!idx.isValid()){ return; } QString artist = idx.data(ArtistRole).toString(); QString album = idx.data(AlbumRole).toString(); - mWebDownloader->fetchData(artist, album); -} - -void PlayerWidget::searchMusicbrainzLeft(){ - CollectionWidget *curWidget = qobject_cast<CollectionWidget*>(mCollectionStack->currentWidget()); - QModelIndex idx = curWidget->view()->selectionModel()->currentIndex(); - if(!idx.isValid()){ - return; + if(album.isEmpty()){ + QModelIndex firstChild = idx.model()->index(0, 0, idx); + if(firstChild.isValid()){ + album = firstChild.data(AlbumRole).toString(); + } } - QString artist = idx.data(ArtistRole).toString().toLower(); - QString album = idx.data(AlbumRole).toString().toLower(); mWebDownloader->fetchData(artist, album); } @@ -760,9 +754,6 @@ void PlayerWidget::webDlDone(){ if(!aId.isEmpty()){ text.append(QString(tr("<b>Musicbrainz:</b><table style=\"margin-bottom: 20px\">"))); text.append(QString(tr("<tr><td style=\"padding-left: 30px\">Artist</td><td style=\"padding-left: 30px\"><a href=\"https://musicbrainz.org/artist/%1\">%2</a></td></tr>")).arg(aId).arg(mWebDownloader->artist())); - for(const QString &alId : mWebDownloader->data()){ - text.append(QString("<tr><td style=\"padding-left: 30px\">Album</td><td style=\"padding-left: 30px\"><a href=\"https://musicbrainz.org/release-group/%1\">%2</a></td></tr>").arg(alId).arg(mWebDownloader->album())); - } text.append("</table>"); QList<QList<QVariant> > other = mWebDownloader->otherData(); std::sort(other.begin(), other.end(), [](auto a, auto b){ @@ -880,10 +871,9 @@ void PlayerWidget::play(const QString &fullPath){ mTrayIcon->setToolTip(mCurToolTip); mTrayIcon->showMessage(QString(tr("Now Playing:")), mCurToolTip, QSystemTrayIcon::Information, 5000); emit setWinTitle(mCurWinTitle); - mPlayer->play(); mPlayA->setChecked(true); - searchMusicbrainzRight(); + searchMusicbrainz(mPlayListView->selectionModel()->currentIndex()); emit playModeChanged(tr("Playing")); } |