forked from mixxxdj/mixxx
/
wfindonwebmenu.cpp
43 lines (35 loc) · 1.24 KB
/
wfindonwebmenu.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "wfindonwebmenu.h"
#include <QMenu>
#include <QtDebug>
#include "moc_wfindonwebmenu.cpp"
#include "track/track.h"
#include "util/desktophelper.h"
WFindOnWebMenu::WFindOnWebMenu(QWidget* parent)
: QMenu(tr("Find on Web"), parent) {
}
bool WFindOnWebMenu::hasEntriesForTrack(const Track& track) {
return !(track.getArtist().isEmpty() &&
track.getAlbum().isEmpty() &&
track.getTitle().isEmpty());
}
void WFindOnWebMenu::addActionToServiceMenu(
QMenu* serviceMenu, const QString& actionText, const QUrl& serviceUrl) {
serviceMenu->addAction(actionText,
this,
[this, serviceUrl] {
openInBrowser(serviceUrl);
});
}
QString WFindOnWebMenu::composeActionText(const QString& prefix, const QString& trackProperty) {
return prefix + QStringLiteral(" | ") + trackProperty;
}
QString WFindOnWebMenu::composeSearchQuery(
const QString& artist, const QString& trackAlbumOrTitle) {
return artist + QStringLiteral(" ") + trackAlbumOrTitle;
}
void WFindOnWebMenu::openInBrowser(const QUrl& url) {
if (!mixxx::DesktopHelper::openUrl(url)) {
qWarning() << "DesktopHelper::openUrl() failed for " << url;
DEBUG_ASSERT(false);
}
}