summaryrefslogtreecommitdiffstats
path: root/src/multimedia/playback/playlistfileparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/playback/playlistfileparser.cpp')
-rw-r--r--src/multimedia/playback/playlistfileparser.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/multimedia/playback/playlistfileparser.cpp b/src/multimedia/playback/playlistfileparser.cpp
index 11fe5a232..d06f31304 100644
--- a/src/multimedia/playback/playlistfileparser.cpp
+++ b/src/multimedia/playback/playlistfileparser.cpp
@@ -148,12 +148,22 @@ public:
QUrl expandToFullPath(const QUrl& root, const QString& line)
{
+ // On Linux, backslashes are not converted to forward slashes :/
+ if (line.startsWith(QLatin1String("//")) || line.startsWith(QLatin1String("\\\\"))) {
+ // Network share paths are not resolved
+ return QUrl::fromLocalFile(line);
+ }
+
QUrl url(line);
- if (url.isRelative()) {
+ if (url.scheme().isEmpty()) {
+ // Resolve it relative to root
if (root.isLocalFile())
return root.resolved(QUrl::fromLocalFile(line));
else
return root.resolved(url);
+ } else if (url.scheme().length() == 1) {
+ // Assume it's a drive letter for a Windows path
+ url = QUrl::fromLocalFile(line);
}
return url;