Add tidal add/remove favorites + more tidal fixes

This commit is contained in:
Jonas Kvinge
2019-06-07 20:23:05 +02:00
parent 059c4beb30
commit 5c2ca1e3d9
17 changed files with 533 additions and 52 deletions

View File

@@ -110,12 +110,15 @@ InternetSearchView::InternetSearchView(QWidget *parent)
InternetSearchView::~InternetSearchView() { delete ui_; }
void InternetSearchView::Init(Application *app, InternetSearch *engine, QString settings_group, SettingsDialog::Page settings_page) {
void InternetSearchView::Init(Application *app, InternetSearch *engine, QString settings_group, SettingsDialog::Page settings_page, const bool artists, const bool albums, const bool songs) {
app_ = app;
engine_ = engine;
settings_group_ = settings_group;
settings_page_ = settings_page;
artists_ = artists;
albums_ = albums;
songs_ = songs;
front_model_ = new InternetSearchModel(engine_, this);
back_model_ = new InternetSearchModel(engine_, this);
@@ -435,6 +438,16 @@ bool InternetSearchView::ResultsContextMenuEvent(QContextMenuEvent *event) {
context_menu_->addSeparator();
if (artists_ || albums_ || songs_) {
if (artists_)
context_actions_ << context_menu_->addAction(IconLoader::Load("document-new"), tr("Add to artists"), this, SLOT(AddArtists()));
if (albums_)
context_actions_ << context_menu_->addAction(IconLoader::Load("document-new"), tr("Add to albums"), this, SLOT(AddAlbums()));
if (songs_)
context_actions_ << context_menu_->addAction(IconLoader::Load("document-new"), tr("Add to songs"), this, SLOT(AddSongs()));
context_menu_->addSeparator();
}
if (ui_->results->selectionModel() && ui_->results->selectionModel()->selectedRows().length() == 1) {
context_actions_ << context_menu_->addAction(IconLoader::Load("search"), tr("Search for this"), this, SLOT(SearchForThis()));
}
@@ -593,3 +606,33 @@ void InternetSearchView::ProgressSetMaximum(int max) {
void InternetSearchView::UpdateProgress(int progress) {
ui_->progressbar->setValue(progress);
}
void InternetSearchView::AddArtists() {
MimeData *data = SelectedMimeData();
if (!data) return;
if (const InternetSongMimeData *internet_song_data = qobject_cast<const InternetSongMimeData*>(data)) {
emit AddArtistsSignal(internet_song_data->songs);
}
}
void InternetSearchView::AddAlbums() {
MimeData *data = SelectedMimeData();
if (!data) return;
if (const InternetSongMimeData *internet_song_data = qobject_cast<const InternetSongMimeData*>(data)) {
emit AddAlbumsSignal(internet_song_data->songs);
}
}
void InternetSearchView::AddSongs() {
MimeData *data = SelectedMimeData();
if (!data) return;
if (const InternetSongMimeData *internet_song_data = qobject_cast<const InternetSongMimeData*>(data)) {
emit AddSongsSignal(internet_song_data->songs);
}
}