diff options
author | Piotr Srebrny <piotr.srebrny@qt.io> | 2022-02-09 16:21:53 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-02-14 09:49:05 +0000 |
commit | c6bc66b90de0be6401ecabc78a986b48196e20b4 (patch) | |
tree | 275559cd42c7076fde2627f7f0a8a4a501d38a9f | |
parent | 822ab3202fadfb13f76ed6a80a36dd95534e2137 (diff) |
Avoid misleading error information, display proper loading error
QSample displays _decoder error_ when invalid URL is provided. This is
misleading. This patch adds a proper message for these types of errors.
Change-Id: I5416cf4e5b09a008e3b6af964fe65b48895c0c57
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit 72582b7e22080c2a03f180e128873ca0b566df6e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/multimedia/audio/qsamplecache_p.cpp | 13 | ||||
-rw-r--r-- | src/multimedia/audio/qsamplecache_p.h | 3 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/multimedia/audio/qsamplecache_p.cpp b/src/multimedia/audio/qsamplecache_p.cpp index ddb12b256..7a069ff66 100644 --- a/src/multimedia/audio/qsamplecache_p.cpp +++ b/src/multimedia/audio/qsamplecache_p.cpp @@ -382,7 +382,7 @@ void QSample::load() Q_ASSERT(QThread::currentThread()->objectName() == QLatin1String("QSampleCache::LoadingThread")); qCDebug(qLcSampleCache) << "QSample: load [" << m_url << "]"; m_stream = m_parent->networkAccessManager().get(QNetworkRequest(m_url)); - connect(m_stream, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), SLOT(decoderError())); + connect(m_stream, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), SLOT(loadingError(QNetworkReply::NetworkError))); m_waveDecoder = new QWaveDecoder(m_stream); connect(m_waveDecoder, SIGNAL(formatKnown()), SLOT(decoderReady())); connect(m_waveDecoder, SIGNAL(parsingError()), SLOT(decoderError())); @@ -391,6 +391,17 @@ void QSample::load() m_waveDecoder->open(QIODevice::ReadOnly); } +void QSample::loadingError(QNetworkReply::NetworkError errorCode) +{ + Q_ASSERT(QThread::currentThread()->objectName() == QLatin1String("QSampleCache::LoadingThread")); + QMutexLocker m(&m_mutex); + qCDebug(qLcSampleCache) << "QSample: loading error" << errorCode; + cleanup(); + m_state = QSample::Error; + qobject_cast<QSampleCache*>(m_parent)->loadingRelease(); + emit error(); +} + // Called in loading thread void QSample::decoderError() { diff --git a/src/multimedia/audio/qsamplecache_p.h b/src/multimedia/audio/qsamplecache_p.h index d9e84c947..4a9873018 100644 --- a/src/multimedia/audio/qsamplecache_p.h +++ b/src/multimedia/audio/qsamplecache_p.h @@ -58,7 +58,7 @@ #include <QtCore/qmap.h> #include <QtCore/qset.h> #include <qaudioformat.h> - +#include <qnetworkreply.h> QT_BEGIN_NAMESPACE @@ -97,6 +97,7 @@ protected: private Q_SLOTS: void load(); + void loadingError(QNetworkReply::NetworkError); void decoderError(); void readSample(); void decoderReady(); |