You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.5 KiB
41 lines
1.5 KiB
9 years ago
|
From 621ffb823d45a88a02602fb4ee4b769dfbc0c16a Mon Sep 17 00:00:00 2001
|
||
|
From: Harald Sitter <sitter@kde.org>
|
||
|
Date: Thu, 3 Dec 2015 10:30:14 +0100
|
||
|
Subject: [PATCH 24/31] fix double encoding problem with MRLs
|
||
|
|
||
|
QUrl::from* can auto-encode characters such as #, toString will not
|
||
|
automatically decode again. This results in a double encoding since
|
||
|
MRL always encodes according to phonon-gstreamer's expectations.
|
||
|
To avoid this use toLocalFile() for local paths as this returns decoded
|
||
|
paths which we can then percent encode correctly.
|
||
|
|
||
|
BUG: 356218
|
||
|
FIXED-IN: 4.9.0
|
||
|
CHANGELOG: Fix playback of local files containing a hash (#) character
|
||
|
---
|
||
|
phonon/mrl.cpp | 5 ++---
|
||
|
1 file changed, 2 insertions(+), 3 deletions(-)
|
||
|
|
||
|
diff --git a/phonon/mrl.cpp b/phonon/mrl.cpp
|
||
|
index afd4655..ce5961a 100644
|
||
|
--- a/phonon/mrl.cpp
|
||
|
+++ b/phonon/mrl.cpp
|
||
|
@@ -64,12 +64,11 @@ QByteArray Mrl::toEncoded(FormattingOptions options) const
|
||
|
{
|
||
|
QByteArray encodedMrl;
|
||
|
|
||
|
- QString url = toString(options);
|
||
|
static QByteArray encodingExclude(":/\\?=&,@");
|
||
|
if (scheme() == QLatin1String("")) {
|
||
|
- encodedMrl = QFile::encodeName("file://" + url).toPercentEncoding(encodingExclude);
|
||
|
+ encodedMrl = QFile::encodeName("file://" + toLocalFile()).toPercentEncoding(encodingExclude);
|
||
|
} else if (scheme() == QLatin1String("file")) {
|
||
|
- encodedMrl = QFile::encodeName(url).toPercentEncoding(encodingExclude);
|
||
|
+ encodedMrl = QFile::encodeName("file://" + toLocalFile()).toPercentEncoding(encodingExclude);
|
||
|
} else {
|
||
|
encodedMrl = QUrl::toEncoded(options);
|
||
|
}
|
||
|
--
|
||
|
2.7.4
|
||
|
|