Skip to content

Commit c304c60

Browse files
committed
Add Tunebat to Find on Web Menu.
1 parent 441b1a0 commit c304c60

4 files changed

Lines changed: 59 additions & 0 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1656,6 +1656,7 @@ add_library(
16561656
src/widget/findonwebmenuservices/findonwebmenuyoutubemusic.cpp
16571657
src/widget/findonwebmenuservices/findonwebmenuspotify.cpp
16581658
src/widget/findonwebmenuservices/findonwebmenugenius.cpp
1659+
src/widget/findonwebmenuservices/findonwebmenutunebat.cpp
16591660
src/widget/hexspinbox.cpp
16601661
src/widget/hotcuedrag.cpp
16611662
src/widget/paintable.cpp

src/widget/findonwebmenufactory.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "findonwebmenuservices/findonwebmenulastfm.h"
88
#include "findonwebmenuservices/findonwebmenusoundcloud.h"
99
#include "findonwebmenuservices/findonwebmenuspotify.h"
10+
#include "findonwebmenuservices/findonwebmenutunebat.h"
1011
#include "findonwebmenuservices/findonwebmenuwikipedia.h"
1112
#include "findonwebmenuservices/findonwebmenuyoutubemusic.h"
1213
#include "util/parented_ptr.h"
@@ -25,6 +26,7 @@ void createFindOnWebSubmenus(QMenu* pFindOnWebMenu,
2526
make_parented<FindOnWebMenuYouTubeMusic>(pFindOnWebMenu, pFindOnWebLast, track);
2627
make_parented<FindOnWebMenuSpotify>(pFindOnWebMenu, pFindOnWebLast, track);
2728
make_parented<FindOnWebMenuGenius>(pFindOnWebMenu, pFindOnWebLast, track);
29+
make_parented<FindOnWebMenuTunebat>(pFindOnWebMenu, pFindOnWebLast, track);
2830
}
2931

3032
} // namespace library
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#include "findonwebmenutunebat.h"
2+
3+
#include <QMenu>
4+
#include <QUrl>
5+
#include <QUrlQuery>
6+
7+
#include "moc_findonwebmenutunebat.cpp"
8+
#include "track/track.h"
9+
#include "util/parented_ptr.h"
10+
11+
namespace {
12+
const QString kServiceTitle = QStringLiteral("Tunebat");
13+
const QString kSearchUrl = QStringLiteral("https://tunebat.com/Search");
14+
15+
QUrl composeTunebatUrl(const QString& query) {
16+
QUrl url(kSearchUrl);
17+
QUrlQuery urlQuery;
18+
urlQuery.addQueryItem("q", query);
19+
url.setQuery(urlQuery);
20+
return url;
21+
}
22+
} // namespace
23+
24+
FindOnWebMenuTunebat::FindOnWebMenuTunebat(
25+
QMenu* pFindOnWebMenu, FindOnWebLast* pFindOnWebLast, const Track& track)
26+
: WFindOnWebMenu(pFindOnWebMenu, pFindOnWebLast) {
27+
const QString artist = track.getArtist();
28+
const QString trackTitle = track.getTitle();
29+
const QString album = track.getAlbum();
30+
setTitle(kServiceTitle);
31+
pFindOnWebMenu->addMenu(this);
32+
addSeparator();
33+
if (!artist.isEmpty()) {
34+
if (!trackTitle.isEmpty()) {
35+
const QUrl TunebatUrlArtistWithTrackTitle =
36+
composeTunebatUrl(artist + " " + trackTitle);
37+
addActionToServiceMenu(
38+
kServiceTitle + QStringLiteral(",Artist,Title"),
39+
tr("Artist + Title"),
40+
TunebatUrlArtistWithTrackTitle);
41+
}
42+
}
43+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#pragma once
2+
3+
#include "widget/wfindonwebmenu.h"
4+
5+
class QMenu;
6+
class Track;
7+
class FindOnWebLast;
8+
9+
class FindOnWebMenuTunebat : public WFindOnWebMenu {
10+
Q_OBJECT
11+
public:
12+
FindOnWebMenuTunebat(QMenu* pFindOnWebMenu, FindOnWebLast* pFindOnWebLast, const Track& track);
13+
};

0 commit comments

Comments
 (0)