aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/lyrics/lyricswidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/General/lyrics/lyricswidget.cpp')
-rw-r--r--src/plugins/General/lyrics/lyricswidget.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/plugins/General/lyrics/lyricswidget.cpp b/src/plugins/General/lyrics/lyricswidget.cpp
index 375a9034c..f5a60e946 100644
--- a/src/plugins/General/lyrics/lyricswidget.cpp
+++ b/src/plugins/General/lyrics/lyricswidget.cpp
@@ -100,6 +100,8 @@ void LyricsWidget::fetch(const TrackInfo *info)
m_ui.trackSpinBox->setValue(info->value(Qmmp::TRACK).toInt());
m_ui.yearSpinBox->setValue(info->value(Qmmp::YEAR).toInt());
+ m_ui.providerComboBox->clear();
+
if(!loadFromCache())
on_refreshButton_clicked();
}
@@ -107,6 +109,11 @@ void LyricsWidget::fetch(const TrackInfo *info)
void LyricsWidget::onRequestFinished(QNetworkReply *reply)
{
QString name = m_tasks.take(reply);
+ if(name.isEmpty())
+ {
+ reply->deleteLater();
+ return;
+ }
QVariant redirectTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
int code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
@@ -172,6 +179,12 @@ void LyricsWidget::on_refreshButton_clicked()
m_info.setValue(Qmmp::TRACK, m_ui.trackSpinBox->value());
m_info.setValue(Qmmp::YEAR, m_ui.yearSpinBox->value());
+ //abort previous tasks
+ for(QNetworkReply *reply : m_tasks.keys())
+ reply->abort();
+
+ m_tasks.clear();
+
for(LyricsProvider *provider : m_parser.providers())
{
if(m_enabledProviders.contains(provider->name()))