diff --git a/localization/rssguard_en.ts b/localization/rssguard_en.ts
index 6796d6d63..5ea9502bc 100644
--- a/localization/rssguard_en.ts
+++ b/localization/rssguard_en.ts
@@ -4504,47 +4504,87 @@ Login tokens expiration: %2
-
+
+ Cannot load media (missing codecs)
+
+
+
+
+ Unrecognized format
+
+
+
+
+ Network problem
+
+
+
+
+ Access denied
+
+
+
+
+ Service is missing
+
+
+
+
+ This is playlist
+
+
+
+
+ No errors
+
+
+
+
+ Unknown error
+
+
+
+
No media
-
+
Loading...
-
+
Media loaded
-
+
Media stalled
-
+
Buffering...
-
+
Loaded
-
+
Ended
-
+
Media is invalid
-
+
Unknown
@@ -5550,7 +5590,7 @@ Login tokens expiration: %2
QObject
-
+
+ %n other feeds.
diff --git a/src/librssguard/gui/reusable/mediaplayer.cpp b/src/librssguard/gui/reusable/mediaplayer.cpp
index 5c8f2bd35..7de1be1a0 100644
--- a/src/librssguard/gui/reusable/mediaplayer.cpp
+++ b/src/librssguard/gui/reusable/mediaplayer.cpp
@@ -103,7 +103,12 @@ void MediaPlayer::onDurationChanged(qint64 duration) {
}
void MediaPlayer::onErrorOccurred(QMediaPlayer::Error error, const QString& error_string) {
- m_ui.m_lblStatus->setText(error_string);
+ if (error_string.isEmpty()) {
+ m_ui.m_lblStatus->setText(errorToString(error));
+ }
+ else {
+ m_ui.m_lblStatus->setText(error_string);
+ }
}
void MediaPlayer::onAudioAvailable(bool available) {
@@ -156,6 +161,36 @@ void MediaPlayer::onSeekableChanged(bool seekable) {
}
}
+QString MediaPlayer::errorToString(QMediaPlayer::Error error) const {
+ switch (error) {
+ case QMediaPlayer::ResourceError:
+ return tr("Cannot load media (missing codecs)");
+
+ case QMediaPlayer::FormatError:
+ return tr("Unrecognized format");
+
+ case QMediaPlayer::NetworkError:
+ return tr("Network problem");
+
+ case QMediaPlayer::AccessDeniedError:
+ return tr("Access denied");
+
+#if QT_VERSION_MAJOR == 5
+ case QMediaPlayer::ServiceMissingError:
+ return tr("Service is missing");
+
+ case QMediaPlayer::MediaIsPlaylist:
+ return tr("This is playlist");
+#endif
+
+ case QMediaPlayer::NoError:
+ return tr("No errors");
+
+ default:
+ return tr("Unknown error");
+ }
+}
+
float MediaPlayer::convertSliderVolume(int slider_volume) const {
return slider_volume / 100.0f;
}
diff --git a/src/librssguard/gui/reusable/mediaplayer.h b/src/librssguard/gui/reusable/mediaplayer.h
index 86ac83ae0..a2e61b8cd 100644
--- a/src/librssguard/gui/reusable/mediaplayer.h
+++ b/src/librssguard/gui/reusable/mediaplayer.h
@@ -64,6 +64,7 @@ class MediaPlayer : public TabContent {
qint64 convertSliderProgress(int slider_progress) const;
int convertToSliderProgress(qint64 player_progress) const;
+ QString errorToString(QMediaPlayer::Error error) const;
QString mediaStatusToString(QMediaPlayer::MediaStatus status) const;
void setupIcons();